bb6503dd08
sed -i "s,<member>\([^<]\+\)</member>,\1,g" Change-Id: I74c80f5aa610477fab28faec52e55c3137984aec
190 lines
7.4 KiB
Text
190 lines
7.4 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 .
|
|
*/
|
|
#ifndef __com_sun_star_rendering_XSprite_idl__
|
|
#define __com_sun_star_rendering_XSprite_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/geometry/AffineMatrix2D.idl>
|
|
#include <com/sun/star/rendering/ViewState.idl>
|
|
#include <com/sun/star/rendering/RenderState.idl>
|
|
|
|
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 XSpriteCanva 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();
|
|
|
|
};
|
|
|
|
}; }; }; };
|
|
|
|
#endif
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|