summaryrefslogtreecommitdiffstats
path: root/src/live_effects/parameter
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2008-01-15 16:33:29 +0000
committerjohanengelen <johanengelen@users.sourceforge.net>2008-01-15 16:33:29 +0000
commitecb158a9d53ee78c83dc61c8cfb79e27ecec5958 (patch)
tree6aab72d928aa91f24a208a64f3df0be611c39e5d /src/live_effects/parameter
parentprepare LPE parameter widgets to be owned by multiple dialogs, as it should be. (diff)
downloadinkscape-ecb158a9d53ee78c83dc61c8cfb79e27ecec5958.tar.gz
inkscape-ecb158a9d53ee78c83dc61c8cfb79e27ecec5958.zip
RegisteredWidget has been renamed to RegisteredWdg. This is a deprecated class, all that use it should be recoded and RegisteredWdg should be deleted as soon as possible.
The *new* RegisteredWidget is a template class and should be subclassed (eventually) from Gtk::Widget, for example RegisteredWidget<Scalar> will be subclassed from Scalar, which is subclassed from Labelled, => Gtk::HBox => Gtk::Widget. This way, a RegisteredWidget<T> can be directly used as Gtk::Widget, and gtk::manage works, etc! This all should solve the problem of having multiple widgets for the same parameters. (bzr r4496)
Diffstat (limited to 'src/live_effects/parameter')
-rw-r--r--src/live_effects/parameter/random.cpp43
-rw-r--r--src/live_effects/parameter/random.h3
2 files changed, 17 insertions, 29 deletions
diff --git a/src/live_effects/parameter/random.cpp b/src/live_effects/parameter/random.cpp
index 9ce4e41a9..850bb1a75 100644
--- a/src/live_effects/parameter/random.cpp
+++ b/src/live_effects/parameter/random.cpp
@@ -35,7 +35,6 @@ RandomParam::RandomParam( const Glib::ustring& label, const Glib::ustring& tip,
min = -NR_HUGE;
max = NR_HUGE;
integer = false;
- regrandom = NULL;
defseed = default_seed;
startseed = defseed;
@@ -44,8 +43,6 @@ RandomParam::RandomParam( const Glib::ustring& label, const Glib::ustring& tip,
RandomParam::~RandomParam()
{
- if (regrandom)
- delete regrandom;
}
bool
@@ -96,9 +93,6 @@ RandomParam::param_set_value(gdouble val, long newseed)
startseed = setup_seed(newseed);
seed = startseed;
-
- if (regrandom)
- regrandom->setValue(value, startseed);
}
void
@@ -106,20 +100,12 @@ RandomParam::param_set_range(gdouble min, gdouble max)
{
this->min = min;
this->max = max;
- if (regrandom)
- regrandom->getR()->setRange(min, max);
-
- param_set_value(value, startseed); // reset value, to check whether it is in range
}
void
RandomParam::param_make_integer(bool yes)
{
integer = yes;
- if (regrandom) {
- regrandom->getR()->setDigits(0);
- regrandom->getR()->setIncrements(1, 10);
- }
}
void
@@ -132,19 +118,24 @@ RandomParam::resetRandomizer()
Gtk::Widget *
RandomParam::param_newWidget(Gtk::Tooltips * tooltips)
{
- // WIDGET TODO: This implementation is incorrect, it should create a *new* widget for the caller, not just return an already created widget
- g_warning("RandomParam::param_newWidget still needs recoding to work with multiple document views");
- // TODO: add a button to set a different startseed
- if (!regrandom) {
- regrandom = new Inkscape::UI::Widget::RegisteredRandom();
- regrandom->init(param_label, param_tooltip, param_key, *param_wr, param_effect->getRepr(), param_effect->getSPDoc());
- regrandom->setValue(value, startseed);
- if (integer)
- param_make_integer();
-
- regrandom->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change random parameter"));
+ Inkscape::UI::Widget::RegisteredRandom* regrandom = Gtk::manage(
+ new Inkscape::UI::Widget::RegisteredRandom( param_label,
+ param_tooltip,
+ param_key,
+ *param_wr,
+ param_effect->getRepr(),
+ param_effect->getSPDoc() ) );
+
+ regrandom->setValue(value, startseed);
+ if (integer) {
+ regrandom->setDigits(0);
+ regrandom->setIncrements(1, 10);
}
- return dynamic_cast<Gtk::Widget *> (regrandom->getR());
+ regrandom->setRange(min, max);
+
+ regrandom->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change random parameter"));
+
+ return dynamic_cast<Gtk::Widget *> (regrandom);
}
RandomParam::operator gdouble()
diff --git a/src/live_effects/parameter/random.h b/src/live_effects/parameter/random.h
index 1b7d4cf16..6583ca556 100644
--- a/src/live_effects/parameter/random.h
+++ b/src/live_effects/parameter/random.h
@@ -15,7 +15,6 @@
#include <2geom/path.h>
#include "ui/widget/registry.h"
-#include "ui/widget/registered-widget.h"
namespace Inkscape {
@@ -59,8 +58,6 @@ protected:
bool integer;
gdouble defvalue;
- Inkscape::UI::Widget::RegisteredRandom * regrandom;
-
private:
long setup_seed(long);
gdouble rand();