diff options
Diffstat (limited to 'canvas/inc/canvas/base')
-rw-r--r-- | canvas/inc/canvas/base/basemutexhelper.hxx | 72 | ||||
-rw-r--r-- | canvas/inc/canvas/base/bitmapcanvasbase.hxx | 137 | ||||
-rw-r--r-- | canvas/inc/canvas/base/bufferedgraphicdevicebase.hxx | 285 | ||||
-rw-r--r-- | canvas/inc/canvas/base/cachedprimitivebase.hxx | 126 | ||||
-rw-r--r-- | canvas/inc/canvas/base/canvasbase.hxx | 483 | ||||
-rw-r--r-- | canvas/inc/canvas/base/canvascustomspritebase.hxx | 280 | ||||
-rw-r--r-- | canvas/inc/canvas/base/canvascustomspritehelper.hxx | 296 | ||||
-rw-r--r-- | canvas/inc/canvas/base/disambiguationhelper.hxx | 90 | ||||
-rw-r--r-- | canvas/inc/canvas/base/doublebitmapbase.hxx | 154 | ||||
-rw-r--r-- | canvas/inc/canvas/base/floatbitmapbase.hxx | 158 | ||||
-rw-r--r-- | canvas/inc/canvas/base/graphicdevicebase.hxx | 391 | ||||
-rw-r--r-- | canvas/inc/canvas/base/integerbitmapbase.hxx | 154 | ||||
-rw-r--r-- | canvas/inc/canvas/base/sprite.hxx | 122 | ||||
-rw-r--r-- | canvas/inc/canvas/base/spritecanvasbase.hxx | 202 | ||||
-rw-r--r-- | canvas/inc/canvas/base/spritesurface.hxx | 76 |
15 files changed, 0 insertions, 3026 deletions
diff --git a/canvas/inc/canvas/base/basemutexhelper.hxx b/canvas/inc/canvas/base/basemutexhelper.hxx deleted file mode 100644 index c1c7eed845..0000000000 --- a/canvas/inc/canvas/base/basemutexhelper.hxx +++ /dev/null @@ -1,72 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_BASEMUTEXHELPER_HXX -#define INCLUDED_CANVAS_BASEMUTEXHELPER_HXX - -#include <osl/mutex.hxx> - - -/* Definition of the BaseMutexHelper class */ - -namespace canvas -{ - /** Base class, deriving from ::comphelper::OBaseMutex and - initializing its own baseclass with m_aMutex. - - This is necessary to make the CanvasBase, GraphicDeviceBase, - etc. classes freely combinable - letting them perform this - initialization would prohibit deriving e.g. CanvasBase from - GraphicDeviceBase. - */ - template< class Base > class BaseMutexHelper : public Base - { - public: - typedef Base BaseType; - - /** Construct BaseMutexHelper - - This method is the whole purpose of this template: - initializing a base class with the provided m_aMutex - member (the WeakComponentImplHelper templates need that, - as they require the lifetime of the mutex to extend - theirs). - */ - BaseMutexHelper() : - BaseType( m_aMutex ) - { - } - -protected: - mutable ::osl::Mutex m_aMutex; - }; -} - -#endif /* INCLUDED_CANVAS_BASEMUTEXHELPER_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/bitmapcanvasbase.hxx b/canvas/inc/canvas/base/bitmapcanvasbase.hxx deleted file mode 100644 index 234de95b62..0000000000 --- a/canvas/inc/canvas/base/bitmapcanvasbase.hxx +++ /dev/null @@ -1,137 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_BITMAPCANVASBASE_HXX -#define INCLUDED_CANVAS_BITMAPCANVASBASE_HXX - -#include <canvas/base/canvasbase.hxx> -#include <com/sun/star/rendering/XBitmapCanvas.hpp> - -namespace canvas -{ - /** Helper template to handle XBitmapCanvas method forwarding to - BitmapCanvasHelper - - Use this helper to handle the XBitmapCanvas part of your - implementation. - - @tpl Base - Base class to use, most probably one of the - WeakComponentImplHelperN templates with the appropriate - interfaces. At least XBitmapCanvas should be among them (why - else would you use this template, then?). Base class must have - an Base( const Mutex& ) constructor (like the - WeakComponentImplHelperN templates have). - - @tpl CanvasHelper - Canvas helper implementation for the backend in question - - @tpl Mutex - Lock strategy to use. Defaults to using the - OBaseMutex-provided lock. Everytime one of the methods is - entered, an object of type Mutex is created with m_aMutex as - the sole parameter, and destroyed again when the method scope - is left. - - @tpl UnambiguousBase - Optional unambiguous base class for XInterface of Base. It's - sometimes necessary to specify this parameter, e.g. if Base - derives from multiple UNO interface (were each provides its - own version of XInterface, making the conversion ambiguous) - - @see CanvasBase for further contractual requirements towards - the CanvasHelper type, and some examples. - */ - template< class Base, - class CanvasHelper, - class Mutex=::osl::MutexGuard, - class UnambiguousBase=::com::sun::star::uno::XInterface > class BitmapCanvasBase : - public CanvasBase< Base, CanvasHelper, Mutex, UnambiguousBase > - { - public: - typedef CanvasBase< Base, CanvasHelper, Mutex, UnambiguousBase > BaseType; - - // XBitmapCanvas - virtual void SAL_CALL copyRect( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapCanvas >& sourceCanvas, - const ::com::sun::star::geometry::RealRectangle2D& sourceRect, - const ::com::sun::star::rendering::ViewState& sourceViewState, - const ::com::sun::star::rendering::RenderState& sourceRenderState, - const ::com::sun::star::geometry::RealRectangle2D& destRect, - const ::com::sun::star::rendering::ViewState& destViewState, - const ::com::sun::star::rendering::RenderState& destRenderState ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(sourceCanvas, sourceRect, sourceViewState, sourceRenderState, - destRect, destViewState, destRenderState, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - BaseType::mbSurfaceDirty = true; - BaseType::maCanvasHelper.modifying(); - - BaseType::maCanvasHelper.copyRect( this, - sourceCanvas, - sourceRect, - sourceViewState, - sourceRenderState, - destRect, - destViewState, - destRenderState ); - } - - // XBitmap - virtual ::com::sun::star::geometry::IntegerSize2D SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getSize(); - } - - virtual ::sal_Bool SAL_CALL hasAlpha( ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.hasAlpha(); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL getScaledBitmap( const ::com::sun::star::geometry::RealSize2D& newSize, - sal_Bool beFast ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getScaledBitmap( newSize, beFast ); - } - - }; -} - -#endif /* INCLUDED_CANVAS_BITMAPCANVASBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/bufferedgraphicdevicebase.hxx b/canvas/inc/canvas/base/bufferedgraphicdevicebase.hxx deleted file mode 100644 index 46366eb674..0000000000 --- a/canvas/inc/canvas/base/bufferedgraphicdevicebase.hxx +++ /dev/null @@ -1,285 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_BUFFEREDGRAPHICDEVICEBASE_HXX -#define INCLUDED_CANVAS_BUFFEREDGRAPHICDEVICEBASE_HXX - -#include <com/sun/star/awt/XWindow2.hpp> -#include <com/sun/star/awt/XTopWindow.hpp> -#include <com/sun/star/awt/XWindowListener.hpp> - -#include <canvas/canvastools.hxx> -#include <canvas/base/graphicdevicebase.hxx> - - -/* Definition of BufferedGraphicDeviceBase class */ - -namespace canvas -{ - /** Helper template base class for XGraphicDevice implementations - on windows. - - Use this base class if your target device is a - window. Additionally to GraphicDeviceBase, this template - provides an implementation of the awt::XWindowListener - interface, to receive notifications about state changes of the - associated window. - - @tpl Base - Base class to use, most probably one of the - WeakComponentImplHelperN templates with the appropriate - interfaces. At least XGraphicDevice should be among them (why else - would you use this template, then?). Base class must have an - Base( const Mutex& ) constructor (like the - WeakComponentImplHelperN templates have). As the very least, - the base class must be derived from uno::XInterface, as some - error reporting mechanisms rely on that. - - @tpl DeviceHelper - Device helper implementation for the backend in question. This - object will be held as a member of this template class, and - basically gets forwarded all XGraphicDevice API calls that - could not be handled generically. - - @tpl Mutex - Lock strategy to use. Defaults to using the - OBaseMutex-provided lock. Everytime one of the methods is - entered, an object of type Mutex is created with m_aMutex as - the sole parameter, and destroyed again when the method scope - is left. - - @tpl UnambiguousBase - Optional unambiguous base class for XInterface of Base. It's - sometimes necessary to specify this parameter, e.g. if Base - derives from multiple UNO interface (were each provides its - own version of XInterface, making the conversion ambiguous) - */ - template< class Base, - class DeviceHelper, - class Mutex=::osl::MutexGuard, - class UnambiguousBase=::com::sun::star::uno::XInterface > class BufferedGraphicDeviceBase : - public GraphicDeviceBase< Base, DeviceHelper, Mutex, UnambiguousBase > - { - public: - typedef GraphicDeviceBase< Base, DeviceHelper, Mutex, UnambiguousBase > BaseType; - typedef BufferedGraphicDeviceBase OurType; - typedef Mutex MutexType; - - BufferedGraphicDeviceBase() : - mxWindow(), - maBounds(), - mbIsVisible( false ), - mbIsTopLevel( false ) - { - BaseType::maPropHelper.addProperties( PropertySetHelper::MakeMap - ("Window", - boost::bind(&OurType::getXWindow, - this))); - } - - // XGraphicDevice - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBufferController > SAL_CALL getBufferController( ) throw (::com::sun::star::uno::RuntimeException) - { - return this; - } - - // XBufferController - virtual ::sal_Int32 SAL_CALL createBuffers( ::sal_Int32 nBuffers ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyRange( nBuffers, (sal_Int32)1 ); - - MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maDeviceHelper.createBuffers( nBuffers ); - } - - virtual void SAL_CALL destroyBuffers( ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - BaseType::maDeviceHelper.destroyBuffers(); - } - - virtual ::sal_Bool SAL_CALL showBuffer( ::sal_Bool bUpdateAll ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maDeviceHelper.showBuffer( mbIsVisible, bUpdateAll ); - } - - virtual ::sal_Bool SAL_CALL switchBuffer( ::sal_Bool bUpdateAll ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maDeviceHelper.switchBuffer( mbIsVisible, bUpdateAll ); - } - - - /** Set corresponding canvas window - - Use this method to set the window this canvas displays - on. Comes in handy when the canvas needs to adapt size or - output position to the changing window. - - Whenever the bounds of the window change, <code>void - notifySizeUpdate( const awt::Rectangle& rBounds )</code> - is called, with rBounds the window bound rect relative to - the frame window. - */ - void setWindow( const ::com::sun::star::uno::Reference< - ::com::sun::star::awt::XWindow2 >& rWindow ) - { - if( mxWindow.is() ) - mxWindow->removeWindowListener( this ); - - mxWindow = rWindow; - - if( mxWindow.is() ) - { - mbIsVisible = mxWindow->isVisible(); - mbIsTopLevel = - ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindow >( - mxWindow, - ::com::sun::star::uno::UNO_QUERY ).is(); - - maBounds = transformBounds( mxWindow->getPosSize() ); - mxWindow->addWindowListener( this ); - } - } - - ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow2 > getWindow() const - { - return mxWindow; - } - - ::com::sun::star::uno::Any getXWindow() const - { - return ::com::sun::star::uno::makeAny(mxWindow); - } - - virtual void disposeThis() - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - if( mxWindow.is() ) - { - mxWindow->removeWindowListener(this); - mxWindow.clear(); - } - - // pass on to base class - BaseType::disposeThis(); - } - - ::com::sun::star::awt::Rectangle transformBounds( const ::com::sun::star::awt::Rectangle& rBounds ) - { - // notifySizeUpdate's bounds are relative to the toplevel - // window - if( !mbIsTopLevel ) - return tools::getAbsoluteWindowRect( - rBounds, - mxWindow ); - else - return ::com::sun::star::awt::Rectangle( 0,0,rBounds.Width,rBounds.Height ); - } - - void boundsChanged( const ::com::sun::star::awt::WindowEvent& e ) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - const ::com::sun::star::awt::Rectangle& rNewBounds( - transformBounds( - ::com::sun::star::awt::Rectangle( e.X, - e.Y, - e.Width, - e.Height ))); - - if( rNewBounds.X != maBounds.X || - rNewBounds.Y != maBounds.Y || - rNewBounds.Width != maBounds.Width || - rNewBounds.Height != maBounds.Height ) - { - maBounds = rNewBounds; - BaseType::maDeviceHelper.notifySizeUpdate( maBounds ); - } - } - - // XWindowListener - virtual void disposeEventSource( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - if( Source.Source == mxWindow ) - mxWindow.clear(); - - BaseType::disposeEventSource(Source); - } - - virtual void SAL_CALL windowResized( const ::com::sun::star::awt::WindowEvent& e ) throw (::com::sun::star::uno::RuntimeException) - { - boundsChanged( e ); - } - - virtual void SAL_CALL windowMoved( const ::com::sun::star::awt::WindowEvent& e ) throw (::com::sun::star::uno::RuntimeException) - { - boundsChanged( e ); - } - - virtual void SAL_CALL windowShown( const ::com::sun::star::lang::EventObject& ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - mbIsVisible = true; - } - - virtual void SAL_CALL windowHidden( const ::com::sun::star::lang::EventObject& ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - mbIsVisible = false; - } - - protected: - ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow2 > mxWindow; - - /// Current bounds of the owning Window - ::com::sun::star::awt::Rectangle maBounds; - - /// True, if the window this canvas is contained in, is visible - bool mbIsVisible; - - private: - /// True, if the window this canvas is contained in, is a toplevel window - bool mbIsTopLevel; - }; -} - -#endif /* INCLUDED_CANVAS_BUFFEREDGRAPHICDEVICEBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/cachedprimitivebase.hxx b/canvas/inc/canvas/base/cachedprimitivebase.hxx deleted file mode 100644 index 1f6cd69695..0000000000 --- a/canvas/inc/canvas/base/cachedprimitivebase.hxx +++ /dev/null @@ -1,126 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_CACHEDPRIMITIVEBASE_HXX -#define INCLUDED_CANVAS_CACHEDPRIMITIVEBASE_HXX - -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/rendering/XCanvas.hpp> -#include <com/sun/star/rendering/XCachedPrimitive.hpp> -#include <com/sun/star/rendering/ViewState.hpp> -#include <cppuhelper/compbase2.hxx> -#include <comphelper/broadcasthelper.hxx> - -#include <canvas/canvastoolsdllapi.h> - -/* Definition of CachedPrimitiveBase class */ - -namespace canvas -{ - typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::rendering::XCachedPrimitive, - ::com::sun::star::lang::XServiceInfo > CachedPrimitiveBase_Base; - - /** Base class, providing common functionality for implementers of - the XCachedPrimitive interface. - */ - class CANVASTOOLS_DLLPUBLIC CachedPrimitiveBase : public CachedPrimitiveBase_Base, - public ::comphelper::OBaseMutex - { - public: - - /** Create an XCachedPrimitive for given target canvas - - @param rUsedViewState - The viewstate the original object was rendered with - - @param rTarget - The target canvas the repaint should happen on. - - @param bFailForChangedViewTransform - When true, derived classes will never receive doRedraw() - calls with dissimilar view transformations and - bSameViewTransform set to false. This is useful for cached - objects where re-transforming the generated output is not - desirable, e.g. for hinted font output. - */ - CachedPrimitiveBase( const ::com::sun::star::rendering::ViewState& rUsedViewState, - const ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XCanvas >& rTarget, - bool bFailForChangedViewTransform ); - - /// Dispose all internal references - virtual void SAL_CALL disposing(); - - // XCachedPrimitive - virtual ::sal_Int8 SAL_CALL redraw( const ::com::sun::star::rendering::ViewState& aState ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); - - protected: - ~CachedPrimitiveBase(); // we're a ref-counted UNO class. _We_ destroy ourselves. - - private: - CachedPrimitiveBase( const CachedPrimitiveBase& ); - CachedPrimitiveBase& operator=( const CachedPrimitiveBase& ); - - /** Actually perform the requested redraw. - - Clients must override this method, instead of the public - redraw() one. - - @param rNewState - The viewstate to redraw with - - @param rOldState - The viewstate this cache object was created with. - - @param rTargetCanvas - Target canvas to render to. - - @param bSameViewTransform - When true, rNewState and rOldState have the same transformation. - */ - virtual ::sal_Int8 doRedraw( const ::com::sun::star::rendering::ViewState& rNewState, - const ::com::sun::star::rendering::ViewState& rOldState, - const ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XCanvas >& rTargetCanvas, - bool bSameViewTransform ) = 0; - - ::com::sun::star::rendering::ViewState maUsedViewState; - ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvas > mxTarget; - const bool mbFailForChangedViewTransform; - }; -} - -#endif /* INCLUDED_CANVAS_CACHEDPRIMITIVEBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/canvasbase.hxx b/canvas/inc/canvas/base/canvasbase.hxx deleted file mode 100644 index 949e6dabf5..0000000000 --- a/canvas/inc/canvas/base/canvasbase.hxx +++ /dev/null @@ -1,483 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_CANVASBASE_HXX -#define INCLUDED_CANVAS_CANVASBASE_HXX - -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/rendering/XCanvas.hpp> -#include <com/sun/star/rendering/TextDirection.hpp> -#include <osl/mutex.hxx> -#include <canvas/verifyinput.hxx> - - -namespace canvas -{ - /** Helper template to handle XCanvas method forwarding to CanvasHelper - - Use this helper to handle the XCanvas part of your - implementation. In theory, we could have provided CanvasHelper - and CanvasBase as a single template, but that would duplicate - a lot of code now residing in CanvasHelper only. - - This template basically interposes itself between the full - interface you implement (i.e. not restricted to XCanvas. The - problem with UNO partial interface implementation actually is, - that you cannot do it the plain way, since deriving from a - common base subclass always introduces the whole set of pure - virtuals, that your baseclass helper just overrided) and your - implementation class. You then only have to implement the - functionality <em>besides</em> XCanvas. - - <pre> - Example: - typedef ::cppu::WeakComponentImplHelper4< ::com::sun::star::rendering::XSpriteCanvas, - ::com::sun::star::lang::XInitialization, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::lang::XServiceName > CanvasBase_Base; - typedef ::canvas::internal::CanvasBase< CanvasBase_Base, CanvasHelper > ExampleCanvas_Base; - - class ExampleCanvas : public ExampleCanvas_Base, - public SpriteSurface, - public RepaintTarget - { - }; - </pre> - - @tpl Base - Base class to use, most probably one of the - WeakComponentImplHelperN templates with the appropriate - interfaces. At least XCanvas should be among them (why else - would you use this template, then?). Base class must have an - Base( const Mutex& ) constructor (like the - WeakComponentImplHelperN templates have). As the very least, - the base class must be derived from uno::XInterface, as some - error reporting mechanisms rely on that. - - @tpl CanvasHelper - Canvas helper implementation for the backend in question. This - object will be held as a member of this template class, and - basically gets forwarded all XCanvas API calls. Furthermore, - everytime the canvas API semantically changes the content of - the canvas, CanvasHelper::modifying() will get called - (<em>before</em> the actual modification takes place). - - @tpl Mutex - Lock strategy to use. Defaults to using the - OBaseMutex-provided lock. Everytime one of the methods is - entered, an object of type Mutex is created with m_aMutex as - the sole parameter, and destroyed again when the method scope - is left. - - @tpl UnambiguousBase - Optional unambiguous base class for XInterface of Base. It's - sometimes necessary to specify this parameter, e.g. if Base - derives from multiple UNO interface (were each provides its - own version of XInterface, making the conversion ambiguous) - */ - template< class Base, - class CanvasHelper, - class Mutex=::osl::MutexGuard, - class UnambiguousBase=::com::sun::star::uno::XInterface > class CanvasBase : - public Base - { - public: - typedef Base BaseType; - typedef CanvasHelper HelperType; - typedef Mutex MutexType; - typedef UnambiguousBase UnambiguousBaseType; - - /** Create CanvasBase - */ - CanvasBase() : - maCanvasHelper(), - mbSurfaceDirty( true ) - { - } - - virtual void disposeThis() - { - MutexType aGuard( BaseType::m_aMutex ); - - maCanvasHelper.disposing(); - - // pass on to base class - BaseType::disposeThis(); - } - - // XCanvas - virtual void SAL_CALL clear() throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - maCanvasHelper.clear(); - } - - virtual void SAL_CALL drawPoint( const ::com::sun::star::geometry::RealPoint2D& aPoint, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(aPoint, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - maCanvasHelper.drawPoint( this, aPoint, viewState, renderState ); - } - - virtual void SAL_CALL drawLine( const ::com::sun::star::geometry::RealPoint2D& aStartPoint, - const ::com::sun::star::geometry::RealPoint2D& aEndPoint, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(aStartPoint, aEndPoint, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - maCanvasHelper.drawLine( this, aStartPoint, aEndPoint, viewState, renderState ); - } - - virtual void SAL_CALL drawBezier( const ::com::sun::star::geometry::RealBezierSegment2D& aBezierSegment, - const ::com::sun::star::geometry::RealPoint2D& aEndPoint, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(aBezierSegment, aEndPoint, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - maCanvasHelper.drawBezier( this, aBezierSegment, aEndPoint, viewState, renderState ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - drawPolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xPolyPolygon, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.drawPolyPolygon( this, xPolyPolygon, viewState, renderState ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - strokePolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState, - const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xPolyPolygon, viewState, renderState, strokeAttributes, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.strokePolyPolygon( this, xPolyPolygon, viewState, renderState, strokeAttributes ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - strokeTexturedPolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState, - const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >& textures, - const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xPolyPolygon, viewState, renderState, strokeAttributes, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.strokeTexturedPolyPolygon( this, xPolyPolygon, viewState, renderState, textures, strokeAttributes ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - strokeTextureMappedPolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState, - const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >& textures, - const ::com::sun::star::uno::Reference< ::com::sun::star::geometry::XMapping2D >& xMapping, - const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xPolyPolygon, viewState, renderState, textures, xMapping, strokeAttributes, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.strokeTextureMappedPolyPolygon( this, xPolyPolygon, viewState, renderState, textures, xMapping, strokeAttributes ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > SAL_CALL - queryStrokeShapes( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState, - const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xPolyPolygon, viewState, renderState, strokeAttributes, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.queryStrokeShapes( this, xPolyPolygon, viewState, renderState, strokeAttributes ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - fillPolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xPolyPolygon, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.fillPolyPolygon( this, xPolyPolygon, viewState, renderState ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - fillTexturedPolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState, - const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >& textures ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xPolyPolygon, viewState, renderState, textures, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.fillTexturedPolyPolygon( this, xPolyPolygon, viewState, renderState, textures ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - fillTextureMappedPolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState, - const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >& textures, - const ::com::sun::star::uno::Reference< ::com::sun::star::geometry::XMapping2D >& xMapping ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xPolyPolygon, viewState, renderState, textures, xMapping, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.fillTextureMappedPolyPolygon( this, xPolyPolygon, viewState, renderState, textures, xMapping ); - } - - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont > SAL_CALL - createFont( const ::com::sun::star::rendering::FontRequest& fontRequest, - const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& extraFontProperties, - const ::com::sun::star::geometry::Matrix2D& fontMatrix ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(fontRequest, - // dummy, to keep argPos in sync - fontRequest, - fontMatrix, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - return maCanvasHelper.createFont( this, fontRequest, extraFontProperties, fontMatrix ); - } - - - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::FontInfo > SAL_CALL - queryAvailableFonts( const ::com::sun::star::rendering::FontInfo& aFilter, - const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aFontProperties ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(aFilter, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - return maCanvasHelper.queryAvailableFonts( this, aFilter, aFontProperties ); - } - - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - drawText( const ::com::sun::star::rendering::StringContext& text, - const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont >& xFont, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState, - sal_Int8 textDirection ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xFont, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - tools::verifyRange( textDirection, - ::com::sun::star::rendering::TextDirection::WEAK_LEFT_TO_RIGHT, - ::com::sun::star::rendering::TextDirection::STRONG_RIGHT_TO_LEFT ); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.drawText( this, text, xFont, viewState, renderState, textDirection ); - } - - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - drawTextLayout( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XTextLayout >& layoutetText, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(layoutetText, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.drawTextLayout( this, layoutetText, viewState, renderState ); - } - - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - drawBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& xBitmap, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xBitmap, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.drawBitmap( this, xBitmap, viewState, renderState ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - drawBitmapModulated( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& xBitmap, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xBitmap, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - mbSurfaceDirty = true; - maCanvasHelper.modifying(); - - return maCanvasHelper.drawBitmapModulated( this, xBitmap, viewState, renderState ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice > SAL_CALL - getDevice() throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return maCanvasHelper.getDevice(); - } - - protected: - ~CanvasBase() {} // we're a ref-counted UNO class. _We_ destroy ourselves. - - HelperType maCanvasHelper; - mutable bool mbSurfaceDirty; - - private: - CanvasBase( const CanvasBase& ); - CanvasBase& operator=( const CanvasBase& ); - }; -} - -#endif /* INCLUDED_CANVAS_CANVASBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/canvascustomspritebase.hxx b/canvas/inc/canvas/base/canvascustomspritebase.hxx deleted file mode 100644 index ecae3e76c8..0000000000 --- a/canvas/inc/canvas/base/canvascustomspritebase.hxx +++ /dev/null @@ -1,280 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_CANVASCUSTOMSPRITEBASE_HXX -#define INCLUDED_CANVAS_CANVASCUSTOMSPRITEBASE_HXX - -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/rendering/XCustomSprite.hpp> -#include <com/sun/star/rendering/XPolyPolygon2D.hpp> -#include <basegfx/point/b2dpoint.hxx> -#include <basegfx/vector/b2dvector.hxx> -#include <basegfx/range/b2drange.hxx> -#include <canvas/base/integerbitmapbase.hxx> -#include <canvas/base/sprite.hxx> - -#include <boost/utility.hpp> - - -namespace canvas -{ - /** Helper template to handle XCustomSprite method forwarding to - CanvasCustomSpriteHelper - - Use this helper to handle the XCustomSprite part of your - implementation. - - @tpl Base - Base class to use, most probably one of the - WeakComponentImplHelperN templates with the appropriate - interfaces. At least XCustomSprite and Sprite should be among - them (why else would you use this template, then?). Base class - must have an Base( const Mutex& ) constructor (like the - WeakComponentImplHelperN templates have). - - @tpl SpriteHelper - Sprite helper implementation for the backend in question - - @tpl CanvasHelper - Canvas helper implementation for the backend in question - - @tpl Mutex - Lock strategy to use. Defaults to using the - OBaseMutex-provided lock. Everytime one of the methods is - entered, an object of type Mutex is created with m_aMutex as - the sole parameter, and destroyed again when the method scope - is left. - - @tpl UnambiguousBase - Optional unambiguous base class for XInterface of Base. It's - sometimes necessary to specify this parameter, e.g. if Base - derives from multiple UNO interface (were each provides its - own version of XInterface, making the conversion ambiguous) - - @see CanvasCustomSpriteHelper for further contractual - requirements towards the SpriteHelper type, and some examples. - */ - template< class Base, - class SpriteHelper, - class CanvasHelper, - class Mutex=::osl::MutexGuard, - class UnambiguousBase=::com::sun::star::uno::XInterface > class CanvasCustomSpriteBase : - public IntegerBitmapBase< Base, CanvasHelper, Mutex, UnambiguousBase > - { - public: - typedef IntegerBitmapBase< Base, CanvasHelper, Mutex, UnambiguousBase > BaseType; - typedef SpriteHelper SpriteHelperType; - - CanvasCustomSpriteBase() : - maSpriteHelper() - { - } - - /** Object is being disposed. - - Called from the cppu helper base, to notify disposal of - this object. Already releases all internal references. - - @derive when overriding this method in derived classes, - <em>always</em> call the base class' method! - */ - virtual void disposeThis() - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.disposing(); - - // pass on to base class - BaseType::disposeThis(); - } - - // XCanvas: selectively override base's methods here, for opacity tracking - virtual void SAL_CALL clear() throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.clearingContent( this ); - - // and forward to base class, which handles the actual rendering - return BaseType::clear(); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL - drawBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& xBitmap, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(xBitmap, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.checkDrawBitmap( this, xBitmap, viewState, renderState ); - - // and forward to base class, which handles the actual rendering - return BaseType::drawBitmap( xBitmap, - viewState, - renderState ); - } - - // TODO(F3): If somebody uses the XIntegerBitmap methods to - // clear pixel (setting alpha != 1.0 there), or a compositing - // mode results in similar alpha, maSpriteHelper might - // errorneously report fully opaque sprites. Effectively, all - // render methods must be overridden here; or better, - // functionality provided at the baseclass. - - // XSprite - virtual void SAL_CALL setAlpha( double alpha ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyRange( alpha, 0.0, 1.0 ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.setAlpha( this, alpha ); - } - - virtual void SAL_CALL move( const ::com::sun::star::geometry::RealPoint2D& aNewPos, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(aNewPos, viewState, renderState, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.move( this, aNewPos, viewState, renderState ); - } - - virtual void SAL_CALL transform( const ::com::sun::star::geometry::AffineMatrix2D& aTransformation ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(aTransformation, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.transform( this, aTransformation ); - } - - virtual void SAL_CALL clip( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& aClip ) throw (::com::sun::star::uno::RuntimeException) - { - // NULL xClip explicitely allowed here (to clear clipping) - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.clip( this, aClip ); - } - - virtual void SAL_CALL setPriority( double nPriority ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.setPriority( this, nPriority ); - } - - virtual void SAL_CALL show() throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.show( this ); - } - - virtual void SAL_CALL hide() throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maSpriteHelper.hide( this ); - } - - // XCustomSprite - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvas > SAL_CALL - getContentCanvas() throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return this; - } - - // Sprite - virtual bool isAreaUpdateOpaque( const ::basegfx::B2DRange& rUpdateArea ) const - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return maSpriteHelper.isAreaUpdateOpaque( rUpdateArea ); - } - - virtual bool isContentChanged() const - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::mbSurfaceDirty; - } - - virtual ::basegfx::B2DPoint getPosPixel() const - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return maSpriteHelper.getPosPixel(); - } - - virtual ::basegfx::B2DVector getSizePixel() const - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return maSpriteHelper.getSizePixel(); - } - - virtual ::basegfx::B2DRange getUpdateArea() const - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return maSpriteHelper.getUpdateArea(); - } - - virtual double getPriority() const - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return maSpriteHelper.getPriority(); - } - - protected: - SpriteHelperType maSpriteHelper; - }; -} - -#endif /* INCLUDED_CANVAS_CANVASCUSTOMSPRITEBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/canvascustomspritehelper.hxx b/canvas/inc/canvas/base/canvascustomspritehelper.hxx deleted file mode 100644 index 7376361d2e..0000000000 --- a/canvas/inc/canvas/base/canvascustomspritehelper.hxx +++ /dev/null @@ -1,296 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_CANVASCUSTOMSPRITEHELPER_HXX -#define INCLUDED_CANVAS_CANVASCUSTOMSPRITEHELPER_HXX - -#include <com/sun/star/rendering/XCustomSprite.hpp> -#include <com/sun/star/rendering/XPolyPolygon2D.hpp> -#include <basegfx/point/b2dpoint.hxx> -#include <basegfx/vector/b2dvector.hxx> -#include <basegfx/range/b2drange.hxx> -#include <basegfx/matrix/b2dhommatrix.hxx> -#include <canvas/base/spritesurface.hxx> -#include <canvas/canvastoolsdllapi.h> - -namespace canvas -{ - /* Definition of CanvasCustomSpriteHelper class */ - - /** Base class for an XSprite helper implementation - to be used - in concert with CanvasCustomSpriteBase - */ - class CANVASTOOLS_DLLPUBLIC CanvasCustomSpriteHelper - { - public: - CanvasCustomSpriteHelper(); - virtual ~CanvasCustomSpriteHelper() {} - - /** Init helper - - @param rSpriteSize - Requested size of the sprite, as passed to the - XSpriteCanvas::createCustomSprite() method - - @param rOwningSpriteCanvas - The XSpriteCanvas this sprite is displayed on - */ - void init( const ::com::sun::star::geometry::RealSize2D& rSpriteSize, - const SpriteSurface::Reference& rOwningSpriteCanvas ); - - /** Object is being disposed, release all internal references - - @derive when overriding this method in derived classes, - <em>always</em> call the base class' method! - */ - void disposing(); - - // XCanvas - /// need to call this method for XCanvas::clear(), for opacity tracking - void clearingContent( const Sprite::Reference& rSprite ); - - /// need to call this method for XCanvas::drawBitmap(), for opacity tracking - void checkDrawBitmap( const Sprite::Reference& rSprite, - const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& xBitmap, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ); - - // XSprite - void setAlpha( const Sprite::Reference& rSprite, - double alpha ); - void move( const Sprite::Reference& rSprite, - const ::com::sun::star::geometry::RealPoint2D& aNewPos, - const ::com::sun::star::rendering::ViewState& viewState, - const ::com::sun::star::rendering::RenderState& renderState ); - void transform( const Sprite::Reference& rSprite, - const ::com::sun::star::geometry::AffineMatrix2D& aTransformation ); - void clip( const Sprite::Reference& rSprite, - const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& aClip ); - void setPriority( const Sprite::Reference& rSprite, - double nPriority ); - void show( const Sprite::Reference& rSprite ); - void hide( const Sprite::Reference& rSprite ); - - // Sprite - bool isAreaUpdateOpaque( const ::basegfx::B2DRange& rUpdateArea ) const; - ::basegfx::B2DPoint getPosPixel() const; - ::basegfx::B2DVector getSizePixel() const; - ::basegfx::B2DRange getUpdateArea() const; - double getPriority() const; - - // redraw must be implemented by derived - non sensible default implementation - // void redraw( const Sprite::Reference& rSprite, - // const ::basegfx::B2DPoint& rPos ) const; - - - // Helper methods for derived classes - // ---------------------------------- - - /// Calc sprite update area from given raw sprite bounds - ::basegfx::B2DRange getUpdateArea( const ::basegfx::B2DRange& rUntransformedSpriteBounds ) const; - - /// Calc update area for unclipped sprite content - ::basegfx::B2DRange getFullSpriteRect() const; - - /** Returns true, if sprite content bitmap is fully opaque. - - This does not take clipping or transformation into - account, but only denotes that the sprite bitmap's alpha - channel is all 1.0 - */ - bool isContentFullyOpaque() const { return mbIsContentFullyOpaque; } - - /// Returns true, if transformation has changed since last transformUpdated() call - bool hasAlphaChanged() const { return mbAlphaDirty; } - - /// Returns true, if transformation has changed since last transformUpdated() call - bool hasPositionChanged() const { return mbPositionDirty; } - - /// Returns true, if transformation has changed since last transformUpdated() call - bool hasTransformChanged() const { return mbTransformDirty; } - - /// Returns true, if transformation has changed since last transformUpdated() call - bool hasClipChanged() const { return mbClipDirty; } - - /// Returns true, if transformation has changed since last transformUpdated() call - bool hasPrioChanged() const { return mbPrioDirty; } - - /// Returns true, if transformation has changed since last transformUpdated() call - bool hasVisibilityChanged() const { return mbVisibilityDirty; } - - /// Retrieve current alpha value - double getAlpha() const { return mfAlpha; } - - /// Retrieve current clip - const ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XPolyPolygon2D >& getClip() const { return mxClipPoly; } - - const ::basegfx::B2DHomMatrix& getTransformation() const { return maTransform; } - - /// Retrieve current activation state - bool isActive() const { return mbActive; } - - protected: - /** Notifies that caller is again in sync with current alph - - const, but modifies state visible to derived - classes. beware of passing this information to the - outside! - */ - void alphaUpdated() const { mbAlphaDirty=false; } - - /** Notifies that caller is again in sync with current position - - const, but modifies state visible to derived - classes. beware of passing this information to the - outside! - */ - void positionUpdated() const { mbPositionDirty=false; } - - /** Notifies that caller is again in sync with current transformation - - const, but modifies state visible to derived - classes. beware of passing this information to the - outside! - */ - void transformUpdated() const { mbTransformDirty=false; } - - /** Notifies that caller is again in sync with current clip - - const, but modifies state visible to derived - classes. beware of passing this information to the - outside! - */ - void clipUpdated() const { mbClipDirty=false; } - - /** Notifies that caller is again in sync with current priority - - const, but modifies state visible to derived - classes. beware of passing this information to the - outside! - */ - void prioUpdated() const { mbPrioDirty=false; } - - /** Notifies that caller is again in sync with current visibility - - const, but modifies state visible to derived - classes. beware of passing this information to the - outside! - */ - void visibilityUpdated() const { mbVisibilityDirty=false; } - - private: - CanvasCustomSpriteHelper( const CanvasCustomSpriteHelper& ); - CanvasCustomSpriteHelper& operator=( const CanvasCustomSpriteHelper& ); - - /** Called to convert an API polygon to a basegfx polygon - - @derive Needs to be provided by backend-specific code - */ - virtual ::basegfx::B2DPolyPolygon polyPolygonFromXPolyPolygon2D( - ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPoly ) const = 0; - - /** Update clip information from current state - - This method recomputes the maCurrClipBounds and - mbIsCurrClipRectangle members from the current clip and - transformation. IFF the clip changed from rectangular to - rectangular again, this method issues a sequence of - optimized SpriteSurface::updateSprite() calls. - - @return true, if SpriteSurface::updateSprite() was already - called within this method. - */ - bool updateClipState( const Sprite::Reference& rSprite ); - - // -------------------------------------------------------------------- - - /// Owning sprite canvas - SpriteSurface::Reference mpSpriteCanvas; - - /** Currently active clip area. - - This member is either empty, denoting that the current - clip shows the full sprite content, or contains a - rectangular subarea of the sprite, outside of which - the sprite content is fully clipped. - - @see mbIsCurrClipRectangle - */ - ::basegfx::B2DRange maCurrClipBounds; - - // sprite state - ::basegfx::B2DPoint maPosition; - ::basegfx::B2DVector maSize; - ::basegfx::B2DHomMatrix maTransform; - ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XPolyPolygon2D > mxClipPoly; - double mfPriority; - double mfAlpha; - bool mbActive; // true, if not hidden - - /** If true, denotes that the current sprite clip is a true - rectangle, i.e. maCurrClipBounds <em>exactly</em> - describes the visible area of the sprite. - - @see maCurrClipBounds - */ - bool mbIsCurrClipRectangle; - - /** Redraw speedup. - - When true, this flag denotes that the current sprite - content is fully opaque, thus, that blits to the screen do - neither have to take alpha into account, nor prepare any - background for the sprite area. - */ - mutable bool mbIsContentFullyOpaque; - - /// True, iff mfAlpha has changed - mutable bool mbAlphaDirty; - - /// True, iff maPosition has changed - mutable bool mbPositionDirty; - - /// True, iff maTransform has changed - mutable bool mbTransformDirty; - - /// True, iff mxClipPoly has changed - mutable bool mbClipDirty; - - /// True, iff mnPriority has changed - mutable bool mbPrioDirty; - - /// True, iff mbActive has changed - mutable bool mbVisibilityDirty; - }; -} - -#endif /* INCLUDED_CANVAS_CANVASCUSTOMSPRITEHELPER_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/disambiguationhelper.hxx b/canvas/inc/canvas/base/disambiguationhelper.hxx deleted file mode 100644 index b58ed29ea2..0000000000 --- a/canvas/inc/canvas/base/disambiguationhelper.hxx +++ /dev/null @@ -1,90 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_DISAMBIGUATIONHELPER_HXX -#define INCLUDED_CANVAS_DISAMBIGUATIONHELPER_HXX - -#include <osl/mutex.hxx> - - -/* Definition of the DisambiguationHelper class */ - -namespace canvas -{ - /** Base class, initializing its own baseclass with m_aMutex. - - This is necessary to make the CanvasBase, GraphicDeviceBase, - etc. classes freely combinable - letting them perform this - initialization would prohibit deriving e.g. CanvasBase from - GraphicDeviceBase. - - On top of that, disambiguates XEventListener::disposing and - WeakComponentImplHelper::disposing. - - Having two virtual methods with the same name, and not - overriding them in every derived class, will hide one of - them. Later trying to override the same method, will generate - a new vtable slot, and lead to very hard to spot errors. - */ - template< class Base > class DisambiguationHelper : public Base - { - public: - typedef Base BaseType; - - /** Construct DisambiguationHelper - - This method is the whole purpose of this template: - initializing a base class with the provided m_aMutex - member (the WeakComponentImplHelper templates need that, - as they require the lifetime of the mutex to extend - theirs). - */ - DisambiguationHelper() : - BaseType( m_aMutex ) - { - } - - virtual void SAL_CALL disposing() - { disposeThis(); } - - virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException) - { disposeEventSource(Source); } - - virtual void disposeThis() - {} - virtual void disposeEventSource( const ::com::sun::star::lang::EventObject& ) throw (::com::sun::star::uno::RuntimeException) - {} - -protected: - mutable ::osl::Mutex m_aMutex; - }; -} - -#endif /* INCLUDED_CANVAS_DISAMBIGUATIONHELPER_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/doublebitmapbase.hxx b/canvas/inc/canvas/base/doublebitmapbase.hxx deleted file mode 100644 index 912ef2c193..0000000000 --- a/canvas/inc/canvas/base/doublebitmapbase.hxx +++ /dev/null @@ -1,154 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_DOUBLEBITMAPBASE_HXX -#define INCLUDED_CANVAS_DOUBLEBITMAPBASE_HXX - -#include <com/sun/star/rendering/XIeeeDoubleBitmap.hpp> -#include <canvas/bitmapcanvasbase.hxx> - - -namespace canvas -{ - /** Helper template to handle XIeeeDoubleBitmap method forwarding to - BitmapCanvasHelper - - Use this helper to handle the XIeeeDoubleBitmap part of your - implementation. - - @tpl Base - Base class to use, most probably one of the - WeakComponentImplHelperN templates with the appropriate - interfaces. At least XIeeeDoubleBitmap should be among them (why - else would you use this template, then?). Base class must have - an Base( const Mutex& ) constructor (like the - WeakComponentImplHelperN templates have). - - @tpl CanvasHelper - Canvas helper implementation for the backend in question - - @tpl Mutex - Lock strategy to use. Defaults to using the - OBaseMutex-provided lock. Everytime one of the methods is - entered, an object of type Mutex is created with m_aMutex as - the sole parameter, and destroyed again when the method scope - is left. - - @tpl UnambiguousBase - Optional unambiguous base class for XInterface of Base. It's - sometimes necessary to specify this parameter, e.g. if Base - derives from multiple UNO interface (were each provides its - own version of XInterface, making the conversion ambiguous) - - @see CanvasBase for further contractual requirements towards - the CanvasHelper type, and some examples. - */ - template< class Base, - class CanvasHelper, - class Mutex=::osl::MutexGuard, - class UnambiguousBase=::com::sun::star::uno::XInterface > class DoubleBitmapBase : - public BitmapCanvasBase< Base, CanvasHelper, Mutex, UnambiguousBase > - { - public: - typedef BitmapCanvasBase< Base, CanvasHelper, Mutex, UnambiguousBase > BaseType; - - // XIeeeDoubleBitmap - virtual ::com::sun::star::uno::Sequence< double > SAL_CALL getData( ::com::sun::star::rendering::FloatingPointBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerRectangle2D& rect ) throw (::com::sun::star::lang::IndexOutOfBoundsException, - ::com::sun::star::rendering::VolatileContentDestroyedException, - ::com::sun::star::uno::RuntimeException) - { - verifyInput(rect, this); - verifyIndexRange(rect, getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getData( bitmapLayout, - rect ); - } - - virtual void SAL_CALL setData( const ::com::sun::star::uno::Sequence< double >& data, - const ::com::sun::star::rendering::FloatingPointBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerRectangle2D& rect ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::IndexOutOfBoundsException, - ::com::sun::star::uno::RuntimeException) - { - verifyInput(bitmapLayout, rect, this); - verifyIndexRange(rect, getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - BaseType::mbSurfaceDirty = true; - BaseType::maCanvasHelper.modifying(); - - BaseType::maCanvasHelper.setData( data, bitmapLayout, rect ); - } - - virtual void SAL_CALL setPixel( const ::com::sun::star::uno::Sequence< double >& color, - const ::com::sun::star::rendering::FloatingPointBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerPoint2D& pos ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::IndexOutOfBoundsException, - ::com::sun::star::uno::RuntimeException) - { - verifyInput(bitmapLayout, pos, this); - verifyIndexRange(pos, getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - BaseType::mbSurfaceDirty = true; - BaseType::maCanvasHelper.modifying(); - - BaseType::maCanvasHelper.setPixel( color, bitmapLayout, pos ); - } - - virtual ::com::sun::star::uno::Sequence< double > SAL_CALL getPixel( ::com::sun::star::rendering::FloatingPointBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerPoint2D& pos ) throw (::com::sun::star::lang::IndexOutOfBoundsException, - ::com::sun::star::rendering::VolatileContentDestroyedException, - ::com::sun::star::uno::RuntimeException) - { - verifyInput(pos, this); - verifyIndexRange(pos, getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getPixel( bitmapLayout, - pos ); - } - - virtual ::com::sun::star::rendering::FloatingPointBitmapLayout SAL_CALL getMemoryLayout( ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getMemoryLayout(); - } - }; -} - -#endif /* INCLUDED_CANVAS_DOUBLEBITMAPBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/floatbitmapbase.hxx b/canvas/inc/canvas/base/floatbitmapbase.hxx deleted file mode 100644 index b566697f87..0000000000 --- a/canvas/inc/canvas/base/floatbitmapbase.hxx +++ /dev/null @@ -1,158 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_FLOATBITMAPBASE_HXX -#define INCLUDED_CANVAS_FLOATBITMAPBASE_HXX - -#include <com/sun/star/rendering/XIeeeFloatBitmap.hpp> -#include <canvas/bitmapcanvasbase.hxx> - - -namespace canvas -{ - /** Helper template to handle XIeeeFloatBitmap method forwarding to - BitmapCanvasHelper - - Use this helper to handle the XIeeeFloatBitmap part of your - implementation. - - @tpl Base - Base class to use, most probably one of the - WeakComponentImplHelperN templates with the appropriate - interfaces. At least XIeeeFloatBitmap should be among them (why - else would you use this template, then?). Base class must have - an Base( const Mutex& ) constructor (like the - WeakComponentImplHelperN templates have). - - @tpl CanvasHelper - Canvas helper implementation for the backend in question - - @tpl Mutex - Lock strategy to use. Defaults to using the - OBaseMutex-provided lock. Everytime one of the methods is - entered, an object of type Mutex is created with m_aMutex as - the sole parameter, and destroyed again when the method scope - is left. - - @tpl UnambiguousBase - Optional unambiguous base class for XInterface of Base. It's - sometimes necessary to specify this parameter, e.g. if Base - derives from multiple UNO interface (were each provides its - own version of XInterface, making the conversion ambiguous) - - @see CanvasBase for further contractual requirements towards - the CanvasHelper type, and some examples. - */ - template< class Base, - class CanvasHelper, - class Mutex=::osl::MutexGuard, - class UnambiguousBase=::com::sun::star::uno::XInterface > class FloatBitmapBase : - public BitmapCanvasBase< Base, CanvasHelper, Mutex, UnambiguousBase > - { - public: - typedef BitmapCanvasBase< Base, CanvasHelper, Mutex, UnambiguousBase > BaseType; - - // XIeeeFloatBitmap - virtual ::com::sun::star::uno::Sequence< float > SAL_CALL getData( ::com::sun::star::rendering::FloatingPointBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerRectangle2D& rect ) throw (::com::sun::star::lang::IndexOutOfBoundsException, - ::com::sun::star::rendering::VolatileContentDestroyedException, - ::com::sun::star::uno::RuntimeException) - { - verifyInput(rect, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - verifyIndexRange(rect, getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getData( bitmapLayout, - rect ); - } - - virtual void SAL_CALL setData( const ::com::sun::star::uno::Sequence< float >& data, - const ::com::sun::star::rendering::FloatingPointBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerRectangle2D& rect ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::IndexOutOfBoundsException, - ::com::sun::star::uno::RuntimeException) - { - verifyInput(bitmapLayout, rect, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - verifyIndexRange(rect, getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - BaseType::mbSurfaceDirty = true; - BaseType::maCanvasHelper.modifying(); - - BaseType::maCanvasHelper.setData( data, bitmapLayout, rect ); - } - - virtual void SAL_CALL setPixel( const ::com::sun::star::uno::Sequence< float >& color, - const ::com::sun::star::rendering::FloatingPointBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerPoint2D& pos ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::IndexOutOfBoundsException, - ::com::sun::star::uno::RuntimeException) - { - verifyInput(bitmapLayout, pos, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - verifyIndexRange(pos, getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - BaseType::mbSurfaceDirty = true; - BaseType::maCanvasHelper.modifying(); - - BaseType::maCanvasHelper.setPixel( color, bitmapLayout, pos ); - } - - virtual ::com::sun::star::uno::Sequence< float > SAL_CALL getPixel( ::com::sun::star::rendering::FloatingPointBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerPoint2D& pos ) throw (::com::sun::star::lang::IndexOutOfBoundsException, - ::com::sun::star::rendering::VolatileContentDestroyedException, - ::com::sun::star::uno::RuntimeException) - { - verifyInput(pos, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - verifyIndexRange(pos, getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getPixel( bitmapLayout, - pos ); - } - - virtual ::com::sun::star::rendering::FloatingPointBitmapLayout SAL_CALL getMemoryLayout( ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getMemoryLayout(); - } - }; -} - -#endif /* INCLUDED_CANVAS_FLOATBITMAPBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/graphicdevicebase.hxx b/canvas/inc/canvas/base/graphicdevicebase.hxx deleted file mode 100644 index 5cef1cd626..0000000000 --- a/canvas/inc/canvas/base/graphicdevicebase.hxx +++ /dev/null @@ -1,391 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_GRAPHICDEVICEBASE_HXX -#define INCLUDED_CANVAS_GRAPHICDEVICEBASE_HXX - -#include <rtl/ref.hxx> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/util/XUpdatable.hpp> -#include <com/sun/star/rendering/XGraphicDevice.hpp> -#include <com/sun/star/rendering/XColorSpace.hpp> - -#include <canvas/parametricpolypolygon.hxx> -#include <canvas/propertysethelper.hxx> - - -/* Definition of GraphicDeviceBase class */ - -namespace canvas -{ - /** Helper template base class for XGraphicDevice implementations. - - This base class provides partial implementations of the - XGraphicDevice-related interface, such as XColorSpace. - - This template basically interposes itself between the full - interface you implement (i.e. not restricted to XGraphicDevice - etc.). The problem with UNO partial interface implementation - actually is, that you cannot do it the plain way, since - deriving from a common base subclass always introduces the - whole set of pure virtuals, that your baseclass helper just - overrided) and your implementation class. You then only have - to implement the functionality <em>besides</em> - XGraphicDevice. If you want to support the optional debug - XUpdatable interface, also add that to the base classes - (client code will call the corresponding update() method, - whenever a burst of animations is over). - - <pre> - Example: - typedef ::cppu::WeakComponentImplHelper5< ::com::sun::star::rendering::XGraphicDevice, - ::com::sun::star::rendering::XColorSpace, - ::com::sun::star::rendering::XPropertySet, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::lang::XServiceName > GraphicDeviceBase_Base; - typedef ::canvas::internal::GraphicDeviceBase< GraphicDeviceBase, DeviceHelper > ExampleDevice_Base; - - class ExampleDevice : public ExampleDevice_Base - { - }; - </pre> - - @tpl Base - Base class to use, most probably one of the - WeakComponentImplHelperN templates with the appropriate - interfaces. At least XGraphicDevice should be among them (why else - would you use this template, then?). Base class must have an - Base( const Mutex& ) constructor (like the - WeakComponentImplHelperN templates have). As the very least, - the base class must be derived from uno::XInterface, as some - error reporting mechanisms rely on that. - - @tpl DeviceHelper - Device helper implementation for the backend in question. This - object will be held as a member of this template class, and - basically gets forwarded all XGraphicDevice API calls that - could not be handled generically. - - @tpl Mutex - Lock strategy to use. Defaults to using the - DisambiguationHelper-provided lock. Everytime one of the methods is - entered, an object of type Mutex is created with m_aMutex as - the sole parameter, and destroyed again when the method scope - is left. - - @tpl UnambiguousBase - Optional unambiguous base class for XInterface of Base. It's - sometimes necessary to specify this parameter, e.g. if Base - derives from multiple UNO interface (were each provides its - own version of XInterface, making the conversion ambiguous) - */ - template< class Base, - class DeviceHelper, - class Mutex=::osl::MutexGuard, - class UnambiguousBase=::com::sun::star::uno::XInterface > class GraphicDeviceBase : - public Base - { - public: - typedef Base BaseType; - typedef DeviceHelper DeviceHelperType; - typedef Mutex MutexType; - typedef UnambiguousBase UnambiguousBaseType; - typedef GraphicDeviceBase ThisType; - - typedef ::rtl::Reference< GraphicDeviceBase > Reference; - - GraphicDeviceBase() : - maDeviceHelper(), - maPropHelper(), - mbDumpScreenContent(false) - { - maPropHelper.initProperties( PropertySetHelper::MakeMap - ("HardwareAcceleration", - boost::bind(&DeviceHelper::isAccelerated, - boost::ref(maDeviceHelper))) - ("DeviceHandle", - boost::bind(&DeviceHelper::getDeviceHandle, - boost::ref(maDeviceHelper))) - ("SurfaceHandle", - boost::bind(&DeviceHelper::getSurfaceHandle, - boost::ref(maDeviceHelper))) - ("DumpScreenContent", - boost::bind(&ThisType::getDumpScreenContent, - this), - boost::bind(&ThisType::setDumpScreenContent, - this, - _1))); - } - - virtual void disposeThis() - { - MutexType aGuard( BaseType::m_aMutex ); - - maDeviceHelper.disposing(); - - // pass on to base class - BaseType::disposeThis(); - } - - // XGraphicDevice - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBufferController > SAL_CALL getBufferController( ) throw (::com::sun::star::uno::RuntimeException) - { - return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBufferController >(); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XColorSpace > SAL_CALL getDeviceColorSpace( ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.getColorSpace(); - } - - virtual ::com::sun::star::geometry::RealSize2D SAL_CALL getPhysicalResolution( ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.getPhysicalResolution(); - } - - virtual ::com::sun::star::geometry::RealSize2D SAL_CALL getPhysicalSize( ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.getPhysicalSize(); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XLinePolyPolygon2D > SAL_CALL createCompatibleLinePolyPolygon( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealPoint2D > >& points ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.createCompatibleLinePolyPolygon( this, points ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBezierPolyPolygon2D > SAL_CALL createCompatibleBezierPolyPolygon( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealBezierSegment2D > >& points ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.createCompatibleBezierPolyPolygon( this, points ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyBitmapSize(size, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.createCompatibleBitmap( this, size ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > SAL_CALL createVolatileBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyBitmapSize(size, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.createVolatileBitmap( this, size ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleAlphaBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyBitmapSize(size, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.createCompatibleAlphaBitmap( this, size ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > SAL_CALL createVolatileAlphaBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyBitmapSize(size, - BOOST_CURRENT_FUNCTION, - static_cast< UnambiguousBaseType* >(this)); - - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.createVolatileAlphaBitmap( this, size ); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > SAL_CALL getParametricPolyPolygonFactory( ) throw (::com::sun::star::uno::RuntimeException) - { - return this; - } - - virtual ::sal_Bool SAL_CALL hasFullScreenMode( ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.hasFullScreenMode(); - } - - virtual ::sal_Bool SAL_CALL enterFullScreenMode( ::sal_Bool bEnter ) throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - return maDeviceHelper.enterFullScreenMode( bEnter ); - } - - // XMultiServiceFactory - virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::rtl::OUString& aServiceSpecifier ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException) - { - return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >( - ParametricPolyPolygon::create(this, - aServiceSpecifier, - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >())); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstanceWithArguments( const ::rtl::OUString& aServiceSpecifier, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Arguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException) - { - return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >( - ParametricPolyPolygon::create(this, - aServiceSpecifier, - Arguments)); - } - - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames( ) throw (::com::sun::star::uno::RuntimeException) - { - return ParametricPolyPolygon::getAvailableServiceNames(); - } - - - // XUpdatable - virtual void SAL_CALL update() throw (com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - - if( mbDumpScreenContent ) - maDeviceHelper.dumpScreenContent(); - } - - - // XPropertySet - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - return maPropHelper.getPropertySetInfo(); - } - - virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::beans::PropertyVetoException, - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - maPropHelper.setPropertyValue( aPropertyName, aValue ); - } - - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& aPropertyName ) throw (::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - return maPropHelper.getPropertyValue( aPropertyName ); - } - - virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw (::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - maPropHelper.addPropertyChangeListener( aPropertyName, - xListener ); - } - - virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw (::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - maPropHelper.removePropertyChangeListener( aPropertyName, - xListener ); - } - - virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& xListener ) throw (::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - maPropHelper.addVetoableChangeListener( aPropertyName, - xListener ); - } - - virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& xListener ) throw (::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException) - { - MutexType aGuard( BaseType::m_aMutex ); - maPropHelper.removeVetoableChangeListener( aPropertyName, - xListener ); - } - - protected: - ~GraphicDeviceBase() {} // we're a ref-counted UNO class. _We_ destroy ourselves. - - ::com::sun::star::uno::Any getDumpScreenContent() const - { - return ::com::sun::star::uno::makeAny( mbDumpScreenContent ); - } - - void setDumpScreenContent( const ::com::sun::star::uno::Any& rAny ) - { - // TODO(Q1): this was mbDumpScreenContent = - // rAny.get<bool>(), only that gcc3.3 wouldn't eat it - rAny >>= mbDumpScreenContent; - } - - DeviceHelperType maDeviceHelper; - PropertySetHelper maPropHelper; - bool mbDumpScreenContent; - - private: - GraphicDeviceBase( const GraphicDeviceBase& ); - GraphicDeviceBase& operator=( const GraphicDeviceBase& ); - }; -} - -#endif /* INCLUDED_CANVAS_GRAPHICDEVICEBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/integerbitmapbase.hxx b/canvas/inc/canvas/base/integerbitmapbase.hxx deleted file mode 100644 index 761ebcfb4d..0000000000 --- a/canvas/inc/canvas/base/integerbitmapbase.hxx +++ /dev/null @@ -1,154 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_INTEGERBITMAPBASE_HXX -#define INCLUDED_CANVAS_INTEGERBITMAPBASE_HXX - -#include <com/sun/star/rendering/XIntegerBitmap.hpp> -#include <canvas/base/bitmapcanvasbase.hxx> - - -namespace canvas -{ - /** Helper template to handle XIntegerBitmap method forwarding to - BitmapCanvasHelper - - Use this helper to handle the XIntegerBitmap part of your - implementation. - - @tpl Base - Base class to use, most probably one of the - WeakComponentImplHelperN templates with the appropriate - interfaces. At least XIntegerBitmap should be among them (why - else would you use this template, then?). Base class must have - an Base( const Mutex& ) constructor (like the - WeakComponentImplHelperN templates have). - - @tpl CanvasHelper - Canvas helper implementation for the backend in question - - @tpl Mutex - Lock strategy to use. Defaults to using the - OBaseMutex-provided lock. Everytime one of the methods is - entered, an object of type Mutex is created with m_aMutex as - the sole parameter, and destroyed again when the method scope - is left. - - @tpl UnambiguousBase - Optional unambiguous base class for XInterface of Base. It's - sometimes necessary to specify this parameter, e.g. if Base - derives from multiple UNO interface (were each provides its - own version of XInterface, making the conversion ambiguous) - - @see CanvasBase for further contractual requirements towards - the CanvasHelper type, and some examples. - */ - template< class Base, - class CanvasHelper, - class Mutex=::osl::MutexGuard, - class UnambiguousBase=::com::sun::star::uno::XInterface > class IntegerBitmapBase : - public BitmapCanvasBase< Base, CanvasHelper, Mutex, UnambiguousBase > - { - public: - typedef BitmapCanvasBase< Base, CanvasHelper, Mutex, UnambiguousBase > BaseType; - - // XIntegerBitmap - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getData( ::com::sun::star::rendering::IntegerBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerRectangle2D& rect ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::rendering::VolatileContentDestroyedException, ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(rect, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - tools::verifyIndexRange(rect, BaseType::getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getData( bitmapLayout, - rect ); - } - - virtual void SAL_CALL setData( const ::com::sun::star::uno::Sequence< sal_Int8 >& data, - const ::com::sun::star::rendering::IntegerBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerRectangle2D& rect ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(bitmapLayout, rect, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - tools::verifyIndexRange(rect, BaseType::getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - BaseType::mbSurfaceDirty = true; - BaseType::maCanvasHelper.modifying(); - - BaseType::maCanvasHelper.setData( data, bitmapLayout, rect ); - } - - virtual void SAL_CALL setPixel( const ::com::sun::star::uno::Sequence< sal_Int8 >& color, - const ::com::sun::star::rendering::IntegerBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerPoint2D& pos ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(bitmapLayout, pos, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - tools::verifyIndexRange(pos, BaseType::getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - BaseType::mbSurfaceDirty = true; - BaseType::maCanvasHelper.modifying(); - - BaseType::maCanvasHelper.setPixel( color, bitmapLayout, pos ); - } - - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getPixel( ::com::sun::star::rendering::IntegerBitmapLayout& bitmapLayout, - const ::com::sun::star::geometry::IntegerPoint2D& pos ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::rendering::VolatileContentDestroyedException, ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(pos, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - tools::verifyIndexRange(pos, BaseType::getSize() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getPixel( bitmapLayout, - pos ); - } - - virtual ::com::sun::star::rendering::IntegerBitmapLayout SAL_CALL getMemoryLayout( ) throw (::com::sun::star::uno::RuntimeException) - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.getMemoryLayout(); - } - }; -} - -#endif /* INCLUDED_CANVAS_INTEGERBITMAPBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/sprite.hxx b/canvas/inc/canvas/base/sprite.hxx deleted file mode 100644 index 28c9be6a5d..0000000000 --- a/canvas/inc/canvas/base/sprite.hxx +++ /dev/null @@ -1,122 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_SPRITE_HXX -#define INCLUDED_CANVAS_SPRITE_HXX - -#include <rtl/ref.hxx> -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/rendering/XCanvas.hpp> -#include <basegfx/point/b2dpoint.hxx> -#include <basegfx/vector/b2dsize.hxx> - -namespace basegfx -{ - class B2DPoint; - class B2DVector; - class B2DRange; -} - -namespace canvas -{ - /* Definition of Sprite interface (as we mix with UNO here, has to - be XInterface - reference holders to a Sprite must be able to - control lifetime of reference target) - */ - - /** Helper interface to connect SpriteCanvas with various - sprite implementations. - - This interface should be implemented from every sprite class, - as it provides essential repaint and update area facilitates. - - @derive typically, each canvas implementation will derive - another interface from this one, that adds rendering - functionality (which, of course, is impossible here in a - generic way) - */ - class Sprite : public ::com::sun::star::lang::XComponent - { - public: - typedef ::rtl::Reference< Sprite > Reference; - - /** Query whether sprite update will fully cover the given area. - - Use this method to determine whether any background - content (regardless of static or sprite) needs an update - before rendering this sprite. - - @return true, if sprite redraw will fully overwrite given - area (and thus, the background need not be redrawn - beforehand). - */ - virtual bool isAreaUpdateOpaque( const ::basegfx::B2DRange& rUpdateArea ) const = 0; - - /** Query whether content has changed - */ - virtual bool isContentChanged() const = 0; - - /** Query position of the left, top pixel of the sprite - */ - virtual ::basegfx::B2DPoint getPosPixel() const = 0; - - /** Query size of the sprite in pixel. - */ - virtual ::basegfx::B2DVector getSizePixel() const = 0; - - /** Get area that is currently covered by the sprite - - This area is already adapted to clipping, alpha and - transformation state of this sprite. - */ - virtual ::basegfx::B2DRange getUpdateArea() const = 0; - - /** Query sprite priority - */ - virtual double getPriority() const = 0; - }; - - /** Functor providing a StrictWeakOrdering for sprite references - */ - struct SpriteComparator - { - bool operator()( const Sprite::Reference& rLHS, - const Sprite::Reference& rRHS ) - { - const double nPrioL( rLHS->getPriority() ); - const double nPrioR( rRHS->getPriority() ); - - // if prios are equal, tie-break on ptr value - return nPrioL == nPrioR ? rLHS.get() < rRHS.get() : nPrioL < nPrioR; - } - }; -} - -#endif /* INCLUDED_CANVAS_SPRITE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/spritecanvasbase.hxx b/canvas/inc/canvas/base/spritecanvasbase.hxx deleted file mode 100644 index 7204e8298f..0000000000 --- a/canvas/inc/canvas/base/spritecanvasbase.hxx +++ /dev/null @@ -1,202 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_SPRITECANVASBASE_HXX -#define INCLUDED_CANVAS_SPRITECANVASBASE_HXX - -#include <rtl/ref.hxx> -#include <com/sun/star/rendering/XSpriteCanvas.hpp> -#include <com/sun/star/rendering/InterpolationMode.hpp> -#include <canvas/base/integerbitmapbase.hxx> -#include <canvas/spriteredrawmanager.hxx> - - -namespace canvas -{ - /** Helper template to handle XIntegerBitmap method forwarding to - BitmapCanvasHelper - - Use this helper to handle the XIntegerBitmap part of your - implementation. - - @tpl Base - Base class to use, most probably one of the - WeakComponentImplHelperN templates with the appropriate - interfaces. At least XSpriteCanvas and SpriteSurface should be - among them (why else would you use this template, then?). Base - class must have an Base( const Mutex& ) constructor (like the - WeakComponentImplHelperN templates have). - - @tpl CanvasHelper - Canvas helper implementation for the backend in question - - @tpl Mutex - Lock strategy to use. Defaults to using the - OBaseMutex-provided lock. Everytime one of the methods is - entered, an object of type Mutex is created with m_aMutex as - the sole parameter, and destroyed again when the method scope - is left. - - @tpl UnambiguousBase - Optional unambiguous base class for XInterface of Base. It's - sometimes necessary to specify this parameter, e.g. if Base - derives from multiple UNO interface (were each provides its - own version of XInterface, making the conversion ambiguous) - - @see CanvasBase for further contractual requirements towards - the CanvasHelper type, and some examples. - */ - template< class Base, - class CanvasHelper, - class Mutex=::osl::MutexGuard, - class UnambiguousBase=::com::sun::star::uno::XInterface > class SpriteCanvasBase : - public IntegerBitmapBase< Base, CanvasHelper, Mutex, UnambiguousBase > - { - public: - typedef IntegerBitmapBase< Base, CanvasHelper, Mutex, UnambiguousBase > BaseType; - typedef ::rtl::Reference< SpriteCanvasBase > Reference; - - SpriteCanvasBase() : - maRedrawManager() - { - } - - virtual void disposeThis() - { - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maRedrawManager.disposing(); - - // pass on to base class - BaseType::disposeThis(); - } - - // XSpriteCanvas - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimatedSprite > SAL_CALL createSpriteFromAnimation( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimation >& animation ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(animation, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.createSpriteFromAnimation(animation); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimatedSprite > SAL_CALL createSpriteFromBitmaps( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > >& animationBitmaps, - sal_Int8 interpolationMode ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::rendering::VolatileContentDestroyedException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(animationBitmaps, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - tools::verifyRange( interpolationMode, - ::com::sun::star::rendering::InterpolationMode::NEAREST_NEIGHBOR, - ::com::sun::star::rendering::InterpolationMode::BEZIERSPLINE4 ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.createSpriteFromBitmaps(animationBitmaps, interpolationMode); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCustomSprite > SAL_CALL createCustomSprite( const ::com::sun::star::geometry::RealSize2D& spriteSize ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifySpriteSize(spriteSize, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.createCustomSprite(spriteSize); - } - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XSprite > SAL_CALL createClonedSprite( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XSprite >& original ) throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException) - { - tools::verifyArgs(original, - BOOST_CURRENT_FUNCTION, - static_cast< typename BaseType::UnambiguousBaseType* >(this)); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - return BaseType::maCanvasHelper.createClonedSprite(original); - } - - // SpriteSurface - virtual void showSprite( const Sprite::Reference& rSprite ) - { - OSL_ASSERT( rSprite.is() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maRedrawManager.showSprite( rSprite ); - } - - virtual void hideSprite( const Sprite::Reference& rSprite ) - { - OSL_ASSERT( rSprite.is() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maRedrawManager.hideSprite( rSprite ); - } - - virtual void moveSprite( const Sprite::Reference& rSprite, - const ::basegfx::B2DPoint& rOldPos, - const ::basegfx::B2DPoint& rNewPos, - const ::basegfx::B2DVector& rSpriteSize ) - { - OSL_ASSERT( rSprite.is() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maRedrawManager.moveSprite( rSprite, rOldPos, rNewPos, rSpriteSize ); - } - - virtual void updateSprite( const Sprite::Reference& rSprite, - const ::basegfx::B2DPoint& rPos, - const ::basegfx::B2DRange& rUpdateArea ) - { - OSL_ASSERT( rSprite.is() ); - - typename BaseType::MutexType aGuard( BaseType::m_aMutex ); - - maRedrawManager.updateSprite( rSprite, rPos, rUpdateArea ); - } - - protected: - SpriteRedrawManager maRedrawManager; - }; -} - -#endif /* INCLUDED_CANVAS_SPRITECANVASBASE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/canvas/inc/canvas/base/spritesurface.hxx b/canvas/inc/canvas/base/spritesurface.hxx deleted file mode 100644 index cd66f43695..0000000000 --- a/canvas/inc/canvas/base/spritesurface.hxx +++ /dev/null @@ -1,76 +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. - * - ************************************************************************/ - -#ifndef INCLUDED_CANVAS_SPRITESURFACE_HXX -#define INCLUDED_CANVAS_SPRITESURFACE_HXX - -#include <canvas/base/sprite.hxx> - -namespace canvas -{ - /* Definition of the SpriteSurface interface */ - - /** Canvas surface containing sprites - - Every canvas surface that contains sprites must implement this - interface, when employing the canvas base framework. The - methods provided here are used from the individual sprites to - notify the canvas about necessary screen updates. - */ - class SpriteSurface : public ::com::sun::star::uno::XInterface - { - public: - typedef ::rtl::Reference< SpriteSurface > Reference; - - /// Sprites should call this from XSprite::show() - virtual void showSprite( const Sprite::Reference& rSprite ) = 0; - - /// Sprites should call this from XSprite::hide() - virtual void hideSprite( const Sprite::Reference& rSprite ) = 0; - - /// Sprites should call this from XSprite::move() - virtual void moveSprite( const Sprite::Reference& rSprite, - const ::basegfx::B2DPoint& rOldPos, - const ::basegfx::B2DPoint& rNewPos, - const ::basegfx::B2DVector& rSpriteSize ) = 0; - - /** Sprites should call this when some part of the content has - changed. - - That includes show/hide, i.e. for show, both showSprite() - and updateSprite() must be called. - */ - virtual void updateSprite( const Sprite::Reference& rSprite, - const ::basegfx::B2DPoint& rPos, - const ::basegfx::B2DRange& rUpdateArea ) = 0; - }; -} - -#endif /* INCLUDED_CANVAS_SPRITESURFACE_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |