Interim Update
[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 managePanel(
48     PIRPanelName name,
49     int state);
50
51   void useMainPanel();
52   void useAltMainPanel();
53
54   void selectPrevFavKeyset();
55   void selectNextFavKeyset();
56  
57   void addFavoritesItem(
58     PIRKeysetWidgetItem *item);
59
60   // This is a hack:
61   QListWidget *getFavoritesListWidget();
62
63 private:
64   void hidePanel(
65     PIRPanelName name,
66     int index);
67
68   void showPanel(
69     PIRPanelName name,
70     int index);
71   
72   PIRMainForm *mainForm;
73   PIRAltMainForm *altMainForm;
74   PIRUtilityForm *utilityForm;
75   PIRKeypadForm *keypadForm;
76   PIRMenuForm *menuForm;
77   PIRMediaForm *mediaForm;
78   PIRMedia2Form *media2Form;
79   PIRRecordForm *recordForm;
80   PIRTVForm *tvForm;
81   PIRInputForm *inputForm;
82   PIRAdjustForm *adjustForm;
83   PIRAirConditionerForm *acForm;
84   PIRFavoritesForm *favoritesForm;
85
86   PIRPanelDisplayNameCollection shortPanelNames;
87   PIRPanelDisplayNameCollection longPanelNames;
88   PIRActivePanelCollection activePanels;
89 //  PIRReversePanelIndex reverseIndex;
90
91   bool altMainPanelFlag;
92
93   MainWindow *mainWindow;
94 };
95
96 #endif // PIRPANELMANAGER_H