/* -*- 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 INCLUDED_SLIDESHOW_SOURCE_INC_VIEWLAYER_HXX
#define INCLUDED_SLIDESHOW_SOURCE_INC_VIEWLAYER_HXX
#include <sal/config.h>
#include <memory>
#include <com/sun/star/geometry/IntegerSize2D.hpp>
namespace basegfx
{
class B1DRange;
class B2DRange;
class B2DHomMatrix;
class B2DPolyPolygon;
class B2DSize;
}
namespace cppcanvas
{
class Canvas;
class CustomSprite;
typedef std::shared_ptr< Canvas > CanvasSharedPtr;
typedef std::shared_ptr< ::cppcanvas::CustomSprite > CustomSpriteSharedPtr;
}
/* Definition of ViewLayer interface */
namespace slideshow::internal
{
class View;
typedef std::shared_ptr< View > ViewSharedPtr;
class ViewLayer
{
public :
virtual ~ViewLayer() {}
/** Query whether layer displays on given view.
@ return true , if this layer displays on the given
view .
*/
virtual bool isOnView(ViewSharedPtr const & rView) const = 0 ;
/** Get the associated canvas of this layer.
The canvas returned by this method must not change , as
long as this object is alive .
*/
virtual cppcanvas::CanvasSharedPtr getCanvas() const = 0 ;
/** Clear the clipped view layer area
This method clears the area inside the clip polygon ,
if none is set , the transformed unit rectangle of the
view .
*/
virtual void clear() const = 0 ;
/** Clear the complete view
This method clears the full view area ( not only the
transformed unit rectangle , or within the clip ) . If
this ViewLayer represents the background layer , the
whole XSlideShowView is cleared . If this ViewLayer is
implemented using sprites ( i . e . one of the upper
layers ) , the sprite is cleared to fully transparent .
*/
virtual void clearAll() const = 0 ;
/** Create a sprite for this layer
@ param rSpriteSizePixel
Sprite size in device pixel
@ param nPriority
Sprite priority . This value determines the priority of
this sprite , relative to all other sprites of this
ViewLayer . The higher the priority , the closer to the
foreground the sprite will be .
@ return the sprite , or NULL on failure ( or if this
canvas does not support sprites ) .
*/
virtual cppcanvas::CustomSpriteSharedPtr
createSprite( const basegfx::B2DSize& rSpriteSizePixel,
double nPriority ) const = 0 ;
/** Set the layer priority range
This method influences the relative priority of this
layer , i . e . the z position in relation to other layers
on the parent view . The higher the priority range , the
further in front the layer resides .
@ param rRange
Priority range , must be in the range [ 0 , 1 ]
*/
virtual void setPriority( const basegfx::B1DRange& rRange ) = 0 ;
/** Get the overall view transformation.
This method should < em > not < / em > simply return the
underlying canvas ' transformation , but rather provide
a layer above that . This enables clients of the
slideshow to set their own user space transformation
at the canvas , whilst the slideshow adds their
transformation on top of that . Concretely , this method
returns the user transform ( implicitly calculated
from the setViewSize ( ) method ) , combined with the view
transformation .
*/
virtual basegfx::B2DHomMatrix getTransformation() const = 0 ;
virtual css::geometry::IntegerSize2D getTranslationOffset() const = 0 ;
/** Get the overall view transformation.
Same transformation as with getTransformation ( ) , only
that you can safely use this one to position sprites
on screen ( no ViewLayer offsets included whatsoever ) .
*/
virtual basegfx::B2DHomMatrix getSpriteTransformation() const = 0 ;
/** Set clipping on this view layer.
@ param rClip
Clip poly - polygon to set . The polygon is interpreted
in the user coordinate system , i . e . the view layer has
the size as given by setViewSize ( ) on its
corresponding View .
*/
virtual void setClip( const basegfx::B2DPolyPolygon& rClip ) = 0 ;
/** Resize this view layer.
@ param rArea
New area to cover . The area is interpreted in the user
coordinate system , i . e . relative to the size as given
by setViewSize ( ) on the corresponding View .
@ return true , if layer was actually resized ( which
invalidates its content )
*/
virtual bool resize( const basegfx::B2DRange& rArea ) = 0 ;
};
typedef std::shared_ptr< ViewLayer > ViewLayerSharedPtr;
}
#endif // INCLUDED_SLIDESHOW_SOURCE_INC_VIEWLAYER_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Messung V0.5 in Prozent C=91 H=100 G=95
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-09-30)
¤
*© Formatika GbR, Deutschland