/* 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 #include "view.hpp" #include #include #define _(s) QObject::trUtf8(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 UpdateStats(); void KillMe(); void ShowPanel(KissPanel* panel); void NeedReload(); int _language; private slots: void OnButtonClicked(int id); void OnButtonChangeUser(); void OnButtonAbout(); void OnButtonQuit(); private: KissCount *_kiss; QSignalMapper _signalMapper; QVBoxLayout *_vbox; QHBoxLayout *_buttonsBox; KissPanel *_curPanel; std::vector _panels; std::vector _buttons; QLocale *_locale; bool _needReload; void InitPanels(); void LoadPanels(); }; class KissPanel: public QFrame { public: KissPanel(KissCount* kiss, wxUI* parent) : QFrame(static_cast(parent)), _kiss(kiss), _wxUI(parent), _KissButton(0) { DEFAULT_FONT(font); hide(); setFont(font); } virtual void OnShow()=0; virtual KissPanel* CreatePanel()=0; virtual QPushButton* GetButton() {return 0;} virtual QString GetToolTip() {return "";} protected: KissCount* _kiss; wxUI* _wxUI; QPushButton* _KissButton; }; #endif