Code

r11140@tres: ted | 2006-03-27 21:37:00 -0800
[inkscape.git] / src / extension / parameter.cpp
index 76163ac49b5654ee2a7ed5cee417da7378105dbe..5d62030993deb76b3234245e94cf9a6a9c5c60ca 100644 (file)
@@ -42,8 +42,8 @@ private:
 public:
     ParamBool(const gchar * name, const gchar * guitext, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml);
     /** \brief  Returns \c _value */
-    bool get (const Inkscape::XML::Document * doc) { return _value; }
-    bool set (bool in, Inkscape::XML::Document * doc);
+    bool get (const Inkscape::XML::Document * doc, const Inkscape::XML::Node * node) { return _value; }
+    bool set (bool in, Inkscape::XML::Document * doc, const Inkscape::XML::Node * node);
     Gtk::Widget * get_widget(void);
     Glib::ustring * string (void);
 };
@@ -78,8 +78,8 @@ private:
 public:
     ParamInt (const gchar * name, const gchar * guitext, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml);
     /** \brief  Returns \c _value */
-    int get (const Inkscape::XML::Document * doc) { return _value; }
-    int set (int in, Inkscape::XML::Document * doc);
+    int get (const Inkscape::XML::Document * doc, const Inkscape::XML::Node * node) { return _value; }
+    int set (int in, Inkscape::XML::Document * doc, const Inkscape::XML::Node * node);
     int max (void) { return _max; }
     int min (void) { return _min; }
     Gtk::Widget * get_widget(void);
@@ -132,8 +132,8 @@ private:
 public:
     ParamFloat (const gchar * name, const gchar * guitext, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml);
     /** \brief  Returns \c _value */
-    float get (const Inkscape::XML::Document * doc) { return _value; }
-    float set (float in, Inkscape::XML::Document * doc);
+    float get (const Inkscape::XML::Document * doc, const Inkscape::XML::Node * node) { return _value; }
+    float set (float in, Inkscape::XML::Document * doc, const Inkscape::XML::Node * node);
     float max (void) { return _max; }
     float min (void) { return _min; }
     Gtk::Widget * get_widget(void);
@@ -186,8 +186,8 @@ public:
     ParamString(const gchar * name, const gchar * guitext, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml);
     ~ParamString(void);
     /** \brief  Returns \c _value, with a \i const to protect it. */
-    const gchar * get (const Inkscape::XML::Document * doc) { return _value; }
-    const gchar * set (const gchar * in, Inkscape::XML::Document * doc);
+    const gchar * get (const Inkscape::XML::Document * doc, const Inkscape::XML::Node * node) { return _value; }
+    const gchar * set (const gchar * in, Inkscape::XML::Document * doc, const Inkscape::XML::Node * node);
     Gtk::Widget * get_widget(void);
     Glib::ustring * string (void);
 };
@@ -236,13 +236,13 @@ Parameter::make (Inkscape::XML::Node * in_repr, Inkscape::Extension::Extension *
     Parameter * param = NULL;
     if (!strcmp(type, "boolean")) {
         param = new ParamBool(name, guitext, in_ext, in_repr);
-    } else if (!strcmp(type, "int")) { 
+    } else if (!strcmp(type, "int")) {
         param = new ParamInt(name, guitext, in_ext, in_repr);
-    } else if (!strcmp(type, "float")) { 
+    } else if (!strcmp(type, "float")) {
         param = new ParamFloat(name, guitext, in_ext, in_repr);
-    } else if (!strcmp(type, "string")) { 
+    } else if (!strcmp(type, "string")) {
         param = new ParamString(name, guitext, in_ext, in_repr);
-    } 
+    }
 
     /* Note: param could equal NULL */
     return param;
