index d8659600abeca866d814b7e42742e596f4f1ec64..23faffc308c7506f38eb85f686bfbacdcc4676c2 100644 (file)
-#ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_H\r
-#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_H\r
-\r
-/*\r
- * Inkscape::LivePathEffectParameters\r
- *\r
-* Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>\r
- *\r
- * Released under GNU GPL, read the file 'COPYING' for more information\r
- */\r
-\r
-#include <glibmm/ustring.h>\r
-#include <2geom/point.h>\r
-#include <2geom/path.h>\r
-\r
-#include "ui/widget/registry.h"\r
-#include "ui/widget/registered-widget.h"\r
-\r
-namespace Gtk {\r
- class Widget;\r
-}\r
-\r
-namespace Inkscape {\r
-\r
-namespace LivePathEffect {\r
-\r
-class Effect;\r
-\r
-class Parameter {\r
-public:\r
- Parameter( const Glib::ustring& label,\r
- const Glib::ustring& tip,\r
- const Glib::ustring& key,\r
- Inkscape::UI::Widget::Registry* wr,\r
- Effect* effect);\r
- virtual ~Parameter() {};\r
-\r
- virtual bool param_readSVGValue(const gchar * strvalue) = 0; // returns true if new value is valid / accepted.\r
- virtual gchar * param_writeSVGValue() const = 0;\r
-\r
- virtual void param_set_default() = 0;\r
-\r
- // This returns pointer to the parameter's widget to be put in the live-effects dialog. Must also create the\r
- // necessary widget if it does not exist yet.\r
- virtual Gtk::Widget * param_getWidget() = 0;\r
- virtual Glib::ustring * param_getTooltip() { return ¶m_tooltip; };\r
-\r
- Glib::ustring param_key;\r
- Inkscape::UI::Widget::Registry * param_wr;\r
- Glib::ustring param_label;\r
-\r
-protected:\r
- Glib::ustring param_tooltip;\r
-\r
- Effect* param_effect;\r
-\r
-private:\r
- Parameter(const Parameter&);\r
- Parameter& operator=(const Parameter&);\r
-};\r
-\r
-\r
-class ScalarParam : public Parameter {\r
-public:\r
- ScalarParam( const Glib::ustring& label,\r
- const Glib::ustring& tip,\r
- const Glib::ustring& key, \r
- Inkscape::UI::Widget::Registry* wr,\r
- Effect* effect,\r
- gdouble default_value = 1.0);\r
- ~ScalarParam();\r
-\r
- bool param_readSVGValue(const gchar * strvalue);\r
- gchar * param_writeSVGValue() const;\r
-\r
- void param_set_default();\r
- void param_set_value(gdouble val);\r
- void param_make_integer(bool yes = true);\r
- void param_set_range(gdouble min, gdouble max);\r
-\r
- Gtk::Widget * param_getWidget();\r
-\r
- inline operator gdouble()\r
- { return value; };\r
-\r
-private:\r
- ScalarParam(const ScalarParam&);\r
- ScalarParam& operator=(const ScalarParam&);\r
-\r
- gdouble value;\r
- gdouble min;\r
- gdouble max;\r
- bool integer;\r
- gdouble defvalue;\r
- Inkscape::UI::Widget::RegisteredScalar * rsu;\r
-};\r
-\r
-} //namespace LivePathEffect\r
-\r
-} //namespace Inkscape\r
-\r
-#endif\r
+#ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_H
+#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_H
+
+/*
+ * Inkscape::LivePathEffectParameters
+ *
+* Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#include <glibmm/ustring.h>
+#include <2geom/point.h>
+#include <2geom/path.h>
+
+struct SPDesktop;
+struct SPItem;
+
+namespace Gtk {
+ class Widget;
+ class Tooltips;
+}
+
+namespace Inkscape {
+
+namespace NodePath {
+ class Path ;
+}
+
+namespace UI {
+namespace Widget {
+ class Registry;
+}
+}
+
+namespace LivePathEffect {
+
+class Effect;
+
+class Parameter {
+public:
+ Parameter( const Glib::ustring& label,
+ const Glib::ustring& tip,
+ const Glib::ustring& key,
+ Inkscape::UI::Widget::Registry* wr,
+ Effect* effect);
+ virtual ~Parameter() {};
+
+ virtual bool param_readSVGValue(const gchar * strvalue) = 0; // returns true if new value is valid / accepted.
+ virtual gchar * param_writeSVGValue() const = 0;
+
+ virtual void param_set_default() = 0;
+
+ // This creates a new widget (newed with Gtk::manage(new ...);)
+ virtual Gtk::Widget * param_newWidget(Gtk::Tooltips * tooltips) = 0;
+
+ virtual Glib::ustring * param_getTooltip() { return ¶m_tooltip; };
+
+ virtual void param_editOncanvas(SPItem * /*item*/, SPDesktop * /*dt*/) {};
+ virtual void param_setup_nodepath(Inkscape::NodePath::Path */*np*/) {};
+
+ virtual void param_transform_multiply(Geom::Matrix const& /*postmul*/, bool /*set*/) {};
+
+ Glib::ustring param_key;
+ Inkscape::UI::Widget::Registry * param_wr;
+ Glib::ustring param_label;
+
+ bool oncanvas_editable;
+
+protected:
+ Glib::ustring param_tooltip;
+
+ Effect* param_effect;
+
+ void param_write_to_repr(const char * svgd);
+
+private:
+ Parameter(const Parameter&);
+ Parameter& operator=(const Parameter&);
+};
+
+
+class ScalarParam : public Parameter {
+public:
+ ScalarParam( const Glib::ustring& label,
+ const Glib::ustring& tip,
+ const Glib::ustring& key,
+ Inkscape::UI::Widget::Registry* wr,
+ Effect* effect,
+ gdouble default_value = 1.0);
+ virtual ~ScalarParam();
+
+ virtual bool param_readSVGValue(const gchar * strvalue);
+ virtual gchar * param_writeSVGValue() const;
+
+ virtual void param_set_default();
+ void param_set_value(gdouble val);
+ void param_make_integer(bool yes = true);
+ void param_set_range(gdouble min, gdouble max);
+ void param_set_digits(unsigned digits);
+ void param_set_increments(double step, double page);
+
+ virtual Gtk::Widget * param_newWidget(Gtk::Tooltips * tooltips);
+
+ inline operator gdouble()
+ { return value; };
+
+protected:
+ gdouble value;
+ gdouble min;
+ gdouble max;
+ bool integer;
+ gdouble defvalue;
+ unsigned digits;
+ double inc_step;
+ double inc_page;
+
+private:
+ ScalarParam(const ScalarParam&);
+ ScalarParam& operator=(const ScalarParam&);
+};
+
+} //namespace LivePathEffect
+
+} //namespace Inkscape
+
+#endif
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :