From c376ce8bac12ea28977b145d90cc3cc2b56e6e55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Timm?= Date: Fri, 26 Nov 2004 19:57:20 +0000 Subject: [PATCH] INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED 2004/08/23 19:15:50 thb 1.2.2.5: #110496# Added more overridable attributes (needed for slideshow attribute animations 2004/07/20 19:09:01 thb 1.2.2.4: #110496# Unified include statements; removed external prefix from boost includes 2004/05/27 20:51:28 thb 1.2.2.3: #110496# Added classification code to all TODO/HACK/FIXME comments. There are four categories: - code quality (C) - performance (P) - missing functionality (F) - and missing/incomplete error handling (E) Furthermore, every category has a severity number between 1 and 3 associated, where 1 is lowest and 3 highest severity 2004/04/12 15:13:21 thb 1.2.2.2: #110496# Adaptions after canvas01 merge 2004/04/05 15:58:50 thb 1.2.2.1: Resync with canvas01 changes --- cppcanvas/source/mtfrenderer/textaction.hxx | 55 ++++++++++++++------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/cppcanvas/source/mtfrenderer/textaction.hxx b/cppcanvas/source/mtfrenderer/textaction.hxx index 3bd00e398bd5..8ad8ad7337f0 100644 --- a/cppcanvas/source/mtfrenderer/textaction.hxx +++ b/cppcanvas/source/mtfrenderer/textaction.hxx @@ -2,9 +2,9 @@ * * $RCSfile: textaction.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: thb $ $Date: 2004-03-18 10:41:07 $ + * last change: $Author: rt $ $Date: 2004-11-26 20:57:20 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -78,7 +78,14 @@ #include #endif -#include "action.hxx" +#ifndef _COMPHELPER_OPTIONALVALUE_HXX +#include +#endif +#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX +#include +#endif + +#include #include class Point; @@ -86,6 +93,7 @@ class Point; namespace drafts { namespace com { namespace sun { namespace star { namespace rendering { class XCanvasFont; + class XTextLayout; } } } } } /* Definition of internal::LineAction class */ @@ -99,32 +107,43 @@ namespace cppcanvas class TextAction : public Action { public: - TextAction( const ::Point& rStartPoint, - const ::rtl::OUString& rText, - sal_Int32 nStartPos, - sal_Int32 nLen, - const CanvasSharedPtr& rCanvas, - const OutDevState& rState ); - TextAction( const ::Point& rStartPoint, - const ::rtl::OUString& rText, - sal_Int32 nStartPos, - sal_Int32 nLen, - ::com::sun::star::uno::Sequence< double > aOffsets, - const CanvasSharedPtr& rCanvas, - const OutDevState& rState ); + TextAction( const ::Point& rStartPoint, + const ::rtl::OUString& rText, + sal_Int32 nStartPos, + sal_Int32 nLen, + const CanvasSharedPtr& rCanvas, + const OutDevState& rState, + const ::comphelper::OptionalValue< ::basegfx::B2DHomMatrix >& rTextTransform ); + TextAction( const ::Point& rStartPoint, + const ::rtl::OUString& rText, + sal_Int32 nStartPos, + sal_Int32 nLen, + ::com::sun::star::uno::Sequence< double > aOffsets, + const CanvasSharedPtr& rCanvas, + const OutDevState& rState, + const ::comphelper::OptionalValue< ::basegfx::B2DHomMatrix >& rTextTransform ); virtual ~TextAction(); - virtual bool render() const; + virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation ) const; private: // default: disabled copy/assignment TextAction(const TextAction&); TextAction& operator = ( const TextAction& ); - void init( const ::Point& rStartPoint, const OutDevState& rState ); + void init( const ::Point& rStartPoint, + const OutDevState& rState, + const ::comphelper::OptionalValue< ::basegfx::B2DHomMatrix >& rTextTransform ); + + // TODO(P2): This is potentially a real mass object (every character might be + // a separate TextAction), thus, make it as lightweight as possible. For + // example, share common RenderState among several TextActions, use maOffsets + // for the translation. ::com::sun::star::uno::Reference< ::drafts::com::sun::star::rendering::XCanvasFont > mxFont; + ::com::sun::star::uno::Reference< + ::drafts::com::sun::star::rendering::XTextLayout > mxTextLayout; ::drafts::com::sun::star::rendering::StringContext maStringContext; ::com::sun::star::uno::Sequence< double > maOffsets; CanvasSharedPtr mpCanvas;