91df62e810e72a9ac94d90ede4d44c3ba86e6ded
1 #define INKSCAPE_LIVEPATHEFFECT_PARAMETER_CPP\r
2 \r
3 /*\r
4 * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>\r
5 *\r
6 * Released under GNU GPL, read the file 'COPYING' for more information\r
7 */\r
8 \r
9 #include "live_effects/parameter/parameter.h"\r
10 #include "live_effects/effect.h"\r
11 #include "svg/svg.h"\r
12 \r
13 #include <gtkmm.h>\r
14 #include "ui/widget/scalar.h"\r
15 \r
16 #include "svg/stringstream.h"\r
17 \r
18 #include "verbs.h"\r
19 \r
20 #define noLPEREALPARAM_DEBUG\r
21 \r
22 namespace Inkscape {\r
23 \r
24 namespace LivePathEffect {\r
25 \r
26 \r
27 Parameter::Parameter( const Glib::ustring& label, const Glib::ustring& tip,\r
28 const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr,\r
29 Effect* effect )\r
30 {\r
31 param_label = label;\r
32 param_tooltip = tip;\r
33 param_key = key;\r
34 param_wr = wr;\r
35 param_effect = effect;\r
36 }\r
37 \r
38 \r
39 \r
40 /*###########################################\r
41 * REAL PARAM\r
42 */\r
43 RealParam::RealParam( const Glib::ustring& label, const Glib::ustring& tip,\r
44 const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr,\r
45 Effect* effect, gdouble default_value)\r
46 : Parameter(label, tip, key, wr, effect)\r
47 {\r
48 defvalue = default_value;\r
49 value = defvalue;\r
50 rsu = NULL;\r
51 }\r
52 \r
53 RealParam::~RealParam()\r
54 {\r
55 if (rsu)\r
56 delete rsu;\r
57 }\r
58 \r
59 bool\r
60 RealParam::param_readSVGValue(const gchar * strvalue)\r
61 {\r
62 double newval;\r
63 unsigned int success = sp_svg_number_read_d(strvalue, &newval);\r
64 if (success == 1) {\r
65 param_set_value(newval);\r
66 return true;\r
67 }\r
68 return false;\r
69 }\r
70 \r
71 gchar *\r
72 RealParam::param_writeSVGValue() const\r
73 {\r
74 Inkscape::SVGOStringStream os;\r
75 os << value;\r
76 gchar * str = g_strdup(os.str().c_str());\r
77 return str;\r
78 }\r
79 \r
80 void\r
81 RealParam::param_set_default() \r
82 {\r
83 param_set_value(defvalue);\r
84 }\r
85 \r
86 void\r
87 RealParam::param_set_value(gdouble val) \r
88 {\r
89 value = val;\r
90 if (rsu)\r
91 rsu->setValue(value);\r
92 }\r
93 \r
94 \r
95 Gtk::Widget *\r
96 RealParam::param_getWidget()\r
97 {\r
98 if (!rsu) {\r
99 rsu = new Inkscape::UI::Widget::RegisteredScalar();\r
100 rsu->init(param_label, param_tooltip, param_key, *param_wr, param_effect->getRepr(), param_effect->getSPDoc());\r
101 rsu->setValue(value);\r
102 rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));\r
103 }\r
104 return dynamic_cast<Gtk::Widget *> (rsu->getS());\r
105 }\r
106 \r
107 \r
108 } /* namespace LivePathEffect */\r
109 \r
110 } /* namespace Inkscape */\r
111 \r
112 /*\r
113 Local Variables:\r
114 mode:c++\r
115 c-file-style:"stroustrup"\r
116 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))\r
117 indent-tabs-mode:nil\r
118 fill-column:99\r
119 End:\r
120 */\r
121 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :\r