1*efeef26fSAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*efeef26fSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*efeef26fSAndrew Rist * or more contributor license agreements. See the NOTICE file
5*efeef26fSAndrew Rist * distributed with this work for additional information
6*efeef26fSAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*efeef26fSAndrew Rist * to you under the Apache License, Version 2.0 (the
8*efeef26fSAndrew Rist * "License"); you may not use this file except in compliance
9*efeef26fSAndrew Rist * with the License. You may obtain a copy of the License at
10cdf0e10cSrcweir *
11*efeef26fSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir *
13*efeef26fSAndrew Rist * Unless required by applicable law or agreed to in writing,
14*efeef26fSAndrew Rist * software distributed under the License is distributed on an
15*efeef26fSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*efeef26fSAndrew Rist * KIND, either express or implied. See the License for the
17*efeef26fSAndrew Rist * specific language governing permissions and limitations
18*efeef26fSAndrew Rist * under the License.
19cdf0e10cSrcweir *
20*efeef26fSAndrew Rist *************************************************************/
21*efeef26fSAndrew Rist
22*efeef26fSAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_sw.hxx"
26cdf0e10cSrcweir
27cdf0e10cSrcweir
28cdf0e10cSrcweir #include <SwPortionHandler.hxx>
29cdf0e10cSrcweir #include "viewopt.hxx" // SwViewOptions
30cdf0e10cSrcweir
31cdf0e10cSrcweir #include "txtcfg.hxx"
32cdf0e10cSrcweir #include "portox.hxx"
33cdf0e10cSrcweir #include "inftxt.hxx" // GetTxtSize()
34cdf0e10cSrcweir
35cdf0e10cSrcweir /*************************************************************************
36cdf0e10cSrcweir * virtual SwToxPortion::Paint()
37cdf0e10cSrcweir *************************************************************************/
38cdf0e10cSrcweir
Paint(const SwTxtPaintInfo & rInf) const39cdf0e10cSrcweir void SwToxPortion::Paint( const SwTxtPaintInfo &rInf ) const
40cdf0e10cSrcweir {
41cdf0e10cSrcweir if( Width() )
42cdf0e10cSrcweir {
43cdf0e10cSrcweir rInf.DrawViewOpt( *this, POR_TOX );
44cdf0e10cSrcweir SwTxtPortion::Paint( rInf );
45cdf0e10cSrcweir }
46cdf0e10cSrcweir }
47cdf0e10cSrcweir
48cdf0e10cSrcweir /*************************************************************************
49cdf0e10cSrcweir * class SwIsoToxPortion
50cdf0e10cSrcweir *************************************************************************/
51cdf0e10cSrcweir
Compress()52cdf0e10cSrcweir SwLinePortion *SwIsoToxPortion::Compress() { return this; }
53cdf0e10cSrcweir
SwIsoToxPortion()54cdf0e10cSrcweir SwIsoToxPortion::SwIsoToxPortion() : nViewWidth(0)
55cdf0e10cSrcweir {
56cdf0e10cSrcweir SetLen(1);
57cdf0e10cSrcweir SetWhichPor( POR_ISOTOX );
58cdf0e10cSrcweir }
59cdf0e10cSrcweir
60cdf0e10cSrcweir /*************************************************************************
61cdf0e10cSrcweir * virtual SwIsoToxPortion::GetViewWidth()
62cdf0e10cSrcweir *************************************************************************/
63cdf0e10cSrcweir
GetViewWidth(const SwTxtSizeInfo & rInf) const64cdf0e10cSrcweir KSHORT SwIsoToxPortion::GetViewWidth( const SwTxtSizeInfo &rInf ) const
65cdf0e10cSrcweir {
66cdf0e10cSrcweir // Wir stehen zwar im const, aber nViewWidth sollte erst im letzten
67cdf0e10cSrcweir // Moment errechnet werden:
68cdf0e10cSrcweir SwIsoToxPortion* pThis = (SwIsoToxPortion*)this;
69cdf0e10cSrcweir // nViewWidth muss errechnet werden.
70cdf0e10cSrcweir if( !Width() && rInf.OnWin() &&
71cdf0e10cSrcweir !rInf.GetOpt().IsPagePreview() &&
72cdf0e10cSrcweir !rInf.GetOpt().IsReadonly() && SwViewOption::IsFieldShadings() )
73cdf0e10cSrcweir {
74cdf0e10cSrcweir if( !nViewWidth )
75cdf0e10cSrcweir pThis->nViewWidth = rInf.GetTxtSize( ' ' ).Width();
76cdf0e10cSrcweir }
77cdf0e10cSrcweir else
78cdf0e10cSrcweir pThis->nViewWidth = 0;
79cdf0e10cSrcweir return nViewWidth;
80cdf0e10cSrcweir }
81cdf0e10cSrcweir
82cdf0e10cSrcweir /*************************************************************************
83cdf0e10cSrcweir * virtual SwIsoToxPortion::Format()
84cdf0e10cSrcweir *************************************************************************/
85cdf0e10cSrcweir
Format(SwTxtFormatInfo & rInf)86cdf0e10cSrcweir sal_Bool SwIsoToxPortion::Format( SwTxtFormatInfo &rInf )
87cdf0e10cSrcweir {
88cdf0e10cSrcweir const sal_Bool bFull = SwLinePortion::Format( rInf );
89cdf0e10cSrcweir return bFull;
90cdf0e10cSrcweir }
91cdf0e10cSrcweir
92cdf0e10cSrcweir /*************************************************************************
93cdf0e10cSrcweir * virtual SwIsoToxPortion::Paint()
94cdf0e10cSrcweir *************************************************************************/
95cdf0e10cSrcweir
Paint(const SwTxtPaintInfo & rInf) const96cdf0e10cSrcweir void SwIsoToxPortion::Paint( const SwTxtPaintInfo &rInf ) const
97cdf0e10cSrcweir {
98cdf0e10cSrcweir if( Width() )
99cdf0e10cSrcweir rInf.DrawViewOpt( *this, POR_TOX );
100cdf0e10cSrcweir }
101cdf0e10cSrcweir
102cdf0e10cSrcweir /*************************************************************************
103cdf0e10cSrcweir * virtual SwIsoToxPortion::HandlePortion()
104cdf0e10cSrcweir *************************************************************************/
105cdf0e10cSrcweir
HandlePortion(SwPortionHandler & rPH) const106cdf0e10cSrcweir void SwIsoToxPortion::HandlePortion( SwPortionHandler& rPH ) const
107cdf0e10cSrcweir {
108cdf0e10cSrcweir String aString;
109cdf0e10cSrcweir rPH.Special( GetLen(), aString, GetWhichPor() );
110cdf0e10cSrcweir }
111