/* Copyright 2010-2011 Grégory Soutadé This file is part of KissCount. KissCount 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, either version 3 of the License, or (at your option) any later version. KissCount 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 for more details. You should have received a copy of the GNU General Public License along with KissCount. If not, see . */ #ifndef WXUI_H #define WXUI_H class ImportEngine; #include #include #include #include #include #include #include #include #define _(s) QObject::tr(s) class KissCount; class KissPanel; class AccountPanel; class PreferencesPanel; class wxUI: public QFrame { Q_OBJECT; public: static const int MAX_CATEGORY = 12; static QString months[MAX_CATEGORY]; static QColor categoryColors[MAX_CATEGORY]; wxUI(KissCount* kiss, const QString& title); ~wxUI(); bool SetLanguage(QString language); void ChangeUser(); void LoadUser(); void ShowAccount(); void ShowSearch(); void ShowPreferences(); void GenerateMonth(int month, int year); void KillMe(); void ShowPanel(KissPanel* panel); void NeedReload(); int _language; private slots: void OnButtonClicked(); void OnButtonChangeUser(); void OnButtonAbout(); void OnButtonQuit(); private: KissCount *_kiss; QVBoxLayout *_vbox, *_buttonsBox; KissPanel *_curPanel; std::vector _panels; std::vector _buttons; QLocale *_locale; bool _needReload; void InitPanels(); void LoadPanels(); }; class KissPanel: public QScrollArea { public: KissPanel(KissCount* kiss, wxUI* parent) : QScrollArea(static_cast(parent)), _kiss(kiss), _wxUI(parent), _KissButton(0) {hide();} virtual void OnShow(QShowEvent * event)=0; virtual KissPanel* CreatePanel()=0; virtual QPushButton* GetButton(int id) {return 0;} virtual QString GetToolTip() {return "";} protected: KissCount* _kiss; wxUI* _wxUI; QPushButton* _KissButton; }; #endif