Code

Added wrappers for the "optiongroup" type that correspond to existing "float", "enum...
authorJon A. Cruz <jon@joncruz.org>
Thu, 18 Mar 2010 00:41:44 +0000 (17:41 -0700)
committerJon A. Cruz <jon@joncruz.org>
Thu, 18 Mar 2010 00:41:44 +0000 (17:41 -0700)
src/extension/extension.cpp
src/extension/extension.h
src/extension/param/parameter.cpp
src/extension/param/parameter.h

index b36d2e3a13478194dc50923770cd0e35373d9daa..b4cf06bda3b513490631118270c61b17cd5a7f78 100644 (file)
@@ -440,6 +440,14 @@ Extension::get_param_enum (const gchar * name, const SPDocument * doc, const Ink
     return param->get_enum(doc, node);
 }
 
+
+gchar const *Extension::get_param_optiongroup( gchar const * name, SPDocument const * doc, Inkscape::XML::Node const * node)
+{
+    Parameter* param = param_shared(name, parameters);
+    return param->get_optiongroup(doc, node);
+}
+
+
 /**
     \return   The value of the parameter identified by the name
     \brief    Gets a parameter identified by name with the bool placed
@@ -597,6 +605,13 @@ Extension::set_param_string (const gchar * name, const gchar * value, SPDocument
     return param->set_string(value, doc, node);
 }
 
+gchar const * Extension::set_param_optiongroup(gchar const * name, gchar const * value, SPDocument * doc, Inkscape::XML::Node * node)
+{
+    Parameter * param = param_shared(name, parameters);
+    return param->set_optiongroup(value, doc, node);
+}
+
+
 /**
     \return   The passed in value
     \brief    Sets a parameter identified by name with the string
index 6210e2eba6ea1fbcaaeae6e6c0e3c6a87d486911..c71ae59b42ec7481e94b22a730ed4d1257036bb8 100644 (file)
@@ -139,8 +139,8 @@ public:
                                               g_slist_length(parameters); };
     /** \brief  A function to get the the number of parameters that
                 are visible to the user that the extension has.
-        \return The number of visible parameters. 
-        
+        \return The number of visible parameters.
+
         \note Currently this just calls param_count as visible isn't implemented
               but in the future it'll do something different.  Please call
               the appropriate function in code so that it'll work in the
@@ -153,16 +153,17 @@ public:
     class param_wrong_type {};
     class param_not_color_param {};
     class param_not_enum_param {};
+    class param_not_optiongroup_param {};
     class param_not_string_param {};
     class param_not_float_param {};
     class param_not_int_param {};
     class param_not_bool_param {};
-    
-    /** An error class for when a parameter is looked for that just 
+
+    /** An error class for when a parameter is looked for that just
      * simply doesn't exist */
     class param_not_exist {};
-    
-    /** An error class for when a filename already exists, but the user 
+
+    /** An error class for when a filename already exists, but the user
      * doesn't want to overwrite it */
     class no_overwrite {};
 
@@ -176,37 +177,56 @@ public:
     bool             get_param_bool   (const gchar * name,
                                        const SPDocument *   doc = NULL,
                                        const Inkscape::XML::Node * node = NULL);
+
     int              get_param_int    (const gchar * name,
                                        const SPDocument *   doc = NULL,
                                        const Inkscape::XML::Node * node = NULL);
+
     float            get_param_float  (const gchar * name,
                                        const SPDocument *   doc = NULL,
                                        const Inkscape::XML::Node * node = NULL);
+
     const gchar *    get_param_string (const gchar * name,
                                        const SPDocument *   doc = NULL,
                                        const Inkscape::XML::Node * node = NULL);
+
     guint32          get_param_color  (const gchar * name,
                                        const SPDocument *   doc = NULL,
                                        const Inkscape::XML::Node * node = NULL);
+
     const gchar *    get_param_enum   (const gchar * name,
                                        const SPDocument *   doc = NULL,
                                        const Inkscape::XML::Node * node = NULL);
