Modification de la structure d'une rule de recherche et du GUImaster
@@ -21,6 +21,7 @@ | |||
<File Name="options.cpp"/> | |||
<File Name="correc.cpp"/> | |||
<File Name="optionsRche.cpp"/> | |||
<File Name="recherche.cpp"/> | |||
</VirtualDirectory> | |||
<VirtualDirectory Name="include"> | |||
<File Name="bdd.h"/> | |||
@@ -35,6 +36,7 @@ | |||
<File Name="options.h"/> | |||
<File Name="correc.h"/> | |||
<File Name="optionsRche.h"/> | |||
<File Name="recherche.h"/> | |||
</VirtualDirectory> | |||
<VirtualDirectory Name="resources"> | |||
<File Name="cosmos.fbp"/> | |||
@@ -1,8 +1,8 @@ | |||
#include "bdd.h" | |||
class_bdd::class_bdd(const wxString& path_in, wxGrid* gridptr) | |||
class_bdd::class_bdd(const wxString& path_in, wxGrid* grid) | |||
{ | |||
this->gridptr = gridptr; | |||
this->grid = grid; | |||
wxString path = path_in + slash + "cosmos.db"; | |||
if (!wxFileExists(path)) | |||
createEmpty(path); | |||
@@ -40,20 +40,15 @@ void class_bdd::importer(const wxString& filename) | |||
rc = 0; | |||
int size = 0; | |||
int progress = 0; //indicateurs de progression | |||
//char c; | |||
wxUniChar c; | |||
wxString fichier; | |||
bool inquote = false; //guillemets | |||
bool firstline = true; | |||
wxString item[23]; | |||
/*FILE * importfile = fopen(_C(filename), "r"); | |||
fseek(importfile, 0, SEEK_END); | |||
size = ftell(importfile); | |||
rewind(importfile);*/ | |||
wxFFile* importfile = new wxFFile(); | |||
importfile->Open(filename); | |||
importfile->ReadAll(&fichier); | |||
importfile->ReadAll(&fichier, wxConvAuto(wxFONTENCODING_SYSTEM)); | |||
size = fichier.length() + 1; | |||
sqlite3_exec(db, "SAVEPOINT before_import;", NULL, NULL, NULL); | |||
@@ -66,7 +61,6 @@ void class_bdd::importer(const wxString& filename) | |||
item[i]=""; | |||
do | |||
{ | |||
//c = fgetc(importfile); | |||
c = fichier[progress]; | |||
progress++; | |||
if (c == '"') | |||
@@ -81,10 +75,9 @@ void class_bdd::importer(const wxString& filename) | |||
item[22]=""; | |||
do | |||
{ | |||
//c = fgetc(importfile); | |||
c = fichier[progress]; | |||
progress++; | |||
if ((c != '\n') && (c != '\0')) //EOF->\0 | |||
if ((c != '\n') && (c != '\0')) | |||
item[22] << c; | |||
}while ((c != '\n') && (c != '\0')); //dernier item de la ligne, se finit si retour ou EOF | |||
@@ -131,7 +124,6 @@ void class_bdd::importer(const wxString& filename) | |||
break; | |||
}while (c != '\0'); | |||
//fclose(importfile); | |||
importfile->Close(); | |||
progress_dialog.Update(size); | |||
sqlite3_exec(db, "RELEASE before_import;", NULL, NULL, NULL); | |||
@@ -151,8 +143,8 @@ void class_bdd::updategrid() | |||
rc = 0; | |||
int nligne = 0; | |||
stmt = NULL; | |||
if (gridptr->GetNumberRows() != 0) | |||
gridptr->DeleteRows(0, gridptr->GetNumberRows()); //reset de la grille | |||
if (grid->GetNumberRows() != 0) | |||
grid->DeleteRows(0, grid->GetNumberRows()); //reset de la grille | |||
rc = sqlite3_prepare_v2(db, "SELECT * FROM Consult;", -1, &stmt, NULL); //import depuis Consult | |||
if (sqlite3_step(stmt) == SQLITE_DONE) //Si la bdd est vide | |||
{ | |||
@@ -164,28 +156,28 @@ void class_bdd::updategrid() | |||
sqlite3_reset(stmt); //retour à la première ligne, celle-ci étant lue juste avant pour vérifier la non vacuité | |||
while (sqlite3_step(stmt) == SQLITE_ROW) | |||
{ | |||
gridptr->AppendRows(); | |||
gridptr->SetCellValue(nligne, 4, _itoW(sqlite3_column_int(stmt, 1))); //n_dossier | |||
grid->AppendRows(); | |||
grid->SetCellValue(nligne, 4, _itoW(sqlite3_column_int(stmt, 1))); //n_dossier | |||
for (int i=2; i<10; i++) //nom, prénom, responsable, consultant, theme, etablissement, travail, date | |||
{ | |||
wxString orig = _W(sqlite3_column_text(stmt, i)); | |||
// corrections | |||
rc = sqlite3_prepare_v2(db, "SELECT dest FROM Correc WHERE orig=\"" + orig + "\";", -1, &stmt_correc, NULL); | |||
if (sqlite3_step(stmt_correc) == SQLITE_DONE) | |||
gridptr->SetCellValue(nligne, i+3, orig); | |||
grid->SetCellValue(nligne, i+3, orig); | |||
else | |||
{ | |||
gridptr->SetCellValue(nligne, i+3, _W(sqlite3_column_text(stmt_correc, 0))); | |||
//gridptr->SetCellBackgroundColour(nligne, i+3, *wxYELLOW); | |||
grid->SetCellValue(nligne, i+3, _W(sqlite3_column_text(stmt_correc, 0))); | |||
//grid->SetCellBackgroundColour(nligne, i+3, *wxYELLOW); | |||
} | |||
sqlite3_finalize(stmt_correc); | |||
} | |||
// autocorrection prenoms | |||
wxString prenom = gridptr->GetCellValue(nligne, 6); | |||
wxString prenom = grid->GetCellValue(nligne, 6); | |||
if (prenom.IsSameAs("xxx", false) || prenom.IsSameAs("xx", false) || prenom.IsSameAs("zzz", false) || prenom.IsSameAs("zz", false) || prenom.IsSameAs("yy", false) || prenom.IsSameAs("xy", false)) | |||
gridptr->SetCellValue(nligne, 6, ""); | |||
grid->SetCellValue(nligne, 6, ""); | |||
// autocorrection responsables | |||
wxString resp = gridptr->GetCellValue(nligne, 7); | |||
wxString resp = grid->GetCellValue(nligne, 7); | |||
resp.Replace("Mr. Le Pr. ", "", true); | |||
resp.Replace("Mme Le Dr. ", "", true); | |||
resp.Replace("Mme Le Pr. ", "", true); | |||
@@ -196,13 +188,13 @@ void class_bdd::updategrid() | |||
resp.Replace("Pr ", "", true); | |||
resp.Replace("Mme ", "", true); | |||
resp.Replace("Melle ", "", true); | |||
gridptr->SetCellValue(nligne, 7, resp); | |||
grid->SetCellValue(nligne, 7, resp); | |||
gridptr->SetCellValue(nligne, 13, _itoW(sqlite3_column_int(stmt, 0))); //id, caché | |||
grid->SetCellValue(nligne, 13, _itoW(sqlite3_column_int(stmt, 0))); //id, caché | |||
/*wxColour lightgreen(230, 255, 230); //TODO: gestion des couleurs dans la config ? | |||
if (sqlite3_column_int(stmt, 10)) | |||
for (int j=0; j<13; j++) | |||
gridptr->SetCellBackgroundColour(nligne, j, lightgreen); //coloration des publis prévues*/ | |||
grid->SetCellBackgroundColour(nligne, j, lightgreen); //coloration des publis prévues*/ | |||
nligne++; | |||
} | |||
sqlite3_finalize(stmt); | |||
@@ -211,19 +203,19 @@ void class_bdd::updategrid() | |||
sqlite3_prepare_v2(db, "SELECT * FROM Result;", -1, &stmt, NULL); //import depuis Result | |||
while (sqlite3_step(stmt) == SQLITE_ROW) | |||
{ | |||
gridptr->SetCellValue(nligne, 0, _itoW(sqlite3_column_int(stmt, 4))); //nb_results | |||
grid->SetCellValue(nligne, 0, _itoW(sqlite3_column_int(stmt, 4))); //nb_results | |||
for (int i=1; i<4; i++) | |||
gridptr->SetCellValue(nligne, i, _itoW(sqlite3_column_int(stmt, i))); //publi, publi_CHU, cs_associe | |||
grid->SetCellValue(nligne, i, _itoW(sqlite3_column_int(stmt, i))); //publi, publi_CHU, cs_associe | |||
if (sqlite3_column_int(stmt, 1)) | |||
for (int i=0; i<13; i++) | |||
gridptr->SetCellBackgroundColour(nligne, i, *wxGREEN); //coloration des consults trouvées | |||
grid->SetCellBackgroundColour(nligne, i, *wxGREEN); //coloration des consults trouvées | |||
nligne++; | |||
} | |||
sqlite3_finalize(stmt); | |||
gridptr->AutoSizeColumns(false); | |||
gridptr->AutoSizeRows(false); | |||
gridptr->HideCol(13); | |||
grid->AutoSizeColumns(false); | |||
grid->AutoSizeRows(false); | |||
grid->HideCol(13); | |||
wxEndBusyCursor(); | |||
} | |||
@@ -292,16 +284,16 @@ void class_bdd::modcorrection(const wxString& orig, const wxString& dest) | |||
sqlite3_exec(db, requete, NULL, NULL, NULL); | |||
// Mise à jour de la grille | |||
for (int i=0; i<gridptr->GetNumberRows(); i++) | |||
for (int i=0; i<grid->GetNumberRows(); i++) | |||
{ | |||
requete = "SELECT * FROM Consult WHERE id=" + gridptr->GetCellValue(i, 13) + ";"; | |||
requete = "SELECT * FROM Consult WHERE id=" + grid->GetCellValue(i, 13) + ";"; | |||
sqlite3_prepare_v2(db, requete, -1, &stmt, NULL); | |||
sqlite3_step(stmt); | |||
for (int j=5; j<11; j++) | |||
{ | |||
wxString table_orig = _W(sqlite3_column_text(stmt, j - 3)); | |||
if (table_orig == orig) | |||
gridptr->SetCellValue(i, j, dest); | |||
grid->SetCellValue(i, j, dest); | |||
} | |||
sqlite3_finalize(stmt); | |||
} | |||
@@ -2,7 +2,6 @@ | |||
#define __bdd__ | |||
#include <wx/filefn.h> | |||
//#include <cstdio> | |||
#include <wx/ffile.h> | |||
#include <wx/msgdlg.h> | |||
#include <wx/progdlg.h> | |||
@@ -21,23 +20,24 @@ | |||
#endif | |||
#define _itoW(integer) wxString::Format("%i",integer) // int -> wxString | |||
class class_bdd | |||
{ | |||
private: | |||
sqlite3* db; | |||
sqlite3_stmt* stmt, *stmt_correc; | |||
int rc; | |||
wxGrid* gridptr; | |||
wxGrid* grid; | |||
void createEmpty(const wxString& path); | |||
public: | |||
class_bdd(const wxString& path_in, wxGrid* gridptr); | |||
class_bdd(const wxString& path_in, wxGrid* grid); | |||
~class_bdd(); | |||
void importer(const wxString& filename); | |||
void exporter(const wxString& filename); | |||
void updategrid(); | |||
void modresultbool(const wxString& id, int col, const wxString& val); | |||
int nbcorrections(); | |||
wxString* getcorrecorig(); | |||
wxString* getcorrecdest(); | |||
@@ -46,9 +46,6 @@ class class_bdd | |||
void delcorrection(const wxString& orig); | |||
}; | |||
#endif //__bdd__ | |||
/* CSV BDD GRID | |||
id 0 0 13 | |||
n_dossier 1 1 4 | |||
@@ -69,3 +66,4 @@ publi_CHU 2 2 | |||
cs_associe 3 3 | |||
*/ | |||
#endif //__bdd__ |
@@ -15,11 +15,9 @@ void config::createDefault() | |||
proxyurl = "www-proxy.chu-nancy.fr"; | |||
proxyport = 8080; | |||
rule defaultrule = {"defaut", true, AND, AND, AND, delai, true, true, 5, 2, true, "Nancy", false, "", 20}; | |||
rule rule2 = {"regle 2", false, OR, NOTd, OR, dates, true, true, 20110223, 20120910, false, "", false, "", 30}; | |||
rule defaultrule = {"defaut", true, true, true, true, AND, AND, AND, delai, true, true, 5, 2, true, "Nancy", false, "", 20}; | |||
ruleset.push_back(defaultrule); | |||
ruleset.push_back(rule2); | |||
first_time = true; | |||
} | |||
@@ -43,7 +41,7 @@ void config::save() | |||
rootnode->AddChild(proxynode); | |||
wxXmlNode* rulesetnode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "ruleset"); // ruleset | |||
for (vector<rule>::iterator i = ruleset.begin(); i < ruleset.end(); i++) | |||
addsettoxml(rulesetnode, *i); | |||
addsettoxml(rulesetnode, *i); // rule(s) | |||
rootnode->AddChild(rulesetnode); | |||
fichier_config->SetRoot(rootnode); | |||
@@ -57,10 +55,15 @@ void config::addsettoxml(wxXmlNode* setlistnode, rule toadd) | |||
setnode->AddAttribute("name", toadd.name); // rule_name | |||
setnode->AddAttribute("inuse", bool2W(toadd.inuse)); // rule_inuse | |||
wxXmlNode* nomsnode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "noms"); // noms | |||
nomsnode->AddAttribute("demandeur", op2W(toadd.demandeur)); // noms_demandeur | |||
nomsnode->AddAttribute("both", op2W(toadd.both)); // noms_both | |||
nomsnode->AddAttribute("responsable", op2W(toadd.responsable)); // noms_responsable | |||
nomsnode->AddAttribute("demandeur", bool2W(toadd.usedemandeur)); // noms_demandeur | |||
nomsnode->AddAttribute("responsable", bool2W(toadd.useresponsable)); // noms_responsable | |||
nomsnode->AddAttribute("consultant", bool2W(toadd.useconsultant)); // noms_consultant | |||
setnode->AddChild(nomsnode); | |||
wxXmlNode* opsnode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "ops"); // ops | |||
opsnode->AddAttribute("demandeur", op2W(toadd.opdemandeur)); // ops_demandeur | |||
opsnode->AddAttribute("both", op2W(toadd.opboth)); // ops_both | |||
opsnode->AddAttribute("responsable", op2W(toadd.opresponsable)); // ops_responsable | |||
setnode->AddChild(opsnode); | |||
wxXmlNode* datesnode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "dates");// dates | |||
datesnode->AddAttribute("type", type2W(toadd.type_date)); // dates_type | |||
datesnode->AddAttribute("usedebut", bool2W(toadd.usedebut)); // dates_usedebut | |||
@@ -101,9 +104,13 @@ void config::load() | |||
currentrule.name = parcours->GetAttribute("name"); // rule_name | |||
currentrule.inuse = W2bool(parcours->GetAttribute("inuse")); // rule_inuse | |||
parcours = parcours->GetChildren(); // noms | |||
currentrule.demandeur = W2op(parcours->GetAttribute("demandeur")); // noms_demandeur | |||
currentrule.both = W2op(parcours->GetAttribute("both")); // noms_both | |||
currentrule.responsable = W2op(parcours->GetAttribute("responsable")); // noms_responsable | |||
currentrule.usedemandeur = W2bool(parcours->GetAttribute("demandeur")); // noms_demandeur | |||
currentrule.useresponsable = W2bool(parcours->GetAttribute("responsable"));// noms_responsable | |||
currentrule.useconsultant = W2bool(parcours->GetAttribute("consultant"));// noms_consultant | |||
parcours = parcours->GetNext(); // ops | |||
currentrule.opdemandeur = W2op(parcours->GetAttribute("demandeur")); // ops_demandeur | |||
currentrule.opboth = W2op(parcours->GetAttribute("both")); // ops_both | |||
currentrule.opresponsable = W2op(parcours->GetAttribute("responsable"));// ops_responsable | |||
parcours = parcours->GetNext(); // dates | |||
currentrule.type_date = W2type(parcours->GetAttribute("type")); // dates_type | |||
currentrule.usedebut = W2bool(parcours->GetAttribute("usedebut")); // dates_usedebut | |||
@@ -195,8 +202,6 @@ wxString config::op2W(int in) | |||
{ | |||
case AND: return "AND"; break; | |||
case OR: return "OR"; break; | |||
case NOTd: return "NOTd"; break; | |||
case NOTr: return "NOTr"; break; | |||
default: return "AND";break; | |||
}; | |||
} | |||
@@ -207,10 +212,6 @@ int config::W2op(wxString in) | |||
return AND; | |||
else if (in == "OR") | |||
return OR; | |||
else if (in == "NOTd") | |||
return NOTd; | |||
else if (in == "NOTr") | |||
return NOTr; | |||
return AND; | |||
} | |||
@@ -3,10 +3,11 @@ | |||
#include <wx/xml/xml.h> | |||
#include <wx/window.h> | |||
#include <wx/msgdlg.h> | |||
#include <wx/filefn.h> | |||
#include <vector> | |||
using namespace std; | |||
#ifdef __WXGTK__ | |||
#define slash "/" | |||
#define _C(string) string.fn_str() // wxString -> char* | |||
@@ -18,13 +19,12 @@ | |||
#endif | |||
#define _itoW(integer) wxString::Format("%i",integer) // int -> wxString | |||
using namespace std; | |||
typedef struct trule | |||
{ | |||
wxString name; | |||
bool inuse; | |||
int demandeur, both, responsable; | |||
bool usedemandeur, useresponsable, useconsultant; | |||
int opdemandeur, opboth, opresponsable; | |||
int type_date; | |||
bool usedebut, usefin; | |||
int debut, fin; | |||
@@ -39,8 +39,6 @@ enum | |||
{ | |||
AND=0, | |||
OR=1, | |||
NOTd=2, | |||
NOTr=3 | |||
}; | |||
enum | |||
@@ -63,12 +61,6 @@ protected: | |||
void createDefault(); | |||
void load(); | |||
void addsettoxml(wxXmlNode* xmldoc, rule toadd); | |||
wxString bool2W(bool in); | |||
bool W2bool(wxString in); | |||
wxString op2W(int in); | |||
int W2op(wxString in); | |||
wxString type2W(int in); | |||
int W2type(wxString in); | |||
public: | |||
config(); | |||
@@ -82,6 +74,12 @@ public: | |||
void modrule(int index, rule temp); | |||
void uprule(int index); | |||
void downrule(int index); | |||
wxString bool2W(bool in); | |||
bool W2bool(wxString in); | |||
wxString op2W(int in); | |||
int W2op(wxString in); | |||
wxString type2W(int in); | |||
int W2type(wxString in); | |||
// GETters et SETters | |||
void SetDbpath(const wxString& dbpath) {this->dbpath = dbpath;} | |||
@@ -95,4 +93,5 @@ public: | |||
bool IsFirstTime() const {return first_time;} | |||
}; | |||
#endif // __config__ |
@@ -78,7 +78,7 @@ cosmosGUI::cosmosGUI( wxWindow* parent, wxWindowID id, const wxString& title, co | |||
grid_Consults = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); | |||
// Grid | |||
grid_Consults->CreateGrid( 0, 14); | |||
grid_Consults->CreateGrid( 0, 14, wxGrid::wxGridSelectRowsOrColumns); | |||
grid_Consults->EnableEditing( true ); | |||
grid_Consults->EnableGridLines( true ); | |||
grid_Consults->EnableDragGridSize( true ); | |||
@@ -20,9 +20,13 @@ void optionsRche::OnChecklistSelect( wxCommandEvent& event ) | |||
textctrl_nomset->SetValue(currentrule.name); | |||
radio_demandeur->SetSelection(currentrule.demandeur); | |||
radio_both->SetSelection(currentrule.both); | |||
radio_responsable->SetSelection(currentrule.responsable); | |||
checkbox_demandeur->SetValue(currentrule.usedemandeur); | |||
checkbox_responsable->SetValue(currentrule.useresponsable); | |||
checkbox_consultant->SetValue(currentrule.useconsultant); | |||
radio_demandeur->SetSelection(currentrule.opdemandeur); | |||
radio_both->SetSelection(currentrule.opboth); | |||
radio_responsable->SetSelection(currentrule.opresponsable); | |||
radio_delai->SetValue(!currentrule.type_date); | |||
radio_dates->SetValue(currentrule.type_date); | |||
@@ -57,9 +61,12 @@ void optionsRche::OnAdd( wxCommandEvent& event ) | |||
{ | |||
rule toadd; | |||
toadd.name = textctrl_nomset->GetValue(); | |||
toadd.demandeur = radio_demandeur->GetSelection(); | |||
toadd.both = radio_both->GetSelection(); | |||
toadd.responsable = radio_responsable->GetSelection(); | |||
toadd.usedemandeur = checkbox_demandeur->GetValue(); | |||
toadd.useresponsable = checkbox_responsable->GetValue(); | |||
toadd.useconsultant = checkbox_consultant->GetValue(); | |||
toadd.opdemandeur = radio_demandeur->GetSelection(); | |||
toadd.opboth = radio_both->GetSelection(); | |||
toadd.opresponsable = radio_responsable->GetSelection(); | |||
toadd.type_date = radio_dates->GetValue(); | |||
toadd.usedebut = checkbox_debut->GetValue(); | |||
toadd.usefin = checkbox_fin->GetValue(); | |||
@@ -119,9 +126,12 @@ void optionsRche::OnUpdate( wxCommandEvent& event ) | |||
{ | |||
rule tomod; | |||
tomod.name = textctrl_nomset->GetValue(); | |||
tomod.demandeur = radio_demandeur->GetSelection(); | |||
tomod.both = radio_both->GetSelection(); | |||
tomod.responsable = radio_responsable->GetSelection(); | |||
tomod.usedemandeur = checkbox_demandeur->GetValue(); | |||
tomod.useresponsable = checkbox_responsable->GetValue(); | |||
tomod.useconsultant = checkbox_consultant->GetValue(); | |||
tomod.opdemandeur = radio_demandeur->GetSelection(); | |||
tomod.opboth = radio_both->GetSelection(); | |||
tomod.opresponsable = radio_responsable->GetSelection(); | |||
tomod.type_date = radio_dates->GetValue(); | |||
tomod.usedebut = checkbox_debut->GetValue(); | |||
tomod.usefin = checkbox_fin->GetValue(); | |||
@@ -163,15 +173,20 @@ void optionsRche::OnOk( wxCommandEvent& event ) | |||
void optionsRche::updateGUI( wxCommandEvent& event ) | |||
{ | |||
if (checkbox_suppl->IsChecked()) | |||
textctrl_suppl->Enable(); | |||
if (checkbox_demandeur->IsChecked()) | |||
radio_demandeur->Enable(); | |||
else | |||
textctrl_suppl->Disable(); | |||
if (checkbox_ville->IsChecked()) | |||
textctrl_ville->Enable(); | |||
radio_demandeur->Disable(); | |||
if (checkbox_responsable->IsChecked()) | |||
radio_responsable->Enable(); | |||
else | |||
textctrl_ville->Disable(); | |||
radio_responsable->Disable(); | |||
if (checkbox_demandeur->IsChecked() && checkbox_responsable->IsChecked()) | |||
radio_both->Enable(); | |||
else | |||
radio_both->Disable(); | |||
if (radio_delai->GetValue()) | |||
{ | |||
@@ -199,6 +214,16 @@ void optionsRche::updateGUI( wxCommandEvent& event ) | |||
else | |||
datepicker_fin->Disable(); | |||
} | |||
if (checkbox_suppl->IsChecked()) | |||
textctrl_suppl->Enable(); | |||
else | |||
textctrl_suppl->Disable(); | |||
if (checkbox_ville->IsChecked()) | |||
textctrl_ville->Enable(); | |||
else | |||
textctrl_ville->Disable(); | |||
} | |||
wxDateTime optionsRche::int2date(int in) | |||
@@ -34,7 +34,7 @@ | |||
<property name="hidden">0</property> | |||
<property name="id">wxID_ANY</property> | |||
<property name="maximum_size"></property> | |||
<property name="minimum_size">650,500</property> | |||
<property name="minimum_size">665,500</property> | |||
<property name="name">dialog_optionsRche</property> | |||
<property name="pos"></property> | |||
<property name="size">-1,-1</property> | |||
@@ -406,7 +406,7 @@ | |||
<property name="border">5</property> | |||
<property name="flag">wxEXPAND|wxALIGN_CENTER_HORIZONTAL</property> | |||
<property name="proportion">0</property> | |||
<object class="wxBoxSizer" expanded="1"> | |||
<object class="wxBoxSizer" expanded="0"> | |||
<property name="minimum_size"></property> | |||
<property name="name">sizer_nomset</property> | |||
<property name="orient">wxHORIZONTAL</property> | |||
@@ -583,6 +583,131 @@ | |||
<event name="OnUpdateUI"></event> | |||
</object> | |||
</object> | |||
<object class="sizeritem" expanded="1"> | |||
<property name="border">5</property> | |||
<property name="flag">wxEXPAND</property> | |||
<property name="proportion">1</property> | |||
<object class="wxBoxSizer" expanded="1"> | |||
<property name="minimum_size"></property> | |||
<property name="name">sizer_checknoms</property> | |||
<property name="orient">wxHORIZONTAL</property> | |||
<property name="permission">none</property> | |||
<object class="sizeritem" expanded="1"> | |||
<property name="border">5</property> | |||
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property> | |||
<property name="proportion">1</property> | |||
<object class="wxCheckBox" expanded="1"> | |||
<property name="bg"></property> | |||
<property name="checked">1</property> | |||
<property name="context_help"></property> | |||
<property name="context_menu">1</property> | |||
<property name="enabled">1</property> | |||
<property name="fg"></property> | |||
<property name="font"></property> | |||
<property name="hidden">0</property> | |||
<property name="id">wxID_ANY</property> | |||
<property name="label">Demandeur</property> | |||
<property name="maximum_size"></property> | |||
<property name="minimum_size"></property> | |||
<property name="name">checkbox_demandeur</property> | |||
<property name="permission">protected</property> | |||
<property name="pos"></property> | |||
<property name="size"></property> | |||
<property name="style"></property> | |||
<property name="subclass"></property> | |||
<property name="tooltip"></property> | |||
<property name="validator_data_type"></property> | |||
<property name="validator_style">wxFILTER_NONE</property> | |||
<property name="validator_type">wxDefaultValidator</property> | |||
<property name="validator_variable"></property> | |||
<property name="window_extra_style"></property> | |||
<property name="window_name"></property> | |||
<property name="window_style"></property> | |||
<event name="OnChar"></event> | |||
<event name="OnCheckBox">updateGUI</event> | |||
<event name="OnEnterWindow"></event> | |||
<event name="OnEraseBackground"></event> | |||
<event name="OnKeyDown"></event> | |||
<event name="OnKeyUp"></event> | |||
<event name="OnKillFocus"></event> | |||
<event name="OnLeaveWindow"></event> | |||
<event name="OnLeftDClick"></event> | |||
<event name="OnLeftDown"></event> | |||
<event name="OnLeftUp"></event> | |||
<event name="OnMiddleDClick"></event> | |||
<event name="OnMiddleDown"></event> | |||
<event name="OnMiddleUp"></event> | |||
<event name="OnMotion"></event> | |||
<event name="OnMouseEvents"></event> | |||
<event name="OnMouseWheel"></event> | |||
<event name="OnPaint"></event> | |||
<event name="OnRightDClick"></event> | |||
<event name="OnRightDown"></event> | |||
<event name="OnRightUp"></event> | |||
<event name="OnSetFocus"></event> | |||
<event name="OnSize"></event> | |||
<event name="OnUpdateUI"></event> | |||
</object> | |||
</object> | |||
<object class="sizeritem" expanded="1"> | |||
<property name="border">5</property> | |||
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property> | |||
<property name="proportion">1</property> | |||
<object class="wxCheckBox" expanded="1"> | |||
<property name="bg"></property> | |||
<property name="checked">1</property> | |||
<property name="context_help"></property> | |||
<property name="context_menu">1</property> | |||
<property name="enabled">1</property> | |||
<property name="fg"></property> | |||
<property name="font"></property> | |||
<property name="hidden">0</property> | |||
<property name="id">wxID_ANY</property> | |||
<property name="label">Responsable</property> | |||
<property name="maximum_size"></property> | |||
<property name="minimum_size"></property> | |||
<property name="name">checkbox_responsable</property> | |||
<property name="permission">protected</property> | |||
<property name="pos"></property> | |||
<property name="size"></property> | |||
<property name="style">wxALIGN_RIGHT</property> | |||
<property name="subclass"></property> | |||
<property name="tooltip"></property> | |||
<property name="validator_data_type"></property> | |||
<property name="validator_style">wxFILTER_NONE</property> | |||
<property name="validator_type">wxDefaultValidator</property> | |||
<property name="validator_variable"></property> | |||
<property name="window_extra_style"></property> | |||
<property name="window_name"></property> | |||
<property name="window_style"></property> | |||
<event name="OnChar"></event> | |||
<event name="OnCheckBox">updateGUI</event> | |||
<event name="OnEnterWindow"></event> | |||
<event name="OnEraseBackground"></event> | |||
<event name="OnKeyDown"></event> | |||
<event name="OnKeyUp"></event> | |||
<event name="OnKillFocus"></event> | |||
<event name="OnLeaveWindow"></event> | |||
<event name="OnLeftDClick"></event> | |||
<event name="OnLeftDown"></event> | |||
<event name="OnLeftUp"></event> | |||
<event name="OnMiddleDClick"></event> | |||
<event name="OnMiddleDown"></event> | |||
<event name="OnMiddleUp"></event> | |||
<event name="OnMotion"></event> | |||
<event name="OnMouseEvents"></event> | |||
<event name="OnMouseWheel"></event> | |||
<event name="OnPaint"></event> | |||
<event name="OnRightDClick"></event> | |||
<event name="OnRightDown"></event> | |||
<event name="OnRightUp"></event> | |||
<event name="OnSetFocus"></event> | |||
<event name="OnSize"></event> | |||
<event name="OnUpdateUI"></event> | |||
</object> | |||
</object> | |||
</object> | |||
</object> | |||
<object class="sizeritem" expanded="1"> | |||
<property name="border">5</property> | |||
<property name="flag">wxEXPAND|wxALIGN_CENTER_HORIZONTAL</property> | |||
@@ -613,7 +738,7 @@ | |||
<property name="name">radio_demandeur</property> | |||
<property name="permission">protected</property> | |||
<property name="pos"></property> | |||
<property name="selection">0</property> | |||
<property name="selection">1</property> | |||
<property name="size"></property> | |||
<property name="style">wxRA_SPECIFY_COLS</property> | |||
<property name="subclass"></property> | |||
@@ -657,7 +782,7 @@ | |||
<property name="proportion">0</property> | |||
<object class="wxRadioBox" expanded="0"> | |||
<property name="bg"></property> | |||
<property name="choices">"AND" "OR" "NOT demandeur" "NOT responsable"</property> | |||
<property name="choices">"AND" "OR"</property> | |||
<property name="context_help"></property> | |||
<property name="context_menu">1</property> | |||
<property name="enabled">1</property> | |||
@@ -771,6 +896,63 @@ | |||
</object> | |||
</object> | |||
</object> | |||
<object class="sizeritem" expanded="1"> | |||
<property name="border">5</property> | |||
<property name="flag">wxALL</property> | |||
<property name="proportion">0</property> | |||
<object class="wxCheckBox" expanded="1"> | |||
<property name="bg"></property> | |||
<property name="checked">1</property> | |||
<property name="context_help"></property> | |||
<property name="context_menu">1</property> | |||
<property name="enabled">1</property> | |||
<property name="fg"></property> | |||
<property name="font"></property> | |||
<property name="hidden">0</property> | |||
<property name="id">wxID_ANY</property> | |||
<property name="label">Consultant</property> | |||
<property name="maximum_size"></property> | |||
<property name="minimum_size"></property> | |||
<property name="name">checkbox_consultant</property> | |||
<property name="permission">protected</property> | |||
<property name="pos"></property> | |||
<property name="size"></property> | |||
<property name="style"></property> | |||
<property name="subclass"></property> | |||
<property name="tooltip"></property> | |||
<property name="validator_data_type"></property> | |||
<property name="validator_style">wxFILTER_NONE</property> | |||
<property name="validator_type">wxDefaultValidator</property> | |||
<property name="validator_variable"></property> | |||
<property name="window_extra_style"></property> | |||
<property name="window_name"></property> | |||
<property name="window_style"></property> | |||
<event name="OnChar"></event> | |||
<event name="OnCheckBox"></event> | |||
<event name="OnEnterWindow"></event> | |||
<event name="OnEraseBackground"></event> | |||
<event name="OnKeyDown"></event> | |||
<event name="OnKeyUp"></event> | |||
<event name="OnKillFocus"></event> | |||
<event name="OnLeaveWindow"></event> | |||
<event name="OnLeftDClick"></event> | |||
<event name="OnLeftDown"></event> | |||
<event name="OnLeftUp"></event> | |||
<event name="OnMiddleDClick"></event> | |||
<event name="OnMiddleDown"></event> | |||
<event name="OnMiddleUp"></event> | |||
<event name="OnMotion"></event> | |||
<event name="OnMouseEvents"></event> | |||
<event name="OnMouseWheel"></event> | |||
<event name="OnPaint"></event> | |||
<event name="OnRightDClick"></event> | |||
<event name="OnRightDown"></event> | |||
<event name="OnRightUp"></event> | |||
<event name="OnSetFocus"></event> | |||
<event name="OnSize"></event> | |||
<event name="OnUpdateUI"></event> | |||
</object> | |||
</object> | |||
<object class="sizeritem" expanded="0"> | |||
<property name="border">5</property> | |||
<property name="flag">wxEXPAND|wxTOP|wxBOTTOM</property> | |||
@@ -1,5 +1,5 @@ | |||
/////////////////////////////////////////////////////////////////////////// | |||
// C++ code generated with wxFormBuilder (version Sep 15 2010) | |||
// C++ code generated with wxFormBuilder (version Sep 8 2010) | |||
// http://www.wxformbuilder.org/ | |||
// | |||
// PLEASE DO "NOT" EDIT THIS FILE! | |||
@@ -11,7 +11,7 @@ | |||
dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) | |||
{ | |||
this->SetSizeHints( wxSize( 650,500 ), wxDefaultSize ); | |||
this->SetSizeHints( wxSize( 665,500 ), wxDefaultSize ); | |||
wxBoxSizer* verticalsizer; | |||
verticalsizer = new wxBoxSizer( wxVERTICAL ); | |||
@@ -58,6 +58,19 @@ dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const w | |||
staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); | |||
sizer_set->Add( staticline1, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); | |||
wxBoxSizer* sizer_checknoms; | |||
sizer_checknoms = new wxBoxSizer( wxHORIZONTAL ); | |||
checkbox_demandeur = new wxCheckBox( this, wxID_ANY, wxT("Demandeur"), wxDefaultPosition, wxDefaultSize, 0 ); | |||
checkbox_demandeur->SetValue(true); | |||
sizer_checknoms->Add( checkbox_demandeur, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); | |||
checkbox_responsable = new wxCheckBox( this, wxID_ANY, wxT("Responsable"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); | |||
checkbox_responsable->SetValue(true); | |||
sizer_checknoms->Add( checkbox_responsable, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); | |||
sizer_set->Add( sizer_checknoms, 1, wxEXPAND, 5 ); | |||
wxBoxSizer* sizer_noms; | |||
sizer_noms = new wxBoxSizer( wxHORIZONTAL ); | |||
@@ -67,7 +80,7 @@ dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const w | |||
radio_demandeur->SetSelection( 0 ); | |||
sizer_noms->Add( radio_demandeur, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); | |||
wxString radio_bothChoices[] = { wxT("AND"), wxT("OR"), wxT("NOT demandeur"), wxT("NOT responsable") }; | |||
wxString radio_bothChoices[] = { wxT("AND"), wxT("OR") }; | |||
int radio_bothNChoices = sizeof( radio_bothChoices ) / sizeof( wxString ); | |||
radio_both = new wxRadioBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, radio_bothNChoices, radio_bothChoices, 1, wxRA_SPECIFY_COLS ); | |||
radio_both->SetSelection( 0 ); | |||
@@ -81,6 +94,10 @@ dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const w | |||
sizer_set->Add( sizer_noms, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 ); | |||
checkbox_consultant = new wxCheckBox( this, wxID_ANY, wxT("Consultant"), wxDefaultPosition, wxDefaultSize, 0 ); | |||
checkbox_consultant->SetValue(true); | |||
sizer_set->Add( checkbox_consultant, 0, wxALL, 5 ); | |||
staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); | |||
sizer_set->Add( staticline2, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); | |||
@@ -198,6 +215,8 @@ dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const w | |||
bouton_up->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnUp ), NULL, this ); | |||
bouton_down->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnDown ), NULL, this ); | |||
bouton_del->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnDel ), NULL, this ); | |||
checkbox_demandeur->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
checkbox_responsable->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
radio_delai->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
radio_dates->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
checkbox_debut->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
@@ -216,6 +235,8 @@ dialog_optionsRche::~dialog_optionsRche() | |||
bouton_up->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnUp ), NULL, this ); | |||
bouton_down->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnDown ), NULL, this ); | |||
bouton_del->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnDel ), NULL, this ); | |||
checkbox_demandeur->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
checkbox_responsable->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
radio_delai->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
radio_dates->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
checkbox_debut->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this ); | |||
@@ -1,5 +1,5 @@ | |||
/////////////////////////////////////////////////////////////////////////// | |||
// C++ code generated with wxFormBuilder (version Sep 15 2010) | |||
// C++ code generated with wxFormBuilder (version Sep 8 2010) | |||
// http://www.wxformbuilder.org/ | |||
// | |||
// PLEASE DO "NOT" EDIT THIS FILE! | |||
@@ -19,9 +19,9 @@ | |||
#include <wx/stattext.h> | |||
#include <wx/textctrl.h> | |||
#include <wx/statline.h> | |||
#include <wx/checkbox.h> | |||
#include <wx/radiobox.h> | |||
#include <wx/radiobut.h> | |||
#include <wx/checkbox.h> | |||
#include <wx/spinctrl.h> | |||
#include <wx/datectrl.h> | |||
#include <wx/dateevt.h> | |||
@@ -47,9 +47,12 @@ class dialog_optionsRche : public wxDialog | |||
wxStaticText* statictext_nomset; | |||
wxTextCtrl* textctrl_nomset; | |||
wxStaticLine* staticline1; | |||
wxCheckBox* checkbox_demandeur; | |||
wxCheckBox* checkbox_responsable; | |||
wxRadioBox* radio_demandeur; | |||
wxRadioBox* radio_both; | |||
wxRadioBox* radio_responsable; | |||
wxCheckBox* checkbox_consultant; | |||
wxStaticLine* staticline2; | |||
wxRadioButton* radio_delai; | |||
@@ -0,0 +1,64 @@ | |||
#include "recherche.h" | |||
class_recherche::class_recherche(config* configuration, class_bdd* bdd, wxGrid* grid) | |||
{ | |||
this->configuration = configuration; | |||
this->bdd = bdd; | |||
this->grid = grid; | |||
} | |||
class_recherche::~class_recherche() | |||
{ | |||
} | |||
void class_recherche::recherche(int row, rule regle) | |||
{ | |||
} | |||
wxString class_recherche::parsedemandeur(wxString nom, wxString prenom, int op) | |||
{ | |||
wxString out, nom1, nom2, prenom1, prenom2; | |||
bool mult = false; | |||
if (nom.Find('/') != wxNOT_FOUND) | |||
{ | |||
mult = true; | |||
nom1 = nom.BeforeFirst('/'); | |||
nom2 = nom.AfterFirst('/'); | |||
} | |||
if (prenom.Find('/') == wxNOT_FOUND) | |||
prenom1 = prenom; | |||
else | |||
{ | |||
prenom1 = prenom.BeforeFirst('/'); | |||
prenom2 = prenom.AfterFirst('/'); | |||
} | |||
if (prenom1.Find('-') != wxNOT_FOUND) | |||
prenom1 = prenom1.BeforeFirst('-').Left(1) + prenom1.AfterFirst('-').Left(1); | |||
if (prenom2.Find('-') != wxNOT_FOUND) | |||
prenom2 = prenom2.BeforeFirst('-').Left(1) + prenom2.AfterFirst('-').Left(1); | |||
if (mult) | |||
{ | |||
out << "(" << nom1 << " " << prenom1 << "[Author]"; | |||
//out << " " << op2W(op) << " "; | |||
out << nom2 << " " << prenom2 << "[Author])"; | |||
} | |||
else | |||
out << nom << " " << prenom1 << "[Author]"; | |||
return out; | |||
} | |||
wxString class_recherche::parseresponsable(wxString responsable, int op) | |||
{ | |||
} | |||
wxString class_recherche::parseconsultant(wxString consultant) | |||
{ | |||
} | |||
@@ -0,0 +1,28 @@ | |||
#ifndef __recherche__ | |||
#define __recherche__ | |||
#include <wx/grid.h> | |||
#include <curl/curl.h> | |||
#include "config.h" | |||
#include "bdd.h" | |||
//#include "tinyxml2.h" | |||
class class_recherche | |||
{ | |||
private: | |||
config* configuration; | |||
class_bdd* bdd; | |||
wxGrid* grid; | |||
void recherche(int row, rule regle); | |||
wxString parsedemandeur(wxString nom, wxString prenom, int op); | |||
wxString parseresponsable(wxString responsable, int op); | |||
wxString parseconsultant(wxString consultant); | |||
public: | |||
class_recherche(config* configuration, class_bdd* bdd, wxGrid* grid); | |||
~class_recherche(); | |||
}; | |||
#endif //__recherche__ |
@@ -1,42 +1,36 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Session Name="/home/satamaxx/Programmes/Sante_Pub/Sante_Pub.workspace"> | |||
<int Value="3" Name="m_selectedTab"/> | |||
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/Sante_Pub.workspace" Name="m_workspaceName"/> | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<Session Name="G:\Commun\Etudiants\Maxime W\Projets\Sante_Pub.workspace"> | |||
<int Value="4" Name="m_selectedTab"/> | |||
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\Sante_Pub.workspace" Name="m_workspaceName"/> | |||
<TabInfoArray Name="TabInfoArray"> | |||
<TabInfo> | |||
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/bdd.h" Name="FileName"/> | |||
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\cosmos.h" Name="FileName"/> | |||
<int Value="0" Name="FirstVisibleLine"/> | |||
<int Value="19" Name="CurrentLine"/> | |||
<int Value="0" Name="CurrentLine"/> | |||
<wxArrayString Name="Bookmarks"/> | |||
</TabInfo> | |||
<TabInfo> | |||
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/bdd.cpp" Name="FileName"/> | |||
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\cosmos.cpp" Name="FileName"/> | |||
<int Value="0" Name="FirstVisibleLine"/> | |||
<int Value="133" Name="CurrentLine"/> | |||
<int Value="0" Name="CurrentLine"/> | |||
<wxArrayString Name="Bookmarks"/> | |||
</TabInfo> | |||
<TabInfo> | |||
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/cosmosGUI.h" Name="FileName"/> | |||
<int Value="29" Name="FirstVisibleLine"/> | |||
<int Value="42" Name="CurrentLine"/> | |||
<wxArrayString Name="Bookmarks"/> | |||
</TabInfo> | |||
<TabInfo> | |||
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/cosmosGUI.cpp" Name="FileName"/> | |||
<int Value="150" Name="FirstVisibleLine"/> | |||
<int Value="155" Name="CurrentLine"/> | |||
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\config.cpp" Name="FileName"/> | |||
<int Value="0" Name="FirstVisibleLine"/> | |||
<int Value="14" Name="CurrentLine"/> | |||
<wxArrayString Name="Bookmarks"/> | |||
</TabInfo> | |||
<TabInfo> | |||
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/cosmos.cpp" Name="FileName"/> | |||
<int Value="4" Name="FirstVisibleLine"/> | |||
<int Value="4" Name="CurrentLine"/> | |||
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\config.h" Name="FileName"/> | |||
<int Value="0" Name="FirstVisibleLine"/> | |||
<int Value="0" Name="CurrentLine"/> | |||
<wxArrayString Name="Bookmarks"/> | |||
</TabInfo> | |||
<TabInfo> | |||
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/cosmos.h" Name="FileName"/> | |||
<int Value="0" Name="FirstVisibleLine"/> | |||
<int Value="14" Name="CurrentLine"/> | |||
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\cosmosGUI.cpp" Name="FileName"/> | |||
<int Value="150" Name="FirstVisibleLine"/> | |||
<int Value="7" Name="CurrentLine"/> | |||
<wxArrayString Name="Bookmarks"/> | |||
</TabInfo> | |||
</TabInfoArray> | |||