1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 #ifndef _ITRPAINT_HXX 24 #define _ITRPAINT_HXX 25 #include "itrtxt.hxx" 26 27 class SwSaveClip; // SwTxtPainter 28 class SwMultiPortion; 29 30 /************************************************************************* 31 * class SwTxtPainter 32 *************************************************************************/ 33 34 class SwTxtPainter : public SwTxtCursor 35 { 36 sal_Bool bPaintDrop; 37 38 SwLinePortion *CalcPaintOfst( const SwRect &rPaint ); 39 void CheckSpecialUnderline( const SwLinePortion* pPor, 40 long nAdjustBaseLine = 0 ); 41 protected: 42 void CtorInitTxtPainter( SwTxtFrm *pFrm, SwTxtPaintInfo *pInf ); SwTxtPainter(SwTxtNode * pTxtNode)43 inline SwTxtPainter(SwTxtNode* pTxtNode) : SwTxtCursor(pTxtNode) { } 44 45 public: SwTxtPainter(SwTxtFrm * pTxtFrm,SwTxtPaintInfo * pTxtPaintInf)46 inline SwTxtPainter( SwTxtFrm *pTxtFrm, SwTxtPaintInfo *pTxtPaintInf ) : SwTxtCursor(pTxtFrm!=NULL?pTxtFrm->GetTxtNode():NULL) 47 { CtorInitTxtPainter( pTxtFrm, pTxtPaintInf ); } 48 void DrawTextLine( const SwRect &rPaint, SwSaveClip &rClip, 49 const sal_Bool bUnderSz ); 50 void PaintDropPortion(); 51 // if PaintMultiPortion is called recursively, we have to pass the 52 // surrounding SwBidiPortion 53 void PaintMultiPortion( const SwRect &rPaint, SwMultiPortion& rMulti, 54 const SwMultiPortion* pEnvPor = 0 ); SetPaintDrop(const sal_Bool bNew)55 inline void SetPaintDrop( const sal_Bool bNew ) { bPaintDrop = bNew; } IsPaintDrop() const56 inline sal_Bool IsPaintDrop() const { return bPaintDrop; } GetInfo()57 inline SwTxtPaintInfo &GetInfo() 58 { return (SwTxtPaintInfo&)SwTxtIter::GetInfo(); } GetInfo() const59 inline const SwTxtPaintInfo &GetInfo() const 60 { return (const SwTxtPaintInfo&)SwTxtIter::GetInfo(); } 61 }; 62 63 64 65 #endif 66