Code

Add checkbox for LPEs to temporarily disable them on canvas (but keep them applied...
[inkscape.git] / src / live_effects / parameter / bool.cpp
index 78ce179391264dc541eb6b59f80120dc369a24c6..96859938cdda4d2936ceb9b3f7e789a5daf69558 100644 (file)
 #include "svg/stringstream.h"
 #include <gtkmm.h>
 #include "widgets/icon.h"
-
+#include "ui/widget/registered-widget.h"
 #include "inkscape.h"
 #include "verbs.h"
 #include "helper-fns.h"
 
-#define noLPEBOOLPARAM_DEBUG
-
 namespace Inkscape {
 
 namespace LivePathEffect {
@@ -28,13 +26,10 @@ BoolParam::BoolParam( const Glib::ustring& label, const Glib::ustring& tip,
                       Effect* effect, bool default_value )
     : Parameter(label, tip, key, wr, effect), value(default_value), defvalue(default_value)
 {
-    checkwdg = NULL;
 }
 
 BoolParam::~BoolParam()
 {
-    if (checkwdg)
-        delete checkwdg;
 }
 
 void
@@ -58,23 +53,28 @@ BoolParam::param_writeSVGValue() const
 }
 
 Gtk::Widget *
-BoolParam::param_getWidget()
+BoolParam::param_newWidget(Gtk::Tooltips * /*tooltips*/)
 {
-    if (!checkwdg) {
-        checkwdg = new Inkscape::UI::Widget::RegisteredCheckButton();
-        checkwdg->init(param_label, param_tooltip, param_key, *param_wr, false, param_effect->getRepr(), param_effect->getSPDoc());
-        checkwdg->setActive(value);
-        checkwdg->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change bool parameter"));
-    }
-    return dynamic_cast<Gtk::Widget *> (checkwdg->_button);
+    Inkscape::UI::Widget::RegisteredCheckButton * checkwdg = Gtk::manage(
+        new Inkscape::UI::Widget::RegisteredCheckButton( param_label,
+                                                         param_tooltip,
+                                                         param_key,
+                                                         *param_wr,
+                                                         false,
+                                                         param_effect->getRepr(),
+                                                         param_effect->getSPDoc()) );
+
+    checkwdg->setActive(value);
+    checkwdg->setProgrammatically = false;
+    checkwdg->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change bool parameter"));
+
+    return dynamic_cast<Gtk::Widget *> (checkwdg);
 }
 
 void
 BoolParam::param_setValue(bool newvalue)
 {
     value = newvalue;
-    if (checkwdg)
-        checkwdg->setActive(newvalue);
 }
 
 } /* namespace LivePathEffect */