diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2008-01-15 16:33:29 +0000 |
|---|---|---|
| committer | johanengelen <johanengelen@users.sourceforge.net> | 2008-01-15 16:33:29 +0000 |
| commit | ecb158a9d53ee78c83dc61c8cfb79e27ecec5958 (patch) | |
| tree | 6aab72d928aa91f24a208a64f3df0be611c39e5d /src/live_effects/parameter/random.cpp | |
| parent | prepare LPE parameter widgets to be owned by multiple dialogs, as it should be. (diff) | |
| download | inkscape-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/random.cpp')
| -rw-r--r-- | src/live_effects/parameter/random.cpp | 43 |
1 files changed, 17 insertions, 26 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() |
