13#ifndef SEEN_SP_TAG_USE_H
14#define SEEN_SP_TAG_USE_H
20#include <sigc++/scoped_connection.h>
36 int tag()
const override {
return tag_of<
decltype(*this)>; }
41 std::optional<std::string>
href;
59 std::unique_ptr<SPTagUseReference>
ref;
Hand-rolled LLVM-style RTTI system for class hierarchies where dynamic_cast isn't fast enough.
constexpr int tag_of
Convenience function to retrieve the tag (class id) of a given type.
Interface for refcounted XML nodes.
Typed SVG document implementation.
Base class for visual SVG elements.
SPObject is an abstract base class of all of the document nodes at the SVG document level.
Inkscape::XML::Node * repr
std::unique_ptr< SPTagUseReference > ref
virtual SPItem * get_original()
virtual void href_changed(SPObject *old_ref, SPObject *ref)
virtual SPItem * root()
Returns the ultimate original of a SPTagUse (i.e.
void build(SPDocument *doc, Inkscape::XML::Node *repr) override
sigc::scoped_connection _changed_connection
std::optional< std::string > href
Inkscape::XML::Node * write(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned flags) override
static cairo_user_data_key_t key
Interface for XML documents.