index 9ce4e41a935a3d4baf7b4ae4b29efc5ce8d3aba5..a5aa014a2759ecd41ae01fb121cb923f8d553a50 100644 (file)
#include "live_effects/effect.h"
#include "svg/svg.h"
#include "libnr/nr-values.h"
-
+#include "ui/widget/registered-widget.h"
#include <gtkmm.h>
#include "ui/widget/random.h"
min = -NR_HUGE;
max = NR_HUGE;
integer = false;
- regrandom = NULL;
defseed = default_seed;
startseed = defseed;
RandomParam::~RandomParam()
{
- if (regrandom)
- delete regrandom;
}
bool
if (success == 1) {
success += sp_svg_number_read_d(stringarray[1], &newstartseed);
if (success == 2) {
- param_set_value(newval, newstartseed);
+ param_set_value(newval, static_cast<long>(newstartseed));
} else {
param_set_value(newval, defseed);
}
}
void
-RandomParam::param_set_default()
+RandomParam::param_set_default()
{
param_set_value(defvalue, defseed);
}
void
-RandomParam::param_set_value(gdouble val, long newseed)
+RandomParam::param_set_value(gdouble val, long newseed)
{
value = val;
if (integer)
startseed = setup_seed(newseed);
seed = startseed;
-
- if (regrandom)
- regrandom->setValue(value, startseed);
}
void
-RandomParam::param_set_range(gdouble min, gdouble max)
+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
Gtk::Widget *
-RandomParam::param_newWidget(Gtk::Tooltips * tooltips)
+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->setProgrammatically = false;
+
+ regrandom->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change random parameter"));
+
+ return dynamic_cast<Gtk::Widget *> (regrandom);
}
RandomParam::operator gdouble()