c7d842de5470e604ce8cbc247e7848ae91c9f2b7
[pierogi] / pirpanelmanager.h
1 #ifndef PIRPANELMANAGER_H
2 #define PIRPANELMANAGER_H
3
4 #include "pirpanelnames.h"
5
6 class PIRMainForm;
7 class PIRAltMainForm;
8 class PIRUtilityForm;
9 class PIRKeypadForm;
10 class PIRMenuForm;
11 class PIRMediaForm;
12 class PIRMedia2Form;
13 class PIRRecordForm;
14 class PIRTVForm;
15 class PIRInputForm;
16 class PIRAdjustForm;
17 class PIRAirConditionerForm;
18 class PIRFavoritesForm;
19
20 class PIRKeysetWidgetItem;
21 class PIRKeysetManager;
22 class QListWidget;
23 class MainWindow;
24
25 #include <list>
26 #include <map>
27 #include <QString>
28 #include <QWidget>
29
30 typedef std::list<PIRPanelName> PIRPanelNameList;
31 typedef std::map<PIRTabBarName, PIRPanelNameList> PIRTabsCollection;
32
33 typedef std::map<PIRPanelName, QWidget *> PIRPanelCollection;
34 typedef std::map<PIRPanelName, const char *> PIRPanelDisplayNameCollection;
35 typedef std::map<QString, PIRPanelName> PIRReversePanelIndex;
36
37 class PIRPanelManager
38 {
39 public:
40   PIRPanelManager(
41     MainWindow *mw);
42
43   ~PIRPanelManager();
44
45   void updateTabSet();
46
47   void enableButtons(
48     const PIRKeysetManager *keyset,
49     unsigned int id);
50
51   void enableButtons(
52     const PIRKeysetManager *keyset,
53     unsigned int currentID,
54     unsigned int defaultID);
55
56   void useMainPanel();
57   void useAltMainPanel();
58
59   void selectPrevFavKeyset();
60   void selectNextFavKeyset();
61  
62   void addFavoritesItem(
63     PIRKeysetWidgetItem *item);
64
65   // This is a hack:
66   QListWidget *getFavoritesListWidget();
67
68   void setupUniversalTabs();
69   void setupTVTabs();
70   void setupVideoTabs();
71   void setupACTabs();
72   void setupRecordTabs();
73   void setupTabs(PIRTabBarName name);
74
75 private:
76   void commonEnableButtons(
77     const PIRKeysetManager *keyset,
78     unsigned int id);
79
80   PIRMainForm *mainForm;
81   PIRAltMainForm *altMainForm;
82   PIRUtilityForm *utilityForm;
83   PIRKeypadForm *keypadForm;
84   PIRMenuForm *menuForm;
85   PIRMediaForm *mediaForm;
86   PIRMedia2Form *media2Form;
87   PIRRecordForm *recordForm;
88   PIRTVForm *tvForm;
89   PIRInputForm *inputForm;
90   PIRAdjustForm *adjustForm;
91   PIRAirConditionerForm *acForm;
92   PIRFavoritesForm *favoritesForm;
93
94   PIRPanelDisplayNameCollection shortPanelNames;
95   PIRPanelDisplayNameCollection longPanelNames;
96 //  PIRReversePanelIndex reverseIndex;
97   PIRTabsCollection tabLists;
98   PIRPanelCollection panels;
99
100   bool altMainPanelFlag;
101
102   PIRTabBarName currentTabsName;
103
104   MainWindow *mainWindow;
105 };
106
107 #endif // PIRPANELMANAGER_H