/*
7 * Authors: see git history
8 * bulia byak <buliabyak@users.sf.net>
9 * Krzysztof KosiĆski <tweenk.pl@gmail.com>
11 * Copyright (C) 2018 Authors
12 * Released under GNU GPL v2+, read the file
'COPYING' for more information.
31 , _edit_transform(edit_transform)
32 , _edit_rotation(edit_rotation)
33 , _edit_marker_mode(edit_marker_mode)
50 if (!keep_knotholder) {
63 if (!keep_knotholder) {
99 bool changed_kh =
false;
126 auto lpe = cast<SPLPEItem>(
item);
128 lpe->getCurrentLPE() &&
129 lpe->getCurrentLPE()->isVisible() &&
130 lpe->getCurrentLPE()->providesKnotholder()))
3x3 matrix representing an affine transformation.
void reset_item()
FIXME: This thing is only called when the item needs to be updated in response to repr change.
void notifyAttributeChanged(Inkscape::XML::Node &node, GQuark key, Inkscape::Util::ptr_shared oldvalue, Inkscape::Util::ptr_shared newval) final
Attribute change callback.
Inkscape::XML::Node * lpeknotholder_listener_attached_for
Geom::Affine _edit_transform
bool knot_mouseover() const
Returns true if this ShapeEditor has a knot above which the mouse currently hovers.
void decrement_local_change()
void set_item(SPItem *item)
bool has_local_change() const
void unset_item(bool keep_knotholder=false)
bool has_knotholder() const
std::unique_ptr< KnotHolder > knotholder
ShapeEditor(SPDesktop *desktop, Geom::Affine edit_transform=Geom::identity(), double edit_rotation=0.0, int edit_marker_mode=-1)
std::unique_ptr< KnotHolder > lpeknotholder
Inkscape::XML::Node * knotholder_listener_attached_for
static bool _blockSetItem
Interface for refcounted XML nodes.
virtual void addObserver(NodeObserver &observer)=0
Add an object that will be notified of the changes to this node.
virtual void removeObserver(NodeObserver &observer)=0
Remove an object from the list of observers.
To do: update description of desktop.
SPDocument * getDocument() const
SPObject * getObjectByRepr(Inkscape::XML::Node *repr) const
Base class for visual SVG elements.
SPObject is an abstract base class of all of the document nodes at the SVG document level.
Editable view implementation.
static R & anchor(R &r)
Increments the reference count of a anchored object.
static R & release(R &r)
Decrements the reference count of a anchored object.
std::unique_ptr< KnotHolder > create_LPE_knot_holder(SPItem *item, SPDesktop *desktop)
std::unique_ptr< KnotHolder > create_knot_holder(SPItem *item, SPDesktop *desktop, double edit_rotation, int edit_marker_mode)
Helper class to stream background task notifications as a series of messages.
void remove(std::vector< T > &vec, T const &val)
Inkscape::ShapeEditor This is a container class which contains a knotholder for shapes.
Base class for live path effect items.