mark one item as possibly done :)
[simple-launcher] / dialog-entry.h
index a178451..ad99ecb 100644 (file)
 #ifndef _DIALOG_ENTRY_H_
 #define _DIALOG_ENTRY_H_
 
+#include <gtk/gtkwidget.h>
+
+#include <hildon-widgets/hildon-number-editor.h>
+
 #include "gconf-wrapper.h"
 
 class SettingsDialogEntry {
 public:
        virtual ~SettingsDialogEntry() {}
 
-protected:
-       SettingsDialogEntry(GConfOption& option, const std::string& name);
-
   const std::string& name() const { return myName; }
+  virtual GtkWidget *getWidget() const = 0;
 
   virtual void updateValue() = 0;
 
 protected:
+       SettingsDialogEntry(GConfOption& option, const std::string& name): myOption(option), myName(name) {}
+
+protected:
        GConfOption& myOption;
        const std::string myName;
 };
@@ -41,20 +46,60 @@ public:
   SettingsDialogStringEntry(GConfStringOption& option, const std::string& name): SettingsDialogEntry(option, name) {}
 
   void updateValue();
+  GtkWidget *getWidget() const;
 };
 
 class SettingsDialogBooleanEntry : public SettingsDialogEntry {
 public:
-  SettingsDialogBooleanEntry(GConfBooleanOption& option, const std::string& name): SettingsDialogEntry(option, name) {}
+  SettingsDialogBooleanEntry(GConfBooleanOption& option, const std::string& name);
 
   void updateValue();
+  GtkWidget *getWidget() const { return myWidget; }
+
+private:
+  GtkWidget *myWidget;
 };
 
 class SettingsDialogIntegerEntry : public SettingsDialogEntry {
 public:
-  SettingsDialogIntegerEntry(GConfIntegerOption& option, const std::string& name): SettingsDialogEntry(option, name) {}
+  SettingsDialogIntegerEntry(GConfIntegerOption& option, const std::string& name, int minValue, int maxValue);
+
+  void updateValue();
+  GtkWidget *getWidget() const { return GTK_WIDGET(mySpinBox); }
+
+private:
+  HildonNumberEditor *mySpinBox;
+};
+
+#if 0
+class SettingsDialogChoiceEntry : public SettingsDialogEntry {
+public:
+  SettingsDialogChoiceEntry(GConfIntegerOption& option, const std::string& name);
+
+  virtual const std::string& text(int index) const = 0;
+  virtual int numberOfChoices() const = 0;
+  virtual int initialValue() const = 0;
+
+  void updateValue();
+  GtkWidget *getWidget() const { return myWidget; }
+
+private:
+  GtkWidget *myWidget;
+};
+
+class SettingsDialogIconSizeEntry : public SettingsDialogChoiceEntry
+#endif
+
+class SettingsDialogIconSizeEntry : public SettingsDialogEntry {
+public:
+  SettingsDialogIconSizeEntry(GConfIntegerOption& option, const std::string& name);
 
   void updateValue();
+
+  GtkWidget *getWidget() const { return myWidget; }
+
+private:
+  GtkWidget *myWidget;
 };
 
 #endif