@@ -251,13 +251,14 @@ Parameter::make (Inkscape::XML::Node * in_repr, Inkscape::Extension::Extension *
 /** \brief  A function to set the \c _value
     \param  in   The value to set to
     \param  doc  A document that should be used to set the value.
+    \param  node The node where the value may be placed
 
     This function sets the internal value, but it also sets the value
     in the preferences structure.  To put it in the right place, \c PREF_DIR
     and \c pref_name() are used.
 */
 bool
-ParamBool::set (bool in, Inkscape::XML::Document * doc)
+ParamBool::set (bool in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node)
 {
     _value = in;
 
@@ -271,13 +272,14 @@ ParamBool::set (bool in, Inkscape::XML::Document * doc)
 /** \brief  A function to set the \c _value
     \param  in   The value to set to
     \param  doc  A document that should be used to set the value.
+    \param  node The node where the value may be placed
 
     This function sets the internal value, but it also sets the value
     in the preferences structure.  To put it in the right place, \c PREF_DIR
     and \c pref_name() are used.
 */
 int
-ParamInt::set (int in, Inkscape::XML::Document * doc)
+ParamInt::set (int in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node)
 {
     _value = in;
     if (_value > _max) _value = _max;
@@ -293,13 +295,14 @@ ParamInt::set (int in, Inkscape::XML::Document * doc)
 /** \brief  A function to set the \c _value
     \param  in   The value to set to
     \param  doc  A document that should be used to set the value.
+    \param  node The node where the value may be placed
 
     This function sets the internal value, but it also sets the value
     in the preferences structure.  To put it in the right place, \c PREF_DIR
     and \c pref_name() are used.
 */
 float
-ParamFloat::set (float in, Inkscape::XML::Document * doc)
+ParamFloat::set (float in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node)
 {
     _value = in;
     if (_value > _max) _value = _max;
@@ -315,6 +318,7 @@ ParamFloat::set (float in, Inkscape::XML::Document * doc)
 /** \brief  A function to set the \c _value
     \param  in   The value to set to
     \param  doc  A document that should be used to set the value.
+    \param  node The node where the value may be placed
 
     This function sets the internal value, but it also sets the value
     in the preferences structure.  To put it in the right place, \c PREF_DIR
@@ -325,7 +329,7 @@ ParamFloat::set (float in, Inkscape::XML::Document * doc)
     the passed in value is duplicated using \c g_strdup().
 */
 const gchar *
-ParamString::set (const gchar * in, Inkscape::XML::Document * doc)
+ParamString::set (const gchar * in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node)
 {
     if (in == NULL) return NULL; /* Can't have NULL string */
 
@@ -342,90 +346,90 @@ ParamString::set (const gchar * in, Inkscape::XML::Document * doc)
 
 /** \brief  Wrapper to cast to the object and use it's function.  */
 bool
-Parameter::get_bool (const Inkscape::XML::Document * doc)
+Parameter::get_bool (const Inkscape::XML::Document * doc, const Inkscape::XML::Node * node)
 {
     ParamBool * boolpntr;
     boolpntr = dynamic_cast<ParamBool *>(this);
     if (boolpntr == NULL)
         throw Extension::param_wrong_type();
-    return boolpntr->get(doc); 
+    return boolpntr->get(doc, node);
 }
 
 /** \brief  Wrapper to cast to the object and use it's function.  */
 int
-Parameter::get_int (const Inkscape::XML::Document * doc)
+Parameter::get_int (const Inkscape::XML::Document * doc, const Inkscape::XML::Node * node)
 {
     ParamInt * intpntr;
     intpntr = dynamic_cast<ParamInt *>(this);
     if (intpntr == NULL)
         throw Extension::param_wrong_type();
-    return intpntr->get(doc); 
+    return intpntr->get(doc);
 }
 
 /** \brief  Wrapper to cast to the object and use it's function.  */
 float
-Parameter::get_float (const Inkscape::XML::Document * doc)
+Parameter::get_float (const Inkscape::XML::Document * doc, const Inkscape::XML::Node * node)
 {
     ParamFloat * floatpntr;
     floatpntr = dynamic_cast<ParamFloat *>(this);
     if (floatpntr == NULL)
         throw Extension::param_wrong_type();
-    return floatpntr->get(doc); 
+    return floatpntr->get(doc);
 }
 
 /** \brief  Wrapper to cast to the object and use it's function.  */
 const gchar *
-Parameter::get_string (const Inkscape::XML::Document * doc)
+Parameter::get_string (const Inkscape::XML::Document * doc, const Inkscape::XML::Node * node)
 {
     ParamString * stringpntr;
     stringpntr = dynamic_cast<ParamString *>(this);
     if (stringpntr == NULL)
         throw Extension::param_wrong_type();
-    return stringpntr->get(doc); 
+    return stringpntr->get(doc);
 }
 
 /** \brief  Wrapper to cast to the object and use it's function.  */
 bool
-Parameter::set_bool (bool in, Inkscape::XML::Document * doc)
+Parameter::set_bool (bool in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node)
 {
     ParamBool * boolpntr;
     boolpntr = dynamic_cast<ParamBool *>(this);
     if (boolpntr == NULL)
         throw Extension::param_wrong_type();
-    return boolpntr->set(in, doc); 
+    return boolpntr->set(in, doc, node);
 }
 
 /** \brief  Wrapper to cast to the object and use it's function.  */
 int
-Parameter::set_int (int in, Inkscape::XML::Document * doc)
+Parameter::set_int (int in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node)
 {
     ParamInt * intpntr;
     intpntr = dynamic_cast<ParamInt *>(this);
     if (intpntr == NULL)
         throw Extension::param_wrong_type();
-    return intpntr->set(in, doc); 
+    return intpntr->set(in, doc, node);
 }
 
 /** \brief  Wrapper to cast to the object and use it's function.  */
 float
-Parameter::set_float (float in, Inkscape::XML::Document * doc)
+Parameter::set_float (float in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node)
 {
     ParamFloat * floatpntr;
     floatpntr = dynamic_cast<ParamFloat *>(this);
     if (floatpntr == NULL)
         throw Extension::param_wrong_type();
-    return floatpntr->set(in, doc); 
+    return floatpntr->set(in, doc, node);
 }
 
 /** \brief  Wrapper to cast to the object and use it's function.  */
 const gchar *
-Parameter::set_string (const gchar * in, Inkscape::XML::Document * doc)
+Parameter::set_string (const gchar * in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node)
 {
     ParamString * stringpntr;
     stringpntr = dynamic_cast<ParamString *>(this);
     if (stringpntr == NULL)
         throw Extension::param_wrong_type();
-    return stringpntr->set(in, doc); 
+    return stringpntr->set(in, doc, node);
 }
 
 /** \brief  Initialize the object, to do that, copy the data. */
@@ -504,7 +508,7 @@ public:
                 describing the parameter. */
     ParamFloatAdjustment (ParamFloat * param) :
             Gtk::Adjustment(0.0, param->min(), param->max(), 0.1), _pref(param) {
-        this->set_value(_pref->get(NULL) /* \todo fix */); 
+        this->set_value(_pref->get(NULL) /* \todo fix */);
         this->signal_value_changed().connect(sigc::mem_fun(this, &ParamFloatAdjustment::val_changed));
         return;
     };
@@ -535,7 +539,7 @@ public:
                 describing the parameter. */
     ParamIntAdjustment (ParamInt * param) :
             Gtk::Adjustment(0.0, param->min(), param->max(), 1.0), _pref(param) {
-        this->set_value(_pref->get(NULL) /* \todo fix */); 
+        this->set_value(_pref->get(NULL) /* \todo fix */);
         this->signal_value_changed().connect(sigc::mem_fun(this, &ParamIntAdjustment::val_changed));
         return;
     };
@@ -559,7 +563,7 @@ ParamIntAdjustment::val_changed (void)
 
 /**
     \brief  Creates a Float Adjustment for a float parameter
-    
+
     Builds a hbox with a label and a float adjustment in it.
 */
 Gtk::Widget *
@@ -583,7 +587,7 @@ ParamFloat::get_widget (void)
 
 /**
     \brief  Creates a Int Adjustment for a int parameter
-    
+
     Builds a hbox with a label and a int adjustment in it.
 */
 Gtk::Widget *
@@ -615,7 +619,7 @@ private:
 public:
     /** \brief  Initialize the check button
         \param  param  Which parameter to adjust on changing the check button
-        
+
         This function sets the value of the checkbox to be that of the
         parameter, and then sets up a callback to \c on_toggle.
     */
@@ -642,7 +646,7 @@ ParamBoolCheckButton::on_toggle (void)
 
 /**
     \brief  Creates a bool check button for a bool parameter
-    
+
     Builds a hbox with a label and a check button in it.
 */
 Gtk::Widget *
@@ -696,7 +700,7 @@ ParamStringEntry::changed_text (void)
 
 /**
     \brief  Creates a text box for the string parameter
-    
+
     Builds a hbox with a label and a text box in it.
 */
 Gtk::Widget *
@@ -722,12 +726,12 @@ Glib::ustring *
 ParamBool::string (void)
 {
     Glib::ustring * mystring;
-    
-    if (_value) 
+
+    if (_value)
         mystring = new Glib::ustring("true");
     else
         mystring = new Glib::ustring("false");
-    
+
     return mystring;
 }
 
@@ -757,7 +761,7 @@ ParamString::string (void)
 {
     Glib::ustring * mystring = new Glib::ustring("");
     *mystring += "\"";
-    *mystring += _value; 
+    *mystring += _value;
     *mystring += "\"";
     return mystring;
 }