/************************************************************************* * * 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 * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef _ITRPAINT_HXX #define _ITRPAINT_HXX #include "itrtxt.hxx" class SwSaveClip; // SwTxtPainter class SwMultiPortion; /************************************************************************* * class SwTxtPainter *************************************************************************/ class SwTxtPainter : public SwTxtCursor { sal_Bool bPaintDrop; SwLinePortion *CalcPaintOfst( const SwRect &rPaint ); void CheckSpecialUnderline( const SwLinePortion* pPor, long nAdjustBaseLine = 0 ); protected: void CtorInitTxtPainter( SwTxtFrm *pFrm, SwTxtPaintInfo *pInf ); inline SwTxtPainter(SwTxtNode* pTxtNode) : SwTxtCursor(pTxtNode) { } public: inline SwTxtPainter( SwTxtFrm *pTxtFrm, SwTxtPaintInfo *pTxtPaintInf ) : SwTxtCursor(pTxtFrm!=NULL?pTxtFrm->GetTxtNode():NULL) { CtorInitTxtPainter( pTxtFrm, pTxtPaintInf ); } void DrawTextLine( const SwRect &rPaint, SwSaveClip &rClip, const sal_Bool bUnderSz ); void PaintDropPortion(); // if PaintMultiPortion is called recursively, we have to pass the // surrounding SwBidiPortion void PaintMultiPortion( const SwRect &rPaint, SwMultiPortion& rMulti, const SwMultiPortion* pEnvPor = 0 ); inline void SetPaintDrop( const sal_Bool bNew ) { bPaintDrop = bNew; } inline sal_Bool IsPaintDrop() const { return bPaintDrop; } inline SwTxtPaintInfo &GetInfo() { return (SwTxtPaintInfo&)SwTxtIter::GetInfo(); } inline const SwTxtPaintInfo &GetInfo() const { return (const SwTxtPaintInfo&)SwTxtIter::GetInfo(); } }; #endif