xref: /aoo41x/main/sw/source/core/text/portox.cxx (revision efeef26f)
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 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sw.hxx"
26 
27 
28 #include <SwPortionHandler.hxx>
29 #include "viewopt.hxx"	// SwViewOptions
30 
31 #include "txtcfg.hxx"
32 #include "portox.hxx"
33 #include "inftxt.hxx"       // GetTxtSize()
34 
35 /*************************************************************************
36  *               virtual SwToxPortion::Paint()
37  *************************************************************************/
38 
Paint(const SwTxtPaintInfo & rInf) const39 void SwToxPortion::Paint( const SwTxtPaintInfo &rInf ) const
40 {
41 	if( Width() )
42 	{
43 		rInf.DrawViewOpt( *this, POR_TOX );
44 		SwTxtPortion::Paint( rInf );
45 	}
46 }
47 
48 /*************************************************************************
49  *                      class SwIsoToxPortion
50  *************************************************************************/
51 
Compress()52 SwLinePortion *SwIsoToxPortion::Compress() { return this; }
53 
SwIsoToxPortion()54 SwIsoToxPortion::SwIsoToxPortion() : nViewWidth(0)
55 {
56 	SetLen(1);
57 	SetWhichPor( POR_ISOTOX );
58 }
59 
60 /*************************************************************************
61  *				 virtual SwIsoToxPortion::GetViewWidth()
62  *************************************************************************/
63 
GetViewWidth(const SwTxtSizeInfo & rInf) const64 KSHORT SwIsoToxPortion::GetViewWidth( const SwTxtSizeInfo &rInf ) const
65 {
66 	// Wir stehen zwar im const, aber nViewWidth sollte erst im letzten
67 	// Moment errechnet werden:
68 	SwIsoToxPortion* pThis = (SwIsoToxPortion*)this;
69 	// nViewWidth muss errechnet werden.
70     if( !Width() && rInf.OnWin() &&
71         !rInf.GetOpt().IsPagePreview() &&
72             !rInf.GetOpt().IsReadonly() && SwViewOption::IsFieldShadings()   )
73 	{
74 		if( !nViewWidth )
75 			pThis->nViewWidth = rInf.GetTxtSize( ' ' ).Width();
76 	}
77 	else
78 		pThis->nViewWidth = 0;
79 	return nViewWidth;
80 }
81 
82 /*************************************************************************
83  *                 virtual SwIsoToxPortion::Format()
84  *************************************************************************/
85 
Format(SwTxtFormatInfo & rInf)86 sal_Bool SwIsoToxPortion::Format( SwTxtFormatInfo &rInf )
87 {
88 	const sal_Bool bFull = SwLinePortion::Format( rInf );
89 	return bFull;
90 }
91 
92 /*************************************************************************
93  *               virtual SwIsoToxPortion::Paint()
94  *************************************************************************/
95 
Paint(const SwTxtPaintInfo & rInf) const96 void SwIsoToxPortion::Paint( const SwTxtPaintInfo &rInf ) const
97 {
98 	if( Width() )
99 		rInf.DrawViewOpt( *this, POR_TOX );
100 }
101 
102 /*************************************************************************
103  *              virtual SwIsoToxPortion::HandlePortion()
104  *************************************************************************/
105 
HandlePortion(SwPortionHandler & rPH) const106 void SwIsoToxPortion::HandlePortion( SwPortionHandler& rPH ) const
107 {
108     String aString;
109     rPH.Special( GetLen(), aString, GetWhichPor() );
110 }
111 
112