diff options
Diffstat (limited to 'slideshow/source/engine/shapes/appletshape.cxx')
-rw-r--r-- | slideshow/source/engine/shapes/appletshape.cxx | 333 |
1 files changed, 0 insertions, 333 deletions
diff --git a/slideshow/source/engine/shapes/appletshape.cxx b/slideshow/source/engine/shapes/appletshape.cxx deleted file mode 100644 index f998e6df7..000000000 --- a/slideshow/source/engine/shapes/appletshape.cxx +++ /dev/null @@ -1,333 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_slideshow.hxx" - -// must be first -#include <canvas/debug.hxx> -#include <canvas/verbosetrace.hxx> -#include <canvas/canvastools.hxx> - -#include <boost/shared_ptr.hpp> - -#include "appletshape.hxx" -#include "externalshapebase.hxx" -#include "vieweventhandler.hxx" -#include "viewappletshape.hxx" -#include "tools.hxx" - -#include <boost/bind.hpp> -#include <algorithm> - - -using namespace ::com::sun::star; - - -namespace slideshow -{ - namespace internal - { - /** Represents an applet shape. - - This implementation offers support for applet shapes (both - Java applets, and Netscape plugins). Such shapes need - special treatment. - */ - class AppletShape : public ExternalShapeBase - { - public: - /** Create a shape for the given XShape for a applet object - - @param xShape - The XShape to represent. - - @param nPrio - Externally-determined shape priority (used e.g. for - paint ordering). This number _must be_ unique! - - @param rServiceName - Service name to use, when creating the actual viewer - component - - @param pPropCopyTable - Table of plain ASCII property names, to copy from - xShape to applet. - - @param nNumPropEntries - Number of property table entries (in pPropCopyTable) - */ - AppletShape( const ::com::sun::star::uno::Reference< - ::com::sun::star::drawing::XShape >& xShape, - double nPrio, - const ::rtl::OUString& rServiceName, - const char** pPropCopyTable, - sal_Size nNumPropEntries, - const SlideShowContext& rContext ); // throw ShapeLoadFailedException; - - private: - - // View layer methods - //------------------------------------------------------------------ - - virtual void addViewLayer( const ViewLayerSharedPtr& rNewLayer, - bool bRedrawLayer ); - virtual bool removeViewLayer( const ViewLayerSharedPtr& rNewLayer ); - virtual bool clearAllViewLayers(); - - - // ExternalShapeBase methods - //------------------------------------------------------------------ - - virtual bool implRender( const ::basegfx::B2DRange& rCurrBounds ) const; - virtual void implViewChanged( const UnoViewSharedPtr& rView ); - virtual void implViewsChanged(); - virtual bool implStartIntrinsicAnimation(); - virtual bool implEndIntrinsicAnimation(); - virtual bool implPauseIntrinsicAnimation(); - virtual bool implIsIntrinsicAnimationPlaying() const; - virtual void implSetIntrinsicAnimationTime(double); - - const ::rtl::OUString maServiceName; - const char** mpPropCopyTable; - const sal_Size mnNumPropEntries; - - /// the list of active view shapes (one for each registered view layer) - typedef ::std::vector< ViewAppletShapeSharedPtr > ViewAppletShapeVector; - ViewAppletShapeVector maViewAppletShapes; - bool mbIsPlaying; - }; - - AppletShape::AppletShape( const uno::Reference< drawing::XShape >& xShape, - double nPrio, - const ::rtl::OUString& rServiceName, - const char** pPropCopyTable, - sal_Size nNumPropEntries, - const SlideShowContext& rContext ) : - ExternalShapeBase( xShape, nPrio, rContext ), - maServiceName( rServiceName ), - mpPropCopyTable( pPropCopyTable ), - mnNumPropEntries( nNumPropEntries ), - maViewAppletShapes(), - mbIsPlaying(false) - { - } - - // --------------------------------------------------------------------- - - void AppletShape::implViewChanged( const UnoViewSharedPtr& rView ) - { - // determine ViewAppletShape that needs update - ViewAppletShapeVector::const_iterator aIter(maViewAppletShapes.begin()); - ViewAppletShapeVector::const_iterator const aEnd (maViewAppletShapes.end()); - while( aIter != aEnd ) - { - if( (*aIter)->getViewLayer()->isOnView(rView) ) - (*aIter)->resize(getBounds()); - - ++aIter; - } - } - - // --------------------------------------------------------------------- - - void AppletShape::implViewsChanged() - { - // resize all ViewShapes - ::std::for_each( maViewAppletShapes.begin(), - maViewAppletShapes.end(), - ::boost::bind( - &ViewAppletShape::resize, - _1, - ::boost::cref( AppletShape::getBounds())) ); - } - - // --------------------------------------------------------------------- - - void AppletShape::addViewLayer( const ViewLayerSharedPtr& rNewLayer, - bool bRedrawLayer ) - { - try - { - maViewAppletShapes.push_back( - ViewAppletShapeSharedPtr( new ViewAppletShape( rNewLayer, - getXShape(), - maServiceName, - mpPropCopyTable, - mnNumPropEntries, - mxComponentContext ))); - - // push new size to view shape - maViewAppletShapes.back()->resize( getBounds() ); - - // render the Shape on the newly added ViewLayer - if( bRedrawLayer ) - maViewAppletShapes.back()->render( getBounds() ); - } - catch(uno::Exception&) - { - // ignore failed shapes - slideshow should run with - // the remaining content - } - } - - // --------------------------------------------------------------------- - - bool AppletShape::removeViewLayer( const ViewLayerSharedPtr& rLayer ) - { - const ViewAppletShapeVector::iterator aEnd( maViewAppletShapes.end() ); - - OSL_ENSURE( ::std::count_if(maViewAppletShapes.begin(), - aEnd, - ::boost::bind<bool>( - ::std::equal_to< ViewLayerSharedPtr >(), - ::boost::bind( &ViewAppletShape::getViewLayer, _1 ), - ::boost::cref( rLayer ) ) ) < 2, - "AppletShape::removeViewLayer(): Duplicate ViewLayer entries!" ); - - ViewAppletShapeVector::iterator aIter; - - if( (aIter=::std::remove_if( maViewAppletShapes.begin(), - aEnd, - ::boost::bind<bool>( - ::std::equal_to< ViewLayerSharedPtr >(), - ::boost::bind( &ViewAppletShape::getViewLayer, - _1 ), - ::boost::cref( rLayer ) ) )) == aEnd ) - { - // view layer seemingly was not added, failed - return false; - } - - // actually erase from container - maViewAppletShapes.erase( aIter, aEnd ); - - return true; - } - - // --------------------------------------------------------------------- - - bool AppletShape::clearAllViewLayers() - { - maViewAppletShapes.clear(); - return true; - } - - // --------------------------------------------------------------------- - - bool AppletShape::implRender( const ::basegfx::B2DRange& rCurrBounds ) const - { - // redraw all view shapes, by calling their update() method - if( ::std::count_if( maViewAppletShapes.begin(), - maViewAppletShapes.end(), - ::boost::bind<bool>( - ::boost::mem_fn( &ViewAppletShape::render ), - _1, - ::boost::cref( rCurrBounds ) ) ) - != static_cast<ViewAppletShapeVector::difference_type>(maViewAppletShapes.size()) ) - { - // at least one of the ViewShape::update() calls did return - // false - update failed on at least one ViewLayer - return false; - } - - return true; - } - - // --------------------------------------------------------------------- - - bool AppletShape::implStartIntrinsicAnimation() - { - ::std::for_each( maViewAppletShapes.begin(), - maViewAppletShapes.end(), - ::boost::bind( &ViewAppletShape::startApplet, - _1, - ::boost::cref( getBounds() ))); - mbIsPlaying = true; - - return true; - } - - // --------------------------------------------------------------------- - - bool AppletShape::implEndIntrinsicAnimation() - { - ::std::for_each( maViewAppletShapes.begin(), - maViewAppletShapes.end(), - ::boost::mem_fn( &ViewAppletShape::endApplet ) ); - - mbIsPlaying = false; - - return true; - } - - // --------------------------------------------------------------------- - - bool AppletShape::implPauseIntrinsicAnimation() - { - // TODO(F1): any way of temporarily disabling/deactivating - // applets? - return true; - } - - // --------------------------------------------------------------------- - - bool AppletShape::implIsIntrinsicAnimationPlaying() const - { - return mbIsPlaying; - } - - // --------------------------------------------------------------------- - - void AppletShape::implSetIntrinsicAnimationTime(double) - { - // No way of doing this, or? - } - - boost::shared_ptr<Shape> createAppletShape( - const uno::Reference< drawing::XShape >& xShape, - double nPrio, - const ::rtl::OUString& rServiceName, - const char** pPropCopyTable, - sal_Size nNumPropEntries, - const SlideShowContext& rContext ) - { - boost::shared_ptr< AppletShape > pAppletShape( - new AppletShape(xShape, - nPrio, - rServiceName, - pPropCopyTable, - nNumPropEntries, - rContext) ); - - return pAppletShape; - } - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |