diff options
author | Oliver Bolte <obo@openoffice.org> | 2007-07-17 14:22:01 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2007-07-17 14:22:01 +0000 |
commit | b714a1f57ba57731a3dd26e398bc8479b325dcae (patch) | |
tree | d56d0f63fa36b6fa512c4fa7136e53e85a74351b /slideshow | |
parent | dbb2420f91409494900e9d282fc71850b6e525a6 (diff) |
INTEGRATION: CWS presfixes12 (1.1.2); FILE ADDED
2007/05/10 20:32:41 thb 1.1.2.3: #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/02/25 01:10:29 thb 1.1.2.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/02/10 23:23:54 thb 1.1.2.1: #i37778# Renamed setMouseCursor() to setCursorShape() at View interface (name clash with API method otherwise); added LayerManager/Layer unit tests; fixed a bunch of bugs/glitches found during unit testing
Diffstat (limited to 'slideshow')
-rw-r--r-- | slideshow/test/testview.cxx | 294 |
1 files changed, 294 insertions, 0 deletions
diff --git a/slideshow/test/testview.cxx b/slideshow/test/testview.cxx new file mode 100644 index 000000000000..9495c6f2c266 --- /dev/null +++ b/slideshow/test/testview.cxx @@ -0,0 +1,294 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: testview.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: obo $ $Date: 2007-07-17 15:22:01 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#include <cppunit/simpleheader.hxx> +#include <cppuhelper/compbase1.hxx> +#include <cppuhelper/basemutex.hxx> +#include <comphelper/make_shared_from_uno.hxx> + +#include <basegfx/matrix/b2dhommatrix.hxx> +#include <basegfx/range/b1drange.hxx> +#include <basegfx/range/b2drectangle.hxx> +#include <basegfx/polygon/b2dpolypolygon.hxx> +#include <cppcanvas/spritecanvas.hxx> + +#include "tests.hxx" +#include "view.hxx" +#include "unoview.hxx" +#include "com/sun/star/presentation/XSlideShowView.hpp" + +#include <vector> +#include <exception> + + +namespace target = slideshow::internal; +using namespace ::com::sun::star; + +// our test view subject +typedef ::cppu::WeakComponentImplHelper1< presentation::XSlideShowView > ViewBase; +class ImplTestView : public TestView, + private cppu::BaseMutex, + public ViewBase +{ + mutable std::vector<std::pair<basegfx::B2DVector,double> > maCreatedSprites; + mutable std::vector<TestViewSharedPtr> maViewLayers; + basegfx::B2DRange maBounds; + basegfx::B1DRange maPriority; + bool mbIsClipSet; + bool mbIsClipEmptied; + bool mbIsClearCalled; + bool mbDisposed; + + +public: + ImplTestView() : + ViewBase(m_aMutex), + maCreatedSprites(), + maViewLayers(), + maBounds(), + maPriority(), + mbIsClipSet(false), + mbIsClipEmptied(false), + mbIsClearCalled(false), + mbDisposed( false ) + { + } + + virtual ~ImplTestView() + { + } + + // XSlideShowView + virtual uno::Reference< rendering::XSpriteCanvas > SAL_CALL getCanvas( ) throw (uno::RuntimeException) + { + return uno::Reference< rendering::XSpriteCanvas >(); + } + + virtual void SAL_CALL clear( ) throw (uno::RuntimeException) + { + } + + virtual geometry::AffineMatrix2D SAL_CALL getTransformation( ) throw (uno::RuntimeException) + { + return geometry::AffineMatrix2D(); + } + + virtual void SAL_CALL addTransformationChangedListener( const uno::Reference< util::XModifyListener >& ) throw (uno::RuntimeException) + { + } + + virtual void SAL_CALL removeTransformationChangedListener( const uno::Reference< util::XModifyListener >& ) throw (uno::RuntimeException) + { + } + + virtual void SAL_CALL addPaintListener( const uno::Reference< awt::XPaintListener >& ) throw (uno::RuntimeException) + { + } + + virtual void SAL_CALL removePaintListener( const uno::Reference< awt::XPaintListener >& ) throw (uno::RuntimeException) + { + } + + virtual void SAL_CALL addMouseListener( const uno::Reference< awt::XMouseListener >& ) throw (uno::RuntimeException) + { + } + + virtual void SAL_CALL removeMouseListener( const uno::Reference< awt::XMouseListener >& ) throw (uno::RuntimeException) + { + } + + virtual void SAL_CALL addMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& ) throw (uno::RuntimeException) + { + } + + virtual void SAL_CALL removeMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& ) throw (uno::RuntimeException) + { + } + + virtual void SAL_CALL setMouseCursor( ::sal_Int16 ) throw (uno::RuntimeException) + { + } + + // TestView + virtual bool isClearCalled() const + { + return mbIsClearCalled; + } + + virtual std::vector<std::pair<basegfx::B2DVector,double> > getCreatedSprites() const + { + return maCreatedSprites; + } + + virtual basegfx::B1DRange getPriority() const + { + return maPriority; + } + + virtual bool wasClipSet() const + { + return mbIsClipEmptied; + } + + virtual basegfx::B2DRange getBounds() const + { + return maBounds; + } + + virtual std::vector<boost::shared_ptr<TestView> > getViewLayers() const + { + return maViewLayers; + } + + // ViewLayer + virtual bool isOnView(target::ViewSharedPtr const& /*rView*/) const + { + return true; + } + + virtual ::cppcanvas::CanvasSharedPtr getCanvas() const + { + return ::cppcanvas::CanvasSharedPtr(); + } + + virtual ::cppcanvas::CustomSpriteSharedPtr createSprite( const ::basegfx::B2DSize& rSpriteSizePixel, + double nPriority ) const + { + maCreatedSprites.push_back( std::make_pair(rSpriteSizePixel,nPriority) ); + + return ::cppcanvas::CustomSpriteSharedPtr(); + } + + virtual void setPriority( const basegfx::B1DRange& rRange ) + { + maPriority = rRange; + } + + virtual ::basegfx::B2DHomMatrix getTransformation() const + { + return ::basegfx::B2DHomMatrix(); + } + + virtual ::basegfx::B2DHomMatrix getSpriteTransformation() const + { + return ::basegfx::B2DHomMatrix(); + } + + virtual void setClip( const ::basegfx::B2DPolyPolygon& rClip ) + { + if( !mbIsClipSet ) + { + if( rClip.count() > 0 ) + mbIsClipSet = true; + } + else if( !mbIsClipEmptied ) + { + if( rClip.count() == 0 ) + mbIsClipEmptied = true; + } + else if( rClip.count() > 0 ) + { + mbIsClipSet = true; + mbIsClipEmptied = false; + } + else + { + // unexpected call + throw std::exception(); + } + } + + virtual bool resize( const basegfx::B2DRange& rArea ) + { + const bool bRet( maBounds != rArea ); + maBounds = rArea; + return bRet; + } + + virtual target::ViewLayerSharedPtr createViewLayer( + const basegfx::B2DRange& rLayerBounds ) const + { + maViewLayers.push_back( TestViewSharedPtr(new ImplTestView())); + maViewLayers.back()->resize( rLayerBounds ); + + return maViewLayers.back(); + } + + virtual bool updateScreen() const + { + // misusing updateScreen for state reporting + return !mbDisposed; + } + + virtual bool paintScreen() const + { + // misusing updateScreen for state reporting + return !mbDisposed; + } + + virtual void clear() const + { + } + + virtual void clearAll() const + { + } + + virtual void setViewSize( const ::basegfx::B2DSize& ) + { + } + + virtual void setCursorShape( sal_Int16 /*nPointerShape*/ ) + { + } + + virtual uno::Reference< presentation::XSlideShowView > getUnoView() const + { + return uno::Reference< presentation::XSlideShowView >( const_cast<ImplTestView*>(this) ); + } + + virtual void _dispose() + { + mbDisposed = true; + } +}; + + +TestViewSharedPtr createTestView() +{ + return TestViewSharedPtr( + comphelper::make_shared_from_UNO( + new ImplTestView()) ); +} |