diff options
Diffstat (limited to '')
-rw-r--r-- | offapi/com/sun/star/rendering/XAnimatedSprite.idl | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/offapi/com/sun/star/rendering/XAnimatedSprite.idl b/offapi/com/sun/star/rendering/XAnimatedSprite.idl new file mode 100644 index 000000000..adf9cf3e1 --- /dev/null +++ b/offapi/com/sun/star/rendering/XAnimatedSprite.idl @@ -0,0 +1,173 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ +#ifndef __com_sun_star_rendering_XAnimatedSprite_idl__ +#define __com_sun_star_rendering_XAnimatedSprite_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/geometry/RealPoint2D.idl> +#include <com/sun/star/rendering/ViewState.idl> +#include <com/sun/star/rendering/RenderState.idl> +#include <com/sun/star/rendering/XSprite.idl> + + +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 + */ +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 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.<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 XAnimation::render()'s t + parameter, or a full sequence of sprite bitmaps drawn). + */ + void startAnimation( [in] double nSpeed ); + + + /** Stop the animation sequence.<p> + + 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.<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 XSpriteCanvas 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 XSpriteCanvas does not update changed + sprites automatically, but has to be told to do so via + XSpriteCanvas::updateScreen().<p> + */ + void updateAnimation(); + + + /** Changes the view state in place for this sprite's + animation.<p> + + 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().<p> + + @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.<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 XSpriteCanvas does not update changed + sprites automatically, but has to be told to do so via + XSpriteCanvas::updateScreen().<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 + 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 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |