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

531 lines
17 KiB
C++
Raw Normal View History

/* -*- 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 .
*/
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
#include <canvas/debug.hxx>
#include <tools/diagnose_ex.h>
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
#include <canvas/canvastools.hxx>
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
#include <basegfx/numeric/ftools.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
#include <cppcanvas/basegfxfactory.hxx>
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
#include "slidechangebase.hxx"
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
#include "tools.hxx"
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
#include <boost/bind.hpp>
#include <algorithm>
using namespace com::sun::star;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
namespace slideshow {
namespace internal {
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
SlideChangeBase::SlideChangeBase( boost::optional<SlideSharedPtr> const & leavingSlide,
const SlideSharedPtr& pEnteringSlide,
const SoundPlayerSharedPtr& pSoundPlayer,
const UnoViewContainer& rViewContainer,
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
ScreenUpdater& rScreenUpdater,
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
EventMultiplexer& rEventMultiplexer,
bool bCreateLeavingSprites,
bool bCreateEnteringSprites ) :
mpSoundPlayer( pSoundPlayer ),
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
mrEventMultiplexer(rEventMultiplexer),
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
mrScreenUpdater(rScreenUpdater),
maLeavingSlide( leavingSlide ),
mpEnteringSlide( pEnteringSlide ),
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
maViewData(),
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
mrViewContainer(rViewContainer),
mbCreateLeavingSprites(bCreateLeavingSprites),
mbCreateEnteringSprites(bCreateEnteringSprites),
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
mbSpritesVisible(false),
mbFinished(false),
mbPrefetched(false)
{
ENSURE_OR_THROW(
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
pEnteringSlide,
"SlideChangeBase::SlideChangeBase(): Invalid entering slide!" );
}
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
SlideBitmapSharedPtr SlideChangeBase::getLeavingBitmap( const ViewEntry& rViewEntry ) const
{
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( !rViewEntry.mpLeavingBitmap )
rViewEntry.mpLeavingBitmap = createBitmap(rViewEntry.mpView,
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
maLeavingSlide);
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
return rViewEntry.mpLeavingBitmap;
}
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
SlideBitmapSharedPtr SlideChangeBase::getEnteringBitmap( const ViewEntry& rViewEntry ) const
{
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( !rViewEntry.mpEnteringBitmap )
rViewEntry.mpEnteringBitmap = createBitmap( rViewEntry.mpView,
boost::optional<SlideSharedPtr>(mpEnteringSlide) );
return rViewEntry.mpEnteringBitmap;
}
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
SlideBitmapSharedPtr SlideChangeBase::createBitmap( const UnoViewSharedPtr& rView,
const boost::optional<SlideSharedPtr>& rSlide ) const
{
SlideBitmapSharedPtr pRet;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( !rSlide )
return pRet;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
SlideSharedPtr const & pSlide = *rSlide;
if( !pSlide )
{
// TODO(P3): No need to generate a bitmap here. This only made
// the code more uniform. Faster would be to simply clear the
// sprite to black.
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
// create empty, black-filled bitmap
const basegfx::B2ISize slideSizePixel(
getSlideSizePixel( basegfx::B2DSize( mpEnteringSlide->getSlideSize() ),
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
rView ));
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
cppcanvas::CanvasSharedPtr pCanvas( rView->getCanvas() );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
// create a bitmap of appropriate size
cppcanvas::BitmapSharedPtr pBitmap(
cppcanvas::BaseGfxFactory::getInstance().createBitmap(
pCanvas,
slideSizePixel ) );
ENSURE_OR_THROW(
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
pBitmap,
"SlideChangeBase::createBitmap(): Cannot create page bitmap" );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
cppcanvas::BitmapCanvasSharedPtr pBitmapCanvas(
pBitmap->getBitmapCanvas() );
ENSURE_OR_THROW( pBitmapCanvas,
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
"SlideChangeBase::createBitmap(): "
"Cannot create page bitmap canvas" );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
// set transformation to identitiy (->device pixel)
pBitmapCanvas->setTransformation( ::basegfx::B2DHomMatrix() );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
// clear bitmap to black
fillRect( pBitmapCanvas,
::basegfx::B2DRectangle( 0.0, 0.0,
slideSizePixel.getX(),
slideSizePixel.getY() ),
0x000000FFU );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
pRet.reset( new SlideBitmap( pBitmap ));
}
else
{
pRet = pSlide->getCurrentSlideBitmap( rView );
}
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
return pRet;
}
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
::basegfx::B2ISize SlideChangeBase::getEnteringSlideSizePixel( const UnoViewSharedPtr& pView ) const
{
return getSlideSizePixel( basegfx::B2DSize( mpEnteringSlide->getSlideSize() ),
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
pView );
}
void SlideChangeBase::renderBitmap(
SlideBitmapSharedPtr const & pSlideBitmap,
cppcanvas::CanvasSharedPtr const & pCanvas )
{
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( pSlideBitmap && pCanvas )
{
// need to render without any transformation (we
// assume device units):
const basegfx::B2DHomMatrix viewTransform(
pCanvas->getTransformation() );
const basegfx::B2DPoint pageOrigin(
viewTransform * basegfx::B2DPoint() );
const cppcanvas::CanvasSharedPtr pDevicePixelCanvas(
pCanvas->clone() );
// render at output position, don't modify bitmap object (no move!):
const basegfx::B2DHomMatrix transform(basegfx::tools::createTranslateB2DHomMatrix(
pageOrigin.getX(), pageOrigin.getY()));
pDevicePixelCanvas->setTransformation( transform );
pSlideBitmap->draw( pDevicePixelCanvas );
}
}
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
void SlideChangeBase::prefetch( const AnimatableShapeSharedPtr&,
const ShapeAttributeLayerSharedPtr& )
{
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
// we're a one-shot activity, and already finished
if( mbFinished || mbPrefetched )
return;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
// register ourselves for view change events
mrEventMultiplexer.addViewHandler( shared_from_this() );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
// init views and create slide bitmaps
std::for_each( mrViewContainer.begin(),
mrViewContainer.end(),
boost::bind( &SlideChangeBase::viewAdded,
this,
_1 ));
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
mbPrefetched = true;
}
void SlideChangeBase::start( const AnimatableShapeSharedPtr& rShape,
const ShapeAttributeLayerSharedPtr& rLayer )
{
// we're a one-shot activity, and already finished
if( mbFinished )
return;
prefetch(rShape,rLayer); // no-op, if already done
// get the subclasses a chance to do any specific initialization before run
for ( ViewsVecT::const_iterator aCurr( beginViews() ), aEnd( endViews() ); aCurr != aEnd; ++aCurr )
prepareForRun( *aCurr, aCurr->mpView->getCanvas() );
// start accompanying sound effect, if any
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( mpSoundPlayer )
{
mpSoundPlayer->startPlayback();
// xxx todo: for now, presentation.cxx takes care about the slide
// #i50492# transition sound object, so just release it here
mpSoundPlayer.reset();
}
}
void SlideChangeBase::end()
{
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
// we're a one-shot activity, and already finished
if( mbFinished )
return;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
try
{
// draw fully entered bitmap:
ViewsVecT::const_iterator aCurr( beginViews() );
const ViewsVecT::const_iterator aEnd( endViews() );
while( aCurr != aEnd )
{
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
// fully clear view content to background color
aCurr->mpView->clearAll();
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
const SlideBitmapSharedPtr pSlideBitmap( getEnteringBitmap( *aCurr ));
pSlideBitmap->clip( basegfx::B2DPolyPolygon() /* no clipping */ );
renderBitmap( pSlideBitmap,
aCurr->mpView->getCanvas() );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
++aCurr;
}
}
catch( uno::Exception& )
{
// make sure releasing below happens
}
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
// swap changes to screen
mrScreenUpdater.notifyUpdate();
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
// make object dysfunctional
mbFinished = true;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
ViewsVecT().swap(maViewData);
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
maLeavingSlide.reset();
mpEnteringSlide.reset();
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
// sprites have been binned above
mbSpritesVisible = false;
// remove also from event multiplexer, we're dead anyway
mrEventMultiplexer.removeViewHandler( shared_from_this() );
}
bool SlideChangeBase::operator()( double nValue )
{
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
if( mbFinished )
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
return false;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
const std::size_t nEntries( maViewData.size() );
bool bSpritesVisible( mbSpritesVisible );
for( ::std::size_t i=0; i<nEntries; ++i )
{
// calc sprite offsets. The enter/leaving bitmaps are only
// as large as the actual slides. For scaled-down
// presentations, we have to move the left, top edge of
// those bitmaps to the actual position, governed by the
// given view transform. The aSpritePosPixel local
// variable is already in device coordinate space
// (i.e. pixel).
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
ViewEntry& rViewEntry( maViewData[i] );
const ::cppcanvas::CanvasSharedPtr& rCanvas( rViewEntry.mpView->getCanvas() );
::cppcanvas::CustomSpriteSharedPtr& rInSprite( rViewEntry.mpInSprite );
::cppcanvas::CustomSpriteSharedPtr& rOutSprite( rViewEntry.mpOutSprite );
// TODO(F2): Properly respect clip here.
// Might have to be transformed, too.
const ::basegfx::B2DHomMatrix aViewTransform(
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
rViewEntry.mpView->getTransformation() );
const ::basegfx::B2DPoint aSpritePosPixel(
aViewTransform * ::basegfx::B2DPoint() );
// move sprite to final output position, in
// device coordinates
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( rOutSprite )
rOutSprite->movePixel( aSpritePosPixel );
if( rInSprite )
rInSprite->movePixel( aSpritePosPixel );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( !mbSpritesVisible )
{
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( rOutSprite )
{
// only render once: clipping is done
// exclusively with the sprite
const ::cppcanvas::CanvasSharedPtr pOutContentCanvas(
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
rOutSprite->getContentCanvas() );
if( pOutContentCanvas)
{
// TODO(Q2): Use basegfx bitmaps here
// TODO(F1): SlideBitmap is not fully portable
// between different canvases!
// render the content
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
OSL_ASSERT( getLeavingBitmap( rViewEntry ) );
if( getLeavingBitmap( rViewEntry ) )
getLeavingBitmap( rViewEntry )->draw( pOutContentCanvas );
}
}
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( rInSprite )
{
// only render once: clipping is done
// exclusively with the sprite
const ::cppcanvas::CanvasSharedPtr pInContentCanvas(
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
rInSprite->getContentCanvas() );
if( pInContentCanvas )
{
// TODO(Q2): Use basegfx bitmaps here
// TODO(F1): SlideBitmap is not fully portable
// between different canvases!
// render the content
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
getEnteringBitmap( rViewEntry )->draw( pInContentCanvas );
}
}
}
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( rOutSprite )
performOut( rOutSprite, rViewEntry, rCanvas, nValue );
if( rInSprite )
performIn( rInSprite, rViewEntry, rCanvas, nValue );
// finishing deeds for first run.
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( !mbSpritesVisible)
{
// enable sprites:
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
if( rOutSprite )
rOutSprite->show();
if( rInSprite )
rInSprite->show();
bSpritesVisible = true;
}
} // for_each( sprite )
mbSpritesVisible = bSpritesVisible;
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
mrScreenUpdater.notifyUpdate();
return true;
}
void SlideChangeBase::prepareForRun(
const ViewEntry& /* rViewEntry */,
const boost::shared_ptr<cppcanvas::Canvas>& /* rDestinationCanvas */ )
{
}
void SlideChangeBase::performIn(
const cppcanvas::CustomSpriteSharedPtr& /*rSprite*/,
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
const ViewEntry& /*rViewEntry*/,
const cppcanvas::CanvasSharedPtr& /*rDestinationCanvas*/,
double /*t*/ )
{
}
void SlideChangeBase::performOut(
const cppcanvas::CustomSpriteSharedPtr& /*rSprite*/,
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
const ViewEntry& /*rViewEntry*/,
const cppcanvas::CanvasSharedPtr& /*rDestinationCanvas*/,
double /*t*/ )
{
}
double SlideChangeBase::getUnderlyingValue() const
{
return 0.0; // though this should be used in concert with
// ActivitiesFactory::createSimpleActivity, better
2011-12-01 23:41:42 +02:00
// explicitly name our start value.
// Permissible range for operator() above is [0,1]
}
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
void SlideChangeBase::viewAdded( const UnoViewSharedPtr& rView )
{
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
// we're a one-shot activity, and already finished
if( mbFinished )
return;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
maViewData.push_back( ViewEntry(rView) );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
ViewEntry& rEntry( maViewData.back() );
getEnteringBitmap( rEntry );
getLeavingBitmap( rEntry );
addSprites( rEntry );
}
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
void SlideChangeBase::viewRemoved( const UnoViewSharedPtr& rView )
{
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
// we're a one-shot activity, and already finished
if( mbFinished )
return;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
// erase corresponding entry from maViewData
maViewData.erase(
std::remove_if(
maViewData.begin(),
maViewData.end(),
boost::bind(
std::equal_to<UnoViewSharedPtr>(),
rView,
// select view:
boost::bind( &ViewEntry::getView, _1 ))),
maViewData.end() );
}
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
void SlideChangeBase::viewChanged( const UnoViewSharedPtr& rView )
{
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
// we're a one-shot activity, and already finished
if( mbFinished )
return;
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
// find entry corresponding to modified view
ViewsVecT::iterator aModifiedEntry(
std::find_if(
maViewData.begin(),
maViewData.end(),
boost::bind(
std::equal_to<UnoViewSharedPtr>(),
rView,
// select view:
boost::bind( &ViewEntry::getView, _1 ) )));
OSL_ASSERT( aModifiedEntry != maViewData.end() );
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
if( aModifiedEntry == maViewData.end() )
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
return;
// clear stale info (both bitmaps and sprites prolly need a
// resize)
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
clearViewEntry( *aModifiedEntry );
INTEGRATION: CWS presfixes09 (1.4.16); FILE MERGED 2006/10/20 14:55:55 thb 1.4.16.9: #i10000# Fixed post-merge build errors (mostly warnings) 2006/10/18 19:59:16 thb 1.4.16.8: RESYNC: (1.4-1.6); FILE MERGED 2006/09/18 15:26:50 thb 1.4.16.7: #i10000# Fixed post-MERGE breakages 2006/04/24 13:25:33 thb 1.4.16.6: #i53194# Unified include statements (local headers always have double quotes; external headers angle brackets); reverted EventMultiplexer pause events to shared_ptr; removed EventMultiplexer::removeViewHandler(), since the handler is held weakly, anyway. 2006/04/12 20:40:08 thb 1.4.16.5: #i37778# Replaced all shared_ptr.get() != NULL places with the more elegant automatic-conversion-to-bool version (at least where the compiler tolerated that) 2006/04/03 16:19:01 thb 1.4.16.4: #i37778# Now passing down ComponentContext to all interested parties; building a second, all-exports version of the slideshow component (to facilitate unit testing also for internal classes) - this made necessary renaming ImportFailedException to ShapeLoadFailedException (because of silly i63703); applied relevant parts of #i63770# (const-correctness); reworked view handling in such a way that views are now kept in one central repository (and are not duplicated across all interested objects); moved code from namespace presentation to namespace slideshow 2006/03/24 18:23:26 thb 1.4.16.3: #i37778# Moved whole slideshow engine from namespace presentation (which conflicts with one of the UNO subnamespaces) to slideshow 2006/03/08 18:08:07 thb 1.4.16.2: #i49357# Removed cruft from gdimtftools; moved slideshow component to ServiceDecl; refactored multiple places of filling a rectangle in XCanvas into a tools method; now clearing the shape area to grey50 for applets/plugins (to at least show _something_ during slide transitions) 2006/03/06 22:14:32 thb 1.4.16.1: #i53194# #i55294# #i59324# Overhauled IntrinsicAnimationActivity; fixes GIF animation import; corrected rehearse timings sprite size; several cosmetic changes (removed external header guards); prepared scene for sprite prio
2006-12-13 14:45:24 +00:00
addSprites( *aModifiedEntry );
}
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
void SlideChangeBase::viewsChanged()
{
// we're a one-shot activity, and already finished
if( mbFinished )
return;
ViewsVecT::iterator aIter( maViewData.begin() );
ViewsVecT::iterator const aEnd ( maViewData.end() );
while( aIter != aEnd )
{
// clear stale info (both bitmaps and sprites prolly need a
// resize)
clearViewEntry( *aIter );
addSprites( *aIter );
++aIter;
}
}
cppcanvas::CustomSpriteSharedPtr SlideChangeBase::createSprite(
UnoViewSharedPtr const & pView,
basegfx::B2DSize const & rSpriteSize,
double nPrio ) const
{
// TODO(P2): change to bitmapsprite once that's working
const cppcanvas::CustomSpriteSharedPtr pSprite(
pView->createSprite( rSpriteSize,
nPrio ));
// alpha default is 0.0, which seems to be
// a bad idea when viewing content...
pSprite->setAlpha( 1.0 );
if (mbSpritesVisible)
pSprite->show();
return pSprite;
}
void SlideChangeBase::addSprites( ViewEntry& rEntry )
{
if( mbCreateLeavingSprites && maLeavingSlide )
{
// create leaving sprite:
const basegfx::B2ISize leavingSlideSizePixel(
getLeavingBitmap( rEntry )->getSize() );
rEntry.mpOutSprite = createSprite( rEntry.mpView,
basegfx::B2DSize( leavingSlideSizePixel ),
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
100 );
}
if( mbCreateEnteringSprites )
{
// create entering sprite:
const basegfx::B2ISize enteringSlideSizePixel(
getSlideSizePixel( basegfx::B2DSize( mpEnteringSlide->getSlideSize() ),
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
rEntry.mpView ));
rEntry.mpInSprite = createSprite( rEntry.mpView,
basegfx::B2DSize( enteringSlideSizePixel ),
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED 2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544 2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional) 2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished. 2007/01/31 14:30:33 thb 1.7.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.7.12.3: #i37778# Slide animations now notify screen updates themselves 2007/01/31 11:25:17 thb 1.7.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.7.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 13:59:50 +00:00
101 );
}
}
void SlideChangeBase::clearViewEntry( ViewEntry& rEntry )
{
// clear stale info (both bitmaps and sprites prolly need a
// resize)
rEntry.mpEnteringBitmap.reset();
rEntry.mpLeavingBitmap.reset();
rEntry.mpInSprite.reset();
rEntry.mpOutSprite.reset();
}
} // namespace internal
} // namespace presentation
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */