summaryrefslogtreecommitdiffstats
path: root/src/gradient-drag.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gradient-drag.h')
-rw-r--r--src/gradient-drag.h18
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 );