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