1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_animations_XAnimationNode_idl__
28#define __com_sun_star_animations_XAnimationNode_idl__
29
30#ifndef __com_sun_star_container_XChild_idl__
31#include <com/sun/star/container/XChild.idl>
32#endif
33
34#ifndef __com_sun_star_beans_NamedValue_idl__
35#include <com/sun/star/beans/NamedValue.idl>
36#endif
37
38//=============================================================================
39
40 module com {  module sun {  module star {  module animations {
41
42//=============================================================================
43
44/**
45*/
46published interface XAnimationNode : ::com::sun::star::container::XChild
47{
48    /**  a value from <const>AnimationNodeType</const>.
49
50        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-timeContainer
51    */
52    [readonly, attribute] short Type;
53
54    /** a sequnece of values that define the begining of this element
55        <br>
56        <member>Begin</member> is
57            <ul>
58            <li><atom>double</atom> describes the element begin as an offset in seconds from an implicit syncbase.
59                The definition of the implicit syncbase depends upon the element's parent time container.
60                The offset is measured in parent simple time.</li>
61            <li><type>Event</type> describes an event and an optional offset that determine the
62                element begin. The element begin is defined relative to the time that the event
63                is raised.</li>
64            <li><const>Timing::INDEFINITE</const> the begin of the element will be determined by an
65                external event to the element.</li>
66            <li><type>sequence&lt;any&gt;</type> a sequence of values described above if more than
67                one begin value is defined for this element.</li>
68            <li><void/> if no begin behaviour is defined for this element.</li>
69            </ul>
70
71        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-begin
72    */
73    [attribute] any Begin;
74
75    /** defines the length of the simple duration.
76        <br>
77        <member>Duration</member> is
78            <ul>
79            <li><atom>double</atom> specifies the length of the simple duration in seconds.</li>
80            <li><const>Timing::INDEFINITE</const> specifies the simple duration as indefinite.</li>
81            <li><const>Timing::MEDIA</const> specifies the simple duration as the intrinsic media duration. This is only valid for elements that define media.</li>
82            <li><void/> the simple duration for the element is defined to be the implicit duration of the element.</li>
83            </ul>
84
85        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-dur
86    */
87    [attribute] any Duration;
88
89    /** a sequnece of values that define the ending of this element
90        <br>
91        <member>End</member> is
92            <ul>
93            <li><atom>double</atom> describes the element end as an offset in seconds from an implicit syncbase.
94                The definition of the implicit syncbase depends upon the element's parent time container.
95                The offset is measured in parent simple time.</li>
96            <li><type>Event</type> describes an event and an optional offset that determine the
97                element end. The element end is defined relative to the time that the event
98                is raised.</li>
99            <li><const>Timing::INDEFINITE</const> the end of the element will be determined by an
100                external event to the element.</li>
101            <li><type>sequence&lt;any&gt;</type> a sequence of values described above if more than
102                one begin value is defined for this element.</li>
103            <li><void/> if no end behaviour is defined for this element.</li>
104            </ul>
105
106        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-end
107    */
108    [attribute] any End;
109
110    /** controls the implicit duration of time containers,
111        as a function of the children.
112        <br>
113        The endsync attribute is only valid for
114        par and excl time container elements, and media elements with timed
115        children (e.g. animate or area elements).
116
117        <member>EndSync</member> is
118            eiter a <atom>short</atom> constant from <const>EndSync</const>,
119            an interface reference to a child <type>XTimeContainer</type>
120            or <void/>.
121
122        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-endsync
123    */
124    [attribute] any EndSync;
125
126    /** the number of iterations of the simple duration.
127        <br>
128        <member>RepeatCount</member> is
129            <ul>
130            <li><atom>double</atom>
131                this is a numeric value that specifies the number of iterations.
132                It can include partial iterations expressed as fraction values.
133                A fractional value describes a portion of the simple duration.
134                Values must be greater than 0.</li>
135            <li><const>Timing::INDEFINITE</const> the element is defined to repeat indefinitely
136                (subject to the constraints of the parent time container).</li>
137            <li><void/>
138                no repeat count is defined for this element.</li>
139            </ul>
140
141        @see <const>EndSync</const>
142        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-repeatCount
143    */
144    [attribute] any RepeatCount;
145
146    /** the total duration for repeat.
147        <br>
148        <member>RepeatDuration</member> is
149            <ul>
150            <li><atom>double</atom>
151                specifies the duration in element active time
152                to repeat the simple duration in seconds.</li>
153            <li><const>Timing::INDEFINITE</const> the element is defined to repeat indefinitely
154                (subject to the constraints of the parent time container).</li>
155            <li><void/>
156                No repeat duration is defined for this element. </li>
157            </ul>
158
159        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-repeatDur
160    */
161    [attribute] any RepeatDuration;
162
163    /** the attribute that specify the behaviour how an element
164        should be extended beyond the active duration by freezing the final
165        state of the element.
166        <br>
167        <member>Fill</member> is
168            a value from <const>AnimationFill</const>.
169
170        @see <const>Fill</const>
171        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-fill
172    */
173    [attribute] short Fill;
174
175    /** the default value for the fill behavior for this element and all
176        descendents.
177        <br>
178        <member>FillDefault</member> is
179            <ul>
180            <li>The values <const>AnimationFill::REMOVE</const>, <const>AnimationFill::FREEZE</const>,
181            <const>AnimationFill::HOLD</const>, <const>AnimationFill::TRANSITION</const> and <const>AnimationFill::AUTO</const>
182            specify that the element fill behavior is the respective value.</li>
183            <li>The value <const>AnimationFill::INHERIT</const> specifies that the value of this attribute
184            (and of the fill behavior) are inherited from the <member>FillDefault</member> value of the parent
185            element. If there is no parent element, the value is <const>AnimationFill::AUTO</const>.</li>
186            </ul>
187
188        @see <const>Fill</const>
189        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-fillDefault
190    */
191    [attribute] short FillDefault;
192
193    /**	defines the restart behaviour of this element.
194        <br>
195        <member>Restart</member> is
196            a <atom>short</atom> value from <const>AnimationRestart</const>.
197
198        @see <const>AnimationRestart</const>
199        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-restart
200    */
201    [attribute] short Restart;
202
203    /**	defines the default restart behaviour for this element and all descendents.
204
205        @returns
206            a value from <const>Restart</const>.
207
208        @see <const>AnimationRestart</const>
209        @see http://www.w3.org/TR/smil20/smil-timing.html#adef-restartDefault
210    */
211    [attribute] short RestartDefault;
212
213    /** defines the acceleration for this element.
214        <br>
215        Element time will accelerate from a rate of 0 at the beginning up
216        to a run rate, over the course of the specified proportion of the
217        simple duration.
218
219        <member>Acceleration</member> is
220            a value between 0 (no acceleration) and 1 (acceleration until end
221            of the elements duration).
222
223        @see http://www.w3.org/TR/smil20/smil-timemanip.html#adef-accelerate
224    */
225    [attribute] double Acceleration;
226
227    /** defines the deceleration for this element.
228        Element time will deceleration from a run rate to a rate of 0 at the
229        ending, over the course of the specified proportion of the
230        simple duration.
231
232        <member>Decelerate</member> is
233            a value between 0 (no deceleration) and 1 (deceleration from beginning
234            of the elements duration).
235
236        @see http://www.w3.org/TR/smil20/smil-timemanip.html#adef-decelerate
237    */
238    [attribute] double Decelerate;
239
240    /** defines the auto reverse settings for this element.
241
242        <member>AutoRevers</member> is
243            <ul>
244            <li><false/> if the animation is played normal.</li>
245            <li><true/> if the animation is played forwards and then backwards. This doubles the duration</li>
246            </ul>
247
248        @see http://www.w3.org/TR/smil20/smil-timemanip.html#adef-autoReverse
249    */
250    [attribute] boolean AutoReverse;
251
252    /**
253    */
254    [attribute] sequence< ::com::sun::star::beans::NamedValue > UserData;
255};
256
257//=============================================================================
258
259}; }; }; };
260
261#endif
262