summaryrefslogtreecommitdiffstats
path: root/kig/filters/exporter.h
diff options
context:
space:
mode:
Diffstat (limited to 'kig/filters/exporter.h')
-rw-r--r--kig/filters/exporter.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/kig/filters/exporter.h b/kig/filters/exporter.h
new file mode 100644
index 00000000..4fc74453
--- /dev/null
+++ b/kig/filters/exporter.h
@@ -0,0 +1,102 @@
+// Copyright (C) 2003 Dominique Devriese <devriese@kde.org>
+
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+
+// This program 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 General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301, USA.
+
+#ifndef KIG_FILTERS_EXPORTER_H
+#define KIG_FILTERS_EXPORTER_H
+
+#include <vector>
+
+class QString;
+class KigDocument;
+class KigPart;
+class KigWidget;
+class KActionCollection;
+
+class KigExporter;
+
+class KigExportManager
+{
+ std::vector<KigExporter*> mexporters;
+ KigExportManager();
+ ~KigExportManager();
+public:
+ static KigExportManager* instance();
+ void addMenuAction( const KigPart* doc, KigWidget* w,
+ KActionCollection* coll );
+};
+
+/**
+ * Base class for a Kig exporter.
+ *
+ * Subclass it and implement its methods to have it working.
+ */
+class KigExporter
+{
+public:
+ virtual ~KigExporter();
+
+ /**
+ * Returns a statement like i18n( "Export to image" )
+ */
+ virtual QString exportToStatement() const = 0;
+ /**
+ * Returns a string like i18n( "Image..." )
+ */
+ virtual QString menuEntryName() const = 0;
+ /**
+ * Returns a string with the name of the icon
+ */
+ virtual QString menuIcon() const = 0;
+
+ /**
+ * Do what you need to do. It's up to the individual exporters to
+ * ask the user for which file to export to etc., because they can
+ * do a much better job at that..
+ */
+ virtual void run( const KigPart& doc, KigWidget& w ) = 0;
+};
+
+/**
+ * This exporter takes care of the "Export to Image" stuff..
+ */
+class ImageExporter
+ : public KigExporter
+{
+public:
+ ~ImageExporter();
+ QString exportToStatement() const;
+ QString menuEntryName() const;
+ QString menuIcon() const;
+ void run( const KigPart& doc, KigWidget& w );
+};
+
+/**
+ * Guess what this one does ;)
+ * It exports to the XFig file format, as documented in the file
+ * FORMAT3.2 in the XFig source distribution.
+ */
+class XFigExporter
+ : public KigExporter
+{
+public:
+ ~XFigExporter();
+ QString exportToStatement() const;
+ QString menuEntryName() const;
+ QString menuIcon() const;
+ void run( const KigPart& doc, KigWidget& w );
+};
+#endif