Files
libreoffice/slideshow/source/engine/transitions/slidechangebase.hxx

209 lines
7.5 KiB
C++
Raw Normal View History

/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
#ifndef INCLUDED_SLIDESHOW_TRANSITIONS_SLIDECHANGEBASE_HXX
#define INCLUDED_SLIDESHOW_TRANSITIONS_SLIDECHANGEBASE_HXX
2006-12-13 14:45:39 +00:00
#include <osl/mutex.hxx>
#include "unoview.hxx"
2006-12-13 14:45:39 +00:00
#include "vieweventhandler.hxx"
#include "numberanimation.hxx"
#include "slide.hxx"
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
#include "screenupdater.hxx"
#include "soundplayer.hxx"
2006-12-13 14:45:39 +00:00
#include <boost/enable_shared_from_this.hpp>
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
#include <boost/noncopyable.hpp>
2006-12-13 14:45:39 +00:00
#include <boost/optional.hpp>
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
namespace cppcanvas
{
class Canvas;
class CustomSprite;
}
2006-12-13 14:45:39 +00:00
namespace slideshow {
namespace internal {
/** Base class for all slide change effects.
This class provides the basic sprite and view handling
functionality. Derived classes should normally only need to
implement the perform() method.
*/
2006-12-13 14:45:39 +00:00
class SlideChangeBase : public ViewEventHandler,
public NumberAnimation,
public boost::enable_shared_from_this<SlideChangeBase>,
private ::boost::noncopyable
{
public:
// NumberAnimation
virtual bool operator()( double x );
virtual double getUnderlyingValue() const;
// Animation
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
virtual void prefetch( const AnimatableShapeSharedPtr&,
const ShapeAttributeLayerSharedPtr& );
virtual void start( const AnimatableShapeSharedPtr&,
const ShapeAttributeLayerSharedPtr& );
virtual void end();
2006-12-13 14:45:39 +00:00
// ViewEventHandler
virtual void viewAdded( const UnoViewSharedPtr& rView );
virtual void viewRemoved( const UnoViewSharedPtr& rView );
virtual void viewChanged( const UnoViewSharedPtr& rView );
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
virtual void viewsChanged();
protected:
/** Create a new SlideChanger, for the given leaving and
entering slides.
*/
SlideChangeBase(
::boost::optional<SlideSharedPtr> const & leavingSlide,
2006-12-13 14:45:39 +00:00
const SlideSharedPtr& pEnteringSlide,
const SoundPlayerSharedPtr& pSoundPlayer,
const UnoViewContainer& rViewContainer,
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
ScreenUpdater& rScreenUpdater,
2006-12-13 14:45:39 +00:00
EventMultiplexer& rEventMultiplexer,
bool bCreateLeavingSprites = true,
bool bCreateEnteringSprites = true );
/// Info on a per-view basis
struct ViewEntry
{
ViewEntry() {}
explicit ViewEntry( const UnoViewSharedPtr& rView ) :
mpView( rView )
{
}
/// The view this entry is for
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
UnoViewSharedPtr mpView;
2006-12-13 14:45:39 +00:00
/// outgoing slide sprite
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
boost::shared_ptr<cppcanvas::CustomSprite> mpOutSprite;
2006-12-13 14:45:39 +00:00
/// incoming slide sprite
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
boost::shared_ptr<cppcanvas::CustomSprite> mpInSprite;
2006-12-13 14:45:39 +00:00
/// outgoing slide bitmap
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
mutable SlideBitmapSharedPtr mpLeavingBitmap;
2006-12-13 14:45:39 +00:00
/// incoming slide bitmap
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
mutable SlideBitmapSharedPtr mpEnteringBitmap;
2006-12-13 14:45:39 +00:00
// for algo access
const UnoViewSharedPtr& getView() const { return mpView; }
};
typedef ::std::vector<ViewEntry> ViewsVecT;
ViewsVecT::const_iterator beginViews() { return maViewData.begin(); }
ViewsVecT::const_iterator endViews() { return maViewData.end(); }
2006-12-13 14:45:39 +00:00
SlideBitmapSharedPtr getLeavingBitmap( const ViewEntry& rViewEntry ) const;
SlideBitmapSharedPtr getEnteringBitmap( const ViewEntry& rViewEntry ) const;
2006-12-13 14:45:39 +00:00
SlideBitmapSharedPtr createBitmap( const UnoViewSharedPtr& pView,
const boost::optional<SlideSharedPtr>& rSlide_ ) const;
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
::basegfx::B2ISize getEnteringSlideSizePixel( const UnoViewSharedPtr& pView ) const;
::basegfx::B2ISize getLeavingSlideSizePixel( const UnoViewSharedPtr& pView ) const;
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
void renderBitmap( SlideBitmapSharedPtr const& pSlideBitmap,
boost::shared_ptr<cppcanvas::Canvas> const& pCanvas );
/** Called on derived classes to implement actual slide change.
This method is called with the sprite of the slide coming 'in'
@param rSprite
Current sprite to operate on. This is the sprite of the
'entering' slide
2006-12-13 14:45:39 +00:00
@param t
Current parameter value
*/
virtual void performIn(
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
const boost::shared_ptr<cppcanvas::CustomSprite>& rSprite,
const ViewEntry& rViewEntry,
const boost::shared_ptr<cppcanvas::Canvas>& rDestinationCanvas,
double t );
/** Called on derived classes to implement actual slide change.
This method is called with the sprite of the slide moving 'out'
@param rSprite
Current sprite to operate on. This is the sprite of the
'leaving' slide
2006-12-13 14:45:39 +00:00
@param t
Current parameter value
*/
virtual void performOut(
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
const boost::shared_ptr<cppcanvas::CustomSprite>& rSprite,
const ViewEntry& rViewEntry,
const boost::shared_ptr<cppcanvas::Canvas>& rDestinationCanvas,
double t );
ScreenUpdater& getScreenUpdater() const { return mrScreenUpdater; }
private:
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
boost::shared_ptr<cppcanvas::CustomSprite> createSprite(
2006-12-13 14:45:39 +00:00
UnoViewSharedPtr const & pView,
::basegfx::B2DSize const & rSpriteSize,
double nPrio ) const;
2006-12-13 14:45:39 +00:00
void addSprites( ViewEntry& rEntry );
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
void clearViewEntry( ViewEntry& rEntry );
2006-12-13 14:45:39 +00:00
ViewsVecT::iterator lookupView( UnoViewSharedPtr const & pView );
ViewsVecT::const_iterator lookupView( UnoViewSharedPtr const & pView ) const;
SoundPlayerSharedPtr mpSoundPlayer;
EventMultiplexer& mrEventMultiplexer;
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
ScreenUpdater& mrScreenUpdater;
2006-12-13 14:45:39 +00:00
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
::boost::optional<SlideSharedPtr> maLeavingSlide;
2006-12-13 14:45:39 +00:00
SlideSharedPtr mpEnteringSlide;
ViewsVecT maViewData;
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
const UnoViewContainer& mrViewContainer;
2006-12-13 14:45:39 +00:00
const bool mbCreateLeavingSprites;
const bool mbCreateEnteringSprites;
bool mbSpritesVisible;
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
bool mbFinished;
bool mbPrefetched;
};
} // namespace internal
} // namespace presentation
INTEGRATION: CWS presfixes12 (1.6.12); FILE MERGED 2007/01/31 14:30:33 thb 1.6.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality 2007/01/31 12:29:06 thb 1.6.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.6.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show 2007/01/29 14:02:17 thb 1.6.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:00:05 +00:00
#endif /* INCLUDED_SLIDESHOW_TRANSITIONS_SLIDECHANGEBASE_HXX */