#include "wxUI.h" BEGIN_EVENT_TABLE(wxUI, wxFrame) EVT_MENU(ID_Quit, wxUI::OnQuit) EVT_MENU(ID_About, wxUI::OnAbout) END_EVENT_TABLE() wxString months[12] = {_("january"), _("february"), _("march"), _("april"), _("may"), _("june"), _("july"), _("august"), _("september"), _("october"), _("november"), _("december")} ; wxUI::wxUI(KissCount* kiss, const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame(NULL, -1, title, pos, size), _kiss(kiss), _accountPanel(NULL), _preferencesPanel(NULL), _curPanel(NULL), _needReload(false) { _hbox = new wxBoxSizer(wxVERTICAL); ButtonPanel* buttons = new ButtonPanel(_kiss, this); // wxMenu *menuFile = new wxMenu; // menuFile->Append( ID_About, _("&About...") ); // menuFile->AppendSeparator(); // menuFile->Append( ID_Quit, _("E&xit") ); // wxMenuBar *menuBar = new wxMenuBar; // menuBar->Append( menuFile, _("&File") ); // SetMenuBar( menuBar ); // CreateStatusBar(); // SetStatusText( _("Welcome to wxWidgets!") ); SetSizer(_hbox); _hbox->Add(buttons); } wxUI::~wxUI() { if (_accountPanel) delete _accountPanel; if (_preferencesPanel) delete _preferencesPanel; } void wxUI::OnQuit(wxCommandEvent& WXUNUSED(event)) { Close(true); } void wxUI::OnAbout(wxCommandEvent& WXUNUSED(event)) { wxMessageBox( _("This is a wxWidgets Hello world sample"), _("About Hello World"), wxOK | wxICON_INFORMATION, this ); } void wxUI::ShowAccount() { ShowPanel(_accountPanel); } void wxUI::ShowPreferences() { ShowPanel(_preferencesPanel); } void wxUI::ChangeUser() { UsersDialog u(_kiss, this); u.ShowModal(); } void wxUI::LoadUser() { if (_curPanel) { _hbox->Detach(_curPanel); _curPanel = NULL; } if (_accountPanel) delete _accountPanel; if (_preferencesPanel) delete _preferencesPanel; _preferencesPanel = new PreferencesPanel(_kiss, this); _accountPanel = new AccountPanel(_kiss, this); ShowPanel(_accountPanel); } void wxUI::ShowPanel(wxPanel* panel) { int month, year; if (!panel) return; if (_curPanel) { _hbox->Detach(_curPanel); _curPanel->Hide(); } if (panel == _accountPanel && _needReload) { month = _accountPanel->_curMonth; year = _accountPanel->_curYear; delete _accountPanel; panel = _accountPanel = new AccountPanel(_kiss, this); _accountPanel->ShowMonth(month, year); _needReload = false; } _curPanel = panel; _hbox->Add(panel); _curPanel->Show(); Layout(); } void wxUI::GenerateMonth(int month, int year) { _accountPanel->GenerateMonth(month, year); } void wxUI::KillMe() { if (_curPanel) { _hbox->Detach(_curPanel); _curPanel = NULL; } if (_accountPanel) delete _accountPanel; if (_preferencesPanel) delete _preferencesPanel; _accountPanel = NULL; _preferencesPanel = NULL; } void wxUI::NeedReload() { _needReload = true; }