New GUI, many changes
[pierogi] / pirpanelmanager.h
diff --git a/pirpanelmanager.h b/pirpanelmanager.h
new file mode 100644 (file)
index 0000000..025a904
--- /dev/null
@@ -0,0 +1,98 @@
+#ifndef PIRPANELMANAGER_H
+#define PIRPANELMANAGER_H
+
+#include "pirpanelnames.h"
+
+class PIRMainForm;
+class PIRUtilityForm;
+class PIRKeypadForm;
+class PIRMenuForm;
+class PIRMediaForm;
+class PIRFavoritesForm;
+class PIRTVForm;
+class PIRMedia2Form;
+class PIRInputForm;
+class PIRAdjustForm;
+class PIRAirConditionerForm;
+
+class PIRKeysetWidgetItem;
+class PIRPanelSelectionForm;
+class PIRKeysetManager;
+class QListWidget;
+class MainWindow;
+
+#include <list>
+
+class PIRPanelPair
+{
+public:
+  PIRPanelPair(
+    PIRPanelName n,
+    bool d)
+    : name(n),
+      displayed(d)
+  {}
+
+  PIRPanelName name;
+  bool displayed;
+};
+
+typedef std::list<PIRPanelPair> PIRPanelList;
+
+class PIRPanelManager
+{
+public:
+  PIRPanelManager(
+    MainWindow *mw);
+
+  ~PIRPanelManager();
+
+/*
+  void setupPanels(
+    PIRPanelSelectionForm *psf);
+*/
+
+  void enableButtons(
+    const PIRKeysetManager *keyset,
+    unsigned int id);
+
+  void managePanel(
+    PIRPanelName name,
+    int state);
+
+  void selectPrevFavKeyset();
+  void selectNextFavKeyset();
+  void addFavoritesItem(
+    PIRKeysetWidgetItem *item);
+
+  // This is a hack:
+  QListWidget *getFavoritesListWidget();
+
+private:
+  void hidePanel(
+    PIRPanelName name,
+    int index);
+
+  void showPanel(
+    PIRPanelName name,
+    int index);
+  
+  PIRMainForm *mainForm;
+  PIRUtilityForm *utilityForm;
+  PIRKeypadForm *keypadForm;
+  PIRMenuForm *menuForm;
+  PIRMediaForm *mediaForm;
+  PIRMedia2Form *media2Form;
+  PIRTVForm *tvForm;
+  PIRInputForm *inputForm;
+  PIRAdjustForm *adjustForm;
+  PIRAirConditionerForm *acForm;
+  PIRFavoritesForm *favoritesForm;
+
+  PIRPanelList panelList;
+
+  MainWindow *mainWindow;
+};
+
+#endif // PIRPANELMANAGER_H