#include "ChoixClavier.h" //(*InternalHeaders(ChoixClavier) #include #include #include #include //*) #include #include #include #include #include "GDCore/IDE/SkinHelper.h" #include "GDCore/Tools/HelpFileAccess.h" using namespace std; //(*IdInit(ChoixClavier) const long ChoixClavier::ID_STATICTEXT3 = wxNewId(); const long ChoixClavier::ID_PANEL1 = wxNewId(); const long ChoixClavier::ID_STATICLINE1 = wxNewId(); const long ChoixClavier::ID_STATICBITMAP2 = wxNewId(); const long ChoixClavier::ID_HYPERLINKCTRL1 = wxNewId(); const long ChoixClavier::ID_BUTTON1 = wxNewId(); //*) BEGIN_EVENT_TABLE(ChoixClavier,wxDialog) //(*EventTable(ChoixClavier) //*) END_EVENT_TABLE() ChoixClavier::ChoixClavier(wxWindow* parent, string pTouche) { //(*Initialize(ChoixClavier) wxFlexGridSizer* FlexGridSizer3; wxFlexGridSizer* FlexGridSizer2; wxFlexGridSizer* FlexGridSizer1; wxFlexGridSizer* FlexGridSizer17; Create(parent, wxID_ANY, _("Choose a key"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxWANTS_CHARS, _T("wxID_ANY")); FlexGridSizer1 = new wxFlexGridSizer(0, 1, 0, 0); FlexGridSizer1->AddGrowableCol(0); FlexGridSizer1->AddGrowableRow(0); Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS, _T("ID_PANEL1")); Panel1->SetFocus(); FlexGridSizer2 = new wxFlexGridSizer(0, 1, 0, 0); FlexGridSizer2->AddGrowableCol(0); StaticText2 = new wxStaticText(Panel1, ID_STATICTEXT3, _("Press a key"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3")); FlexGridSizer2->Add(StaticText2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|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); FlexGridSizer3 = new wxFlexGridSizer(0, 3, 0, 0); FlexGridSizer3->AddGrowableCol(1); FlexGridSizer17 = new wxFlexGridSizer(0, 3, 0, 0); FlexGridSizer17->AddGrowableRow(0); StaticBitmap1 = new wxStaticBitmap(this, ID_STATICBITMAP2, gd::SkinHelper::GetIcon("help", 16), wxDefaultPosition, wxDefaultSize, wxNO_BORDER, _T("ID_STATICBITMAP2")); FlexGridSizer17->Add(StaticBitmap1, 1, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); helpBt = new wxHyperlinkCtrl(this, ID_HYPERLINKCTRL1, _("Help"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_CONTEXTMENU|wxHL_ALIGN_CENTRE|wxNO_BORDER, _T("ID_HYPERLINKCTRL1")); helpBt->SetToolTip(_("Display help about this window")); FlexGridSizer17->Add(helpBt, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer3->Add(FlexGridSizer17, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); Button1 = new wxButton(this, ID_BUTTON1, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1")); FlexGridSizer3->Add(Button1, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer1->Add(FlexGridSizer3, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); SetSizer(FlexGridSizer1); FlexGridSizer1->Fit(this); FlexGridSizer1->SetSizeHints(this); Panel1->Connect(wxEVT_KEY_DOWN,(wxObjectEventFunction)&ChoixClavier::OnPanel1KeyDown1,0,this); Connect(ID_HYPERLINKCTRL1,wxEVT_COMMAND_HYPERLINK,(wxObjectEventFunction)&ChoixClavier::OnhelpBtClick); Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ChoixClavier::OnButton1Click); Connect(wxEVT_KEY_DOWN,(wxObjectEventFunction)&ChoixClavier::OnKeyDown); //*) Panel1->SetWindowStyleFlag(wxWANTS_CHARS); Panel1->SetFocus(); } ChoixClavier::~ChoixClavier() { //(*Destroy(ChoixClavier) //*) } void ChoixClavier::OnKeyDown(wxKeyEvent& event) { OnPanel1KeyDown1(event); } void ChoixClavier::OnButton1Click(wxCommandEvent& event) { EndModal(0); } void ChoixClavier::OnhelpBtClick(wxCommandEvent& event) { gd::HelpFileAccess::Get()->OpenURL(_("http://www.wiki.compilgames.net/doku.php/en/game_develop/documentation/manual/events_editor/parameters")); } void ChoixClavier::OnPanel1KeyDown1(wxKeyEvent& event) { int code = event.GetKeyCode(); std::cout << code << std::endl; if ( code == 48 ) selectedKey = "Num0"; else if ( code == 49 ) selectedKey = "Num1"; else if ( code == 50 ) selectedKey = "Num2"; else if ( code == 51 ) selectedKey = "Num3"; else if ( code == 52 ) selectedKey = "Num4"; else if ( code == 53 ) selectedKey = "Num5"; else if ( code == 54 ) selectedKey = "Num6"; else if ( code == 55 ) selectedKey = "Num7"; else if ( code == 56 ) selectedKey = "Num8"; else if ( code == 57 ) selectedKey = "Num9"; else if ( code == 65 ) selectedKey = "a"; else if ( code == 66 ) selectedKey = "b"; else if ( code == 67 ) selectedKey = "c"; else if ( code == 68 ) selectedKey = "d"; else if ( code == 69 ) selectedKey = "e"; else if ( code == 70 ) selectedKey = "f"; else if ( code == 71 ) selectedKey = "g"; else if ( code == 72 ) selectedKey = "h"; else if ( code == 73 ) selectedKey = "i"; else if ( code == 74 ) selectedKey = "j"; else if ( code == 75 ) selectedKey = "k"; else if ( code == 76 ) selectedKey = "l"; else if ( code == 77 ) selectedKey = "m"; else if ( code == 78 ) selectedKey = "n"; else if ( code == 79 ) selectedKey = "o"; else if ( code == 80 ) selectedKey = "p"; else if ( code == 81 ) selectedKey = "q"; else if ( code == 82 ) selectedKey = "r"; else if ( code == 83 ) selectedKey = "s"; else if ( code == 84 ) selectedKey = "t"; else if ( code == 85 ) selectedKey = "u"; else if ( code == 86 ) selectedKey = "v"; else if ( code == 87 ) selectedKey = "w"; else if ( code == 88 ) selectedKey = "x"; else if ( code == 89 ) selectedKey = "y"; else if ( code == 90 ) selectedKey = "z"; //TODO: Not working? else if ( code == '[' ) selectedKey = "LBracket"; else if ( code == ']' ) selectedKey = "RBracket"; else if ( code == ';' ) selectedKey = "SemiColon"; else if ( code == WXK_NUMPAD0 ) selectedKey = "Numpad0"; else if ( code == WXK_NUMPAD1 ) selectedKey = "Numpad1"; else if ( code == WXK_NUMPAD2 ) selectedKey = "Numpad2"; else if ( code == WXK_NUMPAD3 ) selectedKey = "Numpad3"; else if ( code == WXK_NUMPAD4 ) selectedKey = "Numpad4"; else if ( code == WXK_NUMPAD5 ) selectedKey = "Numpad5"; else if ( code == WXK_NUMPAD6 ) selectedKey = "Numpad6"; else if ( code == WXK_NUMPAD7 ) selectedKey = "Numpad7"; else if ( code == WXK_NUMPAD8 ) selectedKey = "Numpad8"; else if ( code == WXK_NUMPAD9 ) selectedKey = "Numpad9"; else if ( code == WXK_ESCAPE ) selectedKey = "Escape"; else if ( code == WXK_SPACE ) selectedKey = "Space"; else if ( code == WXK_RETURN ) selectedKey = "Return"; else if ( code == WXK_BACK ) selectedKey = "Back"; else if ( code == WXK_TAB ) selectedKey = "Tab"; else if ( code == WXK_PAGEUP ) selectedKey = "PageUp"; else if ( code == WXK_PAGEDOWN ) selectedKey = "PageDown"; else if ( code == WXK_END ) selectedKey = "End"; else if ( code == WXK_HOME ) selectedKey = "Home"; else if ( code == WXK_INSERT ) selectedKey = "Insert"; else if ( code == WXK_DELETE ) selectedKey = "Delete"; else if ( code == WXK_ADD ) selectedKey = "Add"; else if ( code == WXK_SUBTRACT) selectedKey = "Subtract"; else if ( code == WXK_MULTIPLY ) selectedKey = "Multiply"; else if ( code == WXK_DIVIDE ) selectedKey = "Divide"; else if ( code == WXK_LEFT ) selectedKey = "Left"; else if ( code == WXK_RIGHT) selectedKey = "Right"; else if ( code == WXK_UP ) selectedKey = "Up"; else if ( code == WXK_DOWN ) selectedKey = "Down"; else if ( code == WXK_F1 ) selectedKey = "F1"; else if ( code == WXK_F2 ) selectedKey = "F2"; else if ( code == WXK_F3 ) selectedKey = "F3"; else if ( code == WXK_F4 ) selectedKey = "F4"; else if ( code == WXK_F5 ) selectedKey = "F5"; else if ( code == WXK_F6 ) selectedKey = "F6"; else if ( code == WXK_F7 ) selectedKey = "F7"; else if ( code == WXK_F8 ) selectedKey = "F8"; else if ( code == WXK_F9 ) selectedKey = "F9"; else if ( code == WXK_F10 ) selectedKey = "F10"; else if ( code == WXK_F11 ) selectedKey = "F11"; else if ( code == WXK_F12 ) selectedKey = "F12"; else if ( code == WXK_PAUSE ) selectedKey = "Pause"; else if ( event.ControlDown() ) { if ( wxMessageBox(_("Right Control : No\nLeft Control : Yes"), _("Choose the key"), wxYES_NO) == wxNO) selectedKey = "RControl"; else selectedKey = "LControl"; } else if ( event.AltDown() ) { if ( wxMessageBox(_("Right Alt : No\nLeft alt : Yes"), _("Choose the key"), wxYES_NO) == wxNO) selectedKey = "RAlt"; else selectedKey = "LAlt"; } else if ( event.ShiftDown() ) { if ( wxMessageBox(_("Right Shift : No\nLeft Shift : Yes"), _("Choose the key"), wxYES_NO) == wxNO) selectedKey = "RShift"; else selectedKey = "LShift"; } EndModal(1); }