1 /*
2 * Authors:
3 * Ted Gould <ted@gould.cx>
4 *
5 * Copyright (C) 2006 Johan Engelen <johan@shouraizou.nl>
6 * Copyright (C) 2002-2004 Authors
7 *
8 * Released under GNU GPL, read the file 'COPYING' for more information
9 */
13 #ifndef INKSCAPE_EXTENSION_OUTPUT_H__
14 #define INKSCAPE_EXTENSION_OUTPUT_H__
16 #include <gtk/gtkdialog.h>
17 #include "extension.h"
18 struct SPDocument;
20 namespace Inkscape {
21 namespace Extension {
23 class Output : public Extension {
24 gchar *mimetype; /**< What is the mime type this inputs? */
25 gchar *extension; /**< The extension of the input files */
26 gchar *filetypename; /**< A userfriendly name for the file type */
27 gchar *filetypetooltip; /**< A more detailed description of the filetype */
28 bool dataloss; /**< The extension causes data loss on save */
30 public:
31 class save_failed {}; /**< Generic failure for an undescribed reason */
32 class save_cancelled {}; /**< Saving was cancelled */
33 class no_extension_found {}; /**< Failed because we couldn't find an extension to match the filename */
34 class file_read_only {}; /**< The existing file can not be opened for writing */
36 Output (Inkscape::XML::Node * in_repr,
37 Implementation::Implementation * in_imp);
38 virtual ~Output (void);
39 virtual bool check (void);
40 void save (SPDocument *doc,
41 gchar const *uri);
42 bool prefs (void);
43 gchar * get_mimetype(void);
44 gchar * get_extension(void);
45 gchar * get_filetypename(void);
46 gchar * get_filetypetooltip(void);
47 bool causes_dataloss(void) { return dataloss; };
48 };
50 } } /* namespace Inkscape, Extension */
51 #endif /* INKSCAPE_EXTENSION_OUTPUT_H__ */
53 /*
54 Local Variables:
55 mode:c++
56 c-file-style:"stroustrup"
57 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
58 indent-tabs-mode:nil
59 fill-column:99
60 End:
61 */
62 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :