Code

851beb833dae5366278bad3588e8f36315d87f5b
[inkscape.git] / src / extension / internal / filter / filter.h
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__ */