Bug fixes, new panel
[pierogi] / pirpanelmanager.h
1 #ifndef PIRPANELMANAGER_H
2 #define PIRPANELMANAGER_H
3
4 #include "pirpanelnames.h"
5
6 class PIRMainForm;
7 class PIRUtilityForm;
8 class PIRKeypadForm;
9 class PIRMenuForm;
10 class PIRMediaForm;
11 class PIRMedia2Form;
12 class PIRRecordForm;
13 class PIRTVForm;
14 class PIRInputForm;
15 class PIRAdjustForm;
16 class PIRAirConditionerForm;
17 class PIRFavoritesForm;
18
19 class PIRKeysetWidgetItem;
20 class PIRPanelSelectionForm;
21 class PIRKeysetManager;
22 class QListWidget;
23 class MainWindow;
24
25 #include <list>
26
27 class PIRPanelPair
28 {
29 public:
30   PIRPanelPair(
31     PIRPanelName n,
32     bool d)
33     : name(n),
34       displayed(d)
35   {}
36
37   PIRPanelName name;
38   bool displayed;
39 };
40
41 typedef std::list<PIRPanelPair> PIRPanelList;
42
43 class PIRPanelManager
44 {
45 public:
46   PIRPanelManager(
47     MainWindow *mw);
48
49   ~PIRPanelManager();
50
51 /*
52   void setupPanels(
53     PIRPanelSelectionForm *psf);
54 */
55
56   void enableButtons(
57     const PIRKeysetManager *keyset,
58     unsigned int id);
59
60   void managePanel(
61     PIRPanelName name,
62     int state);
63
64   void selectPrevFavKeyset();
65   void selectNextFavKeyset();
66  
67   void addFavoritesItem(
68     PIRKeysetWidgetItem *item);
69
70   // This is a hack:
71   QListWidget *getFavoritesListWidget();
72
73 private:
74   void hidePanel(
75     PIRPanelName name,
76     int index);
77
78   void showPanel(
79     PIRPanelName name,
80     int index);
81   
82   PIRMainForm *mainForm;
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   PIRPanelList panelList;
96
97   MainWindow *mainWindow;
98 };
99
100 #endif // PIRPANELMANAGER_H