From fa8aae8283c39fe16be44bc93d60a4732d66285a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Timm?= Date: Fri, 26 Nov 2004 19:53:39 +0000 Subject: [PATCH] INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED 2004/11/08 05:56:07 thb 1.2.2.7: #i36093# Added native canvas gradients 2004/09/30 21:45:41 thb 1.2.2.6: #110496# Now handling clip meta actions correctly (were mostly ignored before) 2004/08/23 19:15:49 thb 1.2.2.5: #110496# Added more overridable attributes (needed for slideshow attribute animations 2004/07/20 19:08:57 thb 1.2.2.4: #110496# Unified include statements; removed external prefix from boost includes 2004/07/09 09:50:39 hdu 1.2.2.3: #116716# more text effects and text lines 2004/04/21 18:49:38 thb 1.2.2.2: #110496# Added shape-global change functionality to Renderer interface 2004/04/05 15:58:46 thb 1.2.2.1: Resync with canvas01 changes --- cppcanvas/source/inc/implrenderer.hxx | 86 ++++++++++++++++++++++----- 1 file changed, 70 insertions(+), 16 deletions(-) diff --git a/cppcanvas/source/inc/implrenderer.hxx b/cppcanvas/source/inc/implrenderer.hxx index 43827684e373..5fe42deb75b0 100644 --- a/cppcanvas/source/inc/implrenderer.hxx +++ b/cppcanvas/source/inc/implrenderer.hxx @@ -2,9 +2,9 @@ * * $RCSfile: implrenderer.hxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: rt $ $Date: 2004-09-08 16:59:12 $ + * last change: $Author: rt $ $Date: 2004-11-26 20:53:39 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -77,8 +77,8 @@ #include #endif -#include "canvasgraphichelper.hxx" -#include "action.hxx" +#include +#include #include @@ -102,9 +102,11 @@ namespace cppcanvas { public: ImplRenderer( const CanvasSharedPtr& rCanvas, - const GDIMetaFile& rMtf ); + const GDIMetaFile& rMtf, + const Parameters& rParms ); ImplRenderer( const CanvasSharedPtr& rCanvas, - const BitmapEx& rBmpEx ); + const BitmapEx& rBmpEx, + const Parameters& rParms ); virtual ~ImplRenderer(); @@ -132,10 +134,23 @@ namespace cppcanvas ImplRenderer(const ImplRenderer&); ImplRenderer& operator=( const ImplRenderer& ); - bool createActions( const CanvasSharedPtr& rCanvas, - VirtualDevice& rVDev, - GDIMetaFile& rMtf, - VectorOfOutDevStates& rStates ); + void updateClipping( VectorOfOutDevStates& rStates, + const ::basegfx::B2DPolyPolygon& rClipPoly, + const CanvasSharedPtr& rCanvas, + bool bIntersect ); + + ::com::sun::star::uno::Reference< + ::drafts::com::sun::star::rendering::XCanvasFont > createFont( ::basegfx::B2DHomMatrix& o_rFontMatrix, + 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, + int& io_rCurrActionIndex ); bool createFillAndStroke( const ::PolyPolygon& rPolyPoly, const CanvasSharedPtr& rCanvas, int rActionIndex, @@ -143,16 +158,55 @@ namespace cppcanvas void skipContent( GDIMetaFile& rMtf, const char& rCommentString ) const; - void createGradientAction( const Rectangle& rRect, - const Gradient& rGradient, - VirtualDevice& rVDev, + void createGradientAction( const ::PolyPolygon& rPoly, + const ::Gradient& rGradient, + ::VirtualDevice& rVDev, const CanvasSharedPtr& rCanvas, - VectorOfOutDevStates& rStates ); + VectorOfOutDevStates& rStates, + const Parameters& rParms, + int& io_rCurrActionIndex, + bool bIsPolygonRectangle ); + + // create text effects such as shadow/relief/embossed + void createTextWithEffectsAction( + const Point& rStartPoint, + const String rString, + int nIndex, + int nLength, + const long* pCharWidths, + VirtualDevice& rVDev, + const CanvasSharedPtr& rCanvas, + VectorOfOutDevStates& rStates, + const Parameters& rParms, + int nCurrActionIndex ); + + // create text draw actions and add text lines + void createTextWithLinesAction( + const Point& rStartPoint, + const String rString, + int nIndex, + int nLength, + const long* pCharWidths, + VirtualDevice& rVDev, + const CanvasSharedPtr& rCanvas, + VectorOfOutDevStates& rStates, + const Parameters& rParms, + int nCurrActionIndex ); + + // create text lines such as underline and strikeout + void createJustTextLinesAction( + const Point& rStartPoint, + long nLineWidth, + VirtualDevice& rVDev, + const CanvasSharedPtr& rCanvas, + VectorOfOutDevStates& rStates, + const Parameters& rParms, + int nCurrActionIndex ); // prefetched and prepared canvas actions // (externally not visible) - typedef ::std::vector< MtfAction > ActionVector; - ActionVector maActions; + typedef ::std::vector< MtfAction > ActionVector; + ActionVector maActions; }; } }