| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #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 OpenOffice 2.0 |
| */ |
| published 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 <type>com::sun::star::lang::IllegalArgumentException</type> |
| 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 implicitly call |
| <member>XSpriteCanvas::updateAnimation</member> or not. |
| |
| @throws <type>com::sun::star::lang::IllegalArgumentException</type> |
| 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 |