162 lines
6.3 KiB
Text
162 lines
6.3 KiB
Text
/* -*- 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 .
|
|
*/
|
|
|
|
|
|
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);
|
|
};
|
|
|
|
}; }; }; };
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|