diff options
| author | Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> | 2019-06-04 10:17:00 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marcjeanmougin@free.fr> | 2019-07-15 10:35:33 +0000 |
| commit | abe7037c965055f7a10f8e2c15578d167a7f027e (patch) | |
| tree | fe6c8e673dd4d4e0bce3bfa3c63a369db4557b53 /src/knot-holder-entity.cpp | |
| parent | Check knot's pattern still exists before update (diff) | |
| download | inkscape-abe7037c965055f7a10f8e2c15578d167a7f027e.tar.gz inkscape-abe7037c965055f7a10f8e2c15578d167a7f027e.zip | |
Derive pattern knots off the same subclass
Diffstat (limited to 'src/knot-holder-entity.cpp')
| -rw-r--r-- | src/knot-holder-entity.cpp | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/src/knot-holder-entity.cpp b/src/knot-holder-entity.cpp index e8f97e453..75f36089c 100644 --- a/src/knot-holder-entity.cpp +++ b/src/knot-holder-entity.cpp @@ -173,40 +173,39 @@ static Geom::Point sp_pattern_knot_get(SPPattern const *pat, gdouble x, gdouble } bool -PatternKnotHolderEntityXY::knot_missing() const +PatternKnotHolderEntity::knot_missing() const { - SPPattern *pat = _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); + SPPattern *pat = _pattern(); return (pat == nullptr); } -bool -PatternKnotHolderEntityAngle::knot_missing() const +SPPattern* +PatternKnotHolderEntity::_pattern() const { - SPPattern *pat = _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); - return (pat == nullptr); -} - -bool -PatternKnotHolderEntityScale::knot_missing() const -{ - SPPattern *pat = _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); - return (pat == nullptr); + return _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); } Geom::Point PatternKnotHolderEntityXY::knot_get() const { - SPPattern *pat = _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); + SPPattern *pat = _pattern(); return sp_pattern_knot_get(pat, 0, 0); } Geom::Point PatternKnotHolderEntityAngle::knot_get() const { - SPPattern *pat = _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); + SPPattern *pat = _pattern(); return sp_pattern_knot_get(pat, pat->width(), 0); } +Geom::Point +PatternKnotHolderEntityScale::knot_get() const +{ + SPPattern *pat = _pattern(); + return sp_pattern_knot_get(pat, pat->width(), pat->height()); +} + void PatternKnotHolderEntityAngle::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) { @@ -234,7 +233,7 @@ PatternKnotHolderEntityAngle::knot_set(Geom::Point const &p, Geom::Point const & void PatternKnotHolderEntityScale::knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) { - SPPattern *pat = _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); + SPPattern *pat = _pattern(); // FIXME: this snapping should be done together with knowing whether control was pressed. If GDK_CONTROL_MASK, then constrained snapping should be used. Geom::Point p_snapped = snap_knot_position(p, state); @@ -262,13 +261,6 @@ PatternKnotHolderEntityScale::knot_set(Geom::Point const &p, Geom::Point const & } -Geom::Point -PatternKnotHolderEntityScale::knot_get() const -{ - SPPattern *pat = _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); - return sp_pattern_knot_get(pat, pat->width(), pat->height()); -} - /* Filter manipulation */ void FilterKnotHolderEntity::knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state) { |
