1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
// SPDX-License-Identifier: GPL-2.0-or-later
#ifndef INKSCAPE_EXTENSION_INTERNAL_FILTER_FILTER_H
#define INKSCAPE_EXTENSION_INTERNAL_FILTER_FILTER_H
/*
* Copyright (C) 2008 Authors:
* Ted Gould <ted@gould.cx>
*
* Released under GNU GPL v2+, read the file 'COPYING' for more information.
*/
#include <glibmm/i18n.h>
#include "extension/implementation/implementation.h"
namespace Inkscape {
namespace XML {
struct Document;
}
namespace Extension {
class Effect;
class Extension;
namespace Internal {
namespace Filter {
class Filter : public Inkscape::Extension::Implementation::Implementation {
protected:
gchar const * _filter;
virtual gchar const * get_filter_text (Inkscape::Extension::Extension * ext);
private:
Inkscape::XML::Document * get_filter (Inkscape::Extension::Extension * ext);
void merge_filters (Inkscape::XML::Node * to, Inkscape::XML::Node * from, Inkscape::XML::Document * doc, gchar const * srcGraphic = nullptr, gchar const * srcGraphicAlpha = nullptr);
public:
Filter();
Filter(gchar const * filter);
~Filter() override;
bool load(Inkscape::Extension::Extension *module) override;
Inkscape::Extension::Implementation::ImplementationDocumentCache * newDocCache (Inkscape::Extension::Extension * ext, Inkscape::UI::View::View * doc) override;
void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache) override;
static void filter_init(gchar const * id, gchar const * name, gchar const * submenu, gchar const * tip, gchar const * filter);
static void filters_all();
/* File loader related */
static void filters_all_files();
static void filters_load_node(Inkscape::XML::Node *node, gchar * menuname);
};
}; /* namespace Filter */
}; /* namespace Internal */
}; /* namespace Extension */
}; /* namespace Inkscape */
#endif // INKSCAPE_EXTENSION_INTERNAL_FILTER_FILTER_H
|