diff options
author | Kurt Zenker <kz@openoffice.org> | 2008-06-24 09:54:53 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2008-06-24 09:54:53 +0000 |
commit | 8d4cd9ae66019d4fd30cd865dfc0208da697e31d (patch) | |
tree | b0511a3d409bf32097b7bc526a5e178de14111f1 /canvas | |
parent | 17de35c057d0f22f640d73c0b9635c08090a5f34 (diff) |
INTEGRATION: CWS canvas05 (1.8.2); FILE MERGED
2008/04/21 07:28:17 thb 1.8.2.2: RESYNC: (1.8-1.9); FILE MERGED
2007/12/20 22:18:59 thb 1.8.2.1: #i81092# #i78888# #i78925# #i79258# #i79437# #i84784# Large canvas rework, completing various areas such as color spaces, bitmap data access, true sprite and non-sprite implementations, and upstreaming the canvas parts of rodos emf+ rendering
Diffstat (limited to 'canvas')
-rw-r--r-- | canvas/source/vcl/canvasbitmap.hxx | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/canvas/source/vcl/canvasbitmap.hxx b/canvas/source/vcl/canvasbitmap.hxx index c35f16af4f32..fa795c63a8d1 100644 --- a/canvas/source/vcl/canvasbitmap.hxx +++ b/canvas/source/vcl/canvasbitmap.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: canvasbitmap.hxx,v $ - * $Revision: 1.9 $ + * $Revision: 1.10 $ * * This file is part of OpenOffice.org. * @@ -31,11 +31,12 @@ #ifndef _VCLCANVAS_CANVASBITMAP_HXX #define _VCLCANVAS_CANVASBITMAP_HXX -#include <cppuhelper/compbase3.hxx> +#include <cppuhelper/compbase4.hxx> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/rendering/XBitmapCanvas.hpp> #include <com/sun/star/rendering/XIntegerBitmap.hpp> +#include <com/sun/star/beans/XFastPropertySet.hpp> #include <vcl/virdev.hxx> #include <vcl/bitmapex.hxx> @@ -54,9 +55,10 @@ namespace vclcanvas { - typedef ::cppu::WeakComponentImplHelper3< ::com::sun::star::rendering::XBitmapCanvas, + typedef ::cppu::WeakComponentImplHelper4< ::com::sun::star::rendering::XBitmapCanvas, ::com::sun::star::rendering::XIntegerBitmap, - ::com::sun::star::lang::XServiceInfo > CanvasBitmapBase_Base; + ::com::sun::star::lang::XServiceInfo, + ::com::sun::star::beans::XFastPropertySet > CanvasBitmapBase_Base; typedef ::canvas::IntegerBitmapBase< ::canvas::BaseMutexHelper< CanvasBitmapBase_Base >, CanvasBitmapHelper, tools::LocalGuard, @@ -77,13 +79,15 @@ namespace vclcanvas @param rDevice Reference device, with which bitmap should be compatible */ - CanvasBitmap( const ::Size& rSize, - bool bAlphaBitmap, - const DeviceRef& rDevice ); + CanvasBitmap( const ::Size& rSize, + bool bAlphaBitmap, + ::com::sun::star::rendering::XGraphicDevice& rDevice, + const OutDevProviderSharedPtr& rOutDevProvider ); /// Must be called with locked Solar mutex - CanvasBitmap( const BitmapEx& rBitmap, - const DeviceRef& rDevice ); + CanvasBitmap( const BitmapEx& rBitmap, + ::com::sun::star::rendering::XGraphicDevice& rDevice, + const OutDevProviderSharedPtr& rOutDevProvider ); // overridden because of mpDevice virtual void SAL_CALL disposing(); @@ -104,11 +108,24 @@ namespace vclcanvas /// Not threadsafe! Returned object is shared! BitmapEx getBitmap() const; + // XFastPropertySet + // used to retrieve BitmapEx pointer or X Pixmap handles for this bitmap + // handle values have these meanings: + // 0 ... get pointer to BitmapEx + // 1 ... get X pixmap handle to rgb content + // 2 ... get X pitmap handle to alpha mask + // returned any contains either BitmapEx pointer or array of three Any value + // 1st a bool value: true - free the pixmap after used by XFreePixmap, false do nothing, the pixmap is used internally in the canvas + // 2nd the pixmap handle + // 3rd the pixmap depth + virtual ::com::sun::star::uno::Any SAL_CALL getFastPropertyValue(sal_Int32 nHandle) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFastPropertyValue(sal_Int32, const ::com::sun::star::uno::Any&) throw (::com::sun::star::uno::RuntimeException) {} + private: /** MUST hold here, too, since CanvasHelper only contains a raw pointer (without refcounting) */ - DeviceRef mpDevice; + ::com::sun::star::uno::Reference<com::sun::star::rendering::XGraphicDevice> mxDevice; }; } |