From 179fa413b047bede6e32109e2ce82437c5fb8d34 Mon Sep 17 00:00:00 2001 From: MenTaLguY Date: Mon, 16 Jan 2006 02:36:01 +0000 Subject: moving trunk for module inkscape (bzr r1) --- src/extension/internal/eps-out.cpp | 108 +++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 src/extension/internal/eps-out.cpp (limited to 'src/extension/internal/eps-out.cpp') diff --git a/src/extension/internal/eps-out.cpp b/src/extension/internal/eps-out.cpp new file mode 100644 index 000000000..849f9cfa4 --- /dev/null +++ b/src/extension/internal/eps-out.cpp @@ -0,0 +1,108 @@ +/* + * Authors: + * Ted Gould + * + * Copyright (C) 2004 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifdef HAVE_CONFIG_H +# include +#endif +#include "eps-out.h" +#include +#include "extension/system.h" +#include "extension/db.h" +#include "extension/output.h" + +namespace Inkscape { +namespace Extension { +namespace Internal { + +bool +EpsOutput::check (Inkscape::Extension::Extension * module) +{ + if (NULL == Inkscape::Extension::db.get(SP_MODULE_KEY_PRINT_PS)) + return FALSE; + + return TRUE; +} + +/** + \brief This function calls the print system with the filename + \param mod unused + \param doc Document to be saved + \param uri Filename to save to (probably will end in .eps) + + The most interesting thing that this function does is just attach + an '>' on the front of the filename. This is the syntax used to + tell the printing system to save to file. +*/ +void +EpsOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc, const gchar *uri) +{ + gchar * final_name; + Inkscape::Extension::Extension * ext; + + ext = Inkscape::Extension::db.get(SP_MODULE_KEY_PRINT_PS); + if (ext == NULL) + return; + + bool old_pageBoundingBox = ext->get_param_bool("pageBoundingBox"); + bool new_val = mod->get_param_bool("pageBoundingBox"); + ext->set_param_bool("pageBoundingBox", new_val); + + bool old_textToPath = ext->get_param_bool("textToPath"); + new_val = mod->get_param_bool("textToPath"); + ext->set_param_bool("textToPath", new_val); + + final_name = g_strdup_printf("> %s", uri); + sp_print_document_to_file(doc, final_name); + g_free(final_name); + + ext->set_param_bool("pageBoundingBox", old_pageBoundingBox); + ext->set_param_bool("textToPath", old_textToPath); + + return; +} + +/** + \brief A function allocate a copy of this function. + + This is the definition of postscript out. This function just + calls the extension system with the memory allocated XML that + describes the data. +*/ +void +EpsOutput::init (void) +{ + Inkscape::Extension::build_from_mem( + "\n" + "Encapsulated Postscript Output\n" + "org.inkscape.output.eps\n" + "FALSE\n" + "TRUE\n" + "\n" + ".eps\n" + "image/x-e-postscript\n" + "Encapsulated Postscript (*.eps)\n" + "Encapsulated Postscript File\n" + "\n" + "", new EpsOutput()); + + return; +} + +} } } /* namespace Inkscape, Extension, Implementation */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : -- cgit v1.2.3