diff options
Diffstat (limited to '')
-rw-r--r-- | src/ui/shape-editor.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/ui/shape-editor.h b/src/ui/shape-editor.h new file mode 100644 index 0000000..ff666fe --- /dev/null +++ b/src/ui/shape-editor.h @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/** @file + * Inkscape::ShapeEditor + * This is a container class which contains a knotholder for shapes. + * It is attached to a single item. + *//* + * Authors: see git history + * bulia byak <buliabyak@users.sf.net> + * + * Copyright (C) 2018 Authors + * Released under GNU GPL v2+, read the file 'COPYING' for more information. + */ +#ifndef SEEN_SHAPE_EDITOR_H +#define SEEN_SHAPE_EDITOR_H + +#include <2geom/affine.h> + +class KnotHolder; +class LivePathEffectObject; +class SPDesktop; +class SPItem; + +namespace Inkscape { namespace XML { class Node; } +namespace UI { + +class ShapeEditor { +public: + + ShapeEditor(SPDesktop *desktop, Geom::Affine edit_transform = Geom::identity(), double edit_rotation = 0.0, int edit_marker_mode = -1); + ~ShapeEditor(); + + void set_item(SPItem *item); + void unset_item(bool keep_knotholder = false); + + void update_knotholder(); //((deprecated)) + + bool has_local_change(); + void decrement_local_change(); + + bool knot_mouseover() const; + KnotHolder *knotholder; + KnotHolder *lpeknotholder; + bool has_knotholder(); + static void blockSetItem(bool b) { _blockSetItem = b; } // kludge + static void event_attr_changed(Inkscape::XML::Node * /*repr*/, char const *name, char const * /*old_value*/, + char const * /*new_value*/, bool /*is_interactive*/, void *data); +private: + void reset_item(); + static bool _blockSetItem; + + SPDesktop *desktop; + Inkscape::XML::Node *knotholder_listener_attached_for; + Inkscape::XML::Node *lpeknotholder_listener_attached_for; + Geom::Affine _edit_transform; + double _edit_rotation; + int _edit_marker_mode; +}; + +} // namespace UI +} // namespace Inkscape + +#endif // SEEN_SHAPE_EDITOR_H + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + |