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