// Copyright (C) 2003-2008 Dolphin Project. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2.0. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License 2.0 for more details. // A copy of the GPL 2.0 should have been included with the program. // If not, see http://www.gnu.org/licenses/ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ #ifndef __CHEATSWINDOW_H__ #define __CHEATSWINDOW_H__ #include #include #include #include #include #include #include #include #include #include #include #include #include "ActionReplay.h" #include "Filesystem.h" #include "IniFile.h" #undef wxCHEATSWINDOW_STYLE #define wxCHEATSWINDOW_STYLE wxCAPTION | wxSYSTEM_MENU | wxCLOSE_BOX | wxDEFAULT_FRAME_STYLE | wxCLIP_CHILDREN | wxNO_FULL_REPAINT_ON_RESIZE class wxCheatsWindow : public wxFrame { public: wxCheatsWindow(wxFrame* parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); virtual ~wxCheatsWindow(); protected: struct ARCodeIndex { u32 uiIndex; size_t index; }; // Event Table DECLARE_EVENT_TABLE(); // --- GUI Controls --- wxGridBagSizer* m_Sizer_TabCheats; wxNotebook *m_Notebook_Main; wxPanel *m_Tab_Cheats; wxPanel *m_Tab_Log; wxButton *m_Button_Close; wxButton *m_Button_ApplyCodes; wxButton *m_Button_UpdateLog; wxCheckBox *m_CheckBox_LogAR; wxStaticText *m_Label_Codename; wxStaticText *m_Label_NumCodes; wxCheckListBox *m_CheckListBox_CheatsList; wxTextCtrl *m_TextCtrl_Log; wxListBox *m_ListBox_CodesList; wxStaticBox *m_GroupBox_Info; wxArrayString m_CheatStringList; std::vector indexList; // GUI IDs enum { ID_NOTEBOOK_MAIN, ID_TAB_CHEATS, ID_TAB_LOG, ID_BUTTON_CLOSE, ID_CHECKLISTBOX_CHEATSLIST, ID_LABEL_CODENAME, ID_GROUPBOX_INFO, ID_BUTTON_APPLYCODES, ID_LABEL_NUMCODES, ID_LISTBOX_CODESLIST, ID_BUTTON_UPDATELOG, ID_CHECKBOX_LOGAR, ID_TEXTCTRL_LOG }; void Init_ChildControls(); void Load_ARCodes(); // --- Wx Events Handlers --- // $ Window void OnEvent_Window_Resize(wxSizeEvent& event); void OnEvent_Window_Close(wxCloseEvent& event); // $ Close Button void OnEvent_ButtonClose_Press(wxCommandEvent& event); // $ Cheats List void OnEvent_CheatsList_ItemSelected(wxCommandEvent& event); void OnEvent_CheatsList_ItemToggled(wxCommandEvent& event); // $ Update Active Codes Button void OnEvent_ButtonUpdateCodes_Press(wxCommandEvent& event); // $ Update Log Button void OnEvent_ButtonUpdateLog_Press(wxCommandEvent& event); // $ Enable Logging Checkbox void OnEvent_CheckBoxEnableLogging_StateChange(wxCommandEvent& event); }; #endif