diff options
author | Oliver Bolte <obo@openoffice.org> | 2007-01-22 10:48:48 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2007-01-22 10:48:48 +0000 |
commit | 019a9ea6cb8488dab106816c85658faf2b533ed7 (patch) | |
tree | 3f2c4523e18997debeb7a7442b36065acf49df3e /cppcanvas/source/inc | |
parent | 0f847d9d18e62563a268240d1b296183f83f8455 (diff) |
INTEGRATION: CWS thbpp6 (1.10.40); FILE MERGED
2006/12/21 17:20:52 thb 1.10.40.1: #121806# Now keeping full precision of the mtf logic coordinates across mtf->XCanvas conversion
Diffstat (limited to 'cppcanvas/source/inc')
-rw-r--r-- | cppcanvas/source/inc/implrenderer.hxx | 141 |
1 files changed, 78 insertions, 63 deletions
diff --git a/cppcanvas/source/inc/implrenderer.hxx b/cppcanvas/source/inc/implrenderer.hxx index 0d56ac3bf7a4..63f8c4fbea37 100644 --- a/cppcanvas/source/inc/implrenderer.hxx +++ b/cppcanvas/source/inc/implrenderer.hxx @@ -4,9 +4,9 @@ * * $RCSfile: implrenderer.hxx,v $ * - * $Revision: 1.10 $ + * $Revision: 1.11 $ * - * last change: $Author: kz $ $Date: 2005-11-02 13:39:25 $ + * last change: $Author: obo $ $Date: 2007-01-22 11:48:48 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -57,9 +57,16 @@ #include <vector> class GDIMetaFile; -class BitmapEx; class VirtualDevice; class Gradient; +class BitmapEx; +class MapMode; +class Size; + +namespace basegfx { + class B2DPolyPolygon; + class B2DPolygon; +} namespace cppcanvas { @@ -67,6 +74,7 @@ namespace cppcanvas namespace internal { struct OutDevState; + struct ActionFactoryParameters; // state stack of OutputDevice, to correctly handle // push/pop actions @@ -116,70 +124,77 @@ namespace cppcanvas ImplRenderer(const ImplRenderer&); ImplRenderer& operator=( const ImplRenderer& ); - void updateClipping( VectorOfOutDevStates& rStates, - const ::basegfx::B2DPolyPolygon& rClipPoly, - const CanvasSharedPtr& rCanvas, + void updateClipping( const ::basegfx::B2DPolyPolygon& rClipPoly, + const ActionFactoryParameters& rParms, bool bIntersect ); - void updateClipping( VectorOfOutDevStates& rStates, - const ::Rectangle& rClipRect, - const CanvasSharedPtr& rCanvas, - bool bIntersect ); + void updateClipping( const ::Rectangle& rClipRect, + const ActionFactoryParameters& rParms, + bool bIntersect ); ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XCanvasFont > createFont( double& o_rFontRotation, - const ::Font& rFont, - const CanvasSharedPtr& rCanvas, - const ::VirtualDevice& rVDev, - const Parameters& rParms ) const; - bool createActions( const CanvasSharedPtr& rCanvas, - VirtualDevice& rVDev, - GDIMetaFile& rMtf, - VectorOfOutDevStates& rStates, - const Parameters& rParms, - bool bSubsettableActions, - sal_Int32& io_rCurrActionIndex ); - bool createFillAndStroke( const ::PolyPolygon& rPolyPoly, - const CanvasSharedPtr& rCanvas, - sal_Int32& rActionIndex, - const VectorOfOutDevStates& rStates ); - void skipContent( GDIMetaFile& rMtf, - const char* pCommentString, - sal_Int32& io_rCurrActionIndex ) const; - - bool isActionContained( GDIMetaFile& rMtf, - const char* pCommentString, - USHORT nType ) const; - - void createGradientAction( const ::PolyPolygon& rPoly, - const ::Gradient& rGradient, - ::VirtualDevice& rVDev, - const CanvasSharedPtr& rCanvas, - VectorOfOutDevStates& rStates, - const Parameters& rParms, - sal_Int32& io_rCurrActionIndex, - bool bIsPolygonRectangle, - bool bSubsettableActions ); - - void createTextAction( const ::Point& rStartPoint, - const String rString, - int nIndex, - int nLength, - const sal_Int32* pCharWidths, - ::VirtualDevice& rVDev, - const CanvasSharedPtr& rCanvas, - VectorOfOutDevStates& rStates, - const Parameters& rParms, - bool bSubsettable, - sal_Int32& io_rCurrActionIndex ); - - bool getSubsetIndices( sal_Int32& io_rStartIndex, - sal_Int32& io_rEndIndex, - ActionVector::const_iterator& o_rRangeBegin, - ActionVector::const_iterator& o_rRangeEnd ) const; - - - ActionVector maActions; + ::com::sun::star::rendering::XCanvasFont > createFont( double& o_rFontRotation, + const ::Font& rFont, + const ActionFactoryParameters& rParms ) const; + bool createActions( GDIMetaFile& rMtf, + const ActionFactoryParameters& rParms, + bool bSubsettableActions ); + bool createFillAndStroke( const ::basegfx::B2DPolyPolygon& rPolyPoly, + const ActionFactoryParameters& rParms ); + bool createFillAndStroke( const ::basegfx::B2DPolygon& rPoly, + const ActionFactoryParameters& rParms ); + void skipContent( GDIMetaFile& rMtf, + const char* pCommentString, + sal_Int32& io_rCurrActionIndex ) const; + + bool isActionContained( GDIMetaFile& rMtf, + const char* pCommentString, + USHORT nType ) const; + + void createGradientAction( const ::PolyPolygon& rPoly, + const ::Gradient& rGradient, + const ActionFactoryParameters& rParms, + bool bIsPolygonRectangle, + bool bSubsettableActions ); + + void createTextAction( const ::Point& rStartPoint, + const String rString, + int nIndex, + int nLength, + const sal_Int32* pCharWidths, + const ActionFactoryParameters& rParms, + bool bSubsettable ); + + bool getSubsetIndices( sal_Int32& io_rStartIndex, + sal_Int32& io_rEndIndex, + ActionVector::const_iterator& o_rRangeBegin, + ActionVector::const_iterator& o_rRangeEnd ) const; + + + ActionVector maActions; + }; + + + /// Common parameters when creating actions + struct ActionFactoryParameters + { + ActionFactoryParameters( VectorOfOutDevStates& rStates, + const CanvasSharedPtr& rCanvas, + ::VirtualDevice& rVDev, + const Renderer::Parameters& rParms, + sal_Int32& io_rCurrActionIndex ) : + mrStates(rStates), + mrCanvas(rCanvas), + mrVDev(rVDev), + mrParms(rParms), + mrCurrActionIndex(io_rCurrActionIndex) + {} + + VectorOfOutDevStates& mrStates; + const CanvasSharedPtr& mrCanvas; + ::VirtualDevice& mrVDev; + const Renderer::Parameters& mrParms; + sal_Int32& mrCurrActionIndex; }; } } |