summaryrefslogtreecommitdiffstats
path: root/src/sp-filter-primitive.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-07 15:10:06 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-07 15:10:06 +0000
commitd06e9965e2120f4bf6c79c9f94c1d90c04f9d80f (patch)
tree705ac5b082533d147c50fabc2c9c81a4831aebc6 /src/sp-filter-primitive.cpp
parentMerged more classes. (diff)
downloadinkscape-d06e9965e2120f4bf6c79c9f94c1d90c04f9d80f.tar.gz
inkscape-d06e9965e2120f4bf6c79c9f94c1d90c04f9d80f.zip
Merged FilterPrimitive and subclasses.
(bzr r11608.1.85)
Diffstat (limited to 'src/sp-filter-primitive.cpp')
-rw-r--r--src/sp-filter-primitive.cpp86
1 files changed, 20 insertions, 66 deletions
diff --git a/src/sp-filter-primitive.cpp b/src/sp-filter-primitive.cpp
index c7de36978..d2ace4e31 100644
--- a/src/sp-filter-primitive.cpp
+++ b/src/sp-filter-primitive.cpp
@@ -27,77 +27,31 @@
#include "display/nr-filter-primitive.h"
#include "display/nr-filter-types.h"
-/* FilterPrimitive base class */
-
-static void sp_filter_primitive_class_init(SPFilterPrimitiveClass *klass);
-static void sp_filter_primitive_init(SPFilterPrimitive *filter_primitive);
-
-static SPObjectClass *filter_primitive_parent_class;
-
-GType sp_filter_primitive_get_type()
-{
- static GType filter_primitive_type = 0;
-
- if (!filter_primitive_type) {
- GTypeInfo filter_primitive_info = {
- sizeof(SPFilterPrimitiveClass),
- NULL, NULL,
- 0,//(GClassInitFunc) sp_filter_primitive_class_init,
- NULL, NULL,
- sizeof(SPFilterPrimitive),
- 16,
- (GInstanceInitFunc) sp_filter_primitive_init,
- NULL, /* value_table */
- };
- filter_primitive_type = g_type_register_static(G_TYPE_OBJECT, "SPFilterPrimitive", &filter_primitive_info, (GTypeFlags)0);
- }
- return filter_primitive_type;
-}
-
-static void sp_filter_primitive_class_init(SPFilterPrimitiveClass *klass)
-{
- SPObjectClass *sp_object_class = (SPObjectClass *)(klass);
- filter_primitive_parent_class = static_cast<SPObjectClass *>(g_type_class_peek_parent(klass));
-}
-
-CFilterPrimitive::CFilterPrimitive(SPFilterPrimitive* fp) : CObject(fp) {
- this->spfilterprimitive = fp;
-}
-
-CFilterPrimitive::~CFilterPrimitive() {
-}
// CPPIFY: Make pure virtual.
-void CFilterPrimitive::build_renderer(Inkscape::Filters::Filter* filter) {
+void SPFilterPrimitive::build_renderer(Inkscape::Filters::Filter* filter) {
// throw;
}
-SPFilterPrimitive::SPFilterPrimitive() : SPObject() {
- SPFilterPrimitive* filter_primitive = this;
-
- filter_primitive->cfilterprimitive = new CFilterPrimitive(filter_primitive);
- filter_primitive->typeHierarchy.insert(typeid(SPFilterPrimitive));
+SPFilterPrimitive::SPFilterPrimitive() : SPObject(), CObject(this) {
+ delete this->cobject;
+ this->cobject = this;
- delete filter_primitive->cobject;
- filter_primitive->cobject = filter_primitive->cfilterprimitive;
-
- filter_primitive->image_in = Inkscape::Filters::NR_FILTER_SLOT_NOT_SET;
- filter_primitive->image_out = Inkscape::Filters::NR_FILTER_SLOT_NOT_SET;
+ this->image_in = Inkscape::Filters::NR_FILTER_SLOT_NOT_SET;
+ this->image_out = Inkscape::Filters::NR_FILTER_SLOT_NOT_SET;
// We must keep track if a value is set or not, if not set then the region defaults to 0%, 0%,
// 100%, 100% ("x", "y", "width", "height") of the -> filter <- region. If set then
// percentages are in terms of bounding box or viewbox, depending on value of "primitiveUnits"
// NB: SVGLength.set takes prescaled percent values: 1 means 100%
- filter_primitive->x.unset(SVGLength::PERCENT, 0, 0);
- filter_primitive->y.unset(SVGLength::PERCENT, 0, 0);
- filter_primitive->width.unset(SVGLength::PERCENT, 1, 0);
- filter_primitive->height.unset(SVGLength::PERCENT, 1, 0);
+ this->x.unset(SVGLength::PERCENT, 0, 0);
+ this->y.unset(SVGLength::PERCENT, 0, 0);
+ this->width.unset(SVGLength::PERCENT, 1, 0);
+ this->height.unset(SVGLength::PERCENT, 1, 0);
}
-static void sp_filter_primitive_init(SPFilterPrimitive *filter_primitive)
-{
- new (filter_primitive) SPFilterPrimitive();
+SPFilterPrimitive::~SPFilterPrimitive() {
}
/**
@@ -105,8 +59,8 @@ static void sp_filter_primitive_init(SPFilterPrimitive *filter_primitive)
* our name must be associated with a repr via "sp_object_type_register". Best done through
* sp-object-repr.cpp's repr_name_entries array.
*/
-void CFilterPrimitive::build(SPDocument *document, Inkscape::XML::Node *repr) {
- SPFilterPrimitive* object = this->spfilterprimitive;
+void SPFilterPrimitive::build(SPDocument *document, Inkscape::XML::Node *repr) {
+ SPFilterPrimitive* object = this;
object->readAttr( "style" ); // struct not derived from SPItem, we need to do this ourselves.
object->readAttr( "in" );
@@ -122,15 +76,15 @@ void CFilterPrimitive::build(SPDocument *document, Inkscape::XML::Node *repr) {
/**
* Drops any allocated memory.
*/
-void CFilterPrimitive::release() {
+void SPFilterPrimitive::release() {
CObject::release();
}
/**
* Sets a specific value in the SPFilterPrimitive.
*/
-void CFilterPrimitive::set(unsigned int key, gchar const *value) {
- SPFilterPrimitive* object = this->spfilterprimitive;
+void SPFilterPrimitive::set(unsigned int key, gchar const *value) {
+ SPFilterPrimitive* object = this;
SPFilterPrimitive *filter_primitive = SP_FILTER_PRIMITIVE(object);
(void)filter_primitive;
@@ -185,8 +139,8 @@ void CFilterPrimitive::set(unsigned int key, gchar const *value) {
/**
* Receives update notifications.
*/
-void CFilterPrimitive::update(SPCtx *ctx, guint flags) {
- SPFilterPrimitive* object = this->spfilterprimitive;
+void SPFilterPrimitive::update(SPCtx *ctx, guint flags) {
+ SPFilterPrimitive* object = this;
//SPFilterPrimitive *filter_primitive = SP_FILTER_PRIMITIVE(object);
@@ -207,8 +161,8 @@ void CFilterPrimitive::update(SPCtx *ctx, guint flags) {
/**
* Writes its settings to an incoming repr object, if any.
*/
-Inkscape::XML::Node* CFilterPrimitive::write(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags) {
- SPFilterPrimitive* object = this->spfilterprimitive;
+Inkscape::XML::Node* SPFilterPrimitive::write(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags) {
+ SPFilterPrimitive* object = this;
SPFilterPrimitive *prim = SP_FILTER_PRIMITIVE(object);
SPFilter *parent = SP_FILTER(object->parent);