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