Code

LPE: add Paste LPE verb + menu item. add scale ratios to curve stitch and path-along...
[inkscape.git] / src / live_effects / parameter / random.h
1 #ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_RANDOM_H\r
2 #define INKSCAPE_LIVEPATHEFFECT_PARAMETER_RANDOM_H\r
3 \r
4 /*\r
5  * Inkscape::LivePathEffectParameters\r
6  *\r
7 * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>\r
8  *\r
9  * Released under GNU GPL, read the file 'COPYING' for more information\r
10  */\r
11 \r
12 #include "live_effects/parameter/parameter.h"\r
13 #include <glibmm/ustring.h>\r
14 #include <2geom/point.h>\r
15 #include <2geom/path.h>\r
16 \r
17 #include "ui/widget/registry.h"\r
18 #include "ui/widget/registered-widget.h"\r
19 \r
20 namespace Inkscape {\r
21 \r
22 namespace LivePathEffect {\r
23 \r
24 class RandomParam : public Parameter {\r
25 public:\r
26     RandomParam(  const Glib::ustring& label,\r
27                 const Glib::ustring& tip,\r
28                 const Glib::ustring& key, \r
29                 Inkscape::UI::Widget::Registry* wr,\r
30                 Effect* effect,\r
31                 gdouble default_value = 1.0,\r
32                 long default_seed = 0);\r
33     virtual ~RandomParam();\r
34 \r
35     virtual bool param_readSVGValue(const gchar * strvalue);\r
36     virtual gchar * param_writeSVGValue() const;\r
37     virtual void param_set_default();\r
38 \r
39     virtual Gtk::Widget * param_getWidget();\r
40 \r
41     void param_set_value(gdouble val, long newseed);\r
42     void param_make_integer(bool yes = true);\r
43     void param_set_range(gdouble min, gdouble max);\r
44 \r
45     void resetRandomizer();\r
46 \r
47     operator gdouble();\r
48     inline gdouble get_value()\r
49         { return value; } ;\r
50 \r
51 protected:\r
52     long startseed;\r
53     long seed;\r
54     long defseed;\r
55 \r
56     gdouble value;\r
57     gdouble min;\r
58     gdouble max;\r
59     bool integer;\r
60     gdouble defvalue;\r
61 \r
62     Inkscape::UI::Widget::RegisteredRandom * regrandom;\r
63 \r
64 private:\r
65     long setup_seed(long);\r
66     gdouble rand();\r
67 \r
68     RandomParam(const RandomParam&);\r
69     RandomParam& operator=(const RandomParam&);\r
70 };\r
71 \r
72 } //namespace LivePathEffect\r
73 \r
74 } //namespace Inkscape\r
75 \r
76 #endif\r