#include "wxUI.h" wxString months[12] ; 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), _locale(NULL), _needReload(false) { _hbox = new wxBoxSizer(wxVERTICAL); ButtonPanel* buttons = new ButtonPanel(_kiss, this); // wxMenu *menuFile = new wxMenu; // menuFile->Append( ID_About, wxT("&About...") ); // menuFile->AppendSeparator(); // menuFile->Append( ID_Quit, wxT("E&xit") ); // wxMenuBar *menuBar = new wxMenuBar; // menuBar->Append( menuFile, wxT("&File") ); // SetMenuBar( menuBar ); // CreateStatusBar(); // SetStatusText( wxT("Welcome to wxWidgets!") ); months[0] = _("january"); months[1] = _("february"); months[2] = _("march"); months[3] = _("april"); months[4] = _("may"); months[5] = _("june"); months[6] = _("july"); months[7] = _("august"); months[8] = _("september"); months[9] = _("october"); months[10] = _("november"); months[11] = _("december") ; SetSizer(_hbox); _hbox->Add(buttons); } wxUI::~wxUI() { if (_accountPanel) delete _accountPanel; if (_preferencesPanel) delete _preferencesPanel; if (_locale) delete _locale; } bool wxUI::InitLanguage(long language) { if (_locale) delete _locale; // load language if possible, fall back to english otherwise if(wxLocale::IsAvailable(language)) { _locale = new wxLocale( language, wxLOCALE_CONV_ENCODING ); #ifdef __WXGTK__ _locale->AddCatalogLookupPathPrefix(wxT("./ressources/po")); #endif _locale->AddCatalog(wxT("french")); _locale->AddCatalog(wxT("kisscount")); } if ((_locale == NULL || !_locale->IsOk()) && wxLocale::IsAvailable(wxLANGUAGE_ENGLISH)) { if (_locale) delete _locale; _locale = new wxLocale( wxLANGUAGE_ENGLISH ); language = wxLANGUAGE_ENGLISH; return false; } return true; } 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; }