mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-22 01:55:25 -04:00
cee23154c8
git-svn-id: svn://localhost@710 8062f311-0dae-4547-b526-b8ab9ac864a5
396 lines
20 KiB
C++
396 lines
20 KiB
C++
/** \file
|
|
* Game Develop
|
|
* 2008-2012 Florian Rival (Florian.Rival@gmail.com)
|
|
*/
|
|
#include "EditOptionsPosition.h"
|
|
|
|
//(*InternalHeaders(EditOptionsPosition)
|
|
#include <wx/settings.h>
|
|
#include <wx/font.h>
|
|
#include <wx/intl.h>
|
|
#include <wx/string.h>
|
|
//*)
|
|
#include "GDL/Position.h"
|
|
#include "GDL/Object.h"
|
|
#include "GDL/ObjectHelpers.h"
|
|
#include "GDL/Animation.h"
|
|
#include "GDL/Game.h"
|
|
#include "GDL/Scene.h"
|
|
#include "GDL/CommonTools.h"
|
|
#include "GDCore/Tools/HelpFileAccess.h"
|
|
#include "GDCore/IDE/Dialogs/ChooseVariableDialog.h"
|
|
#include <sstream>
|
|
#include <string>
|
|
|
|
using namespace std;
|
|
|
|
//(*IdInit(EditOptionsPosition)
|
|
const long EditOptionsPosition::ID_STATICTEXT1 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICTEXT2 = wxNewId();
|
|
const long EditOptionsPosition::ID_PANEL1 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICLINE1 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICTEXT3 = wxNewId();
|
|
const long EditOptionsPosition::ID_TEXTCTRL1 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICTEXT4 = wxNewId();
|
|
const long EditOptionsPosition::ID_TEXTCTRL2 = wxNewId();
|
|
const long EditOptionsPosition::ID_CHECKBOX1 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICTEXT5 = wxNewId();
|
|
const long EditOptionsPosition::ID_TEXTCTRL3 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICTEXT6 = wxNewId();
|
|
const long EditOptionsPosition::ID_TEXTCTRL5 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICTEXT11 = wxNewId();
|
|
const long EditOptionsPosition::ID_CHOICE1 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICTEXT7 = wxNewId();
|
|
const long EditOptionsPosition::ID_TEXTCTRL4 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICTEXT8 = wxNewId();
|
|
const long EditOptionsPosition::ID_BUTTON4 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICTEXT9 = wxNewId();
|
|
const long EditOptionsPosition::ID_PANEL2 = wxNewId();
|
|
const long EditOptionsPosition::ID_STATICLINE2 = wxNewId();
|
|
const long EditOptionsPosition::ID_BUTTON1 = wxNewId();
|
|
const long EditOptionsPosition::ID_BUTTON2 = wxNewId();
|
|
const long EditOptionsPosition::ID_BUTTON3 = wxNewId();
|
|
//*)
|
|
|
|
BEGIN_EVENT_TABLE(EditOptionsPosition,wxDialog)
|
|
//(*EventTable(EditOptionsPosition)
|
|
//*)
|
|
END_EVENT_TABLE()
|
|
|
|
EditOptionsPosition::EditOptionsPosition(wxWindow* parent, const Game & game_, const Scene & scene_, const InitialPosition & position_) :
|
|
position(position_),
|
|
initialVariables(position.initialVariables),
|
|
game(game_),
|
|
scene(scene_)
|
|
{
|
|
//(*Initialize(EditOptionsPosition)
|
|
wxStaticBoxSizer* StaticBoxSizer2;
|
|
wxFlexGridSizer* FlexGridSizer4;
|
|
wxFlexGridSizer* FlexGridSizer16;
|
|
wxStaticBoxSizer* StaticBoxSizer4;
|
|
wxFlexGridSizer* FlexGridSizer10;
|
|
wxFlexGridSizer* FlexGridSizer3;
|
|
wxFlexGridSizer* FlexGridSizer5;
|
|
wxFlexGridSizer* FlexGridSizer9;
|
|
wxFlexGridSizer* FlexGridSizer2;
|
|
wxBoxSizer* BoxSizer2;
|
|
wxFlexGridSizer* FlexGridSizer7;
|
|
wxStaticBoxSizer* StaticBoxSizer3;
|
|
wxFlexGridSizer* FlexGridSizer15;
|
|
wxFlexGridSizer* FlexGridSizer8;
|
|
wxFlexGridSizer* FlexGridSizer14;
|
|
wxFlexGridSizer* FlexGridSizer13;
|
|
wxFlexGridSizer* FlexGridSizer12;
|
|
wxFlexGridSizer* FlexGridSizer6;
|
|
wxStaticBoxSizer* StaticBoxSizer1;
|
|
wxFlexGridSizer* FlexGridSizer1;
|
|
wxFlexGridSizer* FlexGridSizer11;
|
|
wxStaticBoxSizer* StaticBoxSizer5;
|
|
|
|
Create(parent, wxID_ANY, _("Editer les options avancées d\'un objet sur la scène"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER, _T("wxID_ANY"));
|
|
SetClientSize(wxSize(397,260));
|
|
FlexGridSizer1 = new wxFlexGridSizer(0, 1, 0, 0);
|
|
FlexGridSizer1->AddGrowableCol(0);
|
|
FlexGridSizer1->AddGrowableRow(2);
|
|
Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));
|
|
Panel1->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
|
|
FlexGridSizer2 = new wxFlexGridSizer(0, 3, 0, 0);
|
|
FlexGridSizer2->AddGrowableCol(1);
|
|
FlexGridSizer2->AddGrowableRow(0);
|
|
StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _("Objet concerné :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
|
|
FlexGridSizer2->Add(StaticText1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
objectNameTxt = new wxStaticText(Panel1, ID_STATICTEXT2, _("Sans Nom"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
|
|
wxFont objectNameTxtFont(wxDEFAULT,wxDEFAULT,wxFONTSTYLE_NORMAL,wxBOLD,false,wxEmptyString,wxFONTENCODING_DEFAULT);
|
|
objectNameTxt->SetFont(objectNameTxtFont);
|
|
FlexGridSizer2->Add(objectNameTxt, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
Panel1->SetSizer(FlexGridSizer2);
|
|
FlexGridSizer2->Fit(Panel1);
|
|
FlexGridSizer2->SetSizeHints(Panel1);
|
|
FlexGridSizer1->Add(Panel1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
StaticLine1 = new wxStaticLine(this, ID_STATICLINE1, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE1"));
|
|
FlexGridSizer1->Add(StaticLine1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer4 = new wxFlexGridSizer(0, 2, 0, 0);
|
|
FlexGridSizer4->AddGrowableCol(0);
|
|
FlexGridSizer4->AddGrowableRow(0);
|
|
FlexGridSizer6 = new wxFlexGridSizer(0, 1, 0, 0);
|
|
FlexGridSizer6->AddGrowableCol(0);
|
|
FlexGridSizer6->AddGrowableRow(1);
|
|
FlexGridSizer13 = new wxFlexGridSizer(0, 2, 0, 0);
|
|
FlexGridSizer13->AddGrowableCol(0);
|
|
StaticBoxSizer1 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Position"));
|
|
FlexGridSizer3 = new wxFlexGridSizer(0, 2, 0, 0);
|
|
FlexGridSizer3->AddGrowableCol(1);
|
|
StaticText2 = new wxStaticText(this, ID_STATICTEXT3, _("X :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3"));
|
|
FlexGridSizer3->Add(StaticText2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
XEdit = new wxTextCtrl(this, ID_TEXTCTRL1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL1"));
|
|
XEdit->SetToolTip(_("Coordonnée X de l\'objet sur la scène"));
|
|
FlexGridSizer3->Add(XEdit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
StaticText3 = new wxStaticText(this, ID_STATICTEXT4, _("Y :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT4"));
|
|
FlexGridSizer3->Add(StaticText3, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
YEdit = new wxTextCtrl(this, ID_TEXTCTRL2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL2"));
|
|
YEdit->SetToolTip(_("Coordonnée Y de l\'objet sur la scène."));
|
|
FlexGridSizer3->Add(YEdit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
StaticBoxSizer1->Add(FlexGridSizer3, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer13->Add(StaticBoxSizer1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
StaticBoxSizer2 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Taille"));
|
|
FlexGridSizer5 = new wxFlexGridSizer(0, 1, 0, 0);
|
|
FlexGridSizer5->AddGrowableCol(0);
|
|
FlexGridSizer5->AddGrowableRow(1);
|
|
sizeCheck = new wxCheckBox(this, ID_CHECKBOX1, _("Taille personnalisée"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CHECKBOX1"));
|
|
sizeCheck->SetValue(false);
|
|
FlexGridSizer5->Add(sizeCheck, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
FlexGridSizer10 = new wxFlexGridSizer(0, 2, 0, 0);
|
|
FlexGridSizer10->AddGrowableCol(1);
|
|
StaticText4 = new wxStaticText(this, ID_STATICTEXT5, _("Largeur :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5"));
|
|
FlexGridSizer10->Add(StaticText4, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
widthEdit = new wxTextCtrl(this, ID_TEXTCTRL3, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL3"));
|
|
widthEdit->Disable();
|
|
FlexGridSizer10->Add(widthEdit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
StaticText5 = new wxStaticText(this, ID_STATICTEXT6, _("Hauteur :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT6"));
|
|
FlexGridSizer10->Add(StaticText5, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
heightEdit = new wxTextCtrl(this, ID_TEXTCTRL5, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL5"));
|
|
heightEdit->Disable();
|
|
FlexGridSizer10->Add(heightEdit, 1, wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
FlexGridSizer5->Add(FlexGridSizer10, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
StaticBoxSizer2->Add(FlexGridSizer5, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer13->Add(StaticBoxSizer2, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
StaticBoxSizer5 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Calque"));
|
|
FlexGridSizer12 = new wxFlexGridSizer(0, 1, 0, 0);
|
|
FlexGridSizer12->AddGrowableCol(0);
|
|
FlexGridSizer14 = new wxFlexGridSizer(0, 3, 0, 0);
|
|
FlexGridSizer14->AddGrowableCol(1);
|
|
StaticText8 = new wxStaticText(this, ID_STATICTEXT11, _("Calque de l\'objet :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT11"));
|
|
FlexGridSizer14->Add(StaticText8, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
layerChoice = new wxChoice(this, ID_CHOICE1, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_CHOICE1"));
|
|
FlexGridSizer14->Add(layerChoice, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
FlexGridSizer12->Add(FlexGridSizer14, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
StaticBoxSizer5->Add(FlexGridSizer12, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer13->Add(StaticBoxSizer5, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
StaticBoxSizer3 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Plan"));
|
|
FlexGridSizer7 = new wxFlexGridSizer(0, 1, 0, 0);
|
|
FlexGridSizer8 = new wxFlexGridSizer(0, 3, 0, 0);
|
|
FlexGridSizer8->AddGrowableCol(1);
|
|
StaticText6 = new wxStaticText(this, ID_STATICTEXT7, _("Plan n° :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT7"));
|
|
FlexGridSizer8->Add(StaticText6, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
zOrderEdit = new wxTextCtrl(this, ID_TEXTCTRL4, _("0"), wxDefaultPosition, wxSize(72,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL4"));
|
|
zOrderEdit->SetToolTip(_("Plan initial de l\'objet sur la scène."));
|
|
FlexGridSizer8->Add(zOrderEdit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
FlexGridSizer7->Add(FlexGridSizer8, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
StaticText7 = new wxStaticText(this, ID_STATICTEXT8, _("0 par défaut. Plus le plan est grand,\nplus l\'objet sera au dessus des autres."), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT8"));
|
|
wxFont StaticText7Font(wxDEFAULT,wxDEFAULT,wxFONTSTYLE_ITALIC,wxNORMAL,false,wxEmptyString,wxFONTENCODING_DEFAULT);
|
|
StaticText7->SetFont(StaticText7Font);
|
|
FlexGridSizer7->Add(StaticText7, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
StaticBoxSizer3->Add(FlexGridSizer7, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer13->Add(StaticBoxSizer3, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
FlexGridSizer6->Add(FlexGridSizer13, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer11 = new wxFlexGridSizer(0, 3, 0, 0);
|
|
FlexGridSizer11->AddGrowableCol(0);
|
|
FlexGridSizer11->AddGrowableRow(0);
|
|
StaticBoxSizer4 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Variables initiales spécifiques à cette instance de l\'objet"));
|
|
FlexGridSizer16 = new wxFlexGridSizer(0, 3, 0, 0);
|
|
FlexGridSizer16->AddGrowableCol(1);
|
|
FlexGridSizer16->AddGrowableRow(0);
|
|
editInitialVariables = new wxButton(this, ID_BUTTON4, _("Modifier"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON4"));
|
|
FlexGridSizer16->Add(editInitialVariables, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
variablesStatusTxt = new wxStaticText(this, ID_STATICTEXT9, _("Aucune variable spécifique à cette instance de définie."), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT9"));
|
|
FlexGridSizer16->Add(variablesStatusTxt, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
StaticBoxSizer4->Add(FlexGridSizer16, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer11->Add(StaticBoxSizer4, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
FlexGridSizer6->Add(FlexGridSizer11, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer15 = new wxFlexGridSizer(0, 1, 0, 0);
|
|
FlexGridSizer15->AddGrowableCol(0);
|
|
FlexGridSizer15->AddGrowableRow(0);
|
|
customPanel = new wxPanel(this, ID_PANEL2, wxDefaultPosition, wxSize(0,0), wxTAB_TRAVERSAL, _T("ID_PANEL2"));
|
|
FlexGridSizer15->Add(customPanel, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
FlexGridSizer6->Add(FlexGridSizer15, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer4->Add(FlexGridSizer6, 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);
|
|
FlexGridSizer9 = new wxFlexGridSizer(0, 0, 0, 0);
|
|
FlexGridSizer9->AddGrowableCol(0);
|
|
FlexGridSizer9->AddGrowableRow(0);
|
|
BoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
|
|
OkBt = new wxButton(this, ID_BUTTON1, _("Ok"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1"));
|
|
BoxSizer2->Add(OkBt, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
|
|
AnnulerBt = new wxButton(this, ID_BUTTON2, _("Annuler"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2"));
|
|
BoxSizer2->Add(AnnulerBt, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
AideBt = new wxButton(this, ID_BUTTON3, _("Aide"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON3"));
|
|
BoxSizer2->Add(AideBt, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
|
|
FlexGridSizer9->Add(BoxSizer2, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 0);
|
|
FlexGridSizer1->Add(FlexGridSizer9, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
|
|
SetSizer(FlexGridSizer1);
|
|
FlexGridSizer1->SetSizeHints(this);
|
|
Center();
|
|
|
|
Connect(ID_CHECKBOX1,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&EditOptionsPosition::OnsizeCheckClick);
|
|
Connect(ID_BUTTON4,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&EditOptionsPosition::OneditInitialVariablesClick);
|
|
Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&EditOptionsPosition::OnOkBtClick);
|
|
Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&EditOptionsPosition::OnAnnulerBtClick);
|
|
Connect(ID_BUTTON3,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&EditOptionsPosition::OnAideBtClick);
|
|
//*)
|
|
|
|
//Initializing controls with values
|
|
objectNameTxt->SetLabel( position.objectName );
|
|
|
|
XEdit->ChangeValue( ToString(position.x) );
|
|
YEdit->ChangeValue( ToString(position.y) );
|
|
widthEdit->ChangeValue( ToString(position.width) );
|
|
heightEdit->ChangeValue( ToString(position.height) );
|
|
if ( position.personalizedSize )
|
|
{
|
|
sizeCheck->SetValue(true);
|
|
widthEdit->Enable(true);
|
|
heightEdit->Enable(true);
|
|
}
|
|
|
|
for (unsigned int i = 0;i<scene.initialLayers.size();++i)
|
|
{
|
|
if ( scene.initialLayers[i].GetName() == "" )
|
|
layerChoice->Insert(_("Calque de base"), 0);
|
|
else
|
|
layerChoice->Insert(scene.initialLayers[i].GetName(), 0);
|
|
}
|
|
|
|
layerChoice->SetStringSelection(position.layer);
|
|
if ( position.layer == "" )
|
|
layerChoice->SetStringSelection(_("Calque de base"));
|
|
|
|
zOrderEdit->ChangeValue(ToString(position.zOrder) );
|
|
|
|
UpdateInitialVariablesStatus();
|
|
|
|
//Create the object-specific panel, if it has one.
|
|
wxPanel * returnedPanel = NULL;
|
|
|
|
std::vector<ObjSPtr>::const_iterator sceneObject = std::find_if(scene.GetInitialObjects().begin(), scene.GetInitialObjects().end(), std::bind2nd(ObjectHasName(), position.objectName));
|
|
std::vector<ObjSPtr>::const_iterator globalObject = std::find_if(game.GetGlobalObjects().begin(), game.GetGlobalObjects().end(), std::bind2nd(ObjectHasName(), position.objectName));
|
|
|
|
ObjSPtr object = boost::shared_ptr<Object> ();
|
|
|
|
if ( sceneObject != scene.GetInitialObjects().end() ) //We check first scene's objects' list.
|
|
returnedPanel = (*sceneObject)->CreateInitialPositionPanel(this, game, scene, position);
|
|
else if ( globalObject != game.GetGlobalObjects().end() ) //Then the global object list
|
|
returnedPanel = (*globalObject)->CreateInitialPositionPanel(this, game, scene, position);
|
|
|
|
if ( returnedPanel )
|
|
{
|
|
customPanel = returnedPanel;
|
|
FlexGridSizer15->Add(customPanel, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
}
|
|
|
|
int maxWidth = customPanel->GetSize().GetWidth() > GetSize().GetWidth() ?
|
|
customPanel->GetSize().GetWidth() :
|
|
GetSize().GetWidth();
|
|
SetSize(maxWidth, GetSize().GetHeight()+customPanel->GetSize().GetHeight()+10);
|
|
}
|
|
|
|
EditOptionsPosition::~EditOptionsPosition()
|
|
{
|
|
//(*Destroy(EditOptionsPosition)
|
|
//*)
|
|
}
|
|
|
|
|
|
void EditOptionsPosition::OnOkBtClick(wxCommandEvent& event)
|
|
{
|
|
{
|
|
string x = (string) XEdit->GetValue();
|
|
std::istringstream iss( x );
|
|
float i;
|
|
|
|
if ( ( iss >> i ) && ( iss.eof() ) )
|
|
position.x = i;
|
|
}
|
|
|
|
{
|
|
string y = (string) YEdit->GetValue();
|
|
std::istringstream iss( y );
|
|
float i;
|
|
|
|
if ( ( iss >> i ) && ( iss.eof() ) )
|
|
position.y = i;
|
|
}
|
|
|
|
{
|
|
string width = (string) widthEdit->GetValue();
|
|
std::istringstream iss( width );
|
|
float i;
|
|
|
|
if ( ( iss >> i ) && ( iss.eof() ) )
|
|
position.width = i;
|
|
}
|
|
|
|
{
|
|
string height = (string) heightEdit->GetValue();
|
|
std::istringstream iss( height );
|
|
float i;
|
|
|
|
if ( ( iss >> i ) && ( iss.eof() ) )
|
|
position.height = i;
|
|
}
|
|
|
|
if ( sizeCheck->GetValue() )
|
|
position.personalizedSize = true;
|
|
else
|
|
position.personalizedSize = false;
|
|
|
|
position.zOrder = ToInt(string(zOrderEdit->GetValue().mb_str()));
|
|
|
|
position.layer = static_cast<string>(layerChoice->GetStringSelection());
|
|
if ( layerChoice->GetStringSelection() == _("Calque de base"))
|
|
position.layer = "";
|
|
|
|
position.initialVariables = initialVariables;
|
|
|
|
std::vector<ObjSPtr>::const_iterator sceneObject = std::find_if(scene.GetInitialObjects().begin(), scene.GetInitialObjects().end(), std::bind2nd(ObjectHasName(), position.objectName));
|
|
std::vector<ObjSPtr>::const_iterator globalObject = std::find_if(game.GetGlobalObjects().begin(), game.GetGlobalObjects().end(), std::bind2nd(ObjectHasName(), position.objectName));
|
|
|
|
if ( sceneObject != scene.GetInitialObjects().end() ) //We check first scene's objects' list.
|
|
(*sceneObject)->UpdateInitialPositionFromPanel(customPanel, position);
|
|
else if ( globalObject != game.GetGlobalObjects().end() ) //Then the global object list
|
|
(*globalObject)->UpdateInitialPositionFromPanel(customPanel, position);
|
|
|
|
EndModal(1);
|
|
}
|
|
|
|
void EditOptionsPosition::OnAnnulerBtClick(wxCommandEvent& event)
|
|
{
|
|
EndModal(0);
|
|
}
|
|
|
|
void EditOptionsPosition::OnAideBtClick(wxCommandEvent& event)
|
|
{
|
|
gd::HelpFileAccess * helpFileAccess = gd::HelpFileAccess::GetInstance();
|
|
helpFileAccess->DisplaySection(25);
|
|
}
|
|
|
|
void EditOptionsPosition::OnsizeCheckClick(wxCommandEvent& event)
|
|
{
|
|
if ( sizeCheck )
|
|
{
|
|
widthEdit->Enable(true);
|
|
heightEdit->Enable(true);
|
|
}
|
|
else
|
|
{
|
|
widthEdit->Enable(false);
|
|
heightEdit->Enable(false);
|
|
}
|
|
}
|
|
|
|
void EditOptionsPosition::OneditInitialVariablesClick(wxCommandEvent& event)
|
|
{
|
|
gd::ChooseVariableDialog dialog(this, initialVariables, /*editingOnly=*/true);
|
|
if ( dialog.ShowModal() == 1 )
|
|
UpdateInitialVariablesStatus();
|
|
}
|
|
|
|
void EditOptionsPosition::UpdateInitialVariablesStatus()
|
|
{
|
|
if ( initialVariables.GetVariablesVector().empty() )
|
|
variablesStatusTxt->SetLabel(_("Aucune variable spécifique à cette instance de définie."));
|
|
else
|
|
variablesStatusTxt->SetLabel(ToString(initialVariables.GetVariablesVector().size())+_(" variable(s) spécifiques à cette instance sont définie(s)."));
|
|
}
|