44
45
guint size; /**< Always square. */
45
NR::Point pos; /**< Our desktop coordinates. */
46
NR::Point grabbed_rel_pos; /**< Grabbed relative position. */
47
NR::Point drag_origin; /**< Origin of drag. */
46
Geom::Point pos; /**< Our desktop coordinates. */
47
Geom::Point grabbed_rel_pos; /**< Grabbed relative position. */
48
Geom::Point drag_origin; /**< Origin of drag. */
48
49
GtkAnchorType anchor; /**< Anchor. */
50
51
SPKnotShapeType shape; /**< Shape type. */
66
67
double pressure; /**< The tablet pen pressure when the knot is being dragged. */
71
sigc::signal<void, Geom::Point const &, Geom::Point const &, guint> _moved_signal;
72
sigc::signal<void, guint> _click_signal;
73
sigc::signal<Geom::Point> _ungrabbed_signal;
75
sigc::signal<void, SPKnot *, Geom::Point const &, guint> _moved_signal;
76
sigc::signal<void, SPKnot *, guint> _click_signal;
77
sigc::signal<void, SPKnot *> _ungrabbed_signal;
68
79
//TODO: all the members above should eventualle become private, accessible via setters/getters
69
80
inline void setSize (guint i) {size = i;}
70
81
inline void setShape (guint i) {shape = (SPKnotShapeType) i;}
127
138
void (* doubleclicked) (SPKnot *knot, guint state);
128
139
void (* grabbed) (SPKnot *knot, guint state);
129
140
void (* ungrabbed) (SPKnot *knot, guint state);
130
void (* moved) (SPKnot *knot, NR::Point *position, guint state);
141
void (* moved) (SPKnot *knot, Geom::Point const &position, guint state);
131
142
void (* stamped) (SPKnot *know, guint state);
133
144
/** Request knot to move to absolute position. */
134
bool (* request) (SPKnot *knot, NR::Point *pos, guint state);
145
bool (* request) (SPKnot *knot, Geom::Point const &pos, guint state);
136
147
/** Find complex distance from knot to point. */
137
gdouble (* distance) (SPKnot *knot, NR::Point *pos, guint state);
148
gdouble (* distance) (SPKnot *knot, Geom::Point const &pos, guint state);
140
151
GType sp_knot_get_type();
152
163
void sp_knot_set_flag(SPKnot *knot, guint flag, bool set);
153
164
void sp_knot_update_ctrl(SPKnot *knot);
155
void sp_knot_request_position(SPKnot *knot, NR::Point *pos, guint state);
156
gdouble sp_knot_distance(SPKnot *knot, NR::Point *p, guint state);
166
void sp_knot_request_position(SPKnot *knot, Geom::Point const &pos, guint state);
167
gdouble sp_knot_distance(SPKnot *knot, Geom::Point const &p, guint state);
158
void sp_knot_start_dragging(SPKnot *knot, NR::Point p, gint x, gint y, guint32 etime);
169
void sp_knot_start_dragging(SPKnot *knot, Geom::Point const &p, gint x, gint y, guint32 etime);
160
171
/** Moves knot and emits "moved" signal. */
161
void sp_knot_set_position(SPKnot *knot, NR::Point *p, guint state);
172
void sp_knot_set_position(SPKnot *knot, Geom::Point const &p, guint state);
163
174
/** Moves knot without any signal. */
164
void sp_knot_moveto(SPKnot *knot, NR::Point *p);
175
void sp_knot_moveto(SPKnot *knot, Geom::Point const &p);
166
NR::Point sp_knot_position(SPKnot const *knot);
177
void sp_knot_handler_request_position(GdkEvent *event, SPKnot *knot);
178
Geom::Point sp_knot_position(SPKnot const *knot);
169
181
#endif /* !__SP_KNOT_H__ */