diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2011-08-27 10:20:13 +0000 |
|---|---|---|
| committer | Krzysztof Kosinski <tweenk.pl@gmail.com> | 2011-08-27 10:20:13 +0000 |
| commit | 84194ec2d0b9830437a5470320422265d5dd8c35 (patch) | |
| tree | 120f0d8dca7933dad09e455dbc4ec91f33f75029 /src/extension/implementation/implementation.h | |
| parent | Refactor SPItem bounding box methods: remove NRRect usage and make code (diff) | |
| download | inkscape-84194ec2d0b9830437a5470320422265d5dd8c35.tar.gz inkscape-84194ec2d0b9830437a5470320422265d5dd8c35.zip | |
Remove NRRect use from the extension system
(bzr r10582.1.2)
Diffstat (limited to 'src/extension/implementation/implementation.h')
| -rw-r--r-- | src/extension/implementation/implementation.h | 93 |
1 files changed, 55 insertions, 38 deletions
diff --git a/src/extension/implementation/implementation.h b/src/extension/implementation/implementation.h index bd3edb43b..4a01a3e84 100644 --- a/src/extension/implementation/implementation.h +++ b/src/extension/implementation/implementation.h @@ -9,8 +9,8 @@ important for implementing the extensions themselves. This file contains the base class for all of that. */ -#ifndef __INKSCAPE_EXTENSION_IMPLEMENTATION_H__ -#define __INKSCAPE_EXTENSION_IMPLEMENTATION_H__ +#ifndef SEEN_INKSCAPE_EXTENSION_IMPLEMENTATION_H +#define SEEN_INKSCAPE_EXTENSION_IMPLEMENTATION_H #include <gtk/gtk.h> #include <gdkmm/types.h> @@ -54,16 +54,23 @@ public: virtual ~Implementation() {} /* ----- Basic functions for all Extension ----- */ - virtual bool load(Inkscape::Extension::Extension *module); - - virtual void unload(Inkscape::Extension::Extension *module); - virtual ImplementationDocumentCache * newDocCache (Inkscape::Extension::Extension * ext, Inkscape::UI::View::View * doc); + virtual bool load(Inkscape::Extension::Extension *module) { return true; } + + virtual void unload(Inkscape::Extension::Extension *module) {} + /** \brief Create a new document cache object + * This function just returns \c NULL. Subclasses are likely + * to reimplement it to do something useful. + * \param ext The extension that is referencing us + * \param doc The document to create the cache of + * \return A new document cache that is valid as long as the document + * is not changed. */ + virtual ImplementationDocumentCache * newDocCache (Inkscape::Extension::Extension * ext, Inkscape::UI::View::View * doc) { return NULL; } /** Verify any dependencies. */ - virtual bool check(Inkscape::Extension::Extension *module); + virtual bool check(Inkscape::Extension::Extension *module) { return true; } - virtual bool cancelProcessing (void); - virtual void commitDocument (void); + virtual bool cancelProcessing () { return true; } + virtual void commitDocument () {} /* ----- Input functions ----- */ /** Find out information about the file. */ @@ -71,65 +78,75 @@ public: gchar const *filename); virtual SPDocument *open(Inkscape::Extension::Input *module, - gchar const *filename); + gchar const *filename) { return NULL; } /* ----- Output functions ----- */ /** Find out information about the file. */ virtual Gtk::Widget *prefs_output(Inkscape::Extension::Output *module); - virtual void save(Inkscape::Extension::Output *module, SPDocument *doc, gchar const *filename); + virtual void save(Inkscape::Extension::Output *module, SPDocument *doc, gchar const *filename) {} /* ----- Effect functions ----- */ /** Find out information about the file. */ virtual Gtk::Widget * prefs_effect(Inkscape::Extension::Effect *module, - Inkscape::UI::View::View * view, - sigc::signal<void> * changeSignal, - ImplementationDocumentCache * docCache); + Inkscape::UI::View::View *view, + sigc::signal<void> *changeSignal, + ImplementationDocumentCache *docCache); virtual void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, - ImplementationDocumentCache * docCache); + ImplementationDocumentCache *docCache) {} /* ----- Print functions ----- */ - virtual unsigned setup(Inkscape::Extension::Print *module); - virtual unsigned set_preview(Inkscape::Extension::Print *module); + virtual unsigned setup(Inkscape::Extension::Print *module) { return 0; } + virtual unsigned set_preview(Inkscape::Extension::Print *module) { return 0; } virtual unsigned begin(Inkscape::Extension::Print *module, - SPDocument *doc); - virtual unsigned finish(Inkscape::Extension::Print *module); - virtual bool textToPath(Inkscape::Extension::Print *ext); - virtual bool fontEmbedded(Inkscape::Extension::Print * ext); + SPDocument *doc) { return 0; } + virtual unsigned finish(Inkscape::Extension::Print *module) { return 0; } + /** \brief Tell the printing engine whether text should be text or path + * Default value is false because most printing engines will support + * paths more than they'll support text. (at least they do today) + * \retval true Render the text as a path + * \retval false Render text using the text function (above) */ + virtual bool textToPath(Inkscape::Extension::Print *ext) { return false; } + /** \brief Get "fontEmbedded" param, i.e. tell the printing engine whether fonts should be embedded + * Only available for Adobe Type 1 fonts in EPS output as of now + * \retval true Fonts have to be embedded in the output so that the user might not need + * to install fonts to have the interpreter read the document correctly + * \retval false Do not embed fonts */ + virtual bool fontEmbedded(Inkscape::Extension::Print * ext) { return false; } /* ----- Rendering methods ----- */ virtual unsigned bind(Inkscape::Extension::Print *module, - Geom::Affine const *transform, - float opacity); - virtual unsigned release(Inkscape::Extension::Print *module); - virtual unsigned comment(Inkscape::Extension::Print *module, const char * comment); + Geom::Affine const &transform, + float opacity) { return 0; } + virtual unsigned release(Inkscape::Extension::Print *module) { return 0; } + virtual unsigned comment(Inkscape::Extension::Print *module, char const *comment) { return 0; } virtual unsigned fill(Inkscape::Extension::Print *module, Geom::PathVector const &pathv, - Geom::Affine const *ctm, + Geom::Affine const &ctm, SPStyle const *style, - NRRect const *pbox, - NRRect const *dbox, - NRRect const *bbox); + Geom::OptRect const &pbox, + Geom::OptRect const &dbox, + Geom::OptRect const &bbox) { return 0; } virtual unsigned stroke(Inkscape::Extension::Print *module, Geom::PathVector const &pathv, - Geom::Affine const *transform, + Geom::Affine const &transform, SPStyle const *style, - NRRect const *pbox, - NRRect const *dbox, - NRRect const *bbox); + Geom::OptRect const &pbox, + Geom::OptRect const &dbox, + Geom::OptRect const &bbox) { return 0; } virtual unsigned image(Inkscape::Extension::Print *module, unsigned char *px, unsigned int w, unsigned int h, unsigned int rs, - Geom::Affine const *transform, - SPStyle const *style); + Geom::Affine const &transform, + SPStyle const *style) { return 0; } virtual unsigned text(Inkscape::Extension::Print *module, char const *text, - Geom::Point p, - SPStyle const *style); - virtual void processPath(Inkscape::XML::Node * node); + Geom::Point const &p, + SPStyle const *style) { return 0; } + virtual void processPath(Inkscape::XML::Node * node) {} }; |
