diff options
| author | Tavmjong Bah <tavmjong@free.fr> | 2018-01-30 08:33:01 +0000 |
|---|---|---|
| committer | Tavmjong Bah <tavmjong@free.fr> | 2018-01-30 08:33:01 +0000 |
| commit | 267299811df952d08324a39008f52c19641de9e0 (patch) | |
| tree | 28fef736a52cb7a72119d119be8eb663ad20a77f /src/object/sp-root.h | |
| parent | Translations: update inkscape.pot (diff) | |
| download | inkscape-267299811df952d08324a39008f52c19641de9e0.tar.gz inkscape-267299811df952d08324a39008f52c19641de9e0.zip | |
Move classes derived from SPObject to own directory.
A lot of header clean-up.
Diffstat (limited to 'src/object/sp-root.h')
| -rw-r--r-- | src/object/sp-root.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/object/sp-root.h b/src/object/sp-root.h new file mode 100644 index 000000000..4a37840d9 --- /dev/null +++ b/src/object/sp-root.h @@ -0,0 +1,78 @@ +/** \file + * SPRoot: SVG \<svg\> implementation. + */ +/* + * Authors: + * Lauris Kaplinski <lauris@kaplinski.com> + * + * Copyright (C) 1999-2002 Lauris Kaplinski + * Copyright (C) 2000-2001 Ximian, Inc. + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef SP_ROOT_H_SEEN +#define SP_ROOT_H_SEEN + +#include "version.h" +#include "svg/svg-length.h" +#include "sp-item-group.h" +#include "viewbox.h" +#include "sp-dimensions.h" + +#define SP_ROOT(obj) (dynamic_cast<SPRoot*>((SPObject*)obj)) +#define SP_IS_ROOT(obj) (dynamic_cast<const SPRoot*>((SPObject*)obj) != NULL) + +class SPDefs; + +/** \<svg\> element */ +class SPRoot : public SPGroup, public SPViewBox, public SPDimensions { +public: + SPRoot(); + virtual ~SPRoot(); + + struct { + Inkscape::Version svg; + Inkscape::Version inkscape; + } version, original; + + char *onload; + + /** + * Primary \<defs\> element where we put new defs (patterns, gradients etc.). + * + * At the time of writing, this is chosen as the first \<defs\> child of + * this \<svg\> element: see writers of this member in sp-root.cpp. + */ + SPDefs *defs; + + virtual void build(SPDocument *document, Inkscape::XML::Node *repr); + virtual void release(); + virtual void set(unsigned int key, char const* value); + virtual void update(SPCtx *ctx, unsigned int flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); + + virtual void modified(unsigned int flags); + virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); + virtual void remove_child(Inkscape::XML::Node* child); + + virtual Inkscape::DrawingItem* show(Inkscape::Drawing &drawing, unsigned int key, unsigned int flags); + virtual void print(SPPrintContext *ctx); + virtual const char* displayName() const; +private: + void unset_x_and_y(); + void setRootDimensions(); +}; + +#endif /* !SP_ROOT_H_SEEN */ + +/* + 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:fileencoding=utf-8:textwidth=99 : |
