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
10*efeef26fSAndrew Rist *
11*efeef26fSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12*efeef26fSAndrew Rist *
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.
19*efeef26fSAndrew Rist *
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 #ifdef SW_DLLIMPLEMENTATION
27cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION
28cdf0e10cSrcweir #endif
29cdf0e10cSrcweir
30cdf0e10cSrcweir
31cdf0e10cSrcweir #include <sfx2/app.hxx>
32cdf0e10cSrcweir #include <basic/basmgr.hxx>
33cdf0e10cSrcweir #include <basic/sbmod.hxx>
34cdf0e10cSrcweir #include <docsh.hxx>
35cdf0e10cSrcweir #include <swtypes.hxx>
36cdf0e10cSrcweir #ifndef _GLOBALS_HRC
37cdf0e10cSrcweir #include <globals.hrc>
38cdf0e10cSrcweir #endif
39cdf0e10cSrcweir #include <fldbas.hxx>
40cdf0e10cSrcweir #include <docufld.hxx>
41cdf0e10cSrcweir #ifndef _VIEW_HXX
42cdf0e10cSrcweir #include <view.hxx>
43cdf0e10cSrcweir #endif
44cdf0e10cSrcweir #include <wrtsh.hxx>
45cdf0e10cSrcweir #include <swmodule.hxx>
46cdf0e10cSrcweir #ifndef _FLDFUNC_HXX
47cdf0e10cSrcweir #include <fldfunc.hxx>
48cdf0e10cSrcweir #endif
49cdf0e10cSrcweir #include <flddropdown.hxx>
50cdf0e10cSrcweir #ifndef _FLDUI_HRC
51cdf0e10cSrcweir #include <fldui.hrc>
52cdf0e10cSrcweir #endif
53cdf0e10cSrcweir #ifndef _FLDTDLG_HRC
54cdf0e10cSrcweir #include <fldtdlg.hrc>
55cdf0e10cSrcweir #endif
56cdf0e10cSrcweir
57cdf0e10cSrcweir #define USER_DATA_VERSION_1 "1"
58cdf0e10cSrcweir #define USER_DATA_VERSION USER_DATA_VERSION_1
59cdf0e10cSrcweir
60cdf0e10cSrcweir using namespace ::com::sun::star;
61cdf0e10cSrcweir
62cdf0e10cSrcweir using rtl::OUString;
63cdf0e10cSrcweir
64cdf0e10cSrcweir /*--------------------------------------------------------------------
65cdf0e10cSrcweir Beschreibung:
66cdf0e10cSrcweir --------------------------------------------------------------------*/
67cdf0e10cSrcweir
SwFldFuncPage(Window * pParent,const SfxItemSet & rCoreSet)68cdf0e10cSrcweir SwFldFuncPage::SwFldFuncPage(Window* pParent, const SfxItemSet& rCoreSet ) :
69cdf0e10cSrcweir SwFldPage( pParent, SW_RES( TP_FLD_FUNC ), rCoreSet ),
70cdf0e10cSrcweir
71cdf0e10cSrcweir aTypeFT (this, SW_RES(FT_FUNCTYPE)),
72cdf0e10cSrcweir aTypeLB (this, SW_RES(LB_FUNCTYPE)),
73cdf0e10cSrcweir aSelectionFT(this, SW_RES(FT_FUNCSELECTION)),
74cdf0e10cSrcweir aSelectionLB(this, SW_RES(LB_FUNCSELECTION)),
75cdf0e10cSrcweir aFormatFT (this, SW_RES(FT_FUNCFORMAT)),
76cdf0e10cSrcweir aFormatLB (this, SW_RES(LB_FUNCFORMAT)),
77cdf0e10cSrcweir aNameFT (this, SW_RES(FT_FUNCNAME)),
78cdf0e10cSrcweir aNameED (this, SW_RES(ED_FUNCNAME)),
79cdf0e10cSrcweir aValueFT (this, SW_RES(FT_FUNCVALUE)),
80cdf0e10cSrcweir aValueED (this, SW_RES(ED_FUNCVALUE)),
81cdf0e10cSrcweir aCond1FT (this, SW_RES(FT_FUNCCOND1)),
82cdf0e10cSrcweir aCond1ED (this, SW_RES(ED_FUNCCOND1)),
83cdf0e10cSrcweir aCond2FT (this, SW_RES(FT_FUNCCOND2)),
84cdf0e10cSrcweir aCond2ED (this, SW_RES(ED_FUNCCOND2)),
85cdf0e10cSrcweir aMacroBT (this, SW_RES(BT_FUNCMACRO)),
86cdf0e10cSrcweir aListItemFT( this, SW_RES( FT_LISTITEM )),
87cdf0e10cSrcweir aListItemED( this, SW_RES( ED_LISTITEM )),
88cdf0e10cSrcweir aListAddPB( this, SW_RES( PB_LISTADD )),
89cdf0e10cSrcweir aListItemsFT( this, SW_RES( FT_LISTITEMS )),
90cdf0e10cSrcweir aListItemsLB( this, SW_RES( LB_LISTITEMS )),
91cdf0e10cSrcweir aListRemovePB( this, SW_RES( PB_LISTREMOVE )),
92cdf0e10cSrcweir aListUpPB( this, SW_RES( PB_LISTUP )),
93cdf0e10cSrcweir aListDownPB( this, SW_RES( PB_LISTDOWN )),
94cdf0e10cSrcweir aListNameFT( this, SW_RES( FT_LISTNAME )),
95cdf0e10cSrcweir aListNameED( this, SW_RES( ED_LISTNAME )),
96cdf0e10cSrcweir bDropDownLBChanged(false)
97cdf0e10cSrcweir {
98cdf0e10cSrcweir FreeResource();
99cdf0e10cSrcweir
100cdf0e10cSrcweir aNameED.SetPosPixel(Point(aNameED.GetPosPixel().X(), aFormatLB.GetPosPixel().Y()));
101cdf0e10cSrcweir
102cdf0e10cSrcweir aNameED.SetModifyHdl(LINK(this, SwFldFuncPage, ModifyHdl));
103cdf0e10cSrcweir
104cdf0e10cSrcweir sOldValueFT = aValueFT.GetText();
105cdf0e10cSrcweir sOldNameFT = aNameFT.GetText();
106cdf0e10cSrcweir
107cdf0e10cSrcweir aCond1ED.ShowBrackets(sal_False);
108cdf0e10cSrcweir aCond2ED.ShowBrackets(sal_False);
109cdf0e10cSrcweir
110cdf0e10cSrcweir // SwWrtShell* pSh = (SwWrtShell*)ViewShell::GetCurrShell();
111cdf0e10cSrcweir }
112cdf0e10cSrcweir
113cdf0e10cSrcweir /*--------------------------------------------------------------------
114cdf0e10cSrcweir Beschreibung:
115cdf0e10cSrcweir --------------------------------------------------------------------*/
116cdf0e10cSrcweir
~SwFldFuncPage()117cdf0e10cSrcweir SwFldFuncPage::~SwFldFuncPage()
118cdf0e10cSrcweir {
119cdf0e10cSrcweir }
120cdf0e10cSrcweir
121cdf0e10cSrcweir /*--------------------------------------------------------------------
122cdf0e10cSrcweir Beschreibung:
123cdf0e10cSrcweir --------------------------------------------------------------------*/
124cdf0e10cSrcweir
Reset(const SfxItemSet &)125cdf0e10cSrcweir void SwFldFuncPage::Reset(const SfxItemSet& )
126cdf0e10cSrcweir {
127cdf0e10cSrcweir SavePos(&aTypeLB);
128cdf0e10cSrcweir Init(); // Allgemeine initialisierung
129cdf0e10cSrcweir
130cdf0e10cSrcweir aTypeLB.SetUpdateMode(sal_False);
131cdf0e10cSrcweir aTypeLB.Clear();
132cdf0e10cSrcweir
133cdf0e10cSrcweir sal_uInt16 nPos, nTypeId;
134cdf0e10cSrcweir
135cdf0e10cSrcweir if (!IsFldEdit())
136cdf0e10cSrcweir {
137cdf0e10cSrcweir // TypeListBox initialisieren
138cdf0e10cSrcweir const SwFldGroupRgn& rRg = GetFldMgr().GetGroupRange(IsFldDlgHtmlMode(), GetGroup());
139cdf0e10cSrcweir
140cdf0e10cSrcweir // Typ-Listbox fuellen
141cdf0e10cSrcweir for(short i = rRg.nStart; i < rRg.nEnd; ++i)
142cdf0e10cSrcweir {
143cdf0e10cSrcweir nTypeId = GetFldMgr().GetTypeId(i);
144cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(GetFldMgr().GetTypeStr(i));
145cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, reinterpret_cast<void*>(nTypeId));
146cdf0e10cSrcweir }
147cdf0e10cSrcweir }
148cdf0e10cSrcweir else
149cdf0e10cSrcweir {
150cdf0e10cSrcweir nTypeId = GetCurField()->GetTypeId();
151cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(GetFldMgr().GetTypeStr(GetFldMgr().GetPos(nTypeId)));
152cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, reinterpret_cast<void*>(nTypeId));
153cdf0e10cSrcweir
154cdf0e10cSrcweir if (nTypeId == TYP_MACROFLD)
155cdf0e10cSrcweir {
156cdf0e10cSrcweir String sName(GetCurField()->GetPar1());
157cdf0e10cSrcweir GetFldMgr().SetMacroPath(sName);
158cdf0e10cSrcweir }
159cdf0e10cSrcweir }
160cdf0e10cSrcweir
161cdf0e10cSrcweir // alte Pos selektieren
162cdf0e10cSrcweir RestorePos(&aTypeLB);
163cdf0e10cSrcweir
164cdf0e10cSrcweir aTypeLB.SetDoubleClickHdl (LINK(this, SwFldFuncPage, InsertHdl));
165cdf0e10cSrcweir aTypeLB.SetSelectHdl (LINK(this, SwFldFuncPage, TypeHdl));
166cdf0e10cSrcweir aSelectionLB.SetSelectHdl (LINK(this, SwFldFuncPage, SelectHdl));
167cdf0e10cSrcweir aSelectionLB.SetDoubleClickHdl (LINK(this, SwFldFuncPage, InsertMacroHdl));
168cdf0e10cSrcweir aFormatLB.SetDoubleClickHdl (LINK(this, SwFldFuncPage, InsertHdl));
169cdf0e10cSrcweir aMacroBT.SetClickHdl (LINK(this, SwFldFuncPage, MacroHdl));
170cdf0e10cSrcweir Link aListModifyLk( LINK(this, SwFldFuncPage, ListModifyHdl));
171cdf0e10cSrcweir aListAddPB.SetClickHdl(aListModifyLk);
172cdf0e10cSrcweir aListRemovePB.SetClickHdl(aListModifyLk);
173cdf0e10cSrcweir aListUpPB.SetClickHdl(aListModifyLk);
174cdf0e10cSrcweir aListDownPB.SetClickHdl(aListModifyLk);
175cdf0e10cSrcweir aListItemED.SetReturnActionLink(aListModifyLk);
176cdf0e10cSrcweir Link aListEnableLk = LINK(this, SwFldFuncPage, ListEnableHdl);
177cdf0e10cSrcweir aListItemED.SetModifyHdl(aListEnableLk);
178cdf0e10cSrcweir aListItemsLB.SetSelectHdl(aListEnableLk);
179cdf0e10cSrcweir
180cdf0e10cSrcweir if( !IsRefresh() )
181cdf0e10cSrcweir {
182cdf0e10cSrcweir String sUserData = GetUserData();
183cdf0e10cSrcweir if(sUserData.GetToken(0, ';').EqualsIgnoreCaseAscii(USER_DATA_VERSION_1))
184cdf0e10cSrcweir {
185cdf0e10cSrcweir String sVal = sUserData.GetToken(1, ';');
186cdf0e10cSrcweir sal_uInt16 nVal = static_cast< sal_uInt16 >(sVal.ToInt32());
187cdf0e10cSrcweir if(nVal != USHRT_MAX)
188cdf0e10cSrcweir {
189cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aTypeLB.GetEntryCount(); i++)
190cdf0e10cSrcweir if(nVal == (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(i))
191cdf0e10cSrcweir {
192cdf0e10cSrcweir aTypeLB.SelectEntryPos(i);
193cdf0e10cSrcweir break;
194cdf0e10cSrcweir }
195cdf0e10cSrcweir }
196cdf0e10cSrcweir }
197cdf0e10cSrcweir }
198cdf0e10cSrcweir TypeHdl(0);
199cdf0e10cSrcweir
200cdf0e10cSrcweir aTypeLB.SetUpdateMode(sal_True);
201cdf0e10cSrcweir
202cdf0e10cSrcweir if (IsFldEdit())
203cdf0e10cSrcweir {
204cdf0e10cSrcweir aNameED.SaveValue();
205cdf0e10cSrcweir aValueED.SaveValue();
206cdf0e10cSrcweir aCond1ED.SaveValue();
207cdf0e10cSrcweir aCond2ED.SaveValue();
208cdf0e10cSrcweir nOldFormat = GetCurField()->GetFormat();
209cdf0e10cSrcweir }
210cdf0e10cSrcweir }
211cdf0e10cSrcweir
212cdf0e10cSrcweir /*--------------------------------------------------------------------
213cdf0e10cSrcweir Beschreibung:
214cdf0e10cSrcweir --------------------------------------------------------------------*/
215cdf0e10cSrcweir
IMPL_LINK(SwFldFuncPage,TypeHdl,ListBox *,EMPTYARG)216cdf0e10cSrcweir IMPL_LINK( SwFldFuncPage, TypeHdl, ListBox *, EMPTYARG )
217cdf0e10cSrcweir {
218cdf0e10cSrcweir // Alte ListBoxPos sichern
219cdf0e10cSrcweir const sal_uInt16 nOld = GetTypeSel();
220cdf0e10cSrcweir
221cdf0e10cSrcweir // Aktuelle ListBoxPos
222cdf0e10cSrcweir SetTypeSel(aTypeLB.GetSelectEntryPos());
223cdf0e10cSrcweir
224cdf0e10cSrcweir if(GetTypeSel() == LISTBOX_ENTRY_NOTFOUND)
225cdf0e10cSrcweir {
226cdf0e10cSrcweir SetTypeSel(0);
227cdf0e10cSrcweir aTypeLB.SelectEntryPos(0);
228cdf0e10cSrcweir }
229cdf0e10cSrcweir
230cdf0e10cSrcweir if (nOld != GetTypeSel())
231cdf0e10cSrcweir {
232cdf0e10cSrcweir sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel());
233cdf0e10cSrcweir
234cdf0e10cSrcweir // Auswahl-Listbox fuellen
235cdf0e10cSrcweir UpdateSubType();
236cdf0e10cSrcweir
237cdf0e10cSrcweir // Format-Listbox fuellen
238cdf0e10cSrcweir aFormatLB.Clear();
239cdf0e10cSrcweir
240cdf0e10cSrcweir sal_uInt16 nSize = GetFldMgr().GetFormatCount(nTypeId, sal_False, IsFldDlgHtmlMode());
241cdf0e10cSrcweir
242cdf0e10cSrcweir for (sal_uInt16 i = 0; i < nSize; i++)
243cdf0e10cSrcweir {
244cdf0e10cSrcweir sal_uInt16 nPos = aFormatLB.InsertEntry(GetFldMgr().GetFormatStr(nTypeId, i));
245cdf0e10cSrcweir aFormatLB.SetEntryData( nPos, reinterpret_cast<void*>(GetFldMgr().GetFormatId( nTypeId, i )) );
246cdf0e10cSrcweir }
247cdf0e10cSrcweir
248cdf0e10cSrcweir if (nSize)
249cdf0e10cSrcweir {
250cdf0e10cSrcweir if (IsFldEdit() && nTypeId == TYP_JUMPEDITFLD)
251cdf0e10cSrcweir aFormatLB.SelectEntry(SW_RESSTR(FMT_MARK_BEGIN + (sal_uInt16)GetCurField()->GetFormat()));
252cdf0e10cSrcweir
253cdf0e10cSrcweir if (!aFormatLB.GetSelectEntryCount())
254cdf0e10cSrcweir aFormatLB.SelectEntryPos(0);
255cdf0e10cSrcweir }
256cdf0e10cSrcweir
257cdf0e10cSrcweir sal_Bool bValue = sal_False, bName = sal_False, bMacro = sal_False, bInsert = sal_True;
258cdf0e10cSrcweir sal_Bool bShowSelection = sal_False;
259cdf0e10cSrcweir sal_Bool bFormat = nSize != 0;
260cdf0e10cSrcweir
261cdf0e10cSrcweir // fuer Conditional Text zwei Controls
262cdf0e10cSrcweir sal_Bool bDropDown = TYP_DROPDOWN == nTypeId;
263cdf0e10cSrcweir sal_Bool bCondTxtFld = TYP_CONDTXTFLD == nTypeId;
264cdf0e10cSrcweir
265cdf0e10cSrcweir aCond1FT.Show(!bDropDown && bCondTxtFld);
266cdf0e10cSrcweir aCond1ED.Show(!bDropDown && bCondTxtFld);
267cdf0e10cSrcweir aCond2FT.Show(!bDropDown && bCondTxtFld);
268cdf0e10cSrcweir aCond2ED.Show(!bDropDown && bCondTxtFld);
269cdf0e10cSrcweir aValueFT.Show(!bDropDown && !bCondTxtFld);
270cdf0e10cSrcweir aValueED.Show(!bDropDown && !bCondTxtFld);
271cdf0e10cSrcweir aMacroBT.Show(!bDropDown);
272cdf0e10cSrcweir aNameED.Show(!bDropDown);
273cdf0e10cSrcweir aNameFT.Show(!bDropDown);
274cdf0e10cSrcweir
275cdf0e10cSrcweir aListItemFT.Show(bDropDown);
276cdf0e10cSrcweir aListItemED.Show(bDropDown);
277cdf0e10cSrcweir aListAddPB.Show(bDropDown);
278cdf0e10cSrcweir aListItemsFT.Show(bDropDown);
279cdf0e10cSrcweir aListItemsLB.Show(bDropDown);
280cdf0e10cSrcweir aListRemovePB.Show(bDropDown);
281cdf0e10cSrcweir aListUpPB.Show(bDropDown);
282cdf0e10cSrcweir aListDownPB.Show(bDropDown);
283cdf0e10cSrcweir aListNameFT.Show(bDropDown);
284cdf0e10cSrcweir aListNameED.Show(bDropDown);
285cdf0e10cSrcweir
286cdf0e10cSrcweir aNameED.SetDropEnable(sal_False);
287cdf0e10cSrcweir
288cdf0e10cSrcweir if (IsFldEdit())
289cdf0e10cSrcweir {
290cdf0e10cSrcweir if(bDropDown)
291cdf0e10cSrcweir {
292cdf0e10cSrcweir const SwDropDownField* pDrop = (const SwDropDownField*)GetCurField();
293cdf0e10cSrcweir uno::Sequence<OUString> aItems = pDrop->GetItemSequence();
294cdf0e10cSrcweir const OUString* pArray = aItems.getConstArray();
295cdf0e10cSrcweir aListItemsLB.Clear();
296cdf0e10cSrcweir for(sal_Int32 i = 0; i < aItems.getLength(); i++)
297cdf0e10cSrcweir aListItemsLB.InsertEntry(pArray[i]);
298cdf0e10cSrcweir aListItemsLB.SelectEntry(pDrop->GetSelectedItem());
299cdf0e10cSrcweir aListNameED.SetText(pDrop->GetPar2());
300cdf0e10cSrcweir aListNameED.SaveValue();
301cdf0e10cSrcweir bDropDownLBChanged = false;
302cdf0e10cSrcweir }
303cdf0e10cSrcweir else
304cdf0e10cSrcweir {
305cdf0e10cSrcweir aNameED.SetText(GetCurField()->GetPar1());
306cdf0e10cSrcweir aValueED.SetText(GetCurField()->GetPar2());
307cdf0e10cSrcweir }
308cdf0e10cSrcweir }
309cdf0e10cSrcweir else
310cdf0e10cSrcweir {
311cdf0e10cSrcweir aNameED.SetText(aEmptyStr);
312cdf0e10cSrcweir aValueED.SetText(aEmptyStr);
313cdf0e10cSrcweir }
314cdf0e10cSrcweir if(bDropDown)
315cdf0e10cSrcweir ListEnableHdl(0);
316cdf0e10cSrcweir
317cdf0e10cSrcweir if( aNameFT.GetText() != sOldNameFT )
318cdf0e10cSrcweir aNameFT.SetText(sOldNameFT);
319cdf0e10cSrcweir if (aValueFT.GetText() != sOldValueFT)
320cdf0e10cSrcweir aValueFT.SetText(sOldValueFT);
321cdf0e10cSrcweir
322cdf0e10cSrcweir switch (nTypeId)
323cdf0e10cSrcweir {
324cdf0e10cSrcweir case TYP_MACROFLD:
325cdf0e10cSrcweir bMacro = sal_True;
326cdf0e10cSrcweir if (GetFldMgr().GetMacroPath().Len())
327cdf0e10cSrcweir bValue = sal_True;
328cdf0e10cSrcweir else
329cdf0e10cSrcweir bInsert = sal_False;
330cdf0e10cSrcweir
331cdf0e10cSrcweir aNameFT.SetText(SW_RESSTR(STR_MACNAME));
332cdf0e10cSrcweir aValueFT.SetText(SW_RESSTR(STR_PROMPT));
333cdf0e10cSrcweir aNameED.SetText(GetFldMgr().GetMacroName());
334cdf0e10cSrcweir aNameED.SetAccessibleName(aNameFT.GetText());
335cdf0e10cSrcweir aValueED.SetAccessibleName(aValueFT.GetText());
336cdf0e10cSrcweir break;
337cdf0e10cSrcweir
338cdf0e10cSrcweir case TYP_HIDDENPARAFLD:
339cdf0e10cSrcweir aNameFT.SetText(SW_RESSTR(STR_COND));
340cdf0e10cSrcweir aNameED.SetDropEnable(sal_True);
341cdf0e10cSrcweir bName = sal_True;
342cdf0e10cSrcweir aNameED.SetAccessibleName(aNameFT.GetText());
343cdf0e10cSrcweir aValueED.SetAccessibleName(aValueFT.GetText());
344cdf0e10cSrcweir break;
345cdf0e10cSrcweir
346cdf0e10cSrcweir case TYP_HIDDENTXTFLD:
347cdf0e10cSrcweir {
348cdf0e10cSrcweir aNameFT.SetText(SW_RESSTR(STR_COND));
349cdf0e10cSrcweir aNameED.SetDropEnable(sal_True);
350cdf0e10cSrcweir aValueFT.SetText(SW_RESSTR(STR_INSTEXT));
351cdf0e10cSrcweir SwWrtShell* pSh = GetActiveWrtShell();
352cdf0e10cSrcweir if (!IsFldEdit() && pSh )
353cdf0e10cSrcweir aValueED.SetText(pSh->GetSelTxt());
354cdf0e10cSrcweir bName = bValue = sal_True;
355cdf0e10cSrcweir aNameED.SetAccessibleName(aNameFT.GetText());
356cdf0e10cSrcweir aValueED.SetAccessibleName(aValueFT.GetText());
357cdf0e10cSrcweir }
358cdf0e10cSrcweir break;
359cdf0e10cSrcweir
360cdf0e10cSrcweir case TYP_CONDTXTFLD:
361cdf0e10cSrcweir aNameFT.SetText(SW_RESSTR(STR_COND));
362cdf0e10cSrcweir aNameED.SetDropEnable(sal_True);
363cdf0e10cSrcweir if (IsFldEdit())
364cdf0e10cSrcweir {
365cdf0e10cSrcweir aCond1ED.SetText(GetCurField()->GetPar2().GetToken(0, '|'));
366cdf0e10cSrcweir aCond2ED.SetText(GetCurField()->GetPar2().GetToken(1, '|'));
367cdf0e10cSrcweir }
368cdf0e10cSrcweir
369cdf0e10cSrcweir bName = bValue = sal_True;
370cdf0e10cSrcweir aNameED.SetAccessibleName(aNameFT.GetText());
371cdf0e10cSrcweir aValueED.SetAccessibleName(aValueFT.GetText());
372cdf0e10cSrcweir break;
373cdf0e10cSrcweir
374cdf0e10cSrcweir case TYP_JUMPEDITFLD:
375cdf0e10cSrcweir aNameFT.SetText(SW_RESSTR(STR_JUMPEDITFLD));
376cdf0e10cSrcweir aValueFT.SetText(SW_RESSTR(STR_PROMPT));
377cdf0e10cSrcweir bName = bValue = sal_True;
378cdf0e10cSrcweir aNameED.SetAccessibleName(aNameFT.GetText());
379cdf0e10cSrcweir aValueED.SetAccessibleName(aValueFT.GetText());
380cdf0e10cSrcweir break;
381cdf0e10cSrcweir
382cdf0e10cSrcweir case TYP_INPUTFLD:
383cdf0e10cSrcweir aValueFT.SetText(SW_RESSTR(STR_PROMPT));
384cdf0e10cSrcweir bValue = sal_True;
385cdf0e10cSrcweir // bShowSelection = TRUE;
386cdf0e10cSrcweir aNameED.SetAccessibleName(aNameFT.GetText());
387cdf0e10cSrcweir aValueED.SetAccessibleName(aValueFT.GetText());
388cdf0e10cSrcweir break;
389cdf0e10cSrcweir
390cdf0e10cSrcweir case TYP_COMBINED_CHARS:
391cdf0e10cSrcweir {
392cdf0e10cSrcweir aNameFT.SetText(SW_RESSTR(STR_COMBCHRS_FT));
393cdf0e10cSrcweir aNameED.SetDropEnable(sal_True);
394cdf0e10cSrcweir bName = sal_True;
395cdf0e10cSrcweir
396cdf0e10cSrcweir const sal_uInt16 nLen = aNameED.GetText().Len();
397cdf0e10cSrcweir if( !nLen || nLen > MAX_COMBINED_CHARACTERS )
398cdf0e10cSrcweir bInsert = sal_False;
399cdf0e10cSrcweir aNameED.SetAccessibleName(aNameFT.GetText());
400cdf0e10cSrcweir aValueED.SetAccessibleName(aValueFT.GetText());
401cdf0e10cSrcweir }
402cdf0e10cSrcweir break;
403cdf0e10cSrcweir case TYP_DROPDOWN :
404cdf0e10cSrcweir break;
405cdf0e10cSrcweir default:
406cdf0e10cSrcweir break;
407cdf0e10cSrcweir }
408cdf0e10cSrcweir
409cdf0e10cSrcweir if (bShowSelection)
410cdf0e10cSrcweir {
411cdf0e10cSrcweir aSelectionLB.Show();
412cdf0e10cSrcweir aSelectionFT.Show();
413cdf0e10cSrcweir aFormatLB.Hide();
414cdf0e10cSrcweir aFormatFT.Hide();
415cdf0e10cSrcweir }
416cdf0e10cSrcweir else
417cdf0e10cSrcweir {
418cdf0e10cSrcweir aFormatLB.Show();
419cdf0e10cSrcweir aFormatFT.Show();
420cdf0e10cSrcweir aSelectionLB.Hide();
421cdf0e10cSrcweir aSelectionFT.Hide();
422cdf0e10cSrcweir }
423cdf0e10cSrcweir
424cdf0e10cSrcweir aFormatLB.Enable(bFormat);
425cdf0e10cSrcweir aFormatFT.Enable(bFormat);
426cdf0e10cSrcweir aNameFT.Enable(bName);
427cdf0e10cSrcweir aNameED.Enable(bName);
428cdf0e10cSrcweir aValueFT.Enable(bValue);
429cdf0e10cSrcweir aValueED.Enable(bValue);
430cdf0e10cSrcweir aMacroBT.Enable(bMacro);
431cdf0e10cSrcweir
432cdf0e10cSrcweir EnableInsert( bInsert );
433cdf0e10cSrcweir }
434cdf0e10cSrcweir
435cdf0e10cSrcweir return 0;
436cdf0e10cSrcweir }
437cdf0e10cSrcweir
438cdf0e10cSrcweir /*--------------------------------------------------------------------
439cdf0e10cSrcweir Beschreibung:
440cdf0e10cSrcweir --------------------------------------------------------------------*/
441cdf0e10cSrcweir
IMPL_LINK(SwFldFuncPage,SelectHdl,ListBox *,EMPTYARG)442cdf0e10cSrcweir IMPL_LINK( SwFldFuncPage, SelectHdl, ListBox *, EMPTYARG )
443cdf0e10cSrcweir {
444cdf0e10cSrcweir sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel());
445cdf0e10cSrcweir
446cdf0e10cSrcweir if( TYP_MACROFLD == nTypeId )
447cdf0e10cSrcweir aNameED.SetText( aSelectionLB.GetSelectEntry() );
448cdf0e10cSrcweir
449cdf0e10cSrcweir return 0;
450cdf0e10cSrcweir }
451cdf0e10cSrcweir
452cdf0e10cSrcweir /*--------------------------------------------------------------------
453cdf0e10cSrcweir Beschreibung:
454cdf0e10cSrcweir --------------------------------------------------------------------*/
455cdf0e10cSrcweir
IMPL_LINK(SwFldFuncPage,InsertMacroHdl,ListBox *,EMPTYARG)456cdf0e10cSrcweir IMPL_LINK( SwFldFuncPage, InsertMacroHdl, ListBox *, EMPTYARG )
457cdf0e10cSrcweir {
458cdf0e10cSrcweir SelectHdl();
459cdf0e10cSrcweir InsertHdl();
460cdf0e10cSrcweir
461cdf0e10cSrcweir return 0;
462cdf0e10cSrcweir }
463cdf0e10cSrcweir /* -----------------16.06.2003 16:24-----------------
464cdf0e10cSrcweir
465cdf0e10cSrcweir --------------------------------------------------*/
IMPL_LINK(SwFldFuncPage,ListModifyHdl,Control *,pControl)466cdf0e10cSrcweir IMPL_LINK( SwFldFuncPage, ListModifyHdl, Control*, pControl)
467cdf0e10cSrcweir {
468cdf0e10cSrcweir aListItemsLB.SetUpdateMode(sal_False);
469cdf0e10cSrcweir if(pControl == &aListAddPB ||
470cdf0e10cSrcweir (pControl == &aListItemED && aListAddPB.IsEnabled()))
471cdf0e10cSrcweir {
472cdf0e10cSrcweir String sEntry(aListItemED.GetText());
473cdf0e10cSrcweir aListItemsLB.InsertEntry(sEntry);
474cdf0e10cSrcweir aListItemsLB.SelectEntry(sEntry);
475cdf0e10cSrcweir }
476cdf0e10cSrcweir else if(aListItemsLB.GetSelectEntryCount())
477cdf0e10cSrcweir {
478cdf0e10cSrcweir sal_uInt16 nSelPos = aListItemsLB.GetSelectEntryPos();
479cdf0e10cSrcweir if(pControl == &aListRemovePB)
480cdf0e10cSrcweir {
481cdf0e10cSrcweir aListItemsLB.RemoveEntry(nSelPos);
482cdf0e10cSrcweir aListItemsLB.SelectEntryPos(nSelPos ? nSelPos - 1 : 0);
483cdf0e10cSrcweir }
484cdf0e10cSrcweir else if(pControl == &aListUpPB)
485cdf0e10cSrcweir {
486cdf0e10cSrcweir if(nSelPos)
487cdf0e10cSrcweir {
488cdf0e10cSrcweir String sEntry = aListItemsLB.GetSelectEntry();
489cdf0e10cSrcweir aListItemsLB.RemoveEntry(nSelPos);
490cdf0e10cSrcweir nSelPos--;
491cdf0e10cSrcweir aListItemsLB.InsertEntry(sEntry, nSelPos);
492cdf0e10cSrcweir aListItemsLB.SelectEntryPos(nSelPos);
493cdf0e10cSrcweir }
494cdf0e10cSrcweir }
495cdf0e10cSrcweir else if(pControl == &aListDownPB)
496cdf0e10cSrcweir {
497cdf0e10cSrcweir if(nSelPos < aListItemsLB.GetEntryCount() - 1)
498cdf0e10cSrcweir {
499cdf0e10cSrcweir String sEntry = aListItemsLB.GetSelectEntry();
500cdf0e10cSrcweir aListItemsLB.RemoveEntry(nSelPos);
501cdf0e10cSrcweir nSelPos++;
502cdf0e10cSrcweir aListItemsLB.InsertEntry(sEntry, nSelPos);
503cdf0e10cSrcweir aListItemsLB.SelectEntryPos(nSelPos);
504cdf0e10cSrcweir }
505cdf0e10cSrcweir }
506cdf0e10cSrcweir }
507cdf0e10cSrcweir bDropDownLBChanged = true;
508cdf0e10cSrcweir aListItemsLB.SetUpdateMode(sal_True);
509cdf0e10cSrcweir ListEnableHdl(0);
510cdf0e10cSrcweir return 0;
511cdf0e10cSrcweir }
512cdf0e10cSrcweir /* -----------------17.06.2003 08:36-----------------
513cdf0e10cSrcweir
514cdf0e10cSrcweir --------------------------------------------------*/
IMPL_LINK(SwFldFuncPage,ListEnableHdl,void *,EMPTYARG)515cdf0e10cSrcweir IMPL_LINK( SwFldFuncPage, ListEnableHdl, void*, EMPTYARG)
516cdf0e10cSrcweir {
517cdf0e10cSrcweir //enable "Add" button when text is in the Edit that's not already member of the box
518cdf0e10cSrcweir aListAddPB.Enable(aListItemED.GetText().Len() &&
519cdf0e10cSrcweir LISTBOX_ENTRY_NOTFOUND == aListItemsLB.GetEntryPos(aListItemED.GetText()));
520cdf0e10cSrcweir sal_Bool bEnableButtons = aListItemsLB.GetSelectEntryCount() > 0;
521cdf0e10cSrcweir aListRemovePB.Enable(bEnableButtons);
522cdf0e10cSrcweir aListUpPB.Enable(bEnableButtons && (aListItemsLB.GetSelectEntryPos() > 0));
523cdf0e10cSrcweir aListDownPB.Enable(bEnableButtons &&
524cdf0e10cSrcweir (aListItemsLB.GetSelectEntryPos() < (aListItemsLB.GetEntryCount() - 1)));
525cdf0e10cSrcweir
526cdf0e10cSrcweir return 0;
527cdf0e10cSrcweir }
528cdf0e10cSrcweir
529cdf0e10cSrcweir /*--------------------------------------------------------------------
530cdf0e10cSrcweir Beschreibung: Typen in der SelectionBox erneuern
531cdf0e10cSrcweir --------------------------------------------------------------------*/
532cdf0e10cSrcweir
533cdf0e10cSrcweir
UpdateSubType()534cdf0e10cSrcweir void SwFldFuncPage::UpdateSubType()
535cdf0e10cSrcweir {
536cdf0e10cSrcweir sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel());
537cdf0e10cSrcweir
538cdf0e10cSrcweir // Auswahl-Listbox fuellen
539cdf0e10cSrcweir aSelectionLB.SetUpdateMode(sal_False);
540cdf0e10cSrcweir aSelectionLB.Clear();
541cdf0e10cSrcweir
542cdf0e10cSrcweir SvStringsDtor aLst;
543cdf0e10cSrcweir GetFldMgr().GetSubTypes(nTypeId, aLst);
544cdf0e10cSrcweir sal_uInt16 nCount = aLst.Count();
545cdf0e10cSrcweir
546cdf0e10cSrcweir for (sal_uInt16 i = 0; i < nCount; ++i)
547cdf0e10cSrcweir {
548cdf0e10cSrcweir sal_uInt16 nPos = aSelectionLB.InsertEntry(*aLst[i]);
549cdf0e10cSrcweir aSelectionLB.SetEntryData(nPos, reinterpret_cast<void*>(i));
550cdf0e10cSrcweir }
551cdf0e10cSrcweir
552cdf0e10cSrcweir sal_Bool bEnable = nCount != 0;
553cdf0e10cSrcweir
554cdf0e10cSrcweir aSelectionLB.Enable( bEnable );
555cdf0e10cSrcweir aSelectionFT.Enable( bEnable );
556cdf0e10cSrcweir
557cdf0e10cSrcweir if (bEnable)
558cdf0e10cSrcweir {
559cdf0e10cSrcweir aSelectionLB.SelectEntryPos(0);
560cdf0e10cSrcweir }
561cdf0e10cSrcweir
562cdf0e10cSrcweir if (nTypeId == TYP_MACROFLD)
563cdf0e10cSrcweir {
564cdf0e10cSrcweir sal_Bool bHasMacro = GetFldMgr().GetMacroPath().Len() != 0;
565cdf0e10cSrcweir
566cdf0e10cSrcweir if (bHasMacro)
567cdf0e10cSrcweir {
568cdf0e10cSrcweir aNameED.SetText(GetFldMgr().GetMacroName());
569cdf0e10cSrcweir aValueFT.Enable();
570cdf0e10cSrcweir aValueED.Enable();
571cdf0e10cSrcweir }
572cdf0e10cSrcweir EnableInsert(bHasMacro);
573cdf0e10cSrcweir }
574cdf0e10cSrcweir
575cdf0e10cSrcweir aSelectionLB.SetUpdateMode(sal_True);
576cdf0e10cSrcweir }
577cdf0e10cSrcweir
578cdf0e10cSrcweir /*--------------------------------------------------------------------
579cdf0e10cSrcweir Beschreibung: MacroBrowser aufrufen, Listbox mit Macros fuellen
580cdf0e10cSrcweir --------------------------------------------------------------------*/
581cdf0e10cSrcweir
IMPL_LINK(SwFldFuncPage,MacroHdl,Button *,pBtn)582cdf0e10cSrcweir IMPL_LINK( SwFldFuncPage, MacroHdl, Button *, pBtn )
583cdf0e10cSrcweir {
584cdf0e10cSrcweir Window* pDefModalDlgParent = Application::GetDefDialogParent();
585cdf0e10cSrcweir Application::SetDefDialogParent( pBtn );
586cdf0e10cSrcweir
587cdf0e10cSrcweir String sMacro(TurnMacroString(aNameED.GetText()));
588cdf0e10cSrcweir while (sMacro.SearchAndReplace('.', ';') != STRING_NOTFOUND) ;
589cdf0e10cSrcweir
590cdf0e10cSrcweir if (GetFldMgr().ChooseMacro(sMacro))
591cdf0e10cSrcweir UpdateSubType();
592cdf0e10cSrcweir
593cdf0e10cSrcweir Application::SetDefDialogParent( pDefModalDlgParent );
594cdf0e10cSrcweir
595cdf0e10cSrcweir return 0;
596cdf0e10cSrcweir }
597cdf0e10cSrcweir
598cdf0e10cSrcweir /*--------------------------------------------------------------------
599cdf0e10cSrcweir Beschreibung:
600cdf0e10cSrcweir --------------------------------------------------------------------*/
601cdf0e10cSrcweir
FillItemSet(SfxItemSet &)602cdf0e10cSrcweir sal_Bool SwFldFuncPage::FillItemSet(SfxItemSet& )
603cdf0e10cSrcweir {
604cdf0e10cSrcweir sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel());
605cdf0e10cSrcweir
606cdf0e10cSrcweir sal_uInt16 nSubType = 0;
607cdf0e10cSrcweir
608cdf0e10cSrcweir sal_uLong nFormat = aFormatLB.GetSelectEntryPos();
609cdf0e10cSrcweir
610cdf0e10cSrcweir if(nFormat == LISTBOX_ENTRY_NOTFOUND)
611cdf0e10cSrcweir nFormat = 0;
612cdf0e10cSrcweir else
613cdf0e10cSrcweir nFormat = (sal_uLong)aFormatLB.GetEntryData((sal_uInt16)nFormat);
614cdf0e10cSrcweir
615cdf0e10cSrcweir String aVal(aValueED.GetText());
616cdf0e10cSrcweir String aName(aNameED.GetText());
617cdf0e10cSrcweir
618cdf0e10cSrcweir switch(nTypeId)
619cdf0e10cSrcweir {
620cdf0e10cSrcweir case TYP_INPUTFLD:
621cdf0e10cSrcweir nSubType = INP_TXT;
622cdf0e10cSrcweir // to prevent removal of CR/LF restore old content
623cdf0e10cSrcweir if(!aNameED.IsModified() && IsFldEdit())
624cdf0e10cSrcweir aName = GetCurField()->GetPar1();
625cdf0e10cSrcweir
626cdf0e10cSrcweir break;
627cdf0e10cSrcweir
628cdf0e10cSrcweir case TYP_MACROFLD:
629cdf0e10cSrcweir // use the full script URL, not the name in the Edit control
630cdf0e10cSrcweir aName = GetFldMgr().GetMacroPath();
631cdf0e10cSrcweir break;
632cdf0e10cSrcweir
633cdf0e10cSrcweir case TYP_CONDTXTFLD:
634cdf0e10cSrcweir aVal = aCond1ED.GetText();
635cdf0e10cSrcweir aVal += '|';
636cdf0e10cSrcweir aVal += aCond2ED.GetText();
637cdf0e10cSrcweir break;
638cdf0e10cSrcweir case TYP_DROPDOWN :
639cdf0e10cSrcweir {
640cdf0e10cSrcweir aName = aListNameED.GetText();
641cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aListItemsLB.GetEntryCount(); i++)
642cdf0e10cSrcweir {
643cdf0e10cSrcweir if(i)
644cdf0e10cSrcweir aVal += DB_DELIM;
645cdf0e10cSrcweir aVal += aListItemsLB.GetEntry(i);
646cdf0e10cSrcweir }
647cdf0e10cSrcweir }
648cdf0e10cSrcweir break;
649cdf0e10cSrcweir default:
650cdf0e10cSrcweir break;
651cdf0e10cSrcweir }
652cdf0e10cSrcweir
653cdf0e10cSrcweir if (!IsFldEdit() ||
654cdf0e10cSrcweir aNameED.GetSavedValue() != aNameED.GetText() ||
655cdf0e10cSrcweir aValueED.GetSavedValue() != aValueED.GetText() ||
656cdf0e10cSrcweir aCond1ED.GetSavedValue() != aCond1ED.GetText() ||
657cdf0e10cSrcweir aCond2ED.GetSavedValue() != aCond2ED.GetText() ||
658cdf0e10cSrcweir aListNameED.GetSavedValue() != aListNameED.GetText() ||
659cdf0e10cSrcweir bDropDownLBChanged ||
660cdf0e10cSrcweir nOldFormat != nFormat)
661cdf0e10cSrcweir {
662cdf0e10cSrcweir InsertFld( nTypeId, nSubType, aName, aVal, nFormat );
663cdf0e10cSrcweir }
664cdf0e10cSrcweir
665cdf0e10cSrcweir ModifyHdl(); // Insert ggf enablen/disablen
666cdf0e10cSrcweir
667cdf0e10cSrcweir return sal_False;
668cdf0e10cSrcweir }
669cdf0e10cSrcweir
670cdf0e10cSrcweir /*--------------------------------------------------------------------
671cdf0e10cSrcweir Beschreibung:
672cdf0e10cSrcweir --------------------------------------------------------------------*/
673cdf0e10cSrcweir
TurnMacroString(const String & rMacro)674cdf0e10cSrcweir String SwFldFuncPage::TurnMacroString(const String &rMacro)
675cdf0e10cSrcweir {
676cdf0e10cSrcweir if (rMacro.Len())
677cdf0e10cSrcweir {
678cdf0e10cSrcweir // Inhalt von aName umdrehen
679cdf0e10cSrcweir String sTmp, sBuf;
680cdf0e10cSrcweir sal_uInt16 nPos = 0;
681cdf0e10cSrcweir
682cdf0e10cSrcweir for (sal_uInt16 i = 0; i < 4 && nPos != STRING_NOTFOUND; i++)
683cdf0e10cSrcweir {
684cdf0e10cSrcweir if (i == 3)
685cdf0e10cSrcweir sTmp = rMacro.Copy(nPos);
686cdf0e10cSrcweir else
687cdf0e10cSrcweir sTmp = rMacro.GetToken(0, '.', nPos);
688cdf0e10cSrcweir
689cdf0e10cSrcweir if( sBuf.Len() )
690cdf0e10cSrcweir sTmp += '.';
691cdf0e10cSrcweir sBuf.Insert( sTmp, 0 );
692cdf0e10cSrcweir }
693cdf0e10cSrcweir return sBuf;
694cdf0e10cSrcweir }
695cdf0e10cSrcweir
696cdf0e10cSrcweir return rMacro;
697cdf0e10cSrcweir }
698cdf0e10cSrcweir
699cdf0e10cSrcweir /*--------------------------------------------------------------------
700cdf0e10cSrcweir Beschreibung:
701cdf0e10cSrcweir --------------------------------------------------------------------*/
702cdf0e10cSrcweir
Create(Window * pParent,const SfxItemSet & rAttrSet)703cdf0e10cSrcweir SfxTabPage* SwFldFuncPage::Create( Window* pParent,
704cdf0e10cSrcweir const SfxItemSet& rAttrSet )
705cdf0e10cSrcweir {
706cdf0e10cSrcweir return ( new SwFldFuncPage( pParent, rAttrSet ) );
707cdf0e10cSrcweir }
708cdf0e10cSrcweir
709cdf0e10cSrcweir /*--------------------------------------------------------------------
710cdf0e10cSrcweir Beschreibung:
711cdf0e10cSrcweir --------------------------------------------------------------------*/
712cdf0e10cSrcweir
GetGroup()713cdf0e10cSrcweir sal_uInt16 SwFldFuncPage::GetGroup()
714cdf0e10cSrcweir {
715cdf0e10cSrcweir return GRP_FKT;
716cdf0e10cSrcweir }
717cdf0e10cSrcweir
718cdf0e10cSrcweir /* -----------------12.01.99 10:09-------------------
719cdf0e10cSrcweir *
720cdf0e10cSrcweir * --------------------------------------------------*/
FillUserData()721cdf0e10cSrcweir void SwFldFuncPage::FillUserData()
722cdf0e10cSrcweir {
723cdf0e10cSrcweir String sData( String::CreateFromAscii(
724cdf0e10cSrcweir RTL_CONSTASCII_STRINGPARAM( USER_DATA_VERSION )));
725cdf0e10cSrcweir sData += ';';
726cdf0e10cSrcweir sal_uInt16 nTypeSel = aTypeLB.GetSelectEntryPos();
727cdf0e10cSrcweir if( LISTBOX_ENTRY_NOTFOUND == nTypeSel )
728cdf0e10cSrcweir nTypeSel = USHRT_MAX;
729cdf0e10cSrcweir else
730cdf0e10cSrcweir nTypeSel = sal::static_int_cast< sal_uInt16 >(reinterpret_cast< sal_uIntPtr >(aTypeLB.GetEntryData( nTypeSel )));
731cdf0e10cSrcweir sData += String::CreateFromInt32( nTypeSel );
732cdf0e10cSrcweir SetUserData(sData);
733cdf0e10cSrcweir }
734cdf0e10cSrcweir
IMPL_LINK(SwFldFuncPage,ModifyHdl,Edit *,EMPTYARG)735cdf0e10cSrcweir IMPL_LINK( SwFldFuncPage, ModifyHdl, Edit *, EMPTYARG )
736cdf0e10cSrcweir {
737cdf0e10cSrcweir String aName(aNameED.GetText());
738cdf0e10cSrcweir const sal_uInt16 nLen = aName.Len();
739cdf0e10cSrcweir
740cdf0e10cSrcweir sal_Bool bEnable = sal_True;
741cdf0e10cSrcweir sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel());
742cdf0e10cSrcweir
743cdf0e10cSrcweir if( TYP_COMBINED_CHARS == nTypeId &&
744cdf0e10cSrcweir (!nLen || nLen > MAX_COMBINED_CHARACTERS ))
745cdf0e10cSrcweir bEnable = sal_False;
746cdf0e10cSrcweir
747cdf0e10cSrcweir EnableInsert( bEnable );
748cdf0e10cSrcweir
749cdf0e10cSrcweir return 0;
750cdf0e10cSrcweir }
751cdf0e10cSrcweir
752cdf0e10cSrcweir
753cdf0e10cSrcweir
754cdf0e10cSrcweir
755