12#include <glibmm/i18n.h>
13#include <glibmm/ustring.h>
20#define noLPERANDOMPARAM_DEBUG
23static constexpr int RAND_m = 2147483647;
27static constexpr int BSize = 0x100;
33 Effect* effect, gdouble default_value,
long default_seed,
bool randomsign)
51 double newval, newstartseed;
52 gchar** stringarray = g_strsplit (strvalue,
";", 2);
61 g_strfreev(stringarray);
64 g_strfreev(stringarray);
163 auto const regrandom = Gtk::make_managed<UI::Widget::RegisteredRandom>(
param_label,
171 regrandom->setDigits(0);
172 regrandom->setIncrements(1, 10);
174 regrandom->setRange(
min,
max);
175 regrandom->setProgrammatically =
false;
177 regrandom->set_undo_parameters(_(
"Change random parameter"), INKSCAPE_ICON(
"dialog-path-effects"));
186RandomParam::operator gdouble()
189 return (rand() * value) - (rand() * value);
191 return rand() * value;
198 if (lSeed <= 0) lSeed = -(lSeed % (
RAND_m - 1)) + 1;
Inkscape::XML::Node * getRepr()
Glib::ustring param_getSVGValue() const override
EffectType effectType() const
Inkscape::UI::Widget::Registry * param_wr
Glib::ustring param_tooltip
Glib::ustring param_label
RandomParam(const Glib::ustring &label, const Glib::ustring &tip, const Glib::ustring &key, Inkscape::UI::Widget::Registry *wr, Effect *effect, gdouble default_value=1.0, long default_seed=0, bool randomsign=false)
void param_set_value(gdouble val, long newseed)
Gtk::Widget * param_newWidget() override
void param_make_integer(bool yes=true)
bool param_readSVGValue(const gchar *strvalue) override
Glib::ustring param_getDefaultSVGValue() const override
void param_set_range(gdouble min, gdouble max)
Glib::ustring param_getSVGValue() const override
void param_set_default() override
void param_update_default(gdouble default_value)
Macro for icon names used in Inkscape.
constexpr double SCALARPARAM_G_MAXDOUBLE
static constexpr int RAND_a
static constexpr int RAND_r
static constexpr int RAND_m
static constexpr int BSize
static constexpr int RAND_q
static cairo_user_data_key_t key
unsigned int sp_svg_number_read_d(gchar const *str, double *val)
TODO: insert short description here.