Files
GDevelop/IDE/ChoixTemplateEvent.cpp
T
Florian cee23154c8 Adapted to changes in GDCore.
git-svn-id: svn://localhost@710 8062f311-0dae-4547-b526-b8ab9ac864a5
2012-05-14 11:34:09 +00:00

390 lines
19 KiB
C++

#include "ChoixTemplateEvent.h"
//(*InternalHeaders(ChoixTemplateEvent)
#include <wx/bitmap.h>
#include <wx/font.h>
#include <wx/intl.h>
#include <wx/image.h>
#include <wx/string.h>
//*)
#include <wx/log.h>
#include <wx/help.h>
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include "GDL/tinyxml/tinyxml.h"
#include "GDL/CommonTools.h"
#include "GDL/OpenSaveGame.h"
#include "TemplateEvents.h"
#include "GDCore/Tools/HelpFileAccess.h"
#define MSG(x) wxLogWarning(_(x));
//(*IdInit(ChoixTemplateEvent)
const long ChoixTemplateEvent::ID_TREECTRL1 = wxNewId();
const long ChoixTemplateEvent::ID_STATICBITMAP1 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT1 = wxNewId();
const long ChoixTemplateEvent::ID_PANEL1 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT2 = wxNewId();
const long ChoixTemplateEvent::ID_STATICLINE1 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT3 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT4 = wxNewId();
const long ChoixTemplateEvent::ID_TEXTCTRL1 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT5 = wxNewId();
const long ChoixTemplateEvent::ID_TEXTCTRL2 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT6 = wxNewId();
const long ChoixTemplateEvent::ID_TEXTCTRL3 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT8 = wxNewId();
const long ChoixTemplateEvent::ID_TEXTCTRL4 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT7 = wxNewId();
const long ChoixTemplateEvent::ID_TEXTCTRL5 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT9 = wxNewId();
const long ChoixTemplateEvent::ID_TEXTCTRL6 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT10 = wxNewId();
const long ChoixTemplateEvent::ID_TEXTCTRL7 = wxNewId();
const long ChoixTemplateEvent::ID_STATICTEXT11 = wxNewId();
const long ChoixTemplateEvent::ID_TEXTCTRL8 = wxNewId();
const long ChoixTemplateEvent::ID_STATICLINE2 = wxNewId();
const long ChoixTemplateEvent::ID_BUTTON2 = wxNewId();
const long ChoixTemplateEvent::ID_BUTTON1 = wxNewId();
const long ChoixTemplateEvent::ID_BUTTON3 = wxNewId();
//*)
BEGIN_EVENT_TABLE( ChoixTemplateEvent, wxDialog )
//(*EventTable(ChoixTemplateEvent)
//*)
END_EVENT_TABLE()
ChoixTemplateEvent::ChoixTemplateEvent( wxWindow* parent )
{
//(*Initialize(ChoixTemplateEvent)
wxFlexGridSizer* FlexGridSizer4;
wxFlexGridSizer* FlexGridSizer3;
wxFlexGridSizer* FlexGridSizer5;
wxFlexGridSizer* FlexGridSizer2;
wxFlexGridSizer* FlexGridSizer1;
Create(parent, wxID_ANY, _("Choisir un modèle d\'évènement"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER, _T("wxID_ANY"));
FlexGridSizer1 = new wxFlexGridSizer(0, 1, 0, 0);
FlexGridSizer1->AddGrowableCol(0);
FlexGridSizer1->AddGrowableRow(0);
FlexGridSizer4 = new wxFlexGridSizer(0, 3, 0, 0);
FlexGridSizer4->AddGrowableCol(1);
FlexGridSizer4->AddGrowableRow(0);
TemplateTree = new wxTreeCtrl(this, ID_TREECTRL1, wxDefaultPosition, wxSize(220,230), wxTR_DEFAULT_STYLE, wxDefaultValidator, _T("ID_TREECTRL1"));
FlexGridSizer4->Add(TemplateTree, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
FlexGridSizer2 = new wxFlexGridSizer(0, 1, 0, 0);
FlexGridSizer2->AddGrowableCol(0);
Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));
FlexGridSizer3 = new wxFlexGridSizer(0, 3, 0, 0);
StaticBitmap1 = new wxStaticBitmap(Panel1, ID_STATICBITMAP1, wxBitmap(wxImage(_T("res/template.png"))), wxDefaultPosition, wxDefaultSize, wxNO_BORDER, _T("ID_STATICBITMAP1"));
FlexGridSizer3->Add(StaticBitmap1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _("Modèles d\'évènements"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
wxFont StaticText1Font(16,wxSWISS,wxFONTSTYLE_NORMAL,wxBOLD,false,wxEmptyString,wxFONTENCODING_DEFAULT);
StaticText1->SetFont(StaticText1Font);
FlexGridSizer3->Add(StaticText1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Panel1->SetSizer(FlexGridSizer3);
FlexGridSizer3->Fit(Panel1);
FlexGridSizer3->SetSizeHints(Panel1);
FlexGridSizer2->Add(Panel1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("Les modèles d\'évènements permettent d\'ajouter rapidement un \nou plusieurs évènements, et de les adapter à votre scène."), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
FlexGridSizer2->Add(StaticText2, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
StaticLine1 = new wxStaticLine(this, ID_STATICLINE1, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE1"));
FlexGridSizer2->Add(StaticLine1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
DesTxt = new wxStaticText(this, ID_STATICTEXT3, _("Selectionnez un modèle dans la liste"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3"));
FlexGridSizer2->Add(DesTxt, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
controlsSizer = new wxFlexGridSizer(0, 1, 0, 0);
controlsSizer->AddGrowableCol(0);
Txt1 = new wxStaticText(this, ID_STATICTEXT4, _("Description paramètre 1"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT4"));
Txt1->Hide();
controlsSizer->Add(Txt1, 1, wxTOP|wxLEFT|wxRIGHT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
Param1Edit = new wxTextCtrl(this, ID_TEXTCTRL1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL1"));
Param1Edit->Hide();
controlsSizer->Add(Param1Edit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Txt2 = new wxStaticText(this, ID_STATICTEXT5, _("Description paramètre 2"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5"));
Txt2->Hide();
controlsSizer->Add(Txt2, 1, wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Param2Edit = new wxTextCtrl(this, ID_TEXTCTRL2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL2"));
Param2Edit->Hide();
controlsSizer->Add(Param2Edit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Txt3 = new wxStaticText(this, ID_STATICTEXT6, _("Description paramètre 3"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT6"));
Txt3->Hide();
controlsSizer->Add(Txt3, 1, wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Param3Edit = new wxTextCtrl(this, ID_TEXTCTRL3, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL3"));
Param3Edit->Hide();
controlsSizer->Add(Param3Edit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Txt4 = new wxStaticText(this, ID_STATICTEXT8, _("Description paramètre 4"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT8"));
Txt4->Hide();
controlsSizer->Add(Txt4, 1, wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Param4Edit = new wxTextCtrl(this, ID_TEXTCTRL4, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL4"));
Param4Edit->Hide();
controlsSizer->Add(Param4Edit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Txt5 = new wxStaticText(this, ID_STATICTEXT7, _("Description paramètre 5"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT7"));
Txt5->Hide();
controlsSizer->Add(Txt5, 1, wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Param5Edit = new wxTextCtrl(this, ID_TEXTCTRL5, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL5"));
Param5Edit->Hide();
controlsSizer->Add(Param5Edit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Txt6 = new wxStaticText(this, ID_STATICTEXT9, _("Description paramètre 6"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT9"));
Txt6->Hide();
controlsSizer->Add(Txt6, 1, wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Param6Edit = new wxTextCtrl(this, ID_TEXTCTRL6, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL6"));
Param6Edit->Hide();
controlsSizer->Add(Param6Edit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Txt7 = new wxStaticText(this, ID_STATICTEXT10, _("Description paramètre 7"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT10"));
Txt7->Hide();
controlsSizer->Add(Txt7, 1, wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Param7Edit = new wxTextCtrl(this, ID_TEXTCTRL7, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL7"));
Param7Edit->Hide();
controlsSizer->Add(Param7Edit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Txt8 = new wxStaticText(this, ID_STATICTEXT11, _("Description paramètre 8"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT11"));
Txt8->Hide();
controlsSizer->Add(Txt8, 1, wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Param8Edit = new wxTextCtrl(this, ID_TEXTCTRL8, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL8"));
Param8Edit->Hide();
controlsSizer->Add(Param8Edit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
FlexGridSizer2->Add(controlsSizer, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
FlexGridSizer4->Add(FlexGridSizer2, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
FlexGridSizer1->Add(FlexGridSizer4, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
StaticLine2 = new wxStaticLine(this, ID_STATICLINE2, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE2"));
FlexGridSizer1->Add(StaticLine2, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
FlexGridSizer5 = new wxFlexGridSizer(0, 3, 0, 0);
FlexGridSizer5->AddGrowableCol(0);
InsererBt = new wxButton(this, ID_BUTTON2, _("Insérer"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2"));
FlexGridSizer5->Add(InsererBt, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
AnnulerBt = new wxButton(this, ID_BUTTON1, _("Annuler"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1"));
FlexGridSizer5->Add(AnnulerBt, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
AideBt = new wxButton(this, ID_BUTTON3, _("Aide"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON3"));
FlexGridSizer5->Add(AideBt, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
FlexGridSizer1->Add(FlexGridSizer5, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
SetSizer(FlexGridSizer1);
FlexGridSizer1->Fit(this);
FlexGridSizer1->SetSizeHints(this);
Center();
Connect(ID_TREECTRL1,wxEVT_COMMAND_TREE_SEL_CHANGED,(wxObjectEventFunction)&ChoixTemplateEvent::OnTemplateTreeSelectionChanged);
Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ChoixTemplateEvent::OnInsererBtClick);
Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ChoixTemplateEvent::OnAnnulerBtClick);
Connect(ID_BUTTON3,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ChoixTemplateEvent::OnAideBtClick);
//*)
Refresh();
RefreshTree();
}
ChoixTemplateEvent::~ChoixTemplateEvent()
{
//(*Destroy(ChoixTemplateEvent)
//*)
}
void ChoixTemplateEvent::OnInsererBtClick( wxCommandEvent& event )
{
if ( templatesList.empty() )
return;
ProcessEvents(templatesList.at( 0 ).events);
finalTemplate = templatesList.at( 0 );
EndModal( 1 );
return;
}
////////////////////////////////////////////////////////////
/// Remplace les _PARAMx_ par les paramètres
////////////////////////////////////////////////////////////
void ChoixTemplateEvent::ProcessEvents(vector < gd::BaseEventSPtr > & events )
{
//Pour chaque évènement
for ( unsigned int j = 0;j < events.size() ; j++ )
{
vector < vector<gd::Instruction>* > allConditionsVectors = events[j]->GetAllConditionsVectors();
for ( unsigned int k = 0;k < allConditionsVectors.size() ;k++ )
{
for (unsigned int l = 0;l<allConditionsVectors[k]->size();++l)
{
for (unsigned int m = 0;m<allConditionsVectors[k]->at(l).GetParameters().size();++m)
{
unsigned int paramNb = 0;
while ( paramNb < parametersEdit.size() )
{
string str = allConditionsVectors[k]->at(l).GetParameter(m).GetPlainString();
allConditionsVectors[k]->at(l).SetParameter(m , ConvertParam( str, "_PARAM"+ToString(paramNb+1)+"_", static_cast<string>( parametersEdit[paramNb]->GetValue() ) ) );
paramNb++;
}
}
}
}
vector < vector<gd::Instruction>* > allActionsVectors = events[j]->GetAllActionsVectors();
for ( unsigned int k = 0;k < allActionsVectors.size() ;k++ )
{
for (unsigned int l = 0;l<allActionsVectors[k]->size();++l)
{
for (unsigned int m = 0;m<allActionsVectors[k]->at(l).GetParameters().size();++m)
{
unsigned int paramNb = 0;
while ( paramNb < parametersEdit.size() )
{
string str = allActionsVectors[k]->at(l).GetParameter(m).GetPlainString();
allActionsVectors[k]->at(l).SetParameter(m , ConvertParam( str, "_PARAM"+ToString(paramNb+1)+"_", static_cast<string>( parametersEdit[paramNb]->GetValue() ) ) );
paramNb++;
}
}
}
}
//Les sous évènements aussi
if ( events[j]->CanHaveSubEvents() ) ProcessEvents(events[j]->GetSubEvents());
}
}
void ChoixTemplateEvent::OnAnnulerBtClick( wxCommandEvent& event )
{
EndModal( 0 );
}
/**
* Refresh parameters with current template
*/
void ChoixTemplateEvent::Refresh()
{
if ( !item.IsOk()) return;
if ( TemplateTree->GetItemText( item ) == _( "Tous les modèles" ) || TemplateTree->GetItemText( item ) == "")
return;
templatesList.clear();
//Ouverture du fichier selectionné
wxString fichier = "Template/" + TemplateTree->GetItemText( item );
TiXmlDocument doc( fichier.c_str() );
if ( !doc.LoadFile() )
{
wxString ErrorDescription = doc.ErrorDesc();
wxString Error = _( "Erreur lors du chargement : " ) + ErrorDescription;
wxLogWarning( Error );
}
TiXmlHandle hdl( &doc );
TiXmlElement *elem;
elem = hdl.FirstChildElement( "Template" ).Element();
//Passage en revue des templates
while ( elem )
{
TemplateEvents newTemplate;
//For backward compatibility with GD 1.3.8892 and inferior
if ( elem->Attribute( "nom" ) != NULL ) { newTemplate.name = elem->Attribute( "nom" ); }
if ( elem->Attribute( "name" ) != NULL ) { newTemplate.name = elem->Attribute( "name" ); }
if ( elem->Attribute( "desc" ) != NULL ) { newTemplate.desc = elem->Attribute( "desc" ); }
else { wxLogWarning( "Les informations concernant la description d'un template manquent." ); }
unsigned int i = 1;
while ( elem->Attribute(string("param"+ToString(i)).c_str()) != NULL )
{
newTemplate.parameters.push_back(elem->Attribute(string("param"+ToString(i)).c_str()));
++i;
}
if ( elem->FirstChildElement( "Events" ) != NULL )
OpenSaveGame::OpenEvents(newTemplate.events, elem->FirstChildElement( "Events" ));
else
wxLogWarning( _( "Les évènements du modèle d'évènement manquent." ) );
templatesList.push_back( newTemplate );
elem = elem->NextSiblingElement();
}
}
void ChoixTemplateEvent::RefreshTree()
{
TemplateTree->DeleteAllItems();
TemplateTree->AddRoot( _( "Tous les modèles" ) );
struct dirent *lecture;
DIR *rep;
rep = opendir( "template" );
int l = 0;
while (( lecture = readdir( rep ) ) )
{
string lec = lecture->d_name;
if ( lec == "." || lec == ".." )
{
}
else
{
TemplateTree->AppendItem( TemplateTree->GetRootItem(), lecture->d_name );
l++;
}
}
closedir( rep );
}
void ChoixTemplateEvent::OnTemplateTreeSelectionChanged( wxTreeEvent& event )
{
item = event.GetItem();
Refresh();
int j = 0;
if ( templatesList.empty() )
return;
DesTxt->SetLabel( templatesList[j].desc );
//Add control if necessary
while ( descriptionsTxt.size() < templatesList[j].parameters.size() )
{
descriptionsTxt.push_back(new wxStaticText(this, wxID_ANY, _("Description"), wxDefaultPosition, wxDefaultSize, 0, ToString(descriptionsTxt.size())));
controlsSizer->Add(descriptionsTxt.back(), 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
parametersEdit.push_back(new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, ToString(parametersEdit.size())));
controlsSizer->Add(parametersEdit.back(), 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
}
//Hide all controls
for (unsigned int i = 0;i<descriptionsTxt.size();++i)
{
descriptionsTxt[i]->Show(false);
parametersEdit[i]->Show(false);
}
//Update control for each parameter
for (unsigned int i = 0;i<templatesList[j].parameters.size();++i)
{
if ( templatesList[j].parameters[i] != "" )
{
descriptionsTxt[i]->Show(true);
parametersEdit[i]->Show(true);
descriptionsTxt[i]->SetLabel(templatesList[j].parameters[i]);
}
}
Layout();
Fit();
}
string ChoixTemplateEvent::ConvertParam( string parameter, const string & toReplace, const string & replaceBy )
{
if ( parameter.find( toReplace ) != string::npos )
parameter.replace( parameter.find( toReplace ), toReplace.length(), replaceBy );
return parameter;
}
void ChoixTemplateEvent::OnAideBtClick(wxCommandEvent& event)
{
gd::HelpFileAccess * helpFileAccess = gd::HelpFileAccess::GetInstance();
helpFileAccess->DisplaySection(151);
}