2#ifndef INKSCAPE_LIVEPATHEFFECT_OBJECT_H
3#define INKSCAPE_LIVEPATHEFFECT_OBJECT_H
18namespace XML {
class Node;
struct Document; }
19namespace LivePathEffect {
class Effect; }
37 int tag()
const override {
return tag_of<
decltype(*this)>; }
constexpr int tag_of
Convenience function to retrieve the tag (class id) of a given type.
Interface for XML node observers.
Interface for refcounted XML nodes.
void notifyAttributeChanged(Inkscape::XML::Node &node, GQuark key, Inkscape::Util::ptr_shared oldval, Inkscape::Util::ptr_shared newval) final
Attribute change callback.
~LPENodeObserver() override=default
bool isOnClipboard() const
Inkscape::LivePathEffect::Effect const * get_lpe() const
void build(SPDocument *doc, Inkscape::XML::Node *repr) override
Virtual build: set livepatheffect attributes from its associated XML node.
Inkscape::LivePathEffect::Effect * get_lpe()
~LivePathEffectObject() override
void setOnClipboard()
Set lpeobject is on clipboard.
Inkscape::XML::Node * write(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags) override
Virtual write: write object attributes to repr.
Inkscape::LivePathEffect::Effect * lpe
LPENodeObserver & nodeObserver()
bool is_similar(LivePathEffectObject *that)
Inkscape::LivePathEffect::EffectType effecttype
LivePathEffectObject * fork_private_if_necessary(unsigned int nr_of_allowed_users=1)
If this has other users, create a new private duplicate and return it returns 'this' when no forking ...
void release() override
Virtual release of livepatheffect members before destruction.
Typed SVG document implementation.
SPObject is an abstract base class of all of the document nodes at the SVG document level.
Inkscape::XML::Node * repr
Inkscape::XML::Node * node
Helper class to stream background task notifications as a series of messages.
Interface for XML node observers.
static cairo_user_data_key_t key
Interface for XML documents.