/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org 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 version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef __com_sun_star_rendering_XAnimatedSprite_idl__ #define __com_sun_star_rendering_XAnimatedSprite_idl__ #ifndef __com_sun_star_uno_XInterface_idl__ #include #endif #ifndef __com_sun_star_lang_IllegalArgumentException_idl__ #include #endif #ifndef __com_sun_star_geometry_RealPoint2D_idl__ #include #endif #ifndef __com_sun_star_rendering_ViewState_idl__ #include #endif #ifndef __com_sun_star_rendering_RenderState_idl__ #include #endif #ifndef __com_sun_star_rendering_XSprite_idl__ #include #endif module com { module sun { module star { module rendering { /** This interface can be used to control an animated sprite object.

This interface can be used to control an animated sprite object on an XSpriteCanvas. Sprites are moving, animated objects.

@since OOo 2.0.0 */ interface XAnimatedSprite : XSprite { /** Start animation sequence of this sprite.

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 XAnimation::render's t parameter, or a full sequence of sprite bitmaps drawn). Once an animation is running, the associated XSpriteCanvas 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.

@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 XAnimation::render's t parameter, or a full sequence of sprite bitmaps drawn). */ void startAnimation( [in] double nSpeed ); //------------------------------------------------------------------------- /** Stop the animation sequence.

A subsequent XAnimatedSprite::startAnimation will commence the sequence at the point where it was stopped with here. Once an animation is stopped, the associated XSpriteCanvas does not update changed sprites anymore.

*/ void stopAnimation(); //------------------------------------------------------------------------- /** Reset the animation sequence to start with the first frame.

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 XSpriteCanvas does not update changed sprites automatically.

*/ void resetAnimation(); //------------------------------------------------------------------------- /** Issue an additional render call to this sprite's animation.

This method has no effect when called for a bitmap-sequence sprite. Please note that if an animation is not started, the associated XSpriteCanvas does not update changed sprites automatically, but has to be told to do so via XSpriteCanvas::updateScreen().

*/ void updateAnimation(); //------------------------------------------------------------------------- /** Changes the view state in place for this sprite's animation.

The state given here is used when calling the XAnimation::render() method, or when drawing the sprite's bitmaps, respectively. There's no need to call XSpriteCanvas::updateAnimation() after this method, as it automatically rerenders, if necessary. Please note that if an animation is not started, the associated XSpriteCanvas does not update changed sprites automatically, but has to be told to do so via XSpriteCanvas::updateScreen().

@param aViewState The state given here is used when calling the XAnimation::render() 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.

This is useful at times where one does not want multiple redraws for every state change.

Please note that if an animation is not started, the associated XSpriteCanvas does not update changed sprites automatically, but has to be told to do so via XSpriteCanvas::updateScreen().

@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 XSpriteCanvas::updateAnimation 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