851beb833dae5366278bad3588e8f36315d87f5b
1 #ifndef __INKSCAPE_EXTENSION_INTERNAL_FILTER_FILTER_H__
2 #define __INKSCAPE_EXTENSION_INTERNAL_FILTER_FILTER_H__
4 /*
5 * Copyright (C) 2008 Authors:
6 * Ted Gould <ted@gould.cx>
7 *
8 * Released under GNU GPL, read the file 'COPYING' for more information
9 */
11 #include <glibmm/i18n.h>
13 #include "extension/implementation/implementation.h"
14 #include "extension/extension-forward.h"
16 namespace Inkscape {
17 namespace Extension {
18 namespace Internal {
19 namespace Filter {
21 class Filter : public Inkscape::Extension::Implementation::Implementation {
22 protected:
23 gchar const * _filter;
24 virtual gchar const * get_filter_text (Inkscape::Extension::Extension * ext);
26 private:
27 Inkscape::XML::Document * get_filter (Inkscape::Extension::Extension * ext);
28 void merge_filters (Inkscape::XML::Node * to, Inkscape::XML::Node * from, Inkscape::XML::Document * doc);
30 public:
31 Filter();
32 Filter(gchar const * filter);
33 virtual ~Filter();
35 bool load(Inkscape::Extension::Extension *module);
36 Inkscape::Extension::Implementation::ImplementationDocumentCache * newDocCache (Inkscape::Extension::Extension * ext, Inkscape::UI::View::View * doc);
37 void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache);
39 static void filter_init(gchar const * id, gchar const * name, gchar const * tip, gchar const * filter);
40 static void filters_all(void);
41 };
43 }; /* namespace Filter */
44 }; /* namespace Internal */
45 }; /* namespace Extension */
46 }; /* namespace Inkscape */
48 #endif /* __INKSCAPE_EXTENSION_INTERNAL_FILTER_FILTER_H__ */