Advanced Settings Panel
[pierogi] / pirpanelmanager.h
index 631f310..d0f0222 100644 (file)
@@ -4,6 +4,7 @@
 #include "pirpanelnames.h"
 
 class PIRMainForm;
+class PIRAltMainForm;
 class PIRUtilityForm;
 class PIRKeypadForm;
 class PIRMenuForm;
@@ -14,31 +15,31 @@ class PIRTVForm;
 class PIRInputForm;
 class PIRAdjustForm;
 class PIRAirConditionerForm;
-class PIRFavoritesForm;
+class PIRAudioDeviceForm;
+class PIRCameraForm;
+class PIRRoombaForm;
+class PIRUserForm;
+class PIRMacroForm;
+class PIRPowerSearchForm;
+class PIRAdvancedForm;
 
 class PIRKeysetWidgetItem;
-class PIRPanelSelectionForm;
 class PIRKeysetManager;
 class QListWidget;
+class QComboBox;
 class MainWindow;
 
 #include <list>
+#include <map>
+#include <QString>
+#include <QWidget>
 
-class PIRPanelPair
-{
-public:
-  PIRPanelPair(
-    PIRPanelName n,
-    bool d)
-    : name(n),
-      displayed(d)
-  {}
-
-  PIRPanelName name;
-  bool displayed;
-};
+typedef std::list<PIRPanelName> PIRPanelNameList;
+typedef std::map<PIRTabBarName, PIRPanelNameList> PIRTabsCollection;
 
-typedef std::list<PIRPanelPair> PIRPanelList;
+typedef std::map<PIRPanelName, QWidget *> PIRPanelCollection;
+typedef std::map<PIRPanelName, const char *> PIRPanelDisplayNameCollection;
+typedef std::map<QString, PIRPanelName> PIRReversePanelIndex;
 
 class PIRPanelManager
 {
@@ -48,38 +49,43 @@ public:
 
   ~PIRPanelManager();
 
-/*
-  void setupPanels(
-    PIRPanelSelectionForm *psf);
-*/
+  void updateTabSet();
 
   void enableButtons(
-    const PIRKeysetManager *keyset,
+    PIRKeysetManager *keyset,
     unsigned int id);
 
-  void managePanel(
-    PIRPanelName name,
-    int state);
+  void enableButtons(
+    PIRKeysetManager *keyset,
+    unsigned int currentID,
+    unsigned int defaultID);
+
+  void updateUserButtons();
 
-  void selectPrevFavKeyset();
-  void selectNextFavKeyset();
-  void addFavoritesItem(
-    PIRKeysetWidgetItem *item);
+  void useMainPanel();
+  void useAltMainPanel();
 
-  // This is a hack:
-  QListWidget *getFavoritesListWidget();
+/*
+  void setupUniversalTabs();
+  void setupTVTabs();
+  void setupVideoTabs();
+  void setupACTabs();
+  void setupRecordTabs();
+*/
+  void setupTabs(PIRTabBarName name);
+
+  QComboBox *getKeysetComboBox();
+
+  void gotoPreviousTabs();
+  void gotoNextTabs();
 
 private:
-  void hidePanel(
-    PIRPanelName name,
-    int index);
-
-  void showPanel(
-    PIRPanelName name,
-    int index);
-  
+  void commonEnableButtons(
+    PIRKeysetManager *keyset,
+    unsigned int id);
+
   PIRMainForm *mainForm;
+  PIRAltMainForm *altMainForm;
   PIRUtilityForm *utilityForm;
   PIRKeypadForm *keypadForm;
   PIRMenuForm *menuForm;
@@ -90,9 +96,23 @@ private:
   PIRInputForm *inputForm;
   PIRAdjustForm *adjustForm;
   PIRAirConditionerForm *acForm;
-  PIRFavoritesForm *favoritesForm;
-
-  PIRPanelList panelList;
+  PIRAudioDeviceForm *audioDeviceForm;
+  PIRCameraForm *cameraForm;
+  PIRRoombaForm *roombaForm;
+  PIRUserForm *userForm;
+  PIRMacroForm *macroForm;
+  PIRPowerSearchForm *powerSearchForm;
+  PIRAdvancedForm *advancedForm;
+
+  PIRPanelDisplayNameCollection shortPanelNames;
+  PIRPanelDisplayNameCollection longPanelNames;
+//  PIRReversePanelIndex reverseIndex;
+  PIRTabsCollection tabLists;
+  PIRPanelCollection panels;
+
+  bool altMainPanelFlag;
+
+  PIRTabBarName currentTabsName;
 
   MainWindow *mainWindow;
 };