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