X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fknotholder.h;h=25d6d46381f8d83490a5d389ca9c55c6afe540c4;hb=429ce09996dfe0ef44a115a89465c69eb4d376a6;hp=316db208217e74317b56227b9c304966b860848c;hpb=edfb6f4ecc50bd6d9d7acfe7fc36b915eb921c85;p=inkscape.git diff --git a/src/knotholder.h b/src/knotholder.h index 316db2082..25d6d4638 100644 --- a/src/knotholder.h +++ b/src/knotholder.h @@ -21,6 +21,7 @@ #include "knot-enums.h" #include "forward.h" #include "libnr/nr-forward.h" +#include <2geom/forward.h> #include "knot-holder-entity.h" #include @@ -30,12 +31,6 @@ class Node; } } - -typedef void (* SPKnotHolderSetFunc) (SPItem *item, NR::Point const &p, NR::Point const &origin, guint state); -typedef NR::Point (* SPKnotHolderGetFunc) (SPItem *item); -/* fixme: Think how to make callbacks most sensitive (Lauris) */ -typedef void (* SPKnotHolderReleasedFunc) (SPItem *item); - class KnotHolder { public: KnotHolder() {} // do nothing in the default constructor @@ -44,21 +39,26 @@ public: void update_knots(); - void knot_moved_handler(SPKnot *knot, NR::Point const *p, guint state); + void knot_moved_handler(SPKnot *knot, Geom::Point const &p, guint state); void knot_clicked_handler(SPKnot *knot, guint state); - void knot_ungrabbed_handler(); + void knot_ungrabbed_handler(SPKnot *knot); + + void add(KnotHolderEntity *e); void add_pattern_knotholder(); -//private: + const SPItem *getItem() { return item; } + + friend class ShapeEditor; + +protected: SPDesktop *desktop; SPItem *item; // TODO: Remove this and keep the actual item (e.g., SPRect etc.) in the item-specific knotholders + Inkscape::XML::Node *repr; ///< repr of the item, for setting and releasing listeners. std::list entity; SPKnotHolderReleasedFunc released; - Inkscape::XML::Node *repr; ///< repr of the item, for setting and releasing listeners. - gboolean local_change; ///< if true, no need to recreate knotholder if repr was changed. };