Files
libreoffice/slideshow/source/inc/viewlayer.hxx

173 lines
6.1 KiB
C++
Raw Normal View History

2010-10-27 12:53:26 +01:00
/* -*- 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
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
#include <sal/config.h>
#include <memory>
#include <com/sun/star/geometry/IntegerSize2D.hpp>
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
namespace basegfx
{
class B1DRange;
class B2DRange;
class B2DVector;
class B2DHomMatrix;
class B2DPolyPolygon;
}
namespace cppcanvas
{
class Canvas;
class CustomSprite;
}
/* Definition of ViewLayer interface */
namespace slideshow
{
namespace internal
{
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
class View;
class ViewLayer
{
public:
virtual ~ViewLayer() {}
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
/** Query whether layer displays on given view.
@return true, if this layer displays on the given
view.
*/
virtual bool isOnView(std::shared_ptr<View> const& rView) const = 0;
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
/** Get the associated canvas of this layer.
The canvas returned by this method must not change, as
long as this object is alive.
*/
virtual std::shared_ptr< cppcanvas::Canvas > getCanvas() const = 0;
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
/** 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
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
@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 std::shared_ptr< cppcanvas::CustomSprite >
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
createSprite( const basegfx::B2DVector& rSpriteSizePixel,
double nPriority ) const = 0;
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
/** Set the layer priority range
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
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.
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
@param rRange
Priority range, must be in the range [0,1]
*/
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
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
2014-04-10 10:34:23 +02:00
returns the user transform (implicitly calculated
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
from the setViewSize() method), combined with the view
transformation.
*/
virtual basegfx::B2DHomMatrix getTransformation() const = 0;
virtual css::geometry::IntegerSize2D getTranslationOffset() const = 0;
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
/** Get the overall view transformation.
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
Same transformation as with getTransformation(), only
that you can safely use this one to position sprites
on screen (no ViewLayer offsets included whatsoever).
*/
INTEGRATION: CWS presfixes12 (1.4.12); FILE MERGED 2007/04/30 07:24:13 thb 1.4.12.5: #i37778# Added extra transformation query method, to account for the fact that sprite positioning and static shape positioning might have different offsets. 2007/02/25 01:10:28 thb 1.4.12.4: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour 2007/02/13 14:33:13 thb 1.4.12.3: #i37778# Split up View::clear() into clear() and clearAll() method, to facilitate local, clip-region based slide updates 2007/02/06 17:18:15 thb 1.4.12.2: #i37778# Moved clear() method from View to ViewLayer (also sprites need to be cleared); fixed a few more cases of local code style violations; removed redundant inline keywords; finished Layer/LayerManager rework (Layer now represents ViewLayers, shapes and rendering are fully under LayerManager control); made shape comparator reusable 2007/01/29 14:02:32 thb 1.4.12.1: Issue number: #i37778# Larger slideshow refactoring. Wrote design and coding style manifest, and adapted the code to actually conform to this. In detail: - cleaned up ownership/disposable/weak_ptr story. removed hacks and explicit Disposable implementations, where workaround were available - removed object mutices, where superfluous - reworked EventMultiplexer (using templatized listener class now), added more events. EventMultiplexer now serves as a true blackboard - reworked directory structure: disjunct parts are now physically separated into directories, instantiation happens via factories & abstract interfaces - added CursorManager, to make setting mouse cursor less hackish - reworked DrawShape, to implement SeparateListener pattern - reworked IntrinsicAnimationActivity, to avoid cyclic references - modified hyperlink & shape cursor handling to communicate via EventMultiplexer - renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx, etc.) - added first version of the z-order fix to layer/layermanager - cleaned up include guards and include syntax
2007-07-17 14:19:50 +00:00
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
2010-10-27 12:53:26 +01:00
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */