diff options
Diffstat (limited to 'src/gradient-drag.h')
| -rw-r--r-- | src/gradient-drag.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/gradient-drag.h b/src/gradient-drag.h index cf0a35c89..b4a64c78d 100644 --- a/src/gradient-drag.h +++ b/src/gradient-drag.h @@ -107,6 +107,11 @@ struct GrDragger { /* Update handles/tensors when mesh corner moved */ void moveMeshHandles( Geom::Point pc_old, MeshNodeOperation op ); + /* Following are for highlighting mesh handles when corner node is selected. */ + GrDragger *getMgCorner(); + void highlightNode(SPMeshNode* node, bool highlight, Geom::Point corner_pos); + void highlightCorner(bool highlight); + bool mayMerge(GrDragger *other); bool mayMerge(GrDraggable *da2); @@ -116,6 +121,11 @@ struct GrDragger { void fireDraggables(bool write_repr, bool scale_radial = false, bool merging_focus = false); +protected: + void updateControlSizesOverload(SPKnot * knot); + void updateControlSizes(); + sigc::connection sizeUpdatedConn; + private: sigc::connection _moved_connection; sigc::connection _clicked_connection; @@ -168,6 +178,7 @@ public: // FIXME: make more of this private! bool keep_selection; + GrDragger *getDraggerFor(GrDraggable *d); GrDragger *getDraggerFor(SPItem *item, GrPointType point_type, gint point_i, Inkscape::PaintTarget fill_or_stroke); void grabKnot(GrDragger *dragger, gint x, gint y, guint32 etime); @@ -185,6 +196,7 @@ public: // FIXME: make more of this private! std::vector<SPCtrlLine *> lines; void updateDraggers(); + void refreshDraggers(); void updateLines(); void updateLevels(); @@ -203,13 +215,15 @@ private: void deselect_all(); void addLine( SPItem *item, Geom::Point p1, Geom::Point p2, Inkscape::PaintTarget fill_or_stroke); - void addCurve(SPItem *item, Geom::Point p0, Geom::Point p1, Geom::Point p2, Geom::Point p3, Inkscape::PaintTarget fill_or_stroke); + void addCurve(SPItem *item, Geom::Point p0, Geom::Point p1, Geom::Point p2, Geom::Point p3, + int corner0, int corner1, int handle0, int handle1, Inkscape::PaintTarget fill_or_stroke); - void addDragger(GrDraggable *draggable); + GrDragger *addDragger(GrDraggable *draggable); void addDraggersRadial(SPRadialGradient *rg, SPItem *item, Inkscape::PaintTarget fill_or_stroke); void addDraggersLinear(SPLinearGradient *lg, SPItem *item, Inkscape::PaintTarget fill_or_stroke); void addDraggersMesh( SPMeshGradient *mg, SPItem *item, Inkscape::PaintTarget fill_or_stroke); + void refreshDraggersMesh(SPMeshGradient *mg, SPItem *item, Inkscape::PaintTarget fill_or_stroke); bool styleSet( const SPCSSAttr *css ); |
