/*
5 * Authors: see git history
7 * Copyright (C) 2018 Authors
8 * Released under GNU GPL v2+, read the file
'COPYING' for more information.
10#ifndef INKSCAPE_SP_STYLE_ELEM_H
11#define INKSCAPE_SP_STYLE_ELEM_H
50 int tag()
const override {
return tag_of<
decltype(*this)>; }
58 std::vector<std::unique_ptr<SPStyle>>
get_styles()
const;
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.
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
void notifyChildRemoved(Inkscape::XML::Node &, Inkscape::XML::Node &, Inkscape::XML::Node *) final
Child removal callback.
void notifyChildAdded(Inkscape::XML::Node &, Inkscape::XML::Node &, Inkscape::XML::Node *) final
Child addition callback.
void notifyChildOrderChanged(Inkscape::XML::Node &, Inkscape::XML::Node &, Inkscape::XML::Node *, Inkscape::XML::Node *) final
Child order change callback.
~SPStyleElemNodeObserver() override=default
void notifyContentChanged(Inkscape::XML::Node &, Inkscape::Util::ptr_shared, Inkscape::Util::ptr_shared) final
Content change callback.
~SPStyleElemTextNodeObserver() override=default
SPStyleElemNodeObserver & nodeObserver()
CRStyleSheet * style_sheet
friend SPStyleElemNodeObserver
friend SPStyleElemTextNodeObserver
void build(SPDocument *doc, Inkscape::XML::Node *repr) override
SPStyleElemTextNodeObserver & textNodeObserver()
void read_content() override
Inkscape::XML::Node * write(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags) override
std::vector< std::unique_ptr< SPStyle > > get_styles() const
Get the list of styles.
Declaration of the CRStatement class.
Interface for XML node observers.
static cairo_user_data_key_t key
Interface for XML documents.
An abstraction of a css stylesheet as defined by the css2 spec in chapter 4.