summaryrefslogtreecommitdiffstats
path: root/src/sp-animation.h.THIS
blob: fc7315cb2064f632dffa3b60b02535a00e04449b (plain)
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#ifndef __SP_ANIMATION_H__
#define __SP_ANIMATION_H__

/*
 * SVG <animate> implementation
 *
 * Authors:
 *   Lauris Kaplinski <lauris@kaplinski.com>
 *
 * Copyright (C) 2002 Lauris Kaplinski
 *
 * Released under GNU GPL, read the file 'COPYING' for more information
 */

#include "sp-object.h"



/* Animation base class */

#define SP_TYPE_ANIMATION (sp_animation_get_type ())
#define SP_ANIMATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_ANIMATION, SPAnimation))
#define SP_IS_ANIMATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_ANIMATION))

class SPAnimation;
class SPAnimationClass;

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 */

#define SP_TYPE_IANIMATION (sp_ianimation_get_type ())
#define SP_IANIMATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_IANIMATION, SPIAnimation))
#define SP_IS_IANIMATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_IANIMATION))

class SPIAnimation;
class SPIAnimationClass;

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> */

#define SP_TYPE_ANIMATE (sp_animate_get_type ())
#define SP_ANIMATE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_ANIMATE, SPAnimate))
#define SP_IS_ANIMATE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_ANIMATE))

class SPAnimate;
class SPAnimateClass;

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);



#endif