summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/odf.cpp
diff options
context:
space:
mode:
authorBob Jamison <ishmalius@gmail.com>2006-02-16 01:15:35 +0000
committerishmal <ishmal@users.sourceforge.net>2006-02-16 01:15:35 +0000
commit42c66786f609290a715bd85ce4c014154f941d1b (patch)
tree8a00b196b07aa163001c26f9028edf93aec0f79a /src/extension/internal/odf.cpp
parentbulk trailing spaces removal. consistency through MD5 of binary (diff)
downloadinkscape-42c66786f609290a715bd85ce4c014154f941d1b.tar.gz
inkscape-42c66786f609290a715bd85ce4c014154f941d1b.zip
Add new placeholder for ODF
(bzr r150)
Diffstat (limited to 'src/extension/internal/odf.cpp')
-rw-r--r--src/extension/internal/odf.cpp154
1 files changed, 154 insertions, 0 deletions
diff --git a/src/extension/internal/odf.cpp b/src/extension/internal/odf.cpp
new file mode 100644
index 000000000..6918e9ebb
--- /dev/null
+++ b/src/extension/internal/odf.cpp
@@ -0,0 +1,154 @@
+/**
+ * OpenDocument <drawing> input and output
+ *
+ * This is an an entry in the extensions mechanism to begin to enable
+ * the inputting and outputting of OpenDocument Format (ODF) files from
+ * within Inkscape. Although the initial implementations will be very lossy
+ * do to the differences in the models of SVG and ODF, they will hopefully
+ * improve greatly with time.
+ *
+ * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
+ *
+ * Authors:
+ * Bob Jamison
+ *
+ * Copyright (C) 2006 Bob Jamison
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+#include "odf.h"
+#include "clear-n_.h"
+#include "inkscape.h"
+#include "sp-path.h"
+#include <style.h>
+#include "display/curve.h"
+#include "libnr/n-art-bpath.h"
+#include "extension/system.h"
+
+
+
+#include "io/sys.h"
+
+namespace Inkscape
+{
+namespace Extension
+{
+namespace Internal
+{
+
+
+//########################################################################
+//# O U T P U T
+//########################################################################
+
+
+/**
+ * Make sure that we are in the database
+ */
+bool
+OdfOutput::check (Inkscape::Extension::Extension *module)
+{
+ /* We don't need a Key
+ if (NULL == Inkscape::Extension::db.get(SP_MODULE_KEY_OUTPUT_POV))
+ return FALSE;
+ */
+
+ return TRUE;
+}
+
+
+
+
+/**
+ * This function searches the Repr tree recursively from the given node,
+ * and adds refs to all nodes with the given name, to the result vector
+ */
+static void
+findElementsByTagName(std::vector<Inkscape::XML::Node *> &results,
+ Inkscape::XML::Node *node,
+ char const *name)
+{
+ if ( !name || strcmp(node->name(), name) == 0 )
+ {
+ results.push_back(node);
+ }
+
+ for (Inkscape::XML::Node *child = node->firstChild() ; child ; child = child->next())
+ findElementsByTagName( results, child, name );
+
+}
+
+
+/**
+ * Descends into the SVG tree, mapping things to ODF when appropriate
+ */
+void
+OdfOutput::save(Inkscape::Extension::Output *mod, SPDocument *doc, gchar const *uri)
+{
+ FILE *f = fopen(uri, "rb");
+ fclose(f);
+}
+
+
+/**
+ * This is the definition of PovRay output. This function just
+ * calls the extension system with the memory allocated XML that
+ * describes the data.
+*/
+void
+OdfOutput::init()
+{
+ Inkscape::Extension::build_from_mem(
+ "<inkscape-extension>\n"
+ "<name>" N_("OpenDocument Drawing Output") "</name>\n"
+ "<id>org.inkscape.output.odf</id>\n"
+ "<output>\n"
+ "<extension>.odg</extension>\n"
+ "<mimetype>text/x-povray-script</mimetype>\n"
+ "<filetypename>" N_("OpenDocument drawing (*.odg)(placeholder)") "</filetypename>\n"
+ "<filetypetooltip>" N_("OpenDocument drawing file") "</filetypetooltip>\n"
+ "</output>\n"
+ "</inkscape-extension>",
+ new OdfOutput());
+}
+
+//########################################################################
+//# I N P U T
+//########################################################################
+
+
+
+
+} //namespace Internal
+} //namespace Extension
+} //namespace Inkscape
+
+
+/*
+ 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:encoding=utf-8:textwidth=99 :