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