A couple of UI additions
[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 PIRFavoritesForm;
19
20 class PIRKeysetWidgetItem;
21 class PIRPanelSelectionForm;
22 class PIRKeysetManager;
23 class QListWidget;
24 class MainWindow;
25
26 #include <map>
27 #include <QString>
28 typedef std::map<PIRPanelName, const char *> PIRPanelDisplayNameCollection;
29 typedef std::map<PIRPanelName, bool> PIRActivePanelCollection;
30 typedef std::map<QString, PIRPanelName> PIRReversePanelIndex;
31
32 class PIRPanelManager
33 {
34 public:
35   PIRPanelManager(
36     MainWindow *mw);
37
38   ~PIRPanelManager();
39
40   void setupPanels(
41     PIRPanelSelectionForm *psf);
42
43   void enableButtons(
44     const PIRKeysetManager *keyset,
45     unsigned int id);
46
47   void enableButtons(
48     const PIRKeysetManager *keyset,
49     unsigned int currentID,
50     unsigned int defaultID);
51
52   void managePanel(
53     PIRPanelName name,
54     int state);
55
56   void useMainPanel();
57   void useAltMainPanel();
58
59   void selectPrevFavKeyset();
60   void selectNextFavKeyset();
61  
62   void addFavoritesItem(
63     PIRKeysetWidgetItem *item);
64
65   // This is a hack:
66   QListWidget *getFavoritesListWidget();
67
68 private:
69   void commonEnableButtons(
70     const PIRKeysetManager *keyset,
71     unsigned int id);
72
73   void hidePanel(
74     PIRPanelName name,
75     int index);
76
77   void showPanel(
78     PIRPanelName name,
79     int index);
80   
81   PIRMainForm *mainForm;
82   PIRAltMainForm *altMainForm;
83   PIRUtilityForm *utilityForm;
84   PIRKeypadForm *keypadForm;
85   PIRMenuForm *menuForm;
86   PIRMediaForm *mediaForm;
87   PIRMedia2Form *media2Form;
88   PIRRecordForm *recordForm;
89   PIRTVForm *tvForm;
90   PIRInputForm *inputForm;
91   PIRAdjustForm *adjustForm;
92   PIRAirConditionerForm *acForm;
93   PIRFavoritesForm *favoritesForm;
94
95   PIRPanelDisplayNameCollection shortPanelNames;
96   PIRPanelDisplayNameCollection longPanelNames;
97   PIRActivePanelCollection activePanels;
98 //  PIRReversePanelIndex reverseIndex;
99
100   bool altMainPanelFlag;
101
102   MainWindow *mainWindow;
103 };
104
105 #endif // PIRPANELMANAGER_H