From 2eaeeb327bb39110f87a29cd9269a1df41a7ed27 Mon Sep 17 00:00:00 2001 From: johanengelen Date: Wed, 29 Aug 2007 19:13:13 +0000 Subject: [PATCH] Add BoolParam for LPE's --- po/POTFILES.in | 2 + src/live_effects/parameter/Makefile_insert | 2 + src/live_effects/parameter/bool.cpp | 93 ++++++++++++++++++++++ src/live_effects/parameter/bool.h | 57 +++++++++++++ 4 files changed, 154 insertions(+) create mode 100644 src/live_effects/parameter/bool.cpp create mode 100644 src/live_effects/parameter/bool.h diff --git a/po/POTFILES.in b/po/POTFILES.in index b3781edf7..66779dc35 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -268,6 +268,8 @@ src/live_effects/lpe-gears.cpp src/live_effects/lpe-skeletalstrokes.cpp src/live_effects/parameter/parameter.cpp src/live_effects/parameter/path.cpp +src/live_effects/parameter/point.cpp +src/live_effects/parameter/bool.cpp src/main.cpp src/main-cmdlineact.cpp src/menus-skeleton.h diff --git a/src/live_effects/parameter/Makefile_insert b/src/live_effects/parameter/Makefile_insert index a737da1f0..688af37de 100644 --- a/src/live_effects/parameter/Makefile_insert +++ b/src/live_effects/parameter/Makefile_insert @@ -8,6 +8,8 @@ live_effects/parameter/clean: live_effects_parameter_liblpeparam_a_SOURCES = \ live_effects/parameter/parameter.cpp \ live_effects/parameter/parameter.h \ + live_effects/parameter/bool.cpp \ + live_effects/parameter/bool.h \ live_effects/parameter/point.cpp \ live_effects/parameter/point.h \ live_effects/parameter/enum.h \ diff --git a/src/live_effects/parameter/bool.cpp b/src/live_effects/parameter/bool.cpp new file mode 100644 index 000000000..af3449dff --- /dev/null +++ b/src/live_effects/parameter/bool.cpp @@ -0,0 +1,93 @@ +#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_BOOL_CPP + +/* + * Copyright (C) Johan Engelen 2007 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/parameter/bool.h" +#include "live_effects/effect.h" +#include "svg/svg.h" +#include "svg/stringstream.h" +#include +#include "widgets/icon.h" + +#include "inkscape.h" +#include "verbs.h" +#include "helper-fns.h" + +#define noLPEBOOLPARAM_DEBUG + +namespace Inkscape { + +namespace LivePathEffect { + +BoolParam::BoolParam( const Glib::ustring& label, const Glib::ustring& tip, + const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr, + Effect* effect, bool default_value ) + : Parameter(label, tip, key, wr, effect), defvalue(default_value) +{ + checkwdg = NULL; +} + +BoolParam::~BoolParam() +{ + if (checkwdg) + delete checkwdg; +} + +void +BoolParam::param_set_default() +{ + param_setValue(defvalue); +} + +bool +BoolParam::param_readSVGValue(const gchar * strvalue) +{ + param_setValue(helperfns_read_bool(strvalue, defvalue)); + return true; // not correct: if value is unacceptable, should return false! +} + +gchar * +BoolParam::param_writeSVGValue() const +{ + gchar * str = g_strdup(value ? "true" : "false"); + return str; +} + +Gtk::Widget * +BoolParam::param_getWidget() +{ + 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 (checkwdg->_button); +} + +void +BoolParam::param_setValue(bool newvalue) +{ + value = newvalue; + if (checkwdg) + checkwdg->setActive(newvalue); +} + +} /* namespace LivePathEffect */ + +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/parameter/bool.h b/src/live_effects/parameter/bool.h new file mode 100644 index 000000000..cf8c9c94d --- /dev/null +++ b/src/live_effects/parameter/bool.h @@ -0,0 +1,57 @@ +#ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_BOOL_H +#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_BOOL_H + +/* + * Inkscape::LivePathEffectParameters + * +* Copyright (C) Johan Engelen 2007 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include + +#include "ui/widget/registry.h" +#include "ui/widget/registered-widget.h" + +#include "live_effects/parameter/parameter.h" + +namespace Inkscape { + +namespace LivePathEffect { + + +class BoolParam : public Parameter { +public: + BoolParam( const Glib::ustring& label, + const Glib::ustring& tip, + const Glib::ustring& key, + Inkscape::UI::Widget::Registry* wr, + Effect* effect, + bool default_value = false); + ~BoolParam(); + + Gtk::Widget * param_getWidget(); + + bool param_readSVGValue(const gchar * strvalue); + gchar * param_writeSVGValue() const; + + void param_setValue(bool newvalue); + void param_set_default(); + +private: + BoolParam(const BoolParam&); + BoolParam& operator=(const BoolParam&); + + Inkscape::UI::Widget::RegisteredCheckButton * checkwdg; + + bool value; + bool defvalue; +}; + + +} //namespace LivePathEffect + +} //namespace Inkscape + +#endif -- 2.30.2