xref: /trunk/main/sw/source/ui/misc/pgfnote.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
29*cdf0e10cSrcweir #include "precompiled_sw.hxx"
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #ifdef SW_DLLIMPLEMENTATION
32*cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION
33*cdf0e10cSrcweir #endif
34*cdf0e10cSrcweir 
35*cdf0e10cSrcweir 
36*cdf0e10cSrcweir 
37*cdf0e10cSrcweir #ifndef _CMDID_H
38*cdf0e10cSrcweir #include <cmdid.h>
39*cdf0e10cSrcweir #endif
40*cdf0e10cSrcweir #include <hintids.hxx>
41*cdf0e10cSrcweir #include <tools/ref.hxx>
42*cdf0e10cSrcweir #ifndef _SVX_DIALOGS_HRC
43*cdf0e10cSrcweir #include <svx/dialogs.hrc>
44*cdf0e10cSrcweir #endif
45*cdf0e10cSrcweir #include <vcl/field.hxx>
46*cdf0e10cSrcweir #include <vcl/svapp.hxx>
47*cdf0e10cSrcweir #include <unotools/localedatawrapper.hxx>
48*cdf0e10cSrcweir #include <unotools/syslocale.hxx>
49*cdf0e10cSrcweir #include <editeng/sizeitem.hxx>
50*cdf0e10cSrcweir #include <svx/pageitem.hxx>
51*cdf0e10cSrcweir #include <svl/eitem.hxx>
52*cdf0e10cSrcweir #include <editeng/ulspitem.hxx>
53*cdf0e10cSrcweir #include <uitool.hxx>
54*cdf0e10cSrcweir #include <pagedesc.hxx>
55*cdf0e10cSrcweir #include <pgfnote.hxx>
56*cdf0e10cSrcweir #include <uiitems.hxx>
57*cdf0e10cSrcweir 
58*cdf0e10cSrcweir #ifndef _GLOBALS_HRC
59*cdf0e10cSrcweir #include <globals.hrc>
60*cdf0e10cSrcweir #endif
61*cdf0e10cSrcweir #ifndef _MISC_HRC
62*cdf0e10cSrcweir #include <misc.hrc>
63*cdf0e10cSrcweir #endif
64*cdf0e10cSrcweir #ifndef _PGFNOTE_HRC
65*cdf0e10cSrcweir #include <pgfnote.hrc>
66*cdf0e10cSrcweir #endif
67*cdf0e10cSrcweir 
68*cdf0e10cSrcweir #define TWIP_TO_LBOX 5
69*cdf0e10cSrcweir /*-----------------------------------------------------#---------------
70*cdf0e10cSrcweir     Beschreibung:   vordefinierte Linien in Point
71*cdf0e10cSrcweir  --------------------------------------------------------------------*/
72*cdf0e10cSrcweir 
73*cdf0e10cSrcweir static const sal_uInt16 __FAR_DATA nLines[] = {
74*cdf0e10cSrcweir     0,
75*cdf0e10cSrcweir     50,
76*cdf0e10cSrcweir     100,
77*cdf0e10cSrcweir     150,
78*cdf0e10cSrcweir     200,
79*cdf0e10cSrcweir     500
80*cdf0e10cSrcweir };
81*cdf0e10cSrcweir 
82*cdf0e10cSrcweir static const sal_uInt16 nLineCount = sizeof(nLines) / sizeof(nLines[0]);
83*cdf0e10cSrcweir 
84*cdf0e10cSrcweir static sal_uInt16 __FAR_DATA aPageRg[] = {
85*cdf0e10cSrcweir     FN_PARAM_FTN_INFO, FN_PARAM_FTN_INFO,
86*cdf0e10cSrcweir     0
87*cdf0e10cSrcweir };
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir 
90*cdf0e10cSrcweir /*------------------------------------------------------------------------
91*cdf0e10cSrcweir  Beschreibung:  liefert zurueck, ob die Linienbreite nWidth bereits
92*cdf0e10cSrcweir                 in der Listbox enthalten ist.
93*cdf0e10cSrcweir ------------------------------------------------------------------------*/
94*cdf0e10cSrcweir 
95*cdf0e10cSrcweir 
96*cdf0e10cSrcweir sal_Bool lcl_HasLineWidth(sal_uInt16 nWidth)
97*cdf0e10cSrcweir {
98*cdf0e10cSrcweir     for(sal_uInt16 i = 0; i < nLineCount; ++i) {
99*cdf0e10cSrcweir         if(nLines[i] == nWidth)
100*cdf0e10cSrcweir             return sal_True;
101*cdf0e10cSrcweir     }
102*cdf0e10cSrcweir     return sal_False;
103*cdf0e10cSrcweir }
104*cdf0e10cSrcweir 
105*cdf0e10cSrcweir /*------------------------------------------------------------------------
106*cdf0e10cSrcweir  Beschreibung:  Handler fuer umschalten zwischen den unterschiedlichen
107*cdf0e10cSrcweir                 Arten, wie die Hoehe des Fussnotenbereiches angegeben
108*cdf0e10cSrcweir                 werden kann.
109*cdf0e10cSrcweir ------------------------------------------------------------------------*/
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir 
112*cdf0e10cSrcweir IMPL_LINK_INLINE_START( SwFootNotePage, HeightPage, Button *, EMPTYARG )
113*cdf0e10cSrcweir {
114*cdf0e10cSrcweir     aMaxHeightEdit.Enable(sal_False);
115*cdf0e10cSrcweir     return 0;
116*cdf0e10cSrcweir }
117*cdf0e10cSrcweir IMPL_LINK_INLINE_END( SwFootNotePage, HeightPage, Button *, EMPTYARG )
118*cdf0e10cSrcweir 
119*cdf0e10cSrcweir 
120*cdf0e10cSrcweir IMPL_LINK_INLINE_START( SwFootNotePage, HeightMetric, Button *, EMPTYARG )
121*cdf0e10cSrcweir {
122*cdf0e10cSrcweir     aMaxHeightEdit.Enable();
123*cdf0e10cSrcweir     aMaxHeightEdit.GrabFocus();
124*cdf0e10cSrcweir     return 0;
125*cdf0e10cSrcweir }
126*cdf0e10cSrcweir IMPL_LINK_INLINE_END( SwFootNotePage, HeightMetric, Button *, EMPTYARG )
127*cdf0e10cSrcweir 
128*cdf0e10cSrcweir /*------------------------------------------------------------------------
129*cdf0e10cSrcweir  Beschreibung:  Handler Grenzwerte
130*cdf0e10cSrcweir ------------------------------------------------------------------------*/
131*cdf0e10cSrcweir 
132*cdf0e10cSrcweir 
133*cdf0e10cSrcweir IMPL_LINK( SwFootNotePage, HeightModify, MetricField *, EMPTYARG )
134*cdf0e10cSrcweir {
135*cdf0e10cSrcweir     aMaxHeightEdit.SetMax(aMaxHeightEdit.Normalize(lMaxHeight -
136*cdf0e10cSrcweir             (aDistEdit.Denormalize(aDistEdit.GetValue(FUNIT_TWIP)) +
137*cdf0e10cSrcweir             aLineDistEdit.Denormalize(aLineDistEdit.GetValue(FUNIT_TWIP)))),
138*cdf0e10cSrcweir             FUNIT_TWIP);
139*cdf0e10cSrcweir     if(aMaxHeightEdit.GetValue() < 0)
140*cdf0e10cSrcweir         aMaxHeightEdit.SetValue(0);
141*cdf0e10cSrcweir     aDistEdit.SetMax(aDistEdit.Normalize(lMaxHeight -
142*cdf0e10cSrcweir             (aMaxHeightEdit.Denormalize(aMaxHeightEdit.GetValue(FUNIT_TWIP)) +
143*cdf0e10cSrcweir             aLineDistEdit.Denormalize(aLineDistEdit.GetValue(FUNIT_TWIP)))),
144*cdf0e10cSrcweir             FUNIT_TWIP);
145*cdf0e10cSrcweir     if(aDistEdit.GetValue() < 0)
146*cdf0e10cSrcweir         aDistEdit.SetValue(0);
147*cdf0e10cSrcweir     aLineDistEdit.SetMax(aLineDistEdit.Normalize(lMaxHeight -
148*cdf0e10cSrcweir             (aMaxHeightEdit.Denormalize(aMaxHeightEdit.GetValue(FUNIT_TWIP)) +
149*cdf0e10cSrcweir             aDistEdit.Denormalize(aDistEdit.GetValue(FUNIT_TWIP)))),
150*cdf0e10cSrcweir             FUNIT_TWIP);
151*cdf0e10cSrcweir     return 0;
152*cdf0e10cSrcweir }
153*cdf0e10cSrcweir 
154*cdf0e10cSrcweir // CTOR / DTOR -----------------------------------------------------------
155*cdf0e10cSrcweir 
156*cdf0e10cSrcweir SwFootNotePage::SwFootNotePage(Window *pParent, const SfxItemSet &rSet) :
157*cdf0e10cSrcweir 
158*cdf0e10cSrcweir     SfxTabPage(pParent, SW_RES(TP_FOOTNOTE_PAGE), rSet),
159*cdf0e10cSrcweir     aPosHeader(this,        SW_RES(FL_FOOTNOTE_SIZE)),
160*cdf0e10cSrcweir     aMaxHeightPageBtn(this, SW_RES(RB_MAXHEIGHT_PAGE)),
161*cdf0e10cSrcweir     aMaxHeightBtn(this,     SW_RES(RB_MAXHEIGHT)),
162*cdf0e10cSrcweir     aMaxHeightEdit(this,    SW_RES(ED_MAXHEIGHT)),
163*cdf0e10cSrcweir     aDistLbl(this,          SW_RES(FT_DIST)),
164*cdf0e10cSrcweir     aDistEdit(this,         SW_RES(ED_DIST)),
165*cdf0e10cSrcweir 
166*cdf0e10cSrcweir     aLineHeader(this,       SW_RES(FL_LINE)),
167*cdf0e10cSrcweir     aLinePosLbl(this,       SW_RES(FT_LINEPOS)),
168*cdf0e10cSrcweir     aLinePosBox(this,       SW_RES(DLB_LINEPOS)),
169*cdf0e10cSrcweir     aLineTypeLbl(this,      SW_RES(FT_LINETYPE)),
170*cdf0e10cSrcweir     aLineTypeBox(this,      SW_RES(DLB_LINETYPE)),
171*cdf0e10cSrcweir     aLineWidthLbl(this,     SW_RES(FT_LINEWIDTH)),
172*cdf0e10cSrcweir     aLineWidthEdit(this,    SW_RES(ED_LINEWIDTH)),
173*cdf0e10cSrcweir     aLineDistLbl(this,      SW_RES(FT_LINEDIST)),
174*cdf0e10cSrcweir     aLineDistEdit(this,     SW_RES(ED_LINEDIST))
175*cdf0e10cSrcweir     {
176*cdf0e10cSrcweir     FreeResource();
177*cdf0e10cSrcweir 
178*cdf0e10cSrcweir     SetExchangeSupport();
179*cdf0e10cSrcweir     FieldUnit aMetric = ::GetDfltMetric(sal_False);
180*cdf0e10cSrcweir     SetMetric( aMaxHeightEdit,  aMetric );
181*cdf0e10cSrcweir     SetMetric( aDistEdit,       aMetric );
182*cdf0e10cSrcweir     SetMetric( aLineDistEdit,   aMetric );
183*cdf0e10cSrcweir     MeasurementSystem eSys = SvtSysLocale().GetLocaleData().getMeasurementSystemEnum();
184*cdf0e10cSrcweir     long nHeightValue = MEASURE_METRIC != eSys ? 1440 : 1134;
185*cdf0e10cSrcweir     aMaxHeightEdit.SetValue(aMaxHeightEdit.Normalize(nHeightValue),FUNIT_TWIP);;
186*cdf0e10cSrcweir     aMaxHeightEdit.SetAccessibleRelationLabeledBy(&aMaxHeightBtn);
187*cdf0e10cSrcweir }
188*cdf0e10cSrcweir 
189*cdf0e10cSrcweir SwFootNotePage::~SwFootNotePage()
190*cdf0e10cSrcweir {
191*cdf0e10cSrcweir }
192*cdf0e10cSrcweir 
193*cdf0e10cSrcweir 
194*cdf0e10cSrcweir SfxTabPage* SwFootNotePage::Create(Window *pParent, const SfxItemSet &rSet)
195*cdf0e10cSrcweir {
196*cdf0e10cSrcweir     return new SwFootNotePage(pParent, rSet);
197*cdf0e10cSrcweir }
198*cdf0e10cSrcweir 
199*cdf0e10cSrcweir 
200*cdf0e10cSrcweir /*--------------------------------------------------------------------
201*cdf0e10cSrcweir     Beschreibung:
202*cdf0e10cSrcweir  --------------------------------------------------------------------*/
203*cdf0e10cSrcweir 
204*cdf0e10cSrcweir 
205*cdf0e10cSrcweir void SwFootNotePage::Reset(const SfxItemSet &rSet)
206*cdf0e10cSrcweir {
207*cdf0e10cSrcweir     // Falls noch kein Bsp vorhanden Init hier sonst im Activate
208*cdf0e10cSrcweir     //
209*cdf0e10cSrcweir     SwPageFtnInfo* pDefFtnInfo = 0;
210*cdf0e10cSrcweir     const SwPageFtnInfo* pFtnInfo;
211*cdf0e10cSrcweir     const SfxPoolItem* pItem = SfxTabPage::GetItem(rSet, FN_PARAM_FTN_INFO);
212*cdf0e10cSrcweir     if( pItem )
213*cdf0e10cSrcweir     {
214*cdf0e10cSrcweir         pFtnInfo = &((const SwPageFtnInfoItem*)pItem)->GetPageFtnInfo();
215*cdf0e10cSrcweir     }
216*cdf0e10cSrcweir     else
217*cdf0e10cSrcweir     {
218*cdf0e10cSrcweir         // wenn "Standard" betaetigt wird, wird das Fussnotenitem geloescht,
219*cdf0e10cSrcweir         // deswegen muss hier eine Fussnotenstruktur erzeugt werden
220*cdf0e10cSrcweir         pDefFtnInfo = new SwPageFtnInfo();
221*cdf0e10cSrcweir         pFtnInfo = pDefFtnInfo;
222*cdf0e10cSrcweir     }
223*cdf0e10cSrcweir         // Hoehe Fussnotenbereich
224*cdf0e10cSrcweir     SwTwips lHeight = pFtnInfo->GetHeight();
225*cdf0e10cSrcweir     if(lHeight)
226*cdf0e10cSrcweir     {
227*cdf0e10cSrcweir         aMaxHeightEdit.SetValue(aMaxHeightEdit.Normalize(lHeight),FUNIT_TWIP);
228*cdf0e10cSrcweir         aMaxHeightBtn.Check(sal_True);
229*cdf0e10cSrcweir     }
230*cdf0e10cSrcweir     else
231*cdf0e10cSrcweir     {
232*cdf0e10cSrcweir         aMaxHeightPageBtn.Check(sal_True);
233*cdf0e10cSrcweir         aMaxHeightEdit.Enable(sal_False);
234*cdf0e10cSrcweir     }
235*cdf0e10cSrcweir     aMaxHeightPageBtn.SetClickHdl(LINK(this,SwFootNotePage,HeightPage));
236*cdf0e10cSrcweir     aMaxHeightBtn.SetClickHdl(LINK(this,SwFootNotePage,HeightMetric));
237*cdf0e10cSrcweir     Link aLk = LINK(this, SwFootNotePage, HeightModify);
238*cdf0e10cSrcweir     aMaxHeightEdit.SetLoseFocusHdl( aLk );
239*cdf0e10cSrcweir     aDistEdit.SetLoseFocusHdl( aLk );
240*cdf0e10cSrcweir     aLineDistEdit.SetLoseFocusHdl( aLk );
241*cdf0e10cSrcweir 
242*cdf0e10cSrcweir     // Trennlinie
243*cdf0e10cSrcweir     for(sal_uInt16 i = 0; i < nLineCount; ++i)
244*cdf0e10cSrcweir         aLineTypeBox.InsertEntry(nLines[i]);
245*cdf0e10cSrcweir 
246*cdf0e10cSrcweir     const sal_uInt16 nWidth = (sal_uInt16)pFtnInfo->GetLineWidth() * TWIP_TO_LBOX;
247*cdf0e10cSrcweir     if ( !lcl_HasLineWidth(nWidth) )
248*cdf0e10cSrcweir         aLineTypeBox.InsertEntry(nWidth);
249*cdf0e10cSrcweir     aLineTypeBox.SelectEntry(nWidth);
250*cdf0e10cSrcweir 
251*cdf0e10cSrcweir     // Position
252*cdf0e10cSrcweir     aLinePosBox.SelectEntryPos( static_cast< sal_uInt16 >(pFtnInfo->GetAdj()) );
253*cdf0e10cSrcweir 
254*cdf0e10cSrcweir         // Breite
255*cdf0e10cSrcweir     Fraction aTmp( 100, 1 );
256*cdf0e10cSrcweir     aTmp *= pFtnInfo->GetWidth();
257*cdf0e10cSrcweir     aLineWidthEdit.SetValue( static_cast<long>(aTmp) );
258*cdf0e10cSrcweir 
259*cdf0e10cSrcweir         // Abstand Fussnotenbereich
260*cdf0e10cSrcweir     aDistEdit.SetValue(aDistEdit.Normalize(pFtnInfo->GetTopDist()),FUNIT_TWIP);
261*cdf0e10cSrcweir     aLineDistEdit.SetValue(
262*cdf0e10cSrcweir         aLineDistEdit.Normalize(pFtnInfo->GetBottomDist()), FUNIT_TWIP);
263*cdf0e10cSrcweir     ActivatePage( rSet );
264*cdf0e10cSrcweir     delete pDefFtnInfo;
265*cdf0e10cSrcweir }
266*cdf0e10cSrcweir 
267*cdf0e10cSrcweir /*--------------------------------------------------------------------
268*cdf0e10cSrcweir     Beschreibung:   Attribute in den Set stopfen bei OK
269*cdf0e10cSrcweir  --------------------------------------------------------------------*/
270*cdf0e10cSrcweir 
271*cdf0e10cSrcweir 
272*cdf0e10cSrcweir sal_Bool SwFootNotePage::FillItemSet(SfxItemSet &rSet)
273*cdf0e10cSrcweir {
274*cdf0e10cSrcweir     SwPageFtnInfoItem aItem((const SwPageFtnInfoItem&)GetItemSet().Get(FN_PARAM_FTN_INFO));
275*cdf0e10cSrcweir 
276*cdf0e10cSrcweir     // Das ist das Original
277*cdf0e10cSrcweir     SwPageFtnInfo &rFtnInfo = aItem.GetPageFtnInfo();
278*cdf0e10cSrcweir 
279*cdf0e10cSrcweir         // Hoehe Fussnotenbereich
280*cdf0e10cSrcweir     if(aMaxHeightBtn.IsChecked())
281*cdf0e10cSrcweir         rFtnInfo.SetHeight( static_cast< SwTwips >(
282*cdf0e10cSrcweir                 aMaxHeightEdit.Denormalize(aMaxHeightEdit.GetValue(FUNIT_TWIP))));
283*cdf0e10cSrcweir     else
284*cdf0e10cSrcweir         rFtnInfo.SetHeight(0);
285*cdf0e10cSrcweir 
286*cdf0e10cSrcweir         // Abstand Fussnotenbereich
287*cdf0e10cSrcweir     rFtnInfo.SetTopDist(  static_cast< SwTwips >(
288*cdf0e10cSrcweir             aDistEdit.Denormalize(aDistEdit.GetValue(FUNIT_TWIP))));
289*cdf0e10cSrcweir     rFtnInfo.SetBottomDist(  static_cast< SwTwips >(
290*cdf0e10cSrcweir             aLineDistEdit.Denormalize(aLineDistEdit.GetValue(FUNIT_TWIP))));
291*cdf0e10cSrcweir 
292*cdf0e10cSrcweir         // Trennlinie
293*cdf0e10cSrcweir     const sal_uInt16 nPos = aLineTypeBox.GetSelectEntryPos();
294*cdf0e10cSrcweir     if( LISTBOX_ENTRY_NOTFOUND != nPos )
295*cdf0e10cSrcweir         rFtnInfo.SetLineWidth(nLines[nPos] / TWIP_TO_LBOX);
296*cdf0e10cSrcweir 
297*cdf0e10cSrcweir         // Position
298*cdf0e10cSrcweir     rFtnInfo.SetAdj((SwFtnAdj)aLinePosBox.GetSelectEntryPos());
299*cdf0e10cSrcweir 
300*cdf0e10cSrcweir         // Breite
301*cdf0e10cSrcweir     rFtnInfo.SetWidth(Fraction( static_cast< long >(aLineWidthEdit.GetValue()), 100));
302*cdf0e10cSrcweir 
303*cdf0e10cSrcweir     const SfxPoolItem* pOldItem;
304*cdf0e10cSrcweir     if(0 == (pOldItem = GetOldItem( rSet, FN_PARAM_FTN_INFO )) ||
305*cdf0e10cSrcweir                 aItem != *pOldItem )
306*cdf0e10cSrcweir         rSet.Put(aItem);
307*cdf0e10cSrcweir 
308*cdf0e10cSrcweir     return sal_True;
309*cdf0e10cSrcweir }
310*cdf0e10cSrcweir 
311*cdf0e10cSrcweir void SwFootNotePage::ActivatePage(const SfxItemSet& rSet)
312*cdf0e10cSrcweir {
313*cdf0e10cSrcweir     const SvxSizeItem& rSize = (const SvxSizeItem&)rSet.Get( RES_FRM_SIZE );
314*cdf0e10cSrcweir     lMaxHeight = rSize.GetSize().Height();
315*cdf0e10cSrcweir 
316*cdf0e10cSrcweir     const SfxPoolItem* pItem;
317*cdf0e10cSrcweir     if( SFX_ITEM_SET == rSet.GetItemState( rSet.GetPool()->GetWhich( SID_ATTR_PAGE_HEADERSET), sal_False, &pItem ) )
318*cdf0e10cSrcweir     {
319*cdf0e10cSrcweir         const SfxItemSet& rHeaderSet = ((SvxSetItem*)pItem)->GetItemSet();
320*cdf0e10cSrcweir         const SfxBoolItem& rHeaderOn =
321*cdf0e10cSrcweir             (const SfxBoolItem&)rHeaderSet.Get( rSet.GetPool()->GetWhich( SID_ATTR_PAGE_ON ) );
322*cdf0e10cSrcweir 
323*cdf0e10cSrcweir         if ( rHeaderOn.GetValue() )
324*cdf0e10cSrcweir         {
325*cdf0e10cSrcweir             const SvxSizeItem& rSizeItem =
326*cdf0e10cSrcweir                 (const SvxSizeItem&)rHeaderSet.Get(rSet.GetPool()->GetWhich(SID_ATTR_PAGE_SIZE));
327*cdf0e10cSrcweir             lMaxHeight -= rSizeItem.GetSize().Height();
328*cdf0e10cSrcweir         }
329*cdf0e10cSrcweir     }
330*cdf0e10cSrcweir 
331*cdf0e10cSrcweir     if( SFX_ITEM_SET == rSet.GetItemState( rSet.GetPool()->GetWhich( SID_ATTR_PAGE_FOOTERSET),
332*cdf0e10cSrcweir             sal_False, &pItem ) )
333*cdf0e10cSrcweir     {
334*cdf0e10cSrcweir         const SfxItemSet& rFooterSet = ((SvxSetItem*)pItem)->GetItemSet();
335*cdf0e10cSrcweir         const SfxBoolItem& rFooterOn =
336*cdf0e10cSrcweir             (const SfxBoolItem&)rFooterSet.Get( SID_ATTR_PAGE_ON );
337*cdf0e10cSrcweir 
338*cdf0e10cSrcweir         if ( rFooterOn.GetValue() )
339*cdf0e10cSrcweir         {
340*cdf0e10cSrcweir             const SvxSizeItem& rSizeItem =
341*cdf0e10cSrcweir                 (const SvxSizeItem&)rFooterSet.Get( rSet.GetPool()->GetWhich( SID_ATTR_PAGE_SIZE ) );
342*cdf0e10cSrcweir             lMaxHeight -= rSizeItem.GetSize().Height();
343*cdf0e10cSrcweir         }
344*cdf0e10cSrcweir     }
345*cdf0e10cSrcweir 
346*cdf0e10cSrcweir     if ( rSet.GetItemState( RES_UL_SPACE , sal_False ) == SFX_ITEM_SET )
347*cdf0e10cSrcweir     {
348*cdf0e10cSrcweir         const SvxULSpaceItem &rUL = (const SvxULSpaceItem&)rSet.Get( RES_UL_SPACE );
349*cdf0e10cSrcweir         lMaxHeight -= rUL.GetUpper() + rUL.GetLower();
350*cdf0e10cSrcweir     }
351*cdf0e10cSrcweir 
352*cdf0e10cSrcweir     lMaxHeight *= 8;
353*cdf0e10cSrcweir     lMaxHeight /= 10;
354*cdf0e10cSrcweir 
355*cdf0e10cSrcweir     // Maximalwerte setzen
356*cdf0e10cSrcweir     HeightModify(0);
357*cdf0e10cSrcweir }
358*cdf0e10cSrcweir 
359*cdf0e10cSrcweir int SwFootNotePage::DeactivatePage( SfxItemSet* _pSet)
360*cdf0e10cSrcweir {
361*cdf0e10cSrcweir     if(_pSet)
362*cdf0e10cSrcweir         FillItemSet(*_pSet);
363*cdf0e10cSrcweir 
364*cdf0e10cSrcweir     return sal_True;
365*cdf0e10cSrcweir }
366*cdf0e10cSrcweir 
367*cdf0e10cSrcweir sal_uInt16* SwFootNotePage::GetRanges()
368*cdf0e10cSrcweir {
369*cdf0e10cSrcweir     return aPageRg;
370*cdf0e10cSrcweir }
371*cdf0e10cSrcweir 
372*cdf0e10cSrcweir 
373*cdf0e10cSrcweir 
374