xref: /aoo41x/main/sw/source/ui/fldui/flddok.cxx (revision cdf0e10c)
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 #ifdef SW_DLLIMPLEMENTATION
31*cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION
32*cdf0e10cSrcweir #endif
33*cdf0e10cSrcweir 
34*cdf0e10cSrcweir 
35*cdf0e10cSrcweir #include <vcl/svapp.hxx>
36*cdf0e10cSrcweir #include <flddat.hxx>
37*cdf0e10cSrcweir #include <docufld.hxx>
38*cdf0e10cSrcweir #ifndef _GLOBALS_HRC
39*cdf0e10cSrcweir #include <globals.hrc>
40*cdf0e10cSrcweir #endif
41*cdf0e10cSrcweir #include <chpfld.hxx>
42*cdf0e10cSrcweir #ifndef _FLDTDLG_HRC
43*cdf0e10cSrcweir #include <fldtdlg.hrc>
44*cdf0e10cSrcweir #endif
45*cdf0e10cSrcweir #ifndef _FLDUI_HRC
46*cdf0e10cSrcweir #include <fldui.hrc>
47*cdf0e10cSrcweir #endif
48*cdf0e10cSrcweir #ifndef _FLDDOK_HXX
49*cdf0e10cSrcweir #include <flddok.hxx>
50*cdf0e10cSrcweir #endif
51*cdf0e10cSrcweir #include <swmodule.hxx>
52*cdf0e10cSrcweir #ifndef _VIEW_HXX
53*cdf0e10cSrcweir #include <view.hxx>
54*cdf0e10cSrcweir #endif
55*cdf0e10cSrcweir #include <wrtsh.hxx>
56*cdf0e10cSrcweir #include <svl/zformat.hxx>
57*cdf0e10cSrcweir 
58*cdf0e10cSrcweir #include <index.hrc>
59*cdf0e10cSrcweir 
60*cdf0e10cSrcweir #define USER_DATA_VERSION_1 "1"
61*cdf0e10cSrcweir #define USER_DATA_VERSION USER_DATA_VERSION_1
62*cdf0e10cSrcweir 
63*cdf0e10cSrcweir /*--------------------------------------------------------------------
64*cdf0e10cSrcweir 	Beschreibung:
65*cdf0e10cSrcweir  --------------------------------------------------------------------*/
66*cdf0e10cSrcweir 
67*cdf0e10cSrcweir SwFldDokPage::SwFldDokPage(Window* pWindow, const SfxItemSet& rCoreSet ) :
68*cdf0e10cSrcweir 	SwFldPage( pWindow, SW_RES( TP_FLD_DOK ), rCoreSet ),
69*cdf0e10cSrcweir 
70*cdf0e10cSrcweir 	aTypeFT			(this, SW_RES(FT_DOKTYPE)),
71*cdf0e10cSrcweir 	aTypeLB			(this, SW_RES(LB_DOKTYPE)),
72*cdf0e10cSrcweir 	aSelectionFT	(this, SW_RES(FT_DOKSELECTION)),
73*cdf0e10cSrcweir 	aSelectionLB	(this, SW_RES(LB_DOKSELECTION)),
74*cdf0e10cSrcweir 	aValueFT		(this, SW_RES(FT_DOKVALUE)),
75*cdf0e10cSrcweir 	aValueED		(this, SW_RES(ED_DOKVALUE)),
76*cdf0e10cSrcweir 	aLevelED		(this, SW_RES(ED_DOKLEVEL)),
77*cdf0e10cSrcweir 	aDateOffsetED   (this, SW_RES(ED_DOKDATEOFF)),
78*cdf0e10cSrcweir 
79*cdf0e10cSrcweir 	aFormatFT		(this, SW_RES(FT_DOKFORMAT)),
80*cdf0e10cSrcweir 	aFormatLB		(this, SW_RES(LB_DOKFORMAT)),
81*cdf0e10cSrcweir 	aNumFormatLB	(this, SW_RES(LB_DOKNUMFORMAT)),
82*cdf0e10cSrcweir 	aFixedCB		(this, SW_RES(CB_DOKFIXEDCONTENT)),
83*cdf0e10cSrcweir 
84*cdf0e10cSrcweir 	sDateOffset		(SW_RES(STR_DOKDATEOFF)),
85*cdf0e10cSrcweir 	sTimeOffset		(SW_RES(STR_DOKTIMEOFF)),
86*cdf0e10cSrcweir 	aRootOpened		(SW_RES(BMP_DOKROOT_OPENED)),
87*cdf0e10cSrcweir 	aRootClosed		(SW_RES(BMP_DOKROOT_CLOSED))
88*cdf0e10cSrcweir {
89*cdf0e10cSrcweir 	FreeResource();
90*cdf0e10cSrcweir 
91*cdf0e10cSrcweir 	aSelectionLB.SetDoubleClickHdl(LINK(this, SwFldDokPage, InsertHdl));
92*cdf0e10cSrcweir 	aFormatLB.SetDoubleClickHdl(LINK(this, SwFldDokPage, InsertHdl));
93*cdf0e10cSrcweir 	aNumFormatLB.SetDoubleClickHdl(LINK(this, SwFldDokPage, NumFormatHdl));
94*cdf0e10cSrcweir 
95*cdf0e10cSrcweir 	aLevelED.SetMax(MAXLEVEL);
96*cdf0e10cSrcweir 	aDateOffsetED.SetMin(LONG_MIN);
97*cdf0e10cSrcweir 	aDateOffsetED.SetMax(LONG_MAX);
98*cdf0e10cSrcweir     //enable 'active' language selection
99*cdf0e10cSrcweir     aNumFormatLB.SetShowLanguageControl(sal_True);
100*cdf0e10cSrcweir }
101*cdf0e10cSrcweir 
102*cdf0e10cSrcweir /*--------------------------------------------------------------------
103*cdf0e10cSrcweir 	Beschreibung:
104*cdf0e10cSrcweir  --------------------------------------------------------------------*/
105*cdf0e10cSrcweir 
106*cdf0e10cSrcweir __EXPORT SwFldDokPage::~SwFldDokPage()
107*cdf0e10cSrcweir {
108*cdf0e10cSrcweir }
109*cdf0e10cSrcweir 
110*cdf0e10cSrcweir /*--------------------------------------------------------------------
111*cdf0e10cSrcweir 	Beschreibung:
112*cdf0e10cSrcweir  --------------------------------------------------------------------*/
113*cdf0e10cSrcweir 
114*cdf0e10cSrcweir void __EXPORT SwFldDokPage::Reset(const SfxItemSet& )
115*cdf0e10cSrcweir {
116*cdf0e10cSrcweir 	SavePos(&aTypeLB);
117*cdf0e10cSrcweir 	Init();	// Allgemeine initialisierung
118*cdf0e10cSrcweir 
119*cdf0e10cSrcweir 	// TypeListBox initialisieren
120*cdf0e10cSrcweir 	const SwFldGroupRgn& rRg = GetFldMgr().GetGroupRange(IsFldDlgHtmlMode(), GetGroup());
121*cdf0e10cSrcweir 
122*cdf0e10cSrcweir 	aTypeLB.SetUpdateMode(sal_False);
123*cdf0e10cSrcweir 	aTypeLB.Clear();
124*cdf0e10cSrcweir 
125*cdf0e10cSrcweir 	sal_uInt16 nPos, nTypeId;
126*cdf0e10cSrcweir 	sal_Bool bPage = sal_False;
127*cdf0e10cSrcweir 
128*cdf0e10cSrcweir 	if (!IsFldEdit())
129*cdf0e10cSrcweir 	{
130*cdf0e10cSrcweir 		// Typ-Listbox fuellen
131*cdf0e10cSrcweir 		for(short i = rRg.nStart; i < rRg.nEnd; ++i)
132*cdf0e10cSrcweir 		{
133*cdf0e10cSrcweir 			nTypeId = GetFldMgr().GetTypeId(i);
134*cdf0e10cSrcweir 
135*cdf0e10cSrcweir 			switch (nTypeId)
136*cdf0e10cSrcweir 			{
137*cdf0e10cSrcweir 				case TYP_PREVPAGEFLD:
138*cdf0e10cSrcweir 				case TYP_NEXTPAGEFLD:
139*cdf0e10cSrcweir 				case TYP_PAGENUMBERFLD:
140*cdf0e10cSrcweir 					if (!bPage)
141*cdf0e10cSrcweir 					{
142*cdf0e10cSrcweir 						nPos = aTypeLB.InsertEntry(SW_RESSTR(FMT_REF_PAGE));
143*cdf0e10cSrcweir 						aTypeLB.SetEntryData(nPos, (void*)USHRT_MAX);
144*cdf0e10cSrcweir 						bPage = sal_True;
145*cdf0e10cSrcweir 					}
146*cdf0e10cSrcweir 					break;
147*cdf0e10cSrcweir 
148*cdf0e10cSrcweir 				default:
149*cdf0e10cSrcweir 					nPos = aTypeLB.InsertEntry(GetFldMgr().GetTypeStr(i));
150*cdf0e10cSrcweir                     aTypeLB.SetEntryData(nPos, reinterpret_cast<void*>(nTypeId));
151*cdf0e10cSrcweir 					break;
152*cdf0e10cSrcweir 			}
153*cdf0e10cSrcweir 		}
154*cdf0e10cSrcweir 	}
155*cdf0e10cSrcweir 	else
156*cdf0e10cSrcweir 	{
157*cdf0e10cSrcweir 		const SwField* pCurField = GetCurField();
158*cdf0e10cSrcweir 		nTypeId = pCurField->GetTypeId();
159*cdf0e10cSrcweir 		if (nTypeId == TYP_FIXDATEFLD)
160*cdf0e10cSrcweir 			nTypeId = TYP_DATEFLD;
161*cdf0e10cSrcweir 		if (nTypeId == TYP_FIXTIMEFLD)
162*cdf0e10cSrcweir 			nTypeId = TYP_TIMEFLD;
163*cdf0e10cSrcweir 		nPos = aTypeLB.InsertEntry(GetFldMgr().GetTypeStr(GetFldMgr().GetPos(nTypeId)));
164*cdf0e10cSrcweir         aTypeLB.SetEntryData(nPos, reinterpret_cast<void*>(nTypeId));
165*cdf0e10cSrcweir 		aNumFormatLB.SetAutomaticLanguage(pCurField->IsAutomaticLanguage());
166*cdf0e10cSrcweir         SwWrtShell *pSh = GetWrtShell();
167*cdf0e10cSrcweir         if(!pSh)
168*cdf0e10cSrcweir             pSh = ::GetActiveWrtShell();
169*cdf0e10cSrcweir         if(pSh)
170*cdf0e10cSrcweir         {
171*cdf0e10cSrcweir             const SvNumberformat* pFormat = pSh->GetNumberFormatter()->GetEntry(pCurField->GetFormat());
172*cdf0e10cSrcweir             if(pFormat)
173*cdf0e10cSrcweir                 aNumFormatLB.SetLanguage(pFormat->GetLanguage());
174*cdf0e10cSrcweir         }
175*cdf0e10cSrcweir 	}
176*cdf0e10cSrcweir 
177*cdf0e10cSrcweir 	// alte Pos selektieren
178*cdf0e10cSrcweir 	RestorePos(&aTypeLB);
179*cdf0e10cSrcweir 
180*cdf0e10cSrcweir 	aTypeLB.SetUpdateMode(sal_True);
181*cdf0e10cSrcweir 	aTypeLB.SetDoubleClickHdl(LINK(this, SwFldDokPage, InsertHdl));
182*cdf0e10cSrcweir 	aTypeLB.SetSelectHdl(LINK(this, SwFldDokPage, TypeHdl));
183*cdf0e10cSrcweir 	aFormatLB.SetSelectHdl(LINK(this, SwFldDokPage, FormatHdl));
184*cdf0e10cSrcweir 
185*cdf0e10cSrcweir 	if( !IsRefresh() )
186*cdf0e10cSrcweir 	{
187*cdf0e10cSrcweir 		String sUserData = GetUserData();
188*cdf0e10cSrcweir 		if( sUserData.GetToken(0, ';').EqualsIgnoreCaseAscii(USER_DATA_VERSION_1 ))
189*cdf0e10cSrcweir 		{
190*cdf0e10cSrcweir 			String sVal = sUserData.GetToken(1, ';');
191*cdf0e10cSrcweir             sal_uInt16 nVal = static_cast< sal_uInt16 >(sVal.ToInt32());
192*cdf0e10cSrcweir 			if(nVal != USHRT_MAX)
193*cdf0e10cSrcweir 			{
194*cdf0e10cSrcweir 				for(sal_uInt16 i = 0; i < aTypeLB.GetEntryCount(); i++)
195*cdf0e10cSrcweir 					if(nVal == (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(i))
196*cdf0e10cSrcweir 					{
197*cdf0e10cSrcweir 						aTypeLB.SelectEntryPos(i);
198*cdf0e10cSrcweir 						break;
199*cdf0e10cSrcweir 					}
200*cdf0e10cSrcweir 			}
201*cdf0e10cSrcweir 		}
202*cdf0e10cSrcweir 	}
203*cdf0e10cSrcweir 	TypeHdl(0);
204*cdf0e10cSrcweir 
205*cdf0e10cSrcweir 	if (IsFldEdit())
206*cdf0e10cSrcweir 	{
207*cdf0e10cSrcweir 		nOldSel = aSelectionLB.GetSelectEntryPos();
208*cdf0e10cSrcweir 		nOldFormat = GetCurField()->GetFormat();
209*cdf0e10cSrcweir 		aFixedCB.SaveValue();
210*cdf0e10cSrcweir 		aValueED.SaveValue();
211*cdf0e10cSrcweir 		aLevelED.SaveValue();
212*cdf0e10cSrcweir 		aDateOffsetED.SaveValue();
213*cdf0e10cSrcweir 	}
214*cdf0e10cSrcweir }
215*cdf0e10cSrcweir 
216*cdf0e10cSrcweir /*--------------------------------------------------------------------
217*cdf0e10cSrcweir 	Beschreibung:
218*cdf0e10cSrcweir  --------------------------------------------------------------------*/
219*cdf0e10cSrcweir 
220*cdf0e10cSrcweir IMPL_LINK( SwFldDokPage, TypeHdl, ListBox *, EMPTYARG )
221*cdf0e10cSrcweir {
222*cdf0e10cSrcweir 	// Alte ListBoxPos sichern
223*cdf0e10cSrcweir 	const sal_uInt16 nOld = GetTypeSel();
224*cdf0e10cSrcweir 
225*cdf0e10cSrcweir 	// Aktuelle ListBoxPos
226*cdf0e10cSrcweir 	SetTypeSel(aTypeLB.GetSelectEntryPos());
227*cdf0e10cSrcweir 
228*cdf0e10cSrcweir 	if(GetTypeSel() == LISTBOX_ENTRY_NOTFOUND)
229*cdf0e10cSrcweir 	{
230*cdf0e10cSrcweir 		SetTypeSel(0);
231*cdf0e10cSrcweir 		aTypeLB.SelectEntryPos(0);
232*cdf0e10cSrcweir 	}
233*cdf0e10cSrcweir 
234*cdf0e10cSrcweir 	sal_uInt16 nCount;
235*cdf0e10cSrcweir 
236*cdf0e10cSrcweir 	if (nOld != GetTypeSel())
237*cdf0e10cSrcweir 	{
238*cdf0e10cSrcweir 		sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel());
239*cdf0e10cSrcweir 
240*cdf0e10cSrcweir 		// Auswahl-Listbox fuellen
241*cdf0e10cSrcweir 		aSelectionLB.Clear();
242*cdf0e10cSrcweir 
243*cdf0e10cSrcweir 		if (nTypeId != USHRT_MAX)
244*cdf0e10cSrcweir 		{
245*cdf0e10cSrcweir             SvStringsDtor aLst;
246*cdf0e10cSrcweir             GetFldMgr().GetSubTypes(nTypeId, aLst);
247*cdf0e10cSrcweir 
248*cdf0e10cSrcweir 			if (nTypeId != TYP_AUTHORFLD)
249*cdf0e10cSrcweir                 nCount = aLst.Count();
250*cdf0e10cSrcweir 			else
251*cdf0e10cSrcweir 				nCount = GetFldMgr().GetFormatCount(nTypeId, sal_False, IsFldDlgHtmlMode());
252*cdf0e10cSrcweir 
253*cdf0e10cSrcweir 			sal_uInt16 nPos;
254*cdf0e10cSrcweir 
255*cdf0e10cSrcweir 			for (sal_uInt16 i = 0; i < nCount; ++i)
256*cdf0e10cSrcweir 			{
257*cdf0e10cSrcweir 				if (!IsFldEdit())
258*cdf0e10cSrcweir 				{
259*cdf0e10cSrcweir 					if (nTypeId != TYP_AUTHORFLD)
260*cdf0e10cSrcweir                         nPos = aSelectionLB.InsertEntry(*aLst[i]);
261*cdf0e10cSrcweir 					else
262*cdf0e10cSrcweir 						nPos = aSelectionLB.InsertEntry(GetFldMgr().GetFormatStr(nTypeId, i));
263*cdf0e10cSrcweir 
264*cdf0e10cSrcweir                     aSelectionLB.SetEntryData(nPos, reinterpret_cast<void*>(i));
265*cdf0e10cSrcweir 				}
266*cdf0e10cSrcweir 				else
267*cdf0e10cSrcweir 				{
268*cdf0e10cSrcweir 					sal_Bool bInsert = sal_False;
269*cdf0e10cSrcweir 
270*cdf0e10cSrcweir 					switch (nTypeId)
271*cdf0e10cSrcweir 					{
272*cdf0e10cSrcweir 						case TYP_DATEFLD:
273*cdf0e10cSrcweir 						case TYP_TIMEFLD:
274*cdf0e10cSrcweir                             nPos = aSelectionLB.InsertEntry(*aLst[i]);
275*cdf0e10cSrcweir                             aSelectionLB.SetEntryData(nPos, reinterpret_cast<void*>(i));
276*cdf0e10cSrcweir 							if (((SwDateTimeField*)GetCurField())->IsFixed() && !i)
277*cdf0e10cSrcweir 								aSelectionLB.SelectEntryPos(nPos);
278*cdf0e10cSrcweir 							if (!((SwDateTimeField*)GetCurField())->IsFixed() && i)
279*cdf0e10cSrcweir 								aSelectionLB.SelectEntryPos(nPos);
280*cdf0e10cSrcweir 							break;
281*cdf0e10cSrcweir 
282*cdf0e10cSrcweir 						case TYP_EXTUSERFLD:
283*cdf0e10cSrcweir 						case TYP_DOCSTATFLD:
284*cdf0e10cSrcweir                             nPos = aSelectionLB.InsertEntry(*aLst[i]);
285*cdf0e10cSrcweir                             aSelectionLB.SetEntryData(nPos, reinterpret_cast<void*>(i));
286*cdf0e10cSrcweir 							if (GetCurField()->GetSubType() == i)
287*cdf0e10cSrcweir 								aSelectionLB.SelectEntryPos(nPos);
288*cdf0e10cSrcweir 							break;
289*cdf0e10cSrcweir 
290*cdf0e10cSrcweir 						case TYP_AUTHORFLD:
291*cdf0e10cSrcweir 						{
292*cdf0e10cSrcweir 							String sFmt(GetFldMgr().GetFormatStr(nTypeId, i));
293*cdf0e10cSrcweir 							nPos = aSelectionLB.InsertEntry(sFmt);
294*cdf0e10cSrcweir                             aSelectionLB.SetEntryData(nPos, reinterpret_cast<void*>(i));
295*cdf0e10cSrcweir 							aSelectionLB.SelectEntry(GetFldMgr().GetFormatStr(nTypeId, GetCurField()->GetFormat()));
296*cdf0e10cSrcweir 							break;
297*cdf0e10cSrcweir 						}
298*cdf0e10cSrcweir 
299*cdf0e10cSrcweir 						default:
300*cdf0e10cSrcweir                             if (*aLst[i] == GetCurField()->GetPar1())
301*cdf0e10cSrcweir 								bInsert = sal_True;
302*cdf0e10cSrcweir 							break;
303*cdf0e10cSrcweir 					}
304*cdf0e10cSrcweir 					if (bInsert)
305*cdf0e10cSrcweir 					{
306*cdf0e10cSrcweir                         nPos = aSelectionLB.InsertEntry(*aLst[i]);
307*cdf0e10cSrcweir                         aSelectionLB.SetEntryData(nPos, reinterpret_cast<void*>(i));
308*cdf0e10cSrcweir 						break;
309*cdf0e10cSrcweir 					}
310*cdf0e10cSrcweir 				}
311*cdf0e10cSrcweir 			}
312*cdf0e10cSrcweir 			aSelectionLB.SetSelectHdl(Link());
313*cdf0e10cSrcweir 		}
314*cdf0e10cSrcweir 		else
315*cdf0e10cSrcweir 		{
316*cdf0e10cSrcweir 			AddSubType(TYP_PAGENUMBERFLD);
317*cdf0e10cSrcweir 			AddSubType(TYP_PREVPAGEFLD);
318*cdf0e10cSrcweir 			AddSubType(TYP_NEXTPAGEFLD);
319*cdf0e10cSrcweir 			nTypeId = (sal_uInt16)(sal_uLong)aSelectionLB.GetEntryData(0);
320*cdf0e10cSrcweir 			nCount = 3;
321*cdf0e10cSrcweir 			aSelectionLB.SetSelectHdl(LINK(this, SwFldDokPage, SubTypeHdl));
322*cdf0e10cSrcweir 		}
323*cdf0e10cSrcweir 
324*cdf0e10cSrcweir 		sal_Bool bEnable = nCount != 0;
325*cdf0e10cSrcweir 
326*cdf0e10cSrcweir 		if (bEnable && !aSelectionLB.GetSelectEntryCount())
327*cdf0e10cSrcweir 			aSelectionLB.SelectEntryPos(0);
328*cdf0e10cSrcweir 
329*cdf0e10cSrcweir 		aSelectionLB.Enable( bEnable );
330*cdf0e10cSrcweir 		aSelectionFT.Enable( bEnable );
331*cdf0e10cSrcweir 
332*cdf0e10cSrcweir 		// Format-Listbox fuellen
333*cdf0e10cSrcweir 		sal_uInt16 nSize = FillFormatLB(nTypeId);
334*cdf0e10cSrcweir 
335*cdf0e10cSrcweir 		sal_Bool bValue = sal_False, bLevel = sal_False, bNumFmt = sal_False, bOffset = sal_False;
336*cdf0e10cSrcweir 		sal_Bool bFormat = nSize != 0;
337*cdf0e10cSrcweir 		sal_Bool bOneArea = sal_False;
338*cdf0e10cSrcweir 		sal_Bool bFixed = sal_False;
339*cdf0e10cSrcweir 		sal_uInt16 nFmtType = 0;
340*cdf0e10cSrcweir 
341*cdf0e10cSrcweir 		switch (nTypeId)
342*cdf0e10cSrcweir 		{
343*cdf0e10cSrcweir 			case TYP_DATEFLD:
344*cdf0e10cSrcweir 				bFormat = bNumFmt = bOneArea = bOffset = sal_True;
345*cdf0e10cSrcweir 
346*cdf0e10cSrcweir 				nFmtType = NUMBERFORMAT_DATE;
347*cdf0e10cSrcweir 				aValueFT.SetText(sDateOffset);
348*cdf0e10cSrcweir 				aDateOffsetED.SetFirst(-31);	// Ein Monat
349*cdf0e10cSrcweir 				aDateOffsetED.SetLast(31);
350*cdf0e10cSrcweir 
351*cdf0e10cSrcweir 				if (IsFldEdit())
352*cdf0e10cSrcweir 					aDateOffsetED.SetValue( ((SwDateTimeField*)GetCurField())->GetOffset() / 24 / 60);
353*cdf0e10cSrcweir 				break;
354*cdf0e10cSrcweir 
355*cdf0e10cSrcweir 			case TYP_TIMEFLD:
356*cdf0e10cSrcweir 				bFormat = bNumFmt = bOneArea = bOffset = sal_True;
357*cdf0e10cSrcweir 
358*cdf0e10cSrcweir 				nFmtType = NUMBERFORMAT_TIME;
359*cdf0e10cSrcweir 				aValueFT.SetText(sTimeOffset);
360*cdf0e10cSrcweir 				aDateOffsetED.SetFirst(-1440);	// Ein Tag
361*cdf0e10cSrcweir 				aDateOffsetED.SetLast(1440);
362*cdf0e10cSrcweir 
363*cdf0e10cSrcweir 				if (IsFldEdit())
364*cdf0e10cSrcweir 					aDateOffsetED.SetValue( ((SwDateTimeField*)GetCurField())->GetOffset() );
365*cdf0e10cSrcweir 				break;
366*cdf0e10cSrcweir 
367*cdf0e10cSrcweir 			case TYP_PREVPAGEFLD:
368*cdf0e10cSrcweir 			case TYP_NEXTPAGEFLD:
369*cdf0e10cSrcweir 				if (IsFldEdit())
370*cdf0e10cSrcweir 				{
371*cdf0e10cSrcweir 					sal_uInt16 nTmp = (sal_uInt16)(sal_uLong)aFormatLB.GetEntryData(
372*cdf0e10cSrcweir 											aFormatLB.GetSelectEntryPos() );
373*cdf0e10cSrcweir 					String sOldTxt(aValueFT.GetText());
374*cdf0e10cSrcweir 
375*cdf0e10cSrcweir                     if(SVX_NUM_CHAR_SPECIAL != nTmp)
376*cdf0e10cSrcweir 					{
377*cdf0e10cSrcweir                         sal_Int32 nOff = GetCurField()->GetPar2().ToInt32();
378*cdf0e10cSrcweir 						if( TYP_NEXTPAGEFLD == nTypeId && 1 != nOff )
379*cdf0e10cSrcweir 							aValueED.SetText(
380*cdf0e10cSrcweir                                 String::CreateFromInt32(nOff - 1) );
381*cdf0e10cSrcweir 						else if( TYP_PREVPAGEFLD == nTypeId && -1 != nOff )
382*cdf0e10cSrcweir 							aValueED.SetText(
383*cdf0e10cSrcweir                                 String::CreateFromInt32(nOff + 1) );
384*cdf0e10cSrcweir 						else
385*cdf0e10cSrcweir 							aValueED.SetText(aEmptyStr);
386*cdf0e10cSrcweir 					}
387*cdf0e10cSrcweir 					else
388*cdf0e10cSrcweir 						aValueED.SetText(((SwPageNumberField*)GetCurField())->GetUserString());
389*cdf0e10cSrcweir 				}
390*cdf0e10cSrcweir 				bValue = sal_True;
391*cdf0e10cSrcweir 				break;
392*cdf0e10cSrcweir 
393*cdf0e10cSrcweir 			case TYP_CHAPTERFLD:
394*cdf0e10cSrcweir 				aValueFT.SetText(SW_RESSTR(STR_LEVEL));
395*cdf0e10cSrcweir 				if (IsFldEdit())
396*cdf0e10cSrcweir 					aLevelED.SetText(String::CreateFromInt32(((SwChapterField*)GetCurField())->GetLevel() + 1));
397*cdf0e10cSrcweir 				bLevel = sal_True;
398*cdf0e10cSrcweir 				break;
399*cdf0e10cSrcweir 
400*cdf0e10cSrcweir 			case TYP_PAGENUMBERFLD:
401*cdf0e10cSrcweir 				aValueFT.SetText( SW_RESSTR( STR_OFFSET ));
402*cdf0e10cSrcweir 				if (IsFldEdit())
403*cdf0e10cSrcweir 					aValueED.SetText(GetCurField()->GetPar2());
404*cdf0e10cSrcweir 				bValue = sal_True;
405*cdf0e10cSrcweir 				break;
406*cdf0e10cSrcweir 
407*cdf0e10cSrcweir 			case TYP_EXTUSERFLD:
408*cdf0e10cSrcweir 			case TYP_AUTHORFLD:
409*cdf0e10cSrcweir 			case TYP_FILENAMEFLD:
410*cdf0e10cSrcweir 				bFixed = sal_True;
411*cdf0e10cSrcweir 				break;
412*cdf0e10cSrcweir 
413*cdf0e10cSrcweir 			default:
414*cdf0e10cSrcweir 				break;
415*cdf0e10cSrcweir 		}
416*cdf0e10cSrcweir 
417*cdf0e10cSrcweir 		if (bNumFmt)
418*cdf0e10cSrcweir 		{
419*cdf0e10cSrcweir 			if (IsFldEdit())
420*cdf0e10cSrcweir 			{
421*cdf0e10cSrcweir 				aNumFormatLB.SetDefFormat(GetCurField()->GetFormat());
422*cdf0e10cSrcweir 
423*cdf0e10cSrcweir 				if (aNumFormatLB.GetFormatType() == (NUMBERFORMAT_DATE|NUMBERFORMAT_TIME))
424*cdf0e10cSrcweir 				{
425*cdf0e10cSrcweir 					// Format-Typ immer einstellen, da sonst bei kombinierten Datum/Zeitformaten
426*cdf0e10cSrcweir 					// beide Formate gleichzeitig angezeigt werden wuerden
427*cdf0e10cSrcweir 					aNumFormatLB.SetFormatType(0);
428*cdf0e10cSrcweir 					aNumFormatLB.SetFormatType(nFmtType);
429*cdf0e10cSrcweir 					// Nochmal richtiges Format einstellen
430*cdf0e10cSrcweir 					aNumFormatLB.SetDefFormat(GetCurField()->GetFormat());
431*cdf0e10cSrcweir 				}
432*cdf0e10cSrcweir 			}
433*cdf0e10cSrcweir 			else
434*cdf0e10cSrcweir 				aNumFormatLB.SetFormatType(nFmtType);
435*cdf0e10cSrcweir 
436*cdf0e10cSrcweir 			aNumFormatLB.SetOneArea(bOneArea);
437*cdf0e10cSrcweir 		}
438*cdf0e10cSrcweir 
439*cdf0e10cSrcweir 		aFormatLB.Show(!bNumFmt);
440*cdf0e10cSrcweir 		aNumFormatLB.Show(bNumFmt);
441*cdf0e10cSrcweir 
442*cdf0e10cSrcweir 		Size aSz(aFormatLB.GetSizePixel());
443*cdf0e10cSrcweir 
444*cdf0e10cSrcweir 		if (bValue | bLevel | bOffset)
445*cdf0e10cSrcweir 			aSz.Height() = aFormatLB.LogicToPixel(Size(1, 137), MAP_APPFONT).Height();
446*cdf0e10cSrcweir 		else
447*cdf0e10cSrcweir 			aSz.Height() = aFormatLB.LogicToPixel(Size(1, 152), MAP_APPFONT).Height();
448*cdf0e10cSrcweir 
449*cdf0e10cSrcweir 		aValueFT.Show(bValue | bLevel | bOffset);
450*cdf0e10cSrcweir 		aValueED.Show(bValue);
451*cdf0e10cSrcweir 		aLevelED.Show(bLevel);
452*cdf0e10cSrcweir 		aDateOffsetED.Show(bOffset);
453*cdf0e10cSrcweir 		aFixedCB.Show(!bValue && !bLevel && !bOffset);
454*cdf0e10cSrcweir 
455*cdf0e10cSrcweir 		aFormatLB.SetSizePixel(aSz);
456*cdf0e10cSrcweir 		aNumFormatLB.SetSizePixel(aSz);
457*cdf0e10cSrcweir 
458*cdf0e10cSrcweir 		aFormatLB.Enable(bFormat);
459*cdf0e10cSrcweir 		aFormatFT.Enable(bFormat);
460*cdf0e10cSrcweir 		aFixedCB.Enable(bFixed);
461*cdf0e10cSrcweir 
462*cdf0e10cSrcweir 		if (IsFldEdit())
463*cdf0e10cSrcweir             aFixedCB.Check( static_cast< sal_Bool >(((GetCurField()->GetFormat() & AF_FIXED) != 0) & bFixed));
464*cdf0e10cSrcweir 
465*cdf0e10cSrcweir 		if (aNumFormatLB.GetSelectEntryPos() == LISTBOX_ENTRY_NOTFOUND)
466*cdf0e10cSrcweir 			aNumFormatLB.SelectEntryPos(0);
467*cdf0e10cSrcweir 		aValueFT.Enable(bValue | bLevel | bOffset);
468*cdf0e10cSrcweir 		aValueED.Enable(bValue);
469*cdf0e10cSrcweir 	}
470*cdf0e10cSrcweir 
471*cdf0e10cSrcweir 	return 0;
472*cdf0e10cSrcweir }
473*cdf0e10cSrcweir 
474*cdf0e10cSrcweir /*--------------------------------------------------------------------
475*cdf0e10cSrcweir 	Beschreibung:
476*cdf0e10cSrcweir  --------------------------------------------------------------------*/
477*cdf0e10cSrcweir 
478*cdf0e10cSrcweir void SwFldDokPage::AddSubType(sal_uInt16 nTypeId)
479*cdf0e10cSrcweir {
480*cdf0e10cSrcweir 	sal_uInt16 nPos = aSelectionLB.InsertEntry(SwFieldType::GetTypeStr(nTypeId));
481*cdf0e10cSrcweir     aSelectionLB.SetEntryData(nPos, reinterpret_cast<void*>(nTypeId));
482*cdf0e10cSrcweir }
483*cdf0e10cSrcweir 
484*cdf0e10cSrcweir /*--------------------------------------------------------------------
485*cdf0e10cSrcweir 	Beschreibung:
486*cdf0e10cSrcweir  --------------------------------------------------------------------*/
487*cdf0e10cSrcweir 
488*cdf0e10cSrcweir IMPL_LINK( SwFldDokPage, SubTypeHdl, ListBox *, EMPTYARG )
489*cdf0e10cSrcweir {
490*cdf0e10cSrcweir 	sal_uInt16 nPos = aSelectionLB.GetSelectEntryPos();
491*cdf0e10cSrcweir 	if(nPos == LISTBOX_ENTRY_NOTFOUND)
492*cdf0e10cSrcweir 		nPos = 0;
493*cdf0e10cSrcweir 
494*cdf0e10cSrcweir 	sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aSelectionLB.GetEntryData(nPos);
495*cdf0e10cSrcweir 	FillFormatLB(nTypeId);
496*cdf0e10cSrcweir 
497*cdf0e10cSrcweir 	sal_uInt16 nTextRes = 0;
498*cdf0e10cSrcweir 	switch (nTypeId)
499*cdf0e10cSrcweir 	{
500*cdf0e10cSrcweir 	case TYP_CHAPTERFLD:
501*cdf0e10cSrcweir 		nTextRes = STR_LEVEL;
502*cdf0e10cSrcweir 		break;
503*cdf0e10cSrcweir 
504*cdf0e10cSrcweir 	case TYP_PREVPAGEFLD:
505*cdf0e10cSrcweir 	case TYP_NEXTPAGEFLD:
506*cdf0e10cSrcweir 		nTextRes = SVX_NUM_CHAR_SPECIAL == (sal_uInt16)(sal_uLong)aFormatLB.GetEntryData(
507*cdf0e10cSrcweir 										aFormatLB.GetSelectEntryPos() )
508*cdf0e10cSrcweir 						? STR_VALUE : STR_OFFSET;
509*cdf0e10cSrcweir 		break;
510*cdf0e10cSrcweir 
511*cdf0e10cSrcweir 	case TYP_PAGENUMBERFLD:
512*cdf0e10cSrcweir 		nTextRes = STR_OFFSET;
513*cdf0e10cSrcweir 		break;
514*cdf0e10cSrcweir 	}
515*cdf0e10cSrcweir 
516*cdf0e10cSrcweir 	if( nTextRes )
517*cdf0e10cSrcweir 		aValueFT.SetText( SW_RESSTR( nTextRes ));
518*cdf0e10cSrcweir 
519*cdf0e10cSrcweir 	return 0;
520*cdf0e10cSrcweir }
521*cdf0e10cSrcweir 
522*cdf0e10cSrcweir /*--------------------------------------------------------------------
523*cdf0e10cSrcweir 	Beschreibung:
524*cdf0e10cSrcweir  --------------------------------------------------------------------*/
525*cdf0e10cSrcweir 
526*cdf0e10cSrcweir sal_uInt16 SwFldDokPage::FillFormatLB(sal_uInt16 nTypeId)
527*cdf0e10cSrcweir {
528*cdf0e10cSrcweir 	// Format-Listbox fuellen
529*cdf0e10cSrcweir 	aFormatLB.Clear();
530*cdf0e10cSrcweir 
531*cdf0e10cSrcweir 	if (nTypeId == TYP_AUTHORFLD)
532*cdf0e10cSrcweir 		return aFormatLB.GetEntryCount();
533*cdf0e10cSrcweir 
534*cdf0e10cSrcweir 	sal_uInt16 nSize = GetFldMgr().GetFormatCount(nTypeId, sal_False, IsFldDlgHtmlMode());
535*cdf0e10cSrcweir 
536*cdf0e10cSrcweir 	for( sal_uInt16 i = 0; i < nSize; ++i )
537*cdf0e10cSrcweir 	{
538*cdf0e10cSrcweir 		sal_uInt16 nPos = aFormatLB.InsertEntry(GetFldMgr().GetFormatStr(nTypeId, i));
539*cdf0e10cSrcweir 		sal_uInt16 nFmtId = GetFldMgr().GetFormatId( nTypeId, i );
540*cdf0e10cSrcweir         aFormatLB.SetEntryData( nPos, reinterpret_cast<void*>( nFmtId ));
541*cdf0e10cSrcweir 		if (IsFldEdit() && nFmtId == (GetCurField()->GetFormat() & ~AF_FIXED))
542*cdf0e10cSrcweir 			aFormatLB.SelectEntryPos( nPos );
543*cdf0e10cSrcweir 	}
544*cdf0e10cSrcweir 
545*cdf0e10cSrcweir 	if( nSize && !aFormatLB.GetSelectEntryCount() )
546*cdf0e10cSrcweir 	{
547*cdf0e10cSrcweir 		aFormatLB.SelectEntry( SW_RESSTR(FMT_NUM_PAGEDESC) );
548*cdf0e10cSrcweir 		if( !aFormatLB.GetSelectEntryCount() )
549*cdf0e10cSrcweir 		{
550*cdf0e10cSrcweir 			aFormatLB.SelectEntry( SW_RESSTR(FMT_NUM_ARABIC) );
551*cdf0e10cSrcweir 			if( !aFormatLB.GetSelectEntryCount() )
552*cdf0e10cSrcweir 				aFormatLB.SelectEntryPos( 0 );
553*cdf0e10cSrcweir 		}
554*cdf0e10cSrcweir 	}
555*cdf0e10cSrcweir 
556*cdf0e10cSrcweir 	FormatHdl();
557*cdf0e10cSrcweir 
558*cdf0e10cSrcweir 	return nSize;
559*cdf0e10cSrcweir }
560*cdf0e10cSrcweir 
561*cdf0e10cSrcweir /*--------------------------------------------------------------------
562*cdf0e10cSrcweir 	Beschreibung:
563*cdf0e10cSrcweir  --------------------------------------------------------------------*/
564*cdf0e10cSrcweir 
565*cdf0e10cSrcweir IMPL_LINK( SwFldDokPage, FormatHdl, ListBox *, EMPTYARG )
566*cdf0e10cSrcweir {
567*cdf0e10cSrcweir 	sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel());
568*cdf0e10cSrcweir 
569*cdf0e10cSrcweir 	if (nTypeId == USHRT_MAX)
570*cdf0e10cSrcweir 	{
571*cdf0e10cSrcweir 		sal_uInt16 nPos = aSelectionLB.GetSelectEntryPos();
572*cdf0e10cSrcweir 		if(nPos == LISTBOX_ENTRY_NOTFOUND)
573*cdf0e10cSrcweir 			nPos = 0;
574*cdf0e10cSrcweir 
575*cdf0e10cSrcweir 		nTypeId = (sal_uInt16)(sal_uLong)aSelectionLB.GetEntryData(nPos);
576*cdf0e10cSrcweir 	}
577*cdf0e10cSrcweir 
578*cdf0e10cSrcweir 	if (nTypeId == TYP_NEXTPAGEFLD || nTypeId == TYP_PREVPAGEFLD)
579*cdf0e10cSrcweir 	{
580*cdf0e10cSrcweir 		// Prev/Next - PageNumFelder Sonderbehandlung:
581*cdf0e10cSrcweir 		sal_uInt16 nTmp = (sal_uInt16)(sal_uLong)aFormatLB.GetEntryData(
582*cdf0e10cSrcweir 										aFormatLB.GetSelectEntryPos() );
583*cdf0e10cSrcweir 		String sOldTxt( aValueFT.GetText() );
584*cdf0e10cSrcweir 		String sNewTxt( SW_RES( SVX_NUM_CHAR_SPECIAL == nTmp  ? STR_VALUE
585*cdf0e10cSrcweir 														 : STR_OFFSET ));
586*cdf0e10cSrcweir 
587*cdf0e10cSrcweir 		if( sOldTxt != sNewTxt )
588*cdf0e10cSrcweir 			aValueFT.SetText( sNewTxt );
589*cdf0e10cSrcweir 
590*cdf0e10cSrcweir 		if (sOldTxt != aValueFT.GetText())
591*cdf0e10cSrcweir 			aValueED.SetText( aEmptyStr );
592*cdf0e10cSrcweir 	}
593*cdf0e10cSrcweir 
594*cdf0e10cSrcweir 	return 0;
595*cdf0e10cSrcweir }
596*cdf0e10cSrcweir 
597*cdf0e10cSrcweir /*--------------------------------------------------------------------
598*cdf0e10cSrcweir 	Beschreibung:
599*cdf0e10cSrcweir  --------------------------------------------------------------------*/
600*cdf0e10cSrcweir 
601*cdf0e10cSrcweir sal_Bool __EXPORT SwFldDokPage::FillItemSet(SfxItemSet& )
602*cdf0e10cSrcweir {
603*cdf0e10cSrcweir 	sal_Bool bPage = sal_False;
604*cdf0e10cSrcweir 	sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel());
605*cdf0e10cSrcweir 
606*cdf0e10cSrcweir 	if (nTypeId == USHRT_MAX)
607*cdf0e10cSrcweir 	{
608*cdf0e10cSrcweir 		sal_uInt16 nPos = aSelectionLB.GetSelectEntryPos();
609*cdf0e10cSrcweir 		if(nPos == LISTBOX_ENTRY_NOTFOUND)
610*cdf0e10cSrcweir 			nPos = 0;
611*cdf0e10cSrcweir 		nTypeId = (sal_uInt16)(sal_uLong)aSelectionLB.GetEntryData(nPos);
612*cdf0e10cSrcweir 		bPage = sal_True;
613*cdf0e10cSrcweir 	}
614*cdf0e10cSrcweir 
615*cdf0e10cSrcweir 	String aVal(aValueED.GetText());
616*cdf0e10cSrcweir 	sal_uLong nFormat = 0;
617*cdf0e10cSrcweir 	sal_uInt16 nSubType = 0;
618*cdf0e10cSrcweir 
619*cdf0e10cSrcweir 	if (aFormatLB.IsEnabled())
620*cdf0e10cSrcweir 	{
621*cdf0e10cSrcweir 		sal_uInt16 nPos = aFormatLB.GetSelectEntryPos();
622*cdf0e10cSrcweir 		if(nPos != LISTBOX_ENTRY_NOTFOUND)
623*cdf0e10cSrcweir 			nFormat = (sal_uInt16)(sal_uLong)aFormatLB.GetEntryData(nPos);
624*cdf0e10cSrcweir 	}
625*cdf0e10cSrcweir 
626*cdf0e10cSrcweir 	if (aSelectionLB.IsEnabled())
627*cdf0e10cSrcweir 	{
628*cdf0e10cSrcweir 		sal_uInt16 nPos = aSelectionLB.GetSelectEntryPos();
629*cdf0e10cSrcweir 		if(nPos != LISTBOX_ENTRY_NOTFOUND)
630*cdf0e10cSrcweir 			nSubType = (sal_uInt16)(sal_uLong)aSelectionLB.GetEntryData(nPos);
631*cdf0e10cSrcweir 	}
632*cdf0e10cSrcweir 
633*cdf0e10cSrcweir 	switch (nTypeId)
634*cdf0e10cSrcweir 	{
635*cdf0e10cSrcweir 		case TYP_AUTHORFLD:
636*cdf0e10cSrcweir 			nFormat = nSubType;
637*cdf0e10cSrcweir 			nSubType = 0;
638*cdf0e10cSrcweir 			// kein break!
639*cdf0e10cSrcweir 		case TYP_EXTUSERFLD:
640*cdf0e10cSrcweir 			nFormat |= aFixedCB.IsChecked() ? AF_FIXED : 0;
641*cdf0e10cSrcweir 			break;
642*cdf0e10cSrcweir 
643*cdf0e10cSrcweir 		case TYP_FILENAMEFLD:
644*cdf0e10cSrcweir 			nFormat |= aFixedCB.IsChecked() ? FF_FIXED : 0;
645*cdf0e10cSrcweir 			break;
646*cdf0e10cSrcweir 
647*cdf0e10cSrcweir 		case TYP_DATEFLD:
648*cdf0e10cSrcweir 		case TYP_TIMEFLD:
649*cdf0e10cSrcweir 		{
650*cdf0e10cSrcweir 			nFormat = aNumFormatLB.GetFormat();
651*cdf0e10cSrcweir             long nVal = static_cast< long >(aDateOffsetED.GetValue());
652*cdf0e10cSrcweir 			if (nTypeId == TYP_DATEFLD)
653*cdf0e10cSrcweir 				aVal = String::CreateFromInt32(nVal * 60 * 24);
654*cdf0e10cSrcweir 			else
655*cdf0e10cSrcweir 				aVal = String::CreateFromInt32(nVal);
656*cdf0e10cSrcweir 			break;
657*cdf0e10cSrcweir 		}
658*cdf0e10cSrcweir 
659*cdf0e10cSrcweir 		case TYP_NEXTPAGEFLD:
660*cdf0e10cSrcweir 		case TYP_PREVPAGEFLD:
661*cdf0e10cSrcweir 		case TYP_PAGENUMBERFLD:
662*cdf0e10cSrcweir 		case TYP_GETREFPAGEFLD:
663*cdf0e10cSrcweir 		{
664*cdf0e10cSrcweir 			if( SVX_NUM_CHAR_SPECIAL != nFormat &&
665*cdf0e10cSrcweir 				(TYP_PREVPAGEFLD == nTypeId || TYP_NEXTPAGEFLD == nTypeId))
666*cdf0e10cSrcweir 			{
667*cdf0e10cSrcweir                 sal_Int32 nVal = aValueED.GetText().ToInt32();
668*cdf0e10cSrcweir 				aVal = String::CreateFromInt32(nVal);
669*cdf0e10cSrcweir 			}
670*cdf0e10cSrcweir 			break;
671*cdf0e10cSrcweir 		}
672*cdf0e10cSrcweir 
673*cdf0e10cSrcweir 		case TYP_CHAPTERFLD:
674*cdf0e10cSrcweir 			aVal = aLevelED.GetText();
675*cdf0e10cSrcweir 			break;
676*cdf0e10cSrcweir 
677*cdf0e10cSrcweir 		default:
678*cdf0e10cSrcweir 			break;
679*cdf0e10cSrcweir 	}
680*cdf0e10cSrcweir 
681*cdf0e10cSrcweir 	if (!IsFldEdit() ||
682*cdf0e10cSrcweir 		nOldSel != aSelectionLB.GetSelectEntryPos() ||
683*cdf0e10cSrcweir 		nOldFormat != nFormat ||
684*cdf0e10cSrcweir 		aFixedCB.GetState() != aFixedCB.GetSavedValue() ||
685*cdf0e10cSrcweir 		aValueED.GetText() != aValueED.GetSavedValue() ||
686*cdf0e10cSrcweir 		aLevelED.GetText() != aLevelED.GetSavedValue() ||
687*cdf0e10cSrcweir 		aDateOffsetED.GetText() != aDateOffsetED.GetSavedValue())
688*cdf0e10cSrcweir 	{
689*cdf0e10cSrcweir 		InsertFld( nTypeId, nSubType, aEmptyStr, aVal, nFormat, ' ', aNumFormatLB.IsAutomaticLanguage() );
690*cdf0e10cSrcweir 	}
691*cdf0e10cSrcweir 
692*cdf0e10cSrcweir 	return sal_False;
693*cdf0e10cSrcweir }
694*cdf0e10cSrcweir 
695*cdf0e10cSrcweir /*--------------------------------------------------------------------
696*cdf0e10cSrcweir 	Beschreibung:
697*cdf0e10cSrcweir  --------------------------------------------------------------------*/
698*cdf0e10cSrcweir 
699*cdf0e10cSrcweir SfxTabPage* __EXPORT SwFldDokPage::Create( 	Window* pParent,
700*cdf0e10cSrcweir 						const SfxItemSet& rAttrSet )
701*cdf0e10cSrcweir {
702*cdf0e10cSrcweir 	return ( new SwFldDokPage( pParent, rAttrSet ) );
703*cdf0e10cSrcweir }
704*cdf0e10cSrcweir 
705*cdf0e10cSrcweir /*--------------------------------------------------------------------
706*cdf0e10cSrcweir 	Beschreibung:
707*cdf0e10cSrcweir  --------------------------------------------------------------------*/
708*cdf0e10cSrcweir 
709*cdf0e10cSrcweir sal_uInt16 SwFldDokPage::GetGroup()
710*cdf0e10cSrcweir {
711*cdf0e10cSrcweir 	return GRP_DOC;
712*cdf0e10cSrcweir }
713*cdf0e10cSrcweir 
714*cdf0e10cSrcweir /* -----------------12.01.99 10:09-------------------
715*cdf0e10cSrcweir  *
716*cdf0e10cSrcweir  * --------------------------------------------------*/
717*cdf0e10cSrcweir void	SwFldDokPage::FillUserData()
718*cdf0e10cSrcweir {
719*cdf0e10cSrcweir 	String sData( String::CreateFromAscii(
720*cdf0e10cSrcweir 						RTL_CONSTASCII_STRINGPARAM( USER_DATA_VERSION )));
721*cdf0e10cSrcweir 	sData += ';';
722*cdf0e10cSrcweir 	sal_uInt16 nTypeSel = aTypeLB.GetSelectEntryPos();
723*cdf0e10cSrcweir 	if( LISTBOX_ENTRY_NOTFOUND == nTypeSel )
724*cdf0e10cSrcweir 		nTypeSel = USHRT_MAX;
725*cdf0e10cSrcweir 	else
726*cdf0e10cSrcweir         nTypeSel = sal::static_int_cast< sal_uInt16 >(reinterpret_cast< sal_uIntPtr >(aTypeLB.GetEntryData( nTypeSel )));
727*cdf0e10cSrcweir 	sData += String::CreateFromInt32( nTypeSel );
728*cdf0e10cSrcweir 	SetUserData(sData);
729*cdf0e10cSrcweir }
730*cdf0e10cSrcweir 
731*cdf0e10cSrcweir 
732