#if defined(GD_IDE_ONLY) && !defined(GD_NO_WX_GUI) #include "FunctionEventEditorDlg.h" //(*InternalHeaders(FunctionEventEditorDlg) #include #include #include #include #include //*) #include "FunctionEvent.h" #include "GDCore/IDE/Dialogs/ChooseObjectDialog.h" #include "GDCpp/Runtime/CommonTools.h" #include "GDCpp/Runtime/Project/Layout.h" #include "GDCpp/Runtime/Project/Project.h" //(*IdInit(FunctionEventEditorDlg) const long FunctionEventEditorDlg::ID_STATICBITMAP3 = wxNewId(); const long FunctionEventEditorDlg::ID_STATICTEXT3 = wxNewId(); const long FunctionEventEditorDlg::ID_PANEL1 = wxNewId(); const long FunctionEventEditorDlg::ID_STATICLINE2 = wxNewId(); const long FunctionEventEditorDlg::ID_STATICTEXT2 = wxNewId(); const long FunctionEventEditorDlg::ID_TEXTCTRL2 = wxNewId(); const long FunctionEventEditorDlg::ID_STATICTEXT1 = wxNewId(); const long FunctionEventEditorDlg::ID_TEXTCTRL1 = wxNewId(); const long FunctionEventEditorDlg::ID_BITMAPBUTTON1 = wxNewId(); const long FunctionEventEditorDlg::ID_STATICTEXT5 = wxNewId(); const long FunctionEventEditorDlg::ID_STATICTEXT4 = wxNewId(); const long FunctionEventEditorDlg::ID_STATICLINE1 = wxNewId(); const long FunctionEventEditorDlg::ID_BUTTON1 = wxNewId(); const long FunctionEventEditorDlg::ID_BUTTON2 = wxNewId(); //*) BEGIN_EVENT_TABLE(FunctionEventEditorDlg, wxDialog) //(*EventTable(FunctionEventEditorDlg) //*) END_EVENT_TABLE() FunctionEventEditorDlg::FunctionEventEditorDlg(wxWindow* parent, FunctionEvent& event_, gd::Project& game_, gd::Layout& scene_) : eventEdited(event_), game(game_), scene(scene_) { //(*Initialize(FunctionEventEditorDlg) wxFlexGridSizer* FlexGridSizer4; wxFlexGridSizer* FlexGridSizer3; wxFlexGridSizer* FlexGridSizer5; wxFlexGridSizer* FlexGridSizer2; wxFlexGridSizer* FlexGridSizer7; wxFlexGridSizer* FlexGridSizer8; wxFlexGridSizer* FlexGridSizer6; wxStaticBoxSizer* StaticBoxSizer1; wxFlexGridSizer* FlexGridSizer1; wxFlexGridSizer* FlexGridSizer17; Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, _T("wxID_ANY")); FlexGridSizer1 = new wxFlexGridSizer(0, 1, 0, 0); FlexGridSizer17 = new wxFlexGridSizer(0, 1, 0, 0); FlexGridSizer17->AddGrowableCol(0); Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1")); Panel1->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); FlexGridSizer6 = new wxFlexGridSizer(0, 3, 0, 0); StaticBitmap3 = new wxStaticBitmap(Panel1, ID_STATICBITMAP3, wxBitmap(wxImage(_T("res/function24.png"))), wxDefaultPosition, wxDefaultSize, wxNO_BORDER, _T("ID_STATICBITMAP3")); FlexGridSizer6->Add( StaticBitmap3, 1, wxALL | wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL, 5); StaticText3 = new wxStaticText( Panel1, ID_STATICTEXT3, _("The function and its sub events will be executed\nonly when it is " "launched by an action or expression."), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_STATICTEXT3")); FlexGridSizer6->Add( StaticText3, 1, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, 5); Panel1->SetSizer(FlexGridSizer6); FlexGridSizer6->Fit(Panel1); FlexGridSizer6->SetSizeHints(Panel1); FlexGridSizer17->Add( Panel1, 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")); FlexGridSizer17->Add( StaticLine2, 1, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 0); FlexGridSizer1->Add( FlexGridSizer17, 1, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 0); FlexGridSizer5 = new wxFlexGridSizer(0, 1, 0, 0); FlexGridSizer5->AddGrowableCol(0); StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("Name of the function ( Must be unique ) :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2")); FlexGridSizer5->Add( StaticText2, 1, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer7 = new wxFlexGridSizer(0, 3, 0, 0); FlexGridSizer7->AddGrowableCol(0); nameEdit = new wxTextCtrl(this, ID_TEXTCTRL2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL2")); FlexGridSizer7->Add( nameEdit, 1, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer5->Add( FlexGridSizer7, 1, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 0); FlexGridSizer1->Add( FlexGridSizer5, 1, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 0); FlexGridSizer2 = new wxFlexGridSizer(0, 1, 0, 0); FlexGridSizer2->AddGrowableCol(0); StaticBoxSizer1 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Arguments")); FlexGridSizer8 = new wxFlexGridSizer(0, 1, 0, 0); FlexGridSizer8->AddGrowableCol(0); StaticText1 = new wxStaticText( this, ID_STATICTEXT1, _("(Optional) Pass the objects of this group to the function:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1")); FlexGridSizer8->Add( StaticText1, 1, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer4 = new wxFlexGridSizer(0, 3, 0, 0); FlexGridSizer4->AddGrowableCol(0); objectEdit = new wxTextCtrl(this, ID_TEXTCTRL1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL1")); FlexGridSizer4->Add( objectEdit, 1, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); objectBt = new wxBitmapButton(this, ID_BITMAPBUTTON1, wxBitmap(wxImage(_T("res/objeticon.png"))), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW, wxDefaultValidator, _T("ID_BITMAPBUTTON1")); objectBt->SetDefault(); FlexGridSizer4->Add( objectBt, 1, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer8->Add( FlexGridSizer4, 1, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 0); StaticText5 = new wxStaticText( this, ID_STATICTEXT5, _("Objects of this group which are concerned by " "previous\nactions/conditions will be passed to the function when it " "is\ncalled by an action, and so they will be used by actions " "and\nconditions refering to them."), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5")); FlexGridSizer8->Add( StaticText5, 1, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, 5); StaticText4 = new wxStaticText(this, ID_STATICTEXT4, _("Others arguments can be passed as text\nwhen the " "function is called. ( And they can\nbe used in " "function using Function::GetParameter(x) )."), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT4")); FlexGridSizer8->Add( StaticText4, 1, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, 5); StaticBoxSizer1->Add( FlexGridSizer8, 1, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer2->Add( StaticBoxSizer1, 1, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer1->Add( FlexGridSizer2, 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); FlexGridSizer3 = new wxFlexGridSizer(0, 3, 0, 0); okBt = new wxButton(this, ID_BUTTON1, _("Ok"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1")); FlexGridSizer3->Add( okBt, 1, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); cancelBt = new wxButton(this, ID_BUTTON2, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2")); FlexGridSizer3->Add( cancelBt, 1, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer1->Add( FlexGridSizer3, 1, wxALL | wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL, 0); SetSizer(FlexGridSizer1); FlexGridSizer1->Fit(this); FlexGridSizer1->SetSizeHints(this); Connect(ID_BITMAPBUTTON1, wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&FunctionEventEditorDlg::OnobjectBtClick); Connect(ID_BUTTON1, wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&FunctionEventEditorDlg::OnokBtClick); Connect(ID_BUTTON2, wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&FunctionEventEditorDlg::OncancelBtClick); //*) objectEdit->SetValue(eventEdited.GetObjectsPassedAsArgument()); nameEdit->SetValue(eventEdited.GetName()); } FunctionEventEditorDlg::~FunctionEventEditorDlg() { //(*Destroy(FunctionEventEditorDlg) //*) } void FunctionEventEditorDlg::OnokBtClick(wxCommandEvent& event) { eventEdited.SetObjectsPassedAsArgument(objectEdit->GetValue()); eventEdited.SetName(nameEdit->GetValue()); EndModal(1); } void FunctionEventEditorDlg::OncancelBtClick(wxCommandEvent& event) { EndModal(0); } void FunctionEventEditorDlg::OnobjectBtClick(wxCommandEvent& event) { gd::ChooseObjectDialog dialog(this, game, scene, true); if (dialog.ShowModal() == 1) objectEdit->ChangeValue(dialog.GetChosenObject()); return; } #endif