X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=dialog-entry.h;h=ad99ecb50c7bbda27a607daaad42151ab34afa26;hb=e2f3ac2b22395eb4adb7d9919090018d6ee1f60d;hp=a1784514aa9a05bea4c2a93394314f35bbd2b6c6;hpb=8194f9cf26b000cbd8770c820468b0f1d09ff229;p=simple-launcher diff --git a/dialog-entry.h b/dialog-entry.h index a178451..ad99ecb 100644 --- a/dialog-entry.h +++ b/dialog-entry.h @@ -18,20 +18,25 @@ #ifndef _DIALOG_ENTRY_H_ #define _DIALOG_ENTRY_H_ +#include + +#include + #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