Code

better fix for lpe stack forking
[inkscape.git] / src / live_effects / parameter / point.h
index a47fa77f53391e894fa73288113ea04f97bae53e..ec61fcd88319d1b9564b942d07eba5ed7f834d11 100644 (file)
 #include <glib/gtypes.h>
 #include <2geom/point.h>
 
-#include "ui/widget/registry.h"
-#include "ui/widget/registered-widget.h"
 #include <gtkmm/tooltips.h>
 
 #include "live_effects/parameter/parameter.h"
 
-struct SPKnot;
+#include "knot-holder-entity.h"
 
 namespace Inkscape {
 
@@ -32,13 +30,15 @@ public:
                 const Glib::ustring& key,
                 Inkscape::UI::Widget::Registry* wr,
                 Effect* effect,
-                Geom::Point default_value = Geom::Point(0,0));
+                const gchar *handle_tip = NULL,
+               Geom::Point default_value = Geom::Point(0,0) ); // tip for automatically associated on-canvas handle
     virtual ~PointParam();
 
     virtual Gtk::Widget * param_newWidget(Gtk::Tooltips * tooltips);
 
     bool param_readSVGValue(const gchar * strvalue);
-    gchar * param_writeSVGValue() const;
+    gchar * param_getSVGValue() const;
+    inline const gchar *handleTip() const { return handle_tip ? handle_tip : param_tooltip.c_str(); }
 
     void param_setValue(Geom::Point newpoint);
     void param_set_default();
@@ -47,15 +47,21 @@ public:
 
     virtual void param_transform_multiply(Geom::Matrix const& /*postmul*/, bool /*set*/);
 
+    void set_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color);
+
+    virtual bool providesKnotHolderEntities() { return true; }
+    virtual void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item);
+
 private:
     PointParam(const PointParam&);
     PointParam& operator=(const PointParam&);
 
-    void on_button_click();
-
-    SPKnot *knot;
-
     Geom::Point defvalue;
+
+    SPKnotShapeType knot_shape;
+    SPKnotModeType knot_mode;
+    guint32 knot_color;
+    gchar *handle_tip;
 };