X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fextension%2Fimplementation%2Fimplementation.cpp;h=6090b72d071a747be60a013d8f4291d9fd389a0d;hb=2b635337710b879262acf4906dd85ee99b69f474;hp=c959d50b316124bafc7694fb3a9add2807f144e2;hpb=6b15695578f07a3f72c4c9475c1a261a3021472a;p=inkscape.git diff --git a/src/extension/implementation/implementation.cpp b/src/extension/implementation/implementation.cpp index c959d50b3..6090b72d0 100644 --- a/src/extension/implementation/implementation.cpp +++ b/src/extension/implementation/implementation.cpp @@ -1,6 +1,6 @@ /* Author: Ted Gould - Copyright (c) 2003-2005 + Copyright (c) 2003-2005,2007 This code is licensed under the GNU GPL. See COPYING for details. @@ -19,6 +19,12 @@ #include #include +#include "selection.h" +#include "desktop.h" +#include "desktop-handles.h" +#include "ui/view/view.h" +#include "util/glib-list-iterators.h" + namespace Inkscape { namespace Extension { namespace Implementation { @@ -29,75 +35,112 @@ namespace Implementation { * \param module The Extension that should be loaded. */ bool -Implementation::load(Inkscape::Extension::Extension *module) { +Implementation::load(Inkscape::Extension::Extension */*module*/) { return TRUE; } /* Implementation::load */ void -Implementation::unload(Inkscape::Extension::Extension *module) { +Implementation::unload(Inkscape::Extension::Extension */*module*/) { return; } /* Implementation::unload */ +/** \brief Create a new document cache object + \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. + + This function just returns \c NULL. Subclasses are likely + to reimplement it to do something useful. +*/ +ImplementationDocumentCache * +Implementation::newDocCache( Inkscape::Extension::Extension * /*ext*/, Inkscape::UI::View::View * /*view*/ ) { + return NULL; +} + bool -Implementation::check(Inkscape::Extension::Extension *module) { +Implementation::check(Inkscape::Extension::Extension */*module*/) { /* If there are no checks, they all pass */ return TRUE; } /* Implemenation::check */ +bool +Implementation::cancelProcessing (void) { + return true; +} + +void +Implementation::commitDocument (void) { + return; +} + Gtk::Widget * -Implementation::prefs_input(Inkscape::Extension::Input *module, gchar const *filename) { - return module->autogui(); +Implementation::prefs_input(Inkscape::Extension::Input *module, gchar const */*filename*/) { + return module->autogui(NULL, NULL); } /* Implementation::prefs_input */ SPDocument * -Implementation::open(Inkscape::Extension::Input *module, gchar const *filename) { +Implementation::open(Inkscape::Extension::Input */*module*/, gchar const */*filename*/) { /* throw open_failed(); */ return NULL; } /* Implementation::open */ Gtk::Widget * Implementation::prefs_output(Inkscape::Extension::Output *module) { - return module->autogui(); + return module->autogui(NULL, NULL); } /* Implementation::prefs_output */ void -Implementation::save(Inkscape::Extension::Output *module, SPDocument *doc, gchar const *filename) { +Implementation::save(Inkscape::Extension::Output */*module*/, SPDocument */*doc*/, gchar const */*filename*/) { /* throw save_fail */ return; } /* Implementation::save */ Gtk::Widget * -Implementation::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *view) { - return module->autogui(); +Implementation::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal * changeSignal, ImplementationDocumentCache * docCache) { + if (module->param_visible_count() == 0) return NULL; + + SPDocument * current_document = view->doc(); + + using Inkscape::Util::GSListConstIterator; + GSListConstIterator selected = + sp_desktop_selection((SPDesktop *)view)->itemList(); + Inkscape::XML::Node * first_select = NULL; + if (selected != NULL) { + const SPItem * item = *selected; + first_select = SP_OBJECT_REPR(item); + } + + return module->autogui(current_document, first_select, changeSignal); } /* Implementation::prefs_effect */ void -Implementation::effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document) { +Implementation::effect(Inkscape::Extension::Effect */*module*/, Inkscape::UI::View::View */*document*/, ImplementationDocumentCache * /*docCache*/) { /* throw filter_fail */ return; } /* Implementation::filter */ unsigned int -Implementation::setup(Inkscape::Extension::Print *module) +Implementation::setup(Inkscape::Extension::Print */*module*/) { return 0; } unsigned int -Implementation::set_preview(Inkscape::Extension::Print *module) +Implementation::set_preview(Inkscape::Extension::Print */*module*/) { return 0; } unsigned int -Implementation::begin(Inkscape::Extension::Print *module, SPDocument *doc) +Implementation::begin(Inkscape::Extension::Print */*module*/, SPDocument */*doc*/) { return 0; } unsigned int -Implementation::finish(Inkscape::Extension::Print *module) +Implementation::finish(Inkscape::Extension::Print */*module*/) { return 0; } @@ -105,51 +148,57 @@ Implementation::finish(Inkscape::Extension::Print *module) /* Rendering methods */ unsigned int -Implementation::bind(Inkscape::Extension::Print *module, NRMatrix const *transform, float opacity) +Implementation::bind(Inkscape::Extension::Print */*module*/, Geom::Matrix const */*transform*/, float /*opacity*/) { return 0; } unsigned int -Implementation::release(Inkscape::Extension::Print *module) +Implementation::release(Inkscape::Extension::Print */*module*/) { return 0; } unsigned int -Implementation::comment(Inkscape::Extension::Print *module, char const *comment) +Implementation::comment(Inkscape::Extension::Print */*module*/, char const */*comment*/) { return 0; } unsigned int -Implementation::fill(Inkscape::Extension::Print *module, NRBPath const *bpath, NRMatrix const *ctm, SPStyle const *style, - NRRect const *pbox, NRRect const *dbox, NRRect const *bbox) +Implementation::fill(Inkscape::Extension::Print */*module*/, Geom::PathVector const &/*pathv*/, Geom::Matrix const */*ctm*/, SPStyle const */*style*/, + NRRect const */*pbox*/, NRRect const */*dbox*/, NRRect const */*bbox*/) { return 0; } unsigned int -Implementation::stroke(Inkscape::Extension::Print *module, NRBPath const *bpath, NRMatrix const *transform, SPStyle const *style, - NRRect const *pbox, NRRect const *dbox, NRRect const *bbox) +Implementation::stroke(Inkscape::Extension::Print */*module*/, Geom::PathVector const &/*pathv*/, Geom::Matrix const */*transform*/, SPStyle const */*style*/, + NRRect const */*pbox*/, NRRect const */*dbox*/, NRRect const */*bbox*/) { return 0; } unsigned int -Implementation::image(Inkscape::Extension::Print *module, unsigned char *px, unsigned int w, unsigned int h, unsigned int rs, - NRMatrix const *transform, SPStyle const *style) +Implementation::image(Inkscape::Extension::Print */*module*/, unsigned char */*px*/, unsigned int /*w*/, unsigned int /*h*/, unsigned int /*rs*/, + Geom::Matrix const */*transform*/, SPStyle const */*style*/) { return 0; } unsigned int -Implementation::text(Inkscape::Extension::Print *module, char const *text, - NR::Point p, SPStyle const *style) +Implementation::text(Inkscape::Extension::Print */*module*/, char const */*text*/, + Geom::Point /*p*/, SPStyle const */*style*/) { return 0; } +void +Implementation::processPath(Inkscape::XML::Node * /*node*/) +{ + return; +} + /** \brief Tell the printing engine whether text should be text or path \retval true Render the text as a path @@ -159,11 +208,24 @@ Implementation::text(Inkscape::Extension::Print *module, char const *text, paths more than they'll support text. (at least they do today) */ bool -Implementation::textToPath(Inkscape::Extension::Print *ext) +Implementation::textToPath(Inkscape::Extension::Print */*ext*/) { return false; } +/** + \brief Get "fontEmbedded" param, i.e. tell the printing engine whether fonts should be embedded + \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 Not embed fonts + + Only available for Adobe Type 1 fonts in EPS output as of now +*/ + +bool +Implementation::fontEmbedded(Inkscape::Extension::Print * /*ext*/) +{ + return false; +} } /* namespace Implementation */ } /* namespace Extension */