diff options
| author | Michael Soegtrop <MSoegtrop@yahoo.de> | 2017-06-05 13:56:11 +0000 |
|---|---|---|
| committer | Michael Soegtrop <MSoegtrop@yahoo.de> | 2017-06-05 13:56:11 +0000 |
| commit | 132e83fd6f6124731dc773ae2978d115ca492ef2 (patch) | |
| tree | b561a4dbbacd7eecbdbae3fa220a353375ccecf8 /src/gradient-drag.h | |
| parent | updated to trunk (diff) | |
| parent | [Bug #1695016] Xaml export misses some radialGradients. (diff) | |
| download | inkscape-132e83fd6f6124731dc773ae2978d115ca492ef2.tar.gz inkscape-132e83fd6f6124731dc773ae2978d115ca492ef2.zip | |
merged with latest version of lpe-bool and trunk
(bzr r14862.2.3)
Diffstat (limited to 'src/gradient-drag.h')
| -rw-r--r-- | src/gradient-drag.h | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/gradient-drag.h b/src/gradient-drag.h index b07f748a7..1fe2fb3f0 100644 --- a/src/gradient-drag.h +++ b/src/gradient-drag.h @@ -34,7 +34,7 @@ class SPKnot; class SPDesktop; class SPCSSAttr; class SPLinearGradient; -class SPMesh; +class SPMeshGradient; class SPItem; class SPObject; class SPRadialGradient; @@ -105,7 +105,12 @@ struct GrDragger { void updateDependencies(bool write_repr); /* Update handles/tensors when mesh corner moved */ - void updateHandles( Geom::Point pc_old, MeshNodeOperation op ); + 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,11 +121,16 @@ 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; sigc::connection _doubleclicked_connection; - sigc::connection _grabbed_connection; + sigc::connection _mousedown_connection; sigc::connection _ungrabbed_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( SPMesh *mg, 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 ); |
