Code

r11472@tres: ted | 2006-04-22 20:32:45 -0700
[inkscape.git] / src / extension / parameter.h
index afaecbdc44b1eac9fbd097308bc666904f7e593c..2adea1770c369605b2b48f27a38201d092f7600e 100644 (file)
@@ -29,28 +29,52 @@ private:
     gchar *       _name;
 
 protected:
+    /** \brief  Description of the parameter. */
+    gchar *       _desc;
+    /** \brief  List of possible scopes. */
+    typedef enum {
+        SCOPE_USER,     /**<  Parameter value is saved in the user's configuration file. (default) */
+        SCOPE_DOCUMENT, /**<  Parameter value is saved in the document. */
+        SCOPE_NODE      /**<  Parameter value is attached to the node. */
+    } _scope_t;
+    /** \brief  Scope of the parameter. */
+    _scope_t _scope;
     /** \brief  Text for the GUI selection of this. */
     gchar *       _text;
     gchar *       pref_name (void);
 
 public:
-    Parameter (const gchar * name, const gchar * guitext, Inkscape::Extension::Extension * ext);
-    virtual ~Parameter(void);
-    bool          get_bool   (const Inkscape::XML::Document * doc);
-    int           get_int    (const Inkscape::XML::Document * doc);
-    float         get_float  (const Inkscape::XML::Document * doc);
-    const gchar * get_string (const Inkscape::XML::Document * doc);
+                  Parameter  (const gchar * name,
+                              const gchar * guitext,
+                              const gchar * desc,
+                              const Parameter::_scope_t scope,
+                              Inkscape::Extension::Extension * ext);
+                  Parameter  (const gchar * name,
+                              const gchar * guitext,
+                              Inkscape::Extension::Extension * ext) {
+                      Parameter(name, guitext, NULL, Parameter::SCOPE_USER, ext);
+                  };
+    virtual      ~Parameter  (void);
+    bool          get_bool   (const Inkscape::XML::Document * doc,
+                              const Inkscape::XML::Node * node);
+    int           get_int    (const Inkscape::XML::Document * doc,
+                              const Inkscape::XML::Node * node);
+    float         get_float  (const Inkscape::XML::Document * doc,
+                              const Inkscape::XML::Node * node);
+    const gchar * get_string (const Inkscape::XML::Document * doc,
+                              const Inkscape::XML::Node * node);
 
-    bool          set_bool   (bool in,          Inkscape::XML::Document * doc);
-    int           set_int    (int  in,          Inkscape::XML::Document * doc);
-    float         set_float  (float in,         Inkscape::XML::Document * doc);
-    const gchar * set_string (const gchar * in, Inkscape::XML::Document * doc);
+    bool          set_bool   (bool in,          Inkscape::XML::Document * doc, Inkscape::XML::Node * node);
+    int           set_int    (int  in,          Inkscape::XML::Document * doc, Inkscape::XML::Node * node);
+    float         set_float  (float in,         Inkscape::XML::Document * doc, Inkscape::XML::Node * node);
+    const gchar * set_string (const gchar * in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node);
 
     const gchar * name       (void) {return _name;}
 
     static Parameter * make (Inkscape::XML::Node * in_repr, Inkscape::Extension::Extension * in_ext);
     virtual Gtk::Widget * get_widget (void);
     virtual Glib::ustring * string (void);
+    gchar const * get_tooltip (void) { return _desc; }
 };