Code

Connector tool: make connectors avoid the convex hull of shapes.
[inkscape.git] / src / shape-editor.h
index 8780586c40b7ac227e94c8955b23bfb57c2f7ce2..98dbb35d7f94c266d5f4ac7899e963971f40c4be 100644 (file)
  */
 
 #include <forward.h>
-#include <libnr/nr-forward.h>
+#include <2geom/forward.h>
 
 namespace Inkscape { namespace NodePath { class Path; } }
 namespace Inkscape { namespace XML { class Node; } }
 
-#include "libnr/nr-path-code.h"
-#include "libnr/nr-point.h"
-#include <boost/optional.hpp>
-#include <vector>
-
 class KnotHolder;
 class SPDesktop;
 class SPNodeContext;
 class ShapeEditorsCollective;
+class LivePathEffectObject;
+
+#include "libnr/nr-path-code.h"
+#include <2geom/point.h>
+#include <boost/optional.hpp>
+#include <vector>
 
 enum SubType{
     SH_NODEPATH,
@@ -40,16 +41,11 @@ public:
     ~ShapeEditor();
 
     void set_item (SPItem *item, SubType type, bool keep_knotholder = false);
-    void set_item_lpe_path_parameter(SPItem *item, SPObject *lpeobject, const char * key);
-    void set_knotholder(KnotHolder * knot_holder);
-    void reset_item (SubType type, bool keep_knotholder = true);
+    void set_item_lpe_path_parameter(SPItem *item, LivePathEffectObject *lpeobject, const char * key);
     void unset_item (SubType type, bool keep_knotholder = false);
 
-    const SPItem *get_item (SubType type);
-
-    bool has_nodepath ();
-    bool has_knotholder ();
-    void update_knotholder ();
+    bool has_nodepath (); //((deprecated))
+    void update_knotholder (); //((deprecated))
 
     bool has_local_change (SubType type);
     void decrement_local_change (SubType type);
@@ -122,10 +118,19 @@ public:
 
     bool nodepath_edits_repr_key(gchar const *name);
 
+    // this one is only public because it's called from non-C++ repr changed callback
+    void shapeeditor_event_attr_changed(gchar const *name);
+
 private:
+    bool has_knotholder ();
+    void reset_item (SubType type, bool keep_knotholder = true);
+    const SPItem *get_item (SubType type);
+
     SPDesktop *desktop;
 
     Inkscape::NodePath::Path *nodepath;
+
+    // TODO: std::list<KnotHolder *> knotholders;
     KnotHolder *knotholder;
 
     ShapeEditorsCollective *container;
@@ -138,7 +143,8 @@ private:
     Geom::Point curvepoint_event; // int coords from event
     Geom::Point curvepoint_doc; // same, in doc coords
 
-    Inkscape::XML::Node *listener_attached_for;
+    Inkscape::XML::Node *knotholder_listener_attached_for;
+    Inkscape::XML::Node *nodepath_listener_attached_for;
 };