1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /** @file 3 * @brief SVG component transferfilter effect 4 *//* 5 * Authors: 6 * Hugo Rodrigues <haa.rodrigues@gmail.com> 7 * 8 * Copyright (C) 2006 Hugo Rodrigues 9 * 10 * Released under GNU GPL v2+, read the file 'COPYING' for more information. 11 */ 12 #ifndef SP_FECOMPONENTTRANSFER_H_SEEN 13 #define SP_FECOMPONENTTRANSFER_H_SEEN 14 15 #include "sp-filter-primitive.h" 16 17 #define SP_FECOMPONENTTRANSFER(obj) (dynamic_cast<SPFeComponentTransfer*>((SPObject*)obj)) 18 #define SP_IS_FECOMPONENTTRANSFER(obj) (dynamic_cast<const SPFeComponentTransfer*>((SPObject*)obj) != NULL) 19 20 namespace Inkscape { 21 namespace Filters { 22 class FilterComponentTransfer; 23 } } 24 25 class SPFeComponentTransfer : public SPFilterPrimitive { 26 public: 27 SPFeComponentTransfer(); 28 ~SPFeComponentTransfer() override; 29 30 Inkscape::Filters::FilterComponentTransfer *renderer; 31 32 protected: 33 void build(SPDocument* doc, Inkscape::XML::Node* repr) override; 34 void release() override; 35 36 void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref) override; 37 void remove_child(Inkscape::XML::Node* child) override; 38 39 void set(SPAttr key, const gchar* value) override; 40 41 void update(SPCtx* ctx, unsigned int flags) override; 42 43 Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags) override; 44 45 void build_renderer(Inkscape::Filters::Filter* filter) override; 46 }; 47 48 #endif /* !SP_FECOMPONENTTRANSFER_H_SEEN */ 49 50 /* 51 Local Variables: 52 mode:c++ 53 c-file-style:"stroustrup" 54 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) 55 indent-tabs-mode:nil 56 fill-column:99 57 End: 58 */ 59 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : 60