index 91df62e810e72a9ac94d90ede4d44c3ba86e6ded..0e9295a20bebb26d15455c302278ce90c6dabb45 100644 (file)
#include "live_effects/parameter/parameter.h"\r
#include "live_effects/effect.h"\r
#include "svg/svg.h"\r
+#include "libnr/nr-values.h"\r
\r
#include <gtkmm.h>\r
#include "ui/widget/scalar.h"\r
/*###########################################\r
* REAL PARAM\r
*/\r
-RealParam::RealParam( const Glib::ustring& label, const Glib::ustring& tip,\r
+ScalarParam::ScalarParam( const Glib::ustring& label, const Glib::ustring& tip,\r
const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr,\r
Effect* effect, gdouble default_value)\r
: Parameter(label, tip, key, wr, effect)\r
{\r
defvalue = default_value;\r
value = defvalue;\r
+ min = -NR_HUGE;\r
+ max = NR_HUGE;\r
+ integer = false;\r
rsu = NULL;\r
}\r
\r
-RealParam::~RealParam()\r
+ScalarParam::~ScalarParam()\r
{\r
if (rsu)\r
delete rsu;\r
}\r
\r
bool\r
-RealParam::param_readSVGValue(const gchar * strvalue)\r
+ScalarParam::param_readSVGValue(const gchar * strvalue)\r
{\r
double newval;\r
unsigned int success = sp_svg_number_read_d(strvalue, &newval);\r
}\r
\r
gchar *\r
-RealParam::param_writeSVGValue() const\r
+ScalarParam::param_writeSVGValue() const\r
{\r
Inkscape::SVGOStringStream os;\r
os << value;\r
}\r
\r
void\r
-RealParam::param_set_default() \r
+ScalarParam::param_set_default() \r
{\r
param_set_value(defvalue);\r
}\r
\r
void\r
-RealParam::param_set_value(gdouble val) \r
+ScalarParam::param_set_value(gdouble val) \r
{\r
value = val;\r
- if (rsu)\r
+ if (integer)\r
+ value = round(value);\r
+ if (value > max)\r
+ value = max;\r
+ if (value < min)\r
+ value = min;\r
+\r
+ if (rsu && !rsu->is_updating())\r
rsu->setValue(value);\r
}\r
\r
+void\r
+ScalarParam::param_set_range(gdouble min, gdouble max) \r
+{\r
+ this->min = min;\r
+ this->max = max;\r
+ if (rsu)\r
+ rsu->getS()->setRange(min, max);\r
+\r
+ param_set_value(value); // reset value to see whether it is in ranges\r
+}\r
+\r
+void\r
+ScalarParam::param_make_integer(bool yes)\r
+{\r
+ integer = yes;\r
+ if (rsu) {\r
+ rsu->getS()->setDigits(0);\r
+ rsu->getS()->setIncrements(1, 10);\r
+ }\r
+}\r
\r
Gtk::Widget *\r
-RealParam::param_getWidget()\r
+ScalarParam::param_getWidget()\r
{\r
if (!rsu) {\r
rsu = new Inkscape::UI::Widget::RegisteredScalar();\r
rsu->init(param_label, param_tooltip, param_key, *param_wr, param_effect->getRepr(), param_effect->getSPDoc());\r
rsu->setValue(value);\r
+ if (integer)\r
+ param_make_integer();\r
+\r
rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));\r
}\r
return dynamic_cast<Gtk::Widget *> (rsu->getS());\r
\r
\r
} /* namespace LivePathEffect */\r
-\r
} /* namespace Inkscape */\r
\r
/*\r