44 if (flags & SP_OBJECT_MODIFIED_FLAG) {
45 flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
48 flags &= SP_OBJECT_MODIFIED_CASCADE;
49 std::vector<SPObject*> l(this->
childList(
true));
51 if (flags || (
child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) {
52 child->updateDisplay(ctx, flags);
59 if (flags & SP_OBJECT_MODIFIED_FLAG) {
60 flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
63 flags &= SP_OBJECT_MODIFIED_CASCADE;
64 std::vector<SPObject *> l;
71 if (flags || (
child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) {
72 child->emitModified(flags);
79 if (flags & SP_OBJECT_WRITE_BUILD) {
85 std::vector<Inkscape::XML::Node *> l;
92 for (
auto i=l.rbegin();i!=l.rend();++i) {
98 child.updateRepr(flags);
Lookup dictionary for attributes/properties.
Interface for refcounted XML nodes.
virtual void addChild(Node *child, Node *after)=0
Insert another node as a child of this node.
Inkscape::XML::Node * write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags) override
void modified(unsigned int flags) override
void build(SPDocument *doc, Inkscape::XML::Node *repr) override
void update(SPCtx *ctx, unsigned int flags) override
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
std::vector< SPObject * > childList(bool add_ref, Action action=ActionGeneral)
Retrieves the children as a std vector object, optionally ref'ing the children in the process,...
virtual Inkscape::XML::Node * write(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags)
void readAttr(char const *key)
Read value of key attribute from XML node into object.
virtual void build(SPDocument *doc, Inkscape::XML::Node *repr)
static R & release(R &r)
Decrements the reference count of a anchored object.
SPObject * sp_object_unref(SPObject *object, SPObject *owner)
Decrease reference count of object, with possible debugging and finalization.
SPObject * sp_object_ref(SPObject *object, SPObject *owner)
Increase reference count of object, with possible debugging.
Interface for XML documents.
virtual Node * createElement(char const *name)=0
Interface for XML documents.