Code

add copy button to LPE pathparam
[inkscape.git] / src / live_effects / parameter / parameter.cpp
index 893f0d7f1c88478e4833ad85f311f52c7a9d5200..a0ce04487494c14d449824b64a27cd2a1f5fdffc 100644 (file)
@@ -57,7 +57,6 @@ ScalarParam::ScalarParam( const Glib::ustring& label, const Glib::ustring& tip,
     min = -NR_HUGE;
     max = NR_HUGE;
     integer = false;
-    rsu = NULL;
     inc_step = 0.1;
     inc_page = 1;
     digits = 2;
@@ -65,8 +64,6 @@ ScalarParam::ScalarParam( const Glib::ustring& label, const Glib::ustring& tip,
 
 ScalarParam::~ScalarParam()
 {
-    if (rsu)
-        delete rsu;
 }
 
 bool
@@ -106,9 +103,6 @@ ScalarParam::param_set_value(gdouble val)
         value = max;
     if (value < min)
         value = min;
-
-    if (rsu && !rsu->is_updating())
-        rsu->setValue(value);
 }
 
 void
@@ -116,8 +110,6 @@ ScalarParam::param_set_range(gdouble min, gdouble max)
 {
     this->min = min;
     this->max = max;
-    if (rsu)
-        rsu->getS()->setRange(this->min, this->max);
 
     param_set_value(value); // reset value to see whether it is in ranges
 }
@@ -129,35 +121,29 @@ ScalarParam::param_make_integer(bool yes)
     digits = 0;
     inc_step = 1;
     inc_page = 10;
-    if (rsu) {
-        rsu->getS()->setDigits(digits);
-        rsu->getS()->setIncrements(inc_step, inc_page);
-    }
 }
 
 Gtk::Widget *
-ScalarParam::param_getWidget()
+ScalarParam::param_newWidget(Gtk::Tooltips * tooltips)
 {
-    if (!rsu) {
-        rsu = new Inkscape::UI::Widget::RegisteredScalar();
-        rsu->init(param_label, param_tooltip, param_key, *param_wr, param_effect->getRepr(), param_effect->getSPDoc());
-        rsu->setValue(value);
-        rsu->getS()->setDigits(digits);
-        rsu->getS()->setIncrements(inc_step, inc_page);
-        rsu->getS()->setRange(min, max);
-
-        rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
-    }
-    return dynamic_cast<Gtk::Widget *> (rsu->getS());
+    Inkscape::UI::Widget::RegisteredScalar *rsu = Gtk::manage( new Inkscape::UI::Widget::RegisteredScalar(
+        param_label, param_tooltip, param_key, *param_wr, param_effect->getRepr(), param_effect->getSPDoc() ) );
+
+    rsu->setValue(value);
+    rsu->setDigits(digits);
+    rsu->setIncrements(inc_step, inc_page);
+    rsu->setRange(min, max);
+    rsu->setProgrammatically = false;
+
+    rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
+
+    return dynamic_cast<Gtk::Widget *> (rsu);
 }
 
 void
 ScalarParam::param_set_digits(unsigned digits)
 {
     this->digits = digits;
-    if (rsu) {
-        rsu->getS()->setDigits(digits);
-    }
 }
 
 void
@@ -165,9 +151,6 @@ ScalarParam::param_set_increments(double step, double page)
 {
     inc_step = step;
     inc_page = page;
-    if (rsu) {
-        rsu->getS()->setIncrements(inc_step, inc_page);
-    }
 }