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