+
+    gchar const *get_param_optiongroup( gchar const * name,
+                                        SPDocument const *   doc = 0,
+                                        Inkscape::XML::Node const * node = 0);
+
     bool             set_param_bool   (const gchar * name,
                                        bool          value,
                                        SPDocument *   doc = NULL,
                                        Inkscape::XML::Node *       node = NULL);
+
     int              set_param_int    (const gchar * name,
                                        int           value,
                                        SPDocument *   doc = NULL,
                                        Inkscape::XML::Node *       node = NULL);
+
     float            set_param_float  (const gchar * name,
                                        float         value,
                                        SPDocument *   doc = NULL,
                                        Inkscape::XML::Node *       node = NULL);
+
     const gchar *    set_param_string (const gchar * name,
                                        const gchar * value,
                                        SPDocument *   doc = NULL,
                                        Inkscape::XML::Node *       node = NULL);
+
+    gchar const * set_param_optiongroup(gchar const * name,
+                                        gchar const * value,
+                                        SPDocument * doc = 0,
+                                        Inkscape::XML::Node * node = 0);
+
     guint32          set_param_color  (const gchar * name,
                                        guint32 color,
                                        SPDocument *   doc = NULL,
index 2773af61dde709ad4c9ae3206b00a50392b9e0fa..3320cddcac2fd2ea8047d1563fa75b0bcf476ce1 100644 (file)
@@ -204,6 +204,16 @@ Parameter::get_enum (const SPDocument * doc, const Inkscape::XML::Node * node)
     return param->get(doc, node);
 }
 
+/** \brief  Wrapper to cast to the object and use it's function.  */
+gchar const *Parameter::get_optiongroup(SPDocument const * doc, Inkscape::XML::Node const * node)
+{
+    ParamRadioButton * param = dynamic_cast<ParamRadioButton *>(this);
+    if (!param) {
+        throw Extension::param_not_optiongroup_param();
+    }
+    return param->get(doc, node);
+}
+
 guint32
 Parameter::get_color(const SPDocument* doc, const Inkscape::XML::Node* node)
 {
@@ -253,6 +263,17 @@ Parameter::set_string (const gchar * in, SPDocument * doc, Inkscape::XML::Node *
         throw Extension::param_not_string_param();
     return stringpntr->set(in, doc, node);
 }
+
+gchar const * Parameter::set_optiongroup( gchar const * in, SPDocument * doc, Inkscape::XML::Node * node )
+{
+    ParamRadioButton *param = dynamic_cast<ParamRadioButton *>(this);
+    if (!param) {
+        throw Extension::param_not_optiongroup_param();
+    }
+    return param->set(in, doc, node);
+}
+
+
 /** \brief  Wrapper to cast to the object and use it's function.  */
 guint32
 Parameter::set_color (guint32 in, SPDocument * doc, Inkscape::XML::Node * node)
index 54249c12eb3373a48fb28c6e10469088c5920556..c62dad9cc03a77be3b9cc292b58e7f4d8ccf2691 100644 (file)
@@ -98,9 +98,13 @@ public:
     const gchar * get_enum   (const SPDocument * doc,
                               const Inkscape::XML::Node * node);
 
+    gchar const * get_optiongroup( SPDocument const * doc,
+                                   Inkscape::XML::Node const * node);
+
     bool          set_bool   (bool in,          SPDocument * doc, Inkscape::XML::Node * node);
     int           set_int    (int  in,          SPDocument * doc, Inkscape::XML::Node * node);
     float         set_float  (float in,         SPDocument * doc, Inkscape::XML::Node * node);
+    gchar const * set_optiongroup(gchar const *in, SPDocument * doc, Inkscape::XML::Node *node);
     const gchar * set_string (const gchar * in, SPDocument * doc, Inkscape::XML::Node * node);
     guint32       set_color  (guint32 in, SPDocument * doc, Inkscape::XML::Node * node);