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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
|
/*************************************************************************
*
* $RCSfile: XAnimatedSprite.idl,v $
*
* $Revision: 1.3 $
*
* last change: $Author: obo $ $Date: 2005-04-18 09:40:52 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (the "License"); You may not use this file
* except in compliance with the License. You may obtain a copy of the
* License at http://www.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifndef __com_sun_star_rendering_XAnimatedSprite_idl__
#define __com_sun_star_rendering_XAnimatedSprite_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
#include <com/sun/star/lang/IllegalArgumentException.idl>
#endif
#ifndef __com_sun_star_geometry_RealPoint2D_idl__
#include <com/sun/star/geometry/RealPoint2D.idl>
#endif
#ifndef __com_sun_star_rendering_ViewState_idl__
#include <com/sun/star/rendering/ViewState.idl>
#endif
#ifndef __com_sun_star_rendering_RenderState_idl__
#include <com/sun/star/rendering/RenderState.idl>
#endif
#ifndef __com_sun_star_rendering_XSprite_idl__
#include <com/sun/star/rendering/XSprite.idl>
#endif
module com { module sun { module star { module rendering {
/** This interface can be used to control an animated sprite object.<p>
This interface can be used to control an animated sprite object on
an XSpriteCanvas. Sprites are moving, animated objects.<p>
@since OOo 2.0.0
*/
interface XAnimatedSprite : XSprite
{
/** Start animation sequence of this sprite.<p>
The speed of the animation is given in cycles per second
(where a cycle is defined as one full animation run, i.e. the
full [0,1] range of the <member>XAnimation::render</member>'s
t parameter, or a full sequence of sprite bitmaps drawn). Once
an animation is running, the associated
<type>XSpriteCanvas</type> handles screen updates
automatically. That means, changes to position or alpha are
reflected on screen automatically. Please note further that
sprite visibility and animation are unrelated, i.e. a hidden
sprite can have a running animation, which then displays in
the middle of the animation sequence, when a show() is called
later on.<p>
@param nSpeed
The speed of the animation in cycles per second (where a cycle
is defined as one full animation run, i.e. the full [0,1]
range of the <member>XAnimation::render</member>'s t
parameter, or a full sequence of sprite bitmaps drawn).
*/
void startAnimation( [in] double nSpeed );
//-------------------------------------------------------------------------
/** Stop the animation sequence.<p>
A subsequent <member>XAnimatedSprite::startAnimation</member>
will commence the sequence at the point where it was stopped
with here. Once an animation is stopped, the associated
<type>XSpriteCanvas</type> does not update changed sprites
anymore.<p>
*/
void stopAnimation();
//-------------------------------------------------------------------------
/** Reset the animation sequence to start with the first frame.<p>
If the animation is currently running, the next frame that is
drawn after this method has finished, will be the first
one. Please note that if an animation is not started, the
associated <type>XSpriteCanvas</type> does not update changed
sprites automatically.<p>
*/
void resetAnimation();
//-------------------------------------------------------------------------
/** Issue an additional render call to this sprite's
animation.<p>
This method has no effect when called for a bitmap-sequence
sprite. Please note that if an animation is not started, the
associated <type>XSpriteCanvas</type> does not update changed
sprites automatically, but has to be told to do so via
<member>XSpriteCanvas::updateScreen()</member>.<p>
*/
void updateAnimation();
//-------------------------------------------------------------------------
/** Changes the view state in place for this sprite's
animation.<p>
The state given here is used when calling the
<member>XAnimation::render()</member> method, or when drawing
the sprite's bitmaps, respectively. There's no need to call
<member>XSpriteCanvas::updateAnimation()</member> after this
method, as it automatically rerenders, if necessary. Please
note that if an animation is not started, the associated
<type>XSpriteCanvas</type> does not update changed sprites
automatically, but has to be told to do so via
<member>XSpriteCanvas::updateScreen()</member>.<p>
@param aViewState
The state given here is used when calling the
<member>XAnimation::render()</member> method, or when drawing
the sprite's bitmaps, respectively.
@throws com::sun::star::lang::IllegalArgumentException
if the view transformation matrix is singular.
*/
void setViewState( [in] ViewState aViewState )
raises (com::sun::star::lang::IllegalArgumentException);
//-------------------------------------------------------------------------
/** Changes all of the sprite's attributes at one atomic
instance.<p>
This is useful at times where one does not want multiple
redraws for every state change.<p>
Please note that if an animation is not started, the
associated <type>XSpriteCanvas</type> does not update changed
sprites automatically, but has to be told to do so via
<member>XSpriteCanvas::updateScreen()</member>.<p>
@param aNewPos
New left,top output position of the sprite. This position gets
transformed by the view and render state.
@param aViewState
New view state of the sprite, and part of the transformation
that is applied to aNewPos. The view transformation matrix
must not be singular.
@param aRenderState
New render state of the sprite, and part of the transformation
that is applied to aNewPos. The render transformation matrix
must not be singular.
@param nAlpha
New alpha value of the sprite. This value must be within the
[0,1] range.
@param bUpdateAnimation
Whether this method should implicitely call
<member>XSpriteCanvas::updateAnimation</member or not.
@throws com::sun::star::lang::IllegalArgumentException
if one of the passed parameters does not lie in the specified,
permissible range.
*/
void setAll( [in] ::com::sun::star::geometry::RealPoint2D aNewPos,
[in] ViewState aViewState,
[in] RenderState aRenderState,
[in] double nAlpha,
[in] boolean bUpdateAnimation )
raises (com::sun::star::lang::IllegalArgumentException);
};
}; }; }; };
#endif
|