ac781318a92824fa1ef29c929094f079052e776b
[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 PIRAudioDeviceForm;
19 class PIRCameraForm;
20 class PIRRoombaForm;
21 class PIRMacroForm;
22 class PIRPowerSearchForm;
23
24 class PIRKeysetWidgetItem;
25 class PIRKeysetManager;
26 class QListWidget;
27 class MainWindow;
28
29 #include <list>
30 #include <map>
31 #include <QString>
32 #include <QWidget>
33
34 typedef std::list<PIRPanelName> PIRPanelNameList;
35 typedef std::map<PIRTabBarName, PIRPanelNameList> PIRTabsCollection;
36
37 typedef std::map<PIRPanelName, QWidget *> PIRPanelCollection;
38 typedef std::map<PIRPanelName, const char *> PIRPanelDisplayNameCollection;
39 typedef std::map<QString, PIRPanelName> PIRReversePanelIndex;
40
41 class PIRPanelManager
42 {
43 public:
44   PIRPanelManager(
45     MainWindow *mw);
46
47   ~PIRPanelManager();
48
49   void updateTabSet();
50
51   void enableButtons(
52     const PIRKeysetManager *keyset,
53     unsigned int id);
54
55   void enableButtons(
56     const PIRKeysetManager *keyset,
57     unsigned int currentID,
58     unsigned int defaultID);
59
60   void useMainPanel();
61   void useAltMainPanel();
62
63 /*
64   void setupUniversalTabs();
65   void setupTVTabs();
66   void setupVideoTabs();
67   void setupACTabs();
68   void setupRecordTabs();
69 */
70   void setupTabs(PIRTabBarName name);
71
72 private:
73   void commonEnableButtons(
74     const PIRKeysetManager *keyset,
75     unsigned int id);
76
77   PIRMainForm *mainForm;
78   PIRAltMainForm *altMainForm;
79   PIRUtilityForm *utilityForm;
80   PIRKeypadForm *keypadForm;
81   PIRMenuForm *menuForm;
82   PIRMediaForm *mediaForm;
83   PIRMedia2Form *media2Form;
84   PIRRecordForm *recordForm;
85   PIRTVForm *tvForm;
86   PIRInputForm *inputForm;
87   PIRAdjustForm *adjustForm;
88   PIRAirConditionerForm *acForm;
89   PIRAudioDeviceForm *audioDeviceForm;
90   PIRCameraForm *cameraForm;
91   PIRRoombaForm *roombaForm;
92   PIRMacroForm *macroForm;
93   PIRPowerSearchForm *powerSearchForm;
94
95   PIRPanelDisplayNameCollection shortPanelNames;
96   PIRPanelDisplayNameCollection longPanelNames;
97 //  PIRReversePanelIndex reverseIndex;
98   PIRTabsCollection tabLists;
99   PIRPanelCollection panels;
100
101   bool altMainPanelFlag;
102
103   PIRTabBarName currentTabsName;
104
105   MainWindow *mainWindow;
106 };
107
108 #endif // PIRPANELMANAGER_H