025a904bbcd87048cef72e6979ab18fb5968522e
[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 PIRFavoritesForm;
12 class PIRTVForm;
13 class PIRMedia2Form;
14 class PIRInputForm;
15 class PIRAdjustForm;
16 class PIRAirConditionerForm;
17
18 class PIRKeysetWidgetItem;
19 class PIRPanelSelectionForm;
20 class PIRKeysetManager;
21 class QListWidget;
22 class MainWindow;
23
24 #include <list>
25
26 class PIRPanelPair
27 {
28 public:
29   PIRPanelPair(
30     PIRPanelName n,
31     bool d)
32     : name(n),
33       displayed(d)
34   {}
35
36   PIRPanelName name;
37   bool displayed;
38 };
39
40 typedef std::list<PIRPanelPair> PIRPanelList;
41
42 class PIRPanelManager
43 {
44 public:
45   PIRPanelManager(
46     MainWindow *mw);
47
48   ~PIRPanelManager();
49
50 /*
51   void setupPanels(
52     PIRPanelSelectionForm *psf);
53 */
54
55   void enableButtons(
56     const PIRKeysetManager *keyset,
57     unsigned int id);
58
59   void managePanel(
60     PIRPanelName name,
61     int state);
62
63   void selectPrevFavKeyset();
64   void selectNextFavKeyset();
65  
66   void addFavoritesItem(
67     PIRKeysetWidgetItem *item);
68
69   // This is a hack:
70   QListWidget *getFavoritesListWidget();
71
72 private:
73   void hidePanel(
74     PIRPanelName name,
75     int index);
76
77   void showPanel(
78     PIRPanelName name,
79     int index);
80   
81   PIRMainForm *mainForm;
82   PIRUtilityForm *utilityForm;
83   PIRKeypadForm *keypadForm;
84   PIRMenuForm *menuForm;
85   PIRMediaForm *mediaForm;
86   PIRMedia2Form *media2Form;
87   PIRTVForm *tvForm;
88   PIRInputForm *inputForm;
89   PIRAdjustForm *adjustForm;
90   PIRAirConditionerForm *acForm;
91   PIRFavoritesForm *favoritesForm;
92
93   PIRPanelList panelList;
94
95   MainWindow *mainWindow;
96 };
97
98 #endif // PIRPANELMANAGER_H