xref: /AOO41X/main/sw/source/core/text/porref.cxx (revision efeef26f81c84063fb0a91bde3856d4a51172d90)
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 "porref.hxx"
33cdf0e10cSrcweir #include "inftxt.hxx"       // GetTxtSize()
34cdf0e10cSrcweir 
35cdf0e10cSrcweir /*************************************************************************
36cdf0e10cSrcweir  *               virtual SwRefPortion::Paint()
37cdf0e10cSrcweir  *************************************************************************/
38cdf0e10cSrcweir 
Paint(const SwTxtPaintInfo & rInf) const39cdf0e10cSrcweir void SwRefPortion::Paint( const SwTxtPaintInfo &rInf ) const
40cdf0e10cSrcweir {
41cdf0e10cSrcweir 	if( Width() )
42cdf0e10cSrcweir 	{
43cdf0e10cSrcweir 		rInf.DrawViewOpt( *this, POR_REF );
44cdf0e10cSrcweir 		SwTxtPortion::Paint( rInf );
45cdf0e10cSrcweir 	}
46cdf0e10cSrcweir }
47cdf0e10cSrcweir 
48cdf0e10cSrcweir /*************************************************************************
49cdf0e10cSrcweir  *                      class SwIsoRefPortion
50cdf0e10cSrcweir  *************************************************************************/
51cdf0e10cSrcweir 
Compress()52cdf0e10cSrcweir SwLinePortion *SwIsoRefPortion::Compress() { return this; }
53cdf0e10cSrcweir 
SwIsoRefPortion()54cdf0e10cSrcweir SwIsoRefPortion::SwIsoRefPortion() : nViewWidth(0)
55cdf0e10cSrcweir {
56cdf0e10cSrcweir 	SetLen(1);
57cdf0e10cSrcweir 	SetWhichPor( POR_ISOREF );
58cdf0e10cSrcweir }
59cdf0e10cSrcweir 
60cdf0e10cSrcweir /*************************************************************************
61cdf0e10cSrcweir  *				 virtual SwIsoRefPortion::GetViewWidth()
62cdf0e10cSrcweir  *************************************************************************/
63cdf0e10cSrcweir 
GetViewWidth(const SwTxtSizeInfo & rInf) const64cdf0e10cSrcweir KSHORT SwIsoRefPortion::GetViewWidth( const SwTxtSizeInfo &rInf ) const
65cdf0e10cSrcweir {
66cdf0e10cSrcweir 	// Wir stehen zwar im const, aber nViewWidth sollte erst im letzten
67cdf0e10cSrcweir 	// Moment errechnet werden:
68cdf0e10cSrcweir 	SwIsoRefPortion* pThis = (SwIsoRefPortion*)this;
69cdf0e10cSrcweir     if( !Width() && rInf.OnWin() && SwViewOption::IsFieldShadings() &&
70cdf0e10cSrcweir             !rInf.GetOpt().IsReadonly() && !rInf.GetOpt().IsPagePreview() )
71cdf0e10cSrcweir 	{
72cdf0e10cSrcweir 		if( !nViewWidth )
73cdf0e10cSrcweir 			pThis->nViewWidth = rInf.GetTxtSize( ' ' ).Width();
74cdf0e10cSrcweir 	}
75cdf0e10cSrcweir 	else
76cdf0e10cSrcweir 		pThis->nViewWidth = 0;
77cdf0e10cSrcweir 	return nViewWidth;
78cdf0e10cSrcweir }
79cdf0e10cSrcweir 
80cdf0e10cSrcweir /*************************************************************************
81cdf0e10cSrcweir  *                 virtual SwIsoRefPortion::Format()
82cdf0e10cSrcweir  *************************************************************************/
83cdf0e10cSrcweir 
Format(SwTxtFormatInfo & rInf)84cdf0e10cSrcweir sal_Bool SwIsoRefPortion::Format( SwTxtFormatInfo &rInf )
85cdf0e10cSrcweir {
86cdf0e10cSrcweir 	const sal_Bool bFull = SwLinePortion::Format( rInf );
87cdf0e10cSrcweir 	return bFull;
88cdf0e10cSrcweir }
89cdf0e10cSrcweir 
90cdf0e10cSrcweir /*************************************************************************
91cdf0e10cSrcweir  *               virtual SwIsoRefPortion::Paint()
92cdf0e10cSrcweir  *************************************************************************/
93cdf0e10cSrcweir 
Paint(const SwTxtPaintInfo & rInf) const94cdf0e10cSrcweir void SwIsoRefPortion::Paint( const SwTxtPaintInfo &rInf ) const
95cdf0e10cSrcweir {
96cdf0e10cSrcweir 	if( Width() )
97cdf0e10cSrcweir 		rInf.DrawViewOpt( *this, POR_REF );
98cdf0e10cSrcweir }
99cdf0e10cSrcweir 
100cdf0e10cSrcweir /*************************************************************************
101cdf0e10cSrcweir  *              virtual SwIsoRefPortion::HandlePortion()
102cdf0e10cSrcweir  *************************************************************************/
103cdf0e10cSrcweir 
HandlePortion(SwPortionHandler & rPH) const104cdf0e10cSrcweir void SwIsoRefPortion::HandlePortion( SwPortionHandler& rPH ) const
105cdf0e10cSrcweir {
106cdf0e10cSrcweir     String aString;
107cdf0e10cSrcweir     rPH.Special( GetLen(), aString, GetWhichPor() );
108cdf0e10cSrcweir }
109cdf0e10cSrcweir 
110cdf0e10cSrcweir 
111cdf0e10cSrcweir 
112