/* -*- 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 {
/** Interface to control a sprite object.<p>
This is the basic interface to control a sprite object on a
XSpriteCanvas . Sprites are moving , back - buffered
objects . < p >
*/
interface XSprite : ::com::sun::star::uno::XInterface
{
/** Set overall transparency of the sprite.<p>
This method is useful for e . g . fading in / out of animations . < p >
Please note that if this sprite is not animated , the
associated XSpriteCanvas does not update changed
sprites automatically , but has to be told to do so via
XSpriteCanvas : : updateScreen ( ) . < p >
@ param nAlpha
New global alpha value to composite this sprite with the
background . Valid range is [ 0 , 1 ] .
@ throws com : : sun : : star : : lang : : IllegalArgumentException
if nAlpha is not within the permissible range .
*/
void setAlpha( [in] double nAlpha )
raises (com::sun::star::lang::IllegalArgumentException);
/** Move sprite to the specified position.<p>
The position specified here is first transformed by the
combined view and render transformation . The resulting
position is then used as the output position ( also in device
coordinates ) of the rendered sprite content . < p >
Please note that if this sprite is not animated , the
associated XSpriteCanvas does not update changed sprites
automatically , but has to be told to do so via
XSpriteCanvas : : updateScreen ( ) . < p >
@ param aNewPos
The new position , in user coordinate space , to move the sprite to .
@ param aViewState
The view state to be used when interpreting aNewPos .
@ param aRenderState
The render state to be used when interpreting aNewPos .
@ throws com : : sun : : star : : lang : : IllegalArgumentException
if one of the view and render state parameters are outside the
specified range .
*/
void move( [in] ::com::sun::star::geometry::RealPoint2D aNewPos, [in] ViewState aViewState, [in] RenderState aRenderState )
raises (com::sun::star::lang::IllegalArgumentException);
/** Apply a local transformation to the sprite.<p>
The given transformation matrix locally transforms the sprite
shape . If this transformation contains translational
components , be aware that sprite content moved beyond the
sprite area ( a box from ( 0 , 0 ) to ( spriteWidth , spriteHeight ) )
might ( but need not ) be clipped . Use
XSprite : : move ( ) to change the sprite location
on screen . The canvas implementations are free , if they have a
cached representation of the sprite at hand , to transform only
this cached representation ( e . g . a bitmap ) , instead of
re - rendering the sprite from first principles . This is usually
the case for an implementation of a XCustomSprite
interface , since it typically has no other cached pictorial
information at hand . < p >
Please note that if this sprite is not animated , the
associated XSpriteCanvas does not update changed
sprites automatically , but has to be told to do so via
XSpriteCanvas : : updateScreen ( ) . < p >
@ param aTransformation
The transformation to apply to the sprite shape .
@ throws com : : sun : : star : : lang : : IllegalArgumentException
if the given transformation matrix is singular .
*/
void transform( [in] com::sun::star::geometry::AffineMatrix2D aTransformation )
raises (com::sun::star::lang::IllegalArgumentException);
/** Apply a clipping to the shape output.<p>
The given clip poly - polygon is always interpreted in device
coordinate space . As the sprite has its own local coordinate
system , with its origin on screen being equal to its current
position , the clip poly - polygon ' s origin will always coincide
with the sprite ' s origin . Furthermore , if any sprite
transformation is set via transform ( ) , the clip is subject to
this transformation , too . The implementation is free , if it
has a cached representation of the sprite at hand , to
clip - output only this cached representation ( e . g . a bitmap ) ,
instead of re - rendering the sprite from first principles . This
is usually the case for an implementation of a
XCustomSprite interface , since it typically has
no other cached pictorial information at hand . < p >
Please note that if this sprite is not animated , the
associated XSpriteCanvas does not update changed
sprites automatically , but has to be told to do so via
XSpriteCanvas : : updateScreen ( ) . < p >
Specifying an empty interface denotes no clipping ,
i . e . everything contained in the sprite will be visible
( subject to device - dependent constraints , of
course ) . Specifying an empty XPolyPolygon2D , i . e . a
poly - polygon containing zero polygons , or an XPolyPolygon2D
with any number of empty sub - polygons , denotes the NULL
clip . That means , nothing from the sprite will be visible . < p >
@ param aClip
The clip poly - polygon to apply .
*/
void clip( [in] XPolyPolygon2D aClip );
/** Set sprite priority.<p>
The sprite priority determines the order of rendering relative
to all other sprites of the associated canvas . The higher the
priority , the later will the sprite be rendered , or , in other
words , the closer to the screen surface the sprite is shown . < p >
@ param nPriority
New sprite priority value to serve as the sort key when
determining sprite rendering order . Avoid NaNs and other
irregular floating point values here , the order position for
sprites with such a priority value is undefined .
*/
void setPriority( [in] double nPriority );
/** Make the sprite visible.<p>
This method makes the sprite visible on the canvas it was
created on . < p >
*/
void show();
/** Make the sprite invisible.<p>
This method makes the sprite invisible . < p >
*/
void hide();
};
}; }; }; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Messung V0.5 in Prozent C=95 H=90 G=92
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-10-05)
¤
*© Formatika GbR, Deutschland