summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-03-29 23:45:56 +0000
committerMarkus Engel <markus.engel@tum.de>2013-03-29 23:45:56 +0000
commit3a2904d2f09f945bb7dc64e487ce48c2e79595ae (patch)
treea28fce906b4250655bc98d708e5867db6a96177c /src
parentAdded "virtual pads" to (diff)
downloadinkscape-3a2904d2f09f945bb7dc64e487ce48c2e79595ae.tar.gz
inkscape-3a2904d2f09f945bb7dc64e487ce48c2e79595ae.zip
Added "virtual pads" to
- SPAnimation - SPIAnimation - SPAnimate fixed compiler error in SPFeFuncNode. (bzr r11608.1.50)
Diffstat (limited to 'src')
-rw-r--r--src/filters/componenttransfer-funcnode.cpp2
-rw-r--r--src/sp-animation.cpp146
-rw-r--r--src/sp-animation.h60
3 files changed, 176 insertions, 32 deletions
diff --git a/src/filters/componenttransfer-funcnode.cpp b/src/filters/componenttransfer-funcnode.cpp
index 4299253f8..15436b452 100644
--- a/src/filters/componenttransfer-funcnode.cpp
+++ b/src/filters/componenttransfer-funcnode.cpp
@@ -192,6 +192,8 @@ sp_fefuncnode_init(SPFeFuncNode *fefuncnode)
void CFeFuncNode::onBuild(SPDocument *document, Inkscape::XML::Node *repr) {
CObject::onBuild(document, repr);
+ SPFeFuncNode* object = this->spfefuncnode;
+
//Read values of key attributes from XML nodes into object.
object->readAttr( "type" );
object->readAttr( "tableValues" );
diff --git a/src/sp-animation.cpp b/src/sp-animation.cpp
index ba8fd85c5..67181bba6 100644
--- a/src/sp-animation.cpp
+++ b/src/sp-animation.cpp
@@ -35,7 +35,7 @@ static void log_set_attr(char const *const classname, unsigned int const key, ch
static void sp_animation_class_init(SPAnimationClass *klass);
static void sp_animation_init(SPAnimation *animation);
-static void sp_animation_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
+//static void sp_animation_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
static void sp_animation_release(SPObject *object);
static void sp_animation_set(SPObject *object, unsigned int key, gchar const *value);
@@ -73,16 +73,43 @@ static void sp_animation_class_init(SPAnimationClass *klass)
sp_object_class->set = sp_animation_set;
}
-static void sp_animation_init(SPAnimation */*animation*/)
-{
+CAnimation::CAnimation(SPAnimation* animation) : CObject(animation) {
+ this->spanimation = animation;
}
+CAnimation::~CAnimation() {
+}
-static void sp_animation_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
+static void sp_animation_init(SPAnimation *animation)
{
+ animation->canimation = new CAnimation(animation);
+ animation->cobject = animation->canimation;
+}
+
+
+//static void sp_animation_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
+//{
// if (((SPObjectClass *) animation_parent_class)->build)
// ((SPObjectClass *) animation_parent_class)->build(object, document, repr);
- // CPPIFY: todo
+//
+// object->readAttr( "xlink:href" );
+// object->readAttr( "attributeName" );
+// object->readAttr( "attributeType" );
+// object->readAttr( "begin" );
+// object->readAttr( "dur" );
+// object->readAttr( "end" );
+// object->readAttr( "min" );
+// object->readAttr( "max" );
+// object->readAttr( "restart" );
+// object->readAttr( "repeatCount" );
+// object->readAttr( "repeatDur" );
+// object->readAttr( "fill" );
+//}
+
+void CAnimation::onBuild(SPDocument *document, Inkscape::XML::Node *repr) {
+ SPAnimation* object = this->spanimation;
+
+ CObject::onBuild(document, repr);
object->readAttr( "xlink:href" );
object->readAttr( "attributeName" );
@@ -98,26 +125,36 @@ static void sp_animation_build(SPObject *object, SPDocument *document, Inkscape:
object->readAttr( "fill" );
}
-static void sp_animation_release(SPObject */*object*/)
+static void sp_animation_release(SPObject *object)
{
+ ((SPAnimation*)object)->canimation->onRelease();
+}
+
+void CAnimation::onRelease() {
}
static void sp_animation_set(SPObject *object, unsigned int key, gchar const *value)
{
//SPAnimation *animation = SP_ANIMATION(object);
+//
+// log_set_attr("SPAnimation", key, value);
+//
+// if (((SPObjectClass *) animation_parent_class)->set)
+// ((SPObjectClass *) animation_parent_class)->set(object, key, value);
+ ((SPAnimation*)object)->canimation->onSet(key, value);
+}
- log_set_attr("SPAnimation", key, value);
-
- if (((SPObjectClass *) animation_parent_class)->set)
- ((SPObjectClass *) animation_parent_class)->set(object, key, value);
+void CAnimation::onSet(unsigned int key, gchar const *value) {
+ CObject::onSet(key, value);
}
+
/* Interpolated animation base class */
static void sp_ianimation_class_init(SPIAnimationClass *klass);
static void sp_ianimation_init(SPIAnimation *animation);
-static void sp_ianimation_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
+//static void sp_ianimation_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
static void sp_ianimation_release(SPObject *object);
static void sp_ianimation_set(SPObject *object, unsigned int key, gchar const *value);
@@ -155,16 +192,38 @@ static void sp_ianimation_class_init(SPIAnimationClass *klass)
sp_object_class->set = sp_ianimation_set;
}
-static void sp_ianimation_init(SPIAnimation */*animation*/)
+CIAnimation::CIAnimation(SPIAnimation* animation) : CAnimation(animation) {
+ this->spianimation = animation;
+}
+
+static void sp_ianimation_init(SPIAnimation *animation)
{
+ animation->cianimation = new CIAnimation(animation);
+ animation->canimation = animation->cianimation;
+ animation->cobject = animation->cianimation;
}
-static void sp_ianimation_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
-{
+//static void sp_ianimation_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
+//{
// if (((SPObjectClass *) ianimation_parent_class)->build)
// ((SPObjectClass *) ianimation_parent_class)->build(object, document, repr);
- // CPPIFY: todo
+//
+// object->readAttr( "calcMode" );
+// object->readAttr( "values" );
+// object->readAttr( "keyTimes" );
+// object->readAttr( "keySplines" );
+// object->readAttr( "from" );
+// object->readAttr( "to" );
+// object->readAttr( "by" );
+// object->readAttr( "additive" );
+// object->readAttr( "accumulate" );
+//}
+
+void CIAnimation::onBuild(SPDocument *document, Inkscape::XML::Node *repr) {
+ SPIAnimation* object = this->spianimation;
+
+ CAnimation::onBuild(document, repr);
object->readAttr( "calcMode" );
object->readAttr( "values" );
@@ -177,18 +236,28 @@ static void sp_ianimation_build(SPObject *object, SPDocument *document, Inkscape
object->readAttr( "accumulate" );
}
-static void sp_ianimation_release(SPObject */*object*/)
+static void sp_ianimation_release(SPObject *object)
{
+ ((SPIAnimation*)object)->cianimation->onRelease();
+}
+
+void CIAnimation::onRelease() {
+
}
static void sp_ianimation_set(SPObject *object, unsigned int key, gchar const *value)
{
//SPIAnimation *ianimation = SP_IANIMATION(object);
- log_set_attr("SPIAnimation", key, value);
+// log_set_attr("SPIAnimation", key, value);
+//
+// if (((SPObjectClass *) ianimation_parent_class)->set)
+// ((SPObjectClass *) ianimation_parent_class)->set(object, key, value);
+ ((SPIAnimation*)object)->cianimation->onSet(key, value);
+}
- if (((SPObjectClass *) ianimation_parent_class)->set)
- ((SPObjectClass *) ianimation_parent_class)->set(object, key, value);
+void CIAnimation::onSet(unsigned int key, gchar const *value) {
+ CAnimation::onSet(key, value);
}
/* SVG <animate> */
@@ -196,7 +265,7 @@ static void sp_ianimation_set(SPObject *object, unsigned int key, gchar const *v
static void sp_animate_class_init(SPAnimateClass *klass);
static void sp_animate_init(SPAnimate *animate);
-static void sp_animate_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
+//static void sp_animate_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
static void sp_animate_release(SPObject *object);
static void sp_animate_set(SPObject *object, unsigned int key, gchar const *value);
@@ -234,32 +303,51 @@ static void sp_animate_class_init(SPAnimateClass *klass)
sp_object_class->set = sp_animate_set;
}
-static void sp_animate_init(SPAnimate */*animate*/)
+CAnimate::CAnimate(SPAnimate* animate) : CIAnimation(animate) {
+ this->spanimate = animate;
+}
+
+static void sp_animate_init(SPAnimate *animate)
{
+ animate->canimate = new CAnimate(animate);
+ animate->cianimation = animate->canimate;
+ animate->canimation = animate->canimate;
+ animate->cobject = animate->canimate;
}
-static void sp_animate_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
-{
+//static void sp_animate_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
+//{
// if (((SPObjectClass *) animate_parent_class)->build)
// ((SPObjectClass *) animate_parent_class)->build(object, document, repr);
- // CPPIFY: todo
+//}
+
+void CAnimate::onBuild(SPDocument *document, Inkscape::XML::Node *repr) {
+ CIAnimation::onBuild(document, repr);
}
-static void sp_animate_release(SPObject */*object*/)
+static void sp_animate_release(SPObject *object)
{
+ ((SPAnimate*)object)->canimate->onRelease();
+}
+
+void CAnimate::onRelease() {
}
static void sp_animate_set(SPObject *object, unsigned int key, gchar const *value)
{
//SPAnimate *animate = SP_ANIMATE(object);
- log_set_attr("SPAnimate", key, value);
-
- if (((SPObjectClass *) animate_parent_class)->set)
- ((SPObjectClass *) animate_parent_class)->set(object, key, value);
+// log_set_attr("SPAnimate", key, value);
+//
+// if (((SPObjectClass *) animate_parent_class)->set)
+// ((SPObjectClass *) animate_parent_class)->set(object, key, value);
+ ((SPAnimate*)object)->canimate->onSet(key, value);
}
+void CAnimate::onSet(unsigned int key, gchar const *value) {
+ CIAnimation::onSet(key, value);
+}
/*
Local Variables:
diff --git a/src/sp-animation.h b/src/sp-animation.h
index 407419f5b..fc7315cb2 100644
--- a/src/sp-animation.h
+++ b/src/sp-animation.h
@@ -25,13 +25,31 @@
class SPAnimation;
class SPAnimationClass;
-struct SPAnimation : public SPObject {
+class CAnimation;
+
+class SPAnimation : public SPObject {
+public:
+ CAnimation* canimation;
};
struct SPAnimationClass {
SPObjectClass parent_class;
};
+class CAnimation : public CObject {
+public:
+ CAnimation(SPAnimation* animation);
+ virtual ~CAnimation();
+
+ virtual void onBuild(SPDocument* doc, Inkscape::XML::Node* repr);
+ virtual void onRelease();
+
+ virtual void onSet(unsigned int key, const gchar* value);
+
+private:
+ SPAnimation* spanimation;
+};
+
GType sp_animation_get_type (void);
/* Interpolated animation base class */
@@ -43,13 +61,31 @@ GType sp_animation_get_type (void);
class SPIAnimation;
class SPIAnimationClass;
-struct SPIAnimation : public SPAnimation {
+class CIAnimation;
+
+class SPIAnimation : public SPAnimation {
+public:
+ CIAnimation* cianimation;
};
struct SPIAnimationClass {
SPAnimationClass parent_class;
};
+class CIAnimation : public CAnimation {
+public:
+ CIAnimation(SPIAnimation* animation);
+ virtual ~CIAnimation();
+
+ virtual void onBuild(SPDocument* doc, Inkscape::XML::Node* repr);
+ virtual void onRelease();
+
+ virtual void onSet(unsigned int key, const gchar* value);
+
+private:
+ SPIAnimation* spianimation;
+};
+
GType sp_ianimation_get_type (void);
/* SVG <animate> */
@@ -61,13 +97,31 @@ GType sp_ianimation_get_type (void);
class SPAnimate;
class SPAnimateClass;
-struct SPAnimate : public SPIAnimation {
+class CAnimate;
+
+class SPAnimate : public SPIAnimation {
+public:
+ CAnimate* canimate;
};
struct SPAnimateClass {
SPIAnimationClass parent_class;
};
+class CAnimate : public CIAnimation {
+public:
+ CAnimate(SPAnimate* animate);
+ virtual ~CAnimate();
+
+ virtual void onBuild(SPDocument* doc, Inkscape::XML::Node* repr);
+ virtual void onRelease();
+
+ virtual void onSet(unsigned int key, const gchar* value);
+
+private:
+ SPAnimate* spanimate;
+};
+
GType sp_animate_get_type (void);