1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_sw.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #ifdef SW_DLLIMPLEMENTATION 32*cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION 33*cdf0e10cSrcweir #endif 34*cdf0e10cSrcweir 35*cdf0e10cSrcweir 36*cdf0e10cSrcweir 37*cdf0e10cSrcweir #include "swtypes.hxx" 38*cdf0e10cSrcweir #include <view.hxx> 39*cdf0e10cSrcweir #include <IMark.hxx> 40*cdf0e10cSrcweir #include <expfld.hxx> 41*cdf0e10cSrcweir #include <swmodule.hxx> 42*cdf0e10cSrcweir #ifndef _FLDREF_HXX 43*cdf0e10cSrcweir #include <fldref.hxx> 44*cdf0e10cSrcweir #endif 45*cdf0e10cSrcweir #include <reffld.hxx> 46*cdf0e10cSrcweir #include <wrtsh.hxx> 47*cdf0e10cSrcweir 48*cdf0e10cSrcweir #ifndef _FLDUI_HRC 49*cdf0e10cSrcweir #include <fldui.hrc> 50*cdf0e10cSrcweir #endif 51*cdf0e10cSrcweir #ifndef _FLDTDLG_HRC 52*cdf0e10cSrcweir #include <fldtdlg.hrc> 53*cdf0e10cSrcweir #endif 54*cdf0e10cSrcweir #ifndef _GLOBALS_HRC 55*cdf0e10cSrcweir #include <globals.hrc> 56*cdf0e10cSrcweir #endif 57*cdf0e10cSrcweir // --> OD 2007-11-14 #i83479# 58*cdf0e10cSrcweir #include <SwNodeNum.hxx> 59*cdf0e10cSrcweir #include <IDocumentMarkAccess.hxx> 60*cdf0e10cSrcweir #include <ndtxt.hxx> 61*cdf0e10cSrcweir // <-- 62*cdf0e10cSrcweir 63*cdf0e10cSrcweir // sw/inc/expfld.hxx 64*cdf0e10cSrcweir SV_IMPL_PTRARR( _SwSeqFldList, _SeqFldLstElem* ) 65*cdf0e10cSrcweir 66*cdf0e10cSrcweir #define REFFLDFLAG 0x4000 67*cdf0e10cSrcweir #define REFFLDFLAG_BOOKMARK 0x4800 68*cdf0e10cSrcweir #define REFFLDFLAG_FOOTNOTE 0x5000 69*cdf0e10cSrcweir #define REFFLDFLAG_ENDNOTE 0x6000 70*cdf0e10cSrcweir // --> OD 2007-11-09 #i83479# 71*cdf0e10cSrcweir #define REFFLDFLAG_HEADING 0x7100 72*cdf0e10cSrcweir #define REFFLDFLAG_NUMITEM 0x7200 73*cdf0e10cSrcweir // <-- 74*cdf0e10cSrcweir 75*cdf0e10cSrcweir sal_uInt16 nFldDlgFmtSel = 0; 76*cdf0e10cSrcweir 77*cdf0e10cSrcweir #define USER_DATA_VERSION_1 "1" 78*cdf0e10cSrcweir #define USER_DATA_VERSION USER_DATA_VERSION_1 79*cdf0e10cSrcweir 80*cdf0e10cSrcweir 81*cdf0e10cSrcweir /*-------------------------------------------------------------------- 82*cdf0e10cSrcweir Beschreibung: 83*cdf0e10cSrcweir --------------------------------------------------------------------*/ 84*cdf0e10cSrcweir 85*cdf0e10cSrcweir SwFldRefPage::SwFldRefPage(Window* pParent, const SfxItemSet& rCoreSet ) : 86*cdf0e10cSrcweir SwFldPage( pParent, SW_RES( TP_FLD_REF ), rCoreSet ), 87*cdf0e10cSrcweir 88*cdf0e10cSrcweir aTypeFT (this, SW_RES(FT_REFTYPE)), 89*cdf0e10cSrcweir aTypeLB (this, SW_RES(LB_REFTYPE)), 90*cdf0e10cSrcweir aSelectionFT (this, SW_RES(FT_REFSELECTION)), 91*cdf0e10cSrcweir aSelectionLB (this, SW_RES(LB_REFSELECTION)), 92*cdf0e10cSrcweir // --> OD 2007-11-21 #i83479# 93*cdf0e10cSrcweir aSelectionToolTipLB( this, SW_RES(LB_REFSELECTION_TOOLTIP) ), 94*cdf0e10cSrcweir // <-- 95*cdf0e10cSrcweir aFormatFT (this, SW_RES(FT_REFFORMAT)), 96*cdf0e10cSrcweir aFormatLB (this, SW_RES(LB_REFFORMAT)), 97*cdf0e10cSrcweir aNameFT (this, SW_RES(FT_REFNAME)), 98*cdf0e10cSrcweir aNameED (this, SW_RES(ED_REFNAME)), 99*cdf0e10cSrcweir aValueFT (this, SW_RES(FT_REFVALUE)), 100*cdf0e10cSrcweir aValueED (this, SW_RES(ED_REFVALUE)), 101*cdf0e10cSrcweir 102*cdf0e10cSrcweir sBookmarkTxt (SW_RES(STR_REFBOOKMARK)), 103*cdf0e10cSrcweir sFootnoteTxt (SW_RES(STR_REFFOOTNOTE)), 104*cdf0e10cSrcweir sEndnoteTxt (SW_RES(STR_REFENDNOTE)), 105*cdf0e10cSrcweir // --> OD 2007-11-09 #i83479# 106*cdf0e10cSrcweir sHeadingTxt (SW_RES(STR_REFHEADING)), 107*cdf0e10cSrcweir sNumItemTxt (SW_RES(STR_REFNUMITEM)), 108*cdf0e10cSrcweir maOutlineNodes(), 109*cdf0e10cSrcweir maNumItems(), 110*cdf0e10cSrcweir mpSavedSelectedTxtNode( 0 ), 111*cdf0e10cSrcweir mnSavedSelectedPos( 0 ) 112*cdf0e10cSrcweir // <-- 113*cdf0e10cSrcweir { 114*cdf0e10cSrcweir FreeResource(); 115*cdf0e10cSrcweir 116*cdf0e10cSrcweir aNameED.SetModifyHdl(LINK(this, SwFldRefPage, ModifyHdl)); 117*cdf0e10cSrcweir 118*cdf0e10cSrcweir aTypeLB.SetDoubleClickHdl (LINK(this, SwFldRefPage, InsertHdl)); 119*cdf0e10cSrcweir aTypeLB.SetSelectHdl (LINK(this, SwFldRefPage, TypeHdl)); 120*cdf0e10cSrcweir aSelectionLB.SetSelectHdl (LINK(this, SwFldRefPage, SubTypeHdl)); 121*cdf0e10cSrcweir aSelectionLB.SetDoubleClickHdl (LINK(this, SwFldRefPage, InsertHdl)); 122*cdf0e10cSrcweir aFormatLB.SetDoubleClickHdl (LINK(this, SwFldRefPage, InsertHdl)); 123*cdf0e10cSrcweir 124*cdf0e10cSrcweir // --> OD 2007-11-21 #i83479# 125*cdf0e10cSrcweir aSelectionToolTipLB.SetSelectHdl( LINK(this, SwFldRefPage, SubTypeHdl) ); 126*cdf0e10cSrcweir aSelectionToolTipLB.SetDoubleClickHdl( LINK(this, SwFldRefPage, InsertHdl) ); 127*cdf0e10cSrcweir aSelectionToolTipLB.SetStyle( aSelectionToolTipLB.GetStyle() | WB_HSCROLL ); 128*cdf0e10cSrcweir aSelectionToolTipLB.SetSpaceBetweenEntries(1); 129*cdf0e10cSrcweir aSelectionToolTipLB.SetHighlightRange(); 130*cdf0e10cSrcweir // <-- 131*cdf0e10cSrcweir } 132*cdf0e10cSrcweir 133*cdf0e10cSrcweir /*-------------------------------------------------------------------- 134*cdf0e10cSrcweir Beschreibung: 135*cdf0e10cSrcweir --------------------------------------------------------------------*/ 136*cdf0e10cSrcweir 137*cdf0e10cSrcweir SwFldRefPage::~SwFldRefPage() 138*cdf0e10cSrcweir { 139*cdf0e10cSrcweir } 140*cdf0e10cSrcweir 141*cdf0e10cSrcweir // --> OD 2007-11-22 #i83479# 142*cdf0e10cSrcweir void SwFldRefPage::SaveSelectedTxtNode() 143*cdf0e10cSrcweir { 144*cdf0e10cSrcweir mpSavedSelectedTxtNode = 0; 145*cdf0e10cSrcweir mnSavedSelectedPos = 0; 146*cdf0e10cSrcweir if ( aSelectionToolTipLB.IsVisible() ) 147*cdf0e10cSrcweir { 148*cdf0e10cSrcweir SvLBoxEntry* pEntry = aSelectionToolTipLB.GetCurEntry(); 149*cdf0e10cSrcweir if ( pEntry ) 150*cdf0e10cSrcweir { 151*cdf0e10cSrcweir const sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel()); 152*cdf0e10cSrcweir SwWrtShell *pSh = GetWrtShell(); 153*cdf0e10cSrcweir if ( !pSh ) 154*cdf0e10cSrcweir { 155*cdf0e10cSrcweir pSh = ::GetActiveWrtShell(); 156*cdf0e10cSrcweir } 157*cdf0e10cSrcweir if ( nTypeId == REFFLDFLAG_HEADING ) 158*cdf0e10cSrcweir { 159*cdf0e10cSrcweir mnSavedSelectedPos = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(pEntry->GetUserData())); 160*cdf0e10cSrcweir if ( mnSavedSelectedPos < maOutlineNodes.size() ) 161*cdf0e10cSrcweir { 162*cdf0e10cSrcweir mpSavedSelectedTxtNode = maOutlineNodes[mnSavedSelectedPos]; 163*cdf0e10cSrcweir } 164*cdf0e10cSrcweir } 165*cdf0e10cSrcweir else if ( nTypeId == REFFLDFLAG_NUMITEM ) 166*cdf0e10cSrcweir { 167*cdf0e10cSrcweir mnSavedSelectedPos = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(pEntry->GetUserData())); 168*cdf0e10cSrcweir if ( mnSavedSelectedPos < maNumItems.size() ) 169*cdf0e10cSrcweir { 170*cdf0e10cSrcweir mpSavedSelectedTxtNode = maNumItems[mnSavedSelectedPos]->GetTxtNode(); 171*cdf0e10cSrcweir } 172*cdf0e10cSrcweir } 173*cdf0e10cSrcweir } 174*cdf0e10cSrcweir } 175*cdf0e10cSrcweir } 176*cdf0e10cSrcweir 177*cdf0e10cSrcweir const SwTxtNode* SwFldRefPage::GetSavedSelectedTxtNode() const 178*cdf0e10cSrcweir { 179*cdf0e10cSrcweir return mpSavedSelectedTxtNode; 180*cdf0e10cSrcweir } 181*cdf0e10cSrcweir 182*cdf0e10cSrcweir sal_uInt16 SwFldRefPage::GetSavedSelectedPos() const 183*cdf0e10cSrcweir { 184*cdf0e10cSrcweir return mnSavedSelectedPos; 185*cdf0e10cSrcweir } 186*cdf0e10cSrcweir 187*cdf0e10cSrcweir // <-- 188*cdf0e10cSrcweir 189*cdf0e10cSrcweir /*-------------------------------------------------------------------- 190*cdf0e10cSrcweir Beschreibung: 191*cdf0e10cSrcweir --------------------------------------------------------------------*/ 192*cdf0e10cSrcweir 193*cdf0e10cSrcweir void SwFldRefPage::Reset(const SfxItemSet& ) 194*cdf0e10cSrcweir { 195*cdf0e10cSrcweir if (!IsFldEdit()) 196*cdf0e10cSrcweir { 197*cdf0e10cSrcweir SavePos(&aTypeLB); 198*cdf0e10cSrcweir // --> OD 2007-11-22 #i83479# 199*cdf0e10cSrcweir SaveSelectedTxtNode(); 200*cdf0e10cSrcweir // <-- 201*cdf0e10cSrcweir } 202*cdf0e10cSrcweir SetSelectionSel(LISTBOX_ENTRY_NOTFOUND); 203*cdf0e10cSrcweir SetTypeSel(LISTBOX_ENTRY_NOTFOUND); 204*cdf0e10cSrcweir Init(); // Allgemeine initialisierung 205*cdf0e10cSrcweir 206*cdf0e10cSrcweir // TypeListBox initialisieren 207*cdf0e10cSrcweir aTypeLB.SetUpdateMode(sal_False); 208*cdf0e10cSrcweir aTypeLB.Clear(); 209*cdf0e10cSrcweir 210*cdf0e10cSrcweir // Typ-Listbox fuellen 211*cdf0e10cSrcweir 212*cdf0e10cSrcweir sal_uInt16 nPos; 213*cdf0e10cSrcweir // Referenz setzen / einfuegen 214*cdf0e10cSrcweir const SwFldGroupRgn& rRg = GetFldMgr().GetGroupRange(IsFldDlgHtmlMode(), GetGroup()); 215*cdf0e10cSrcweir 216*cdf0e10cSrcweir for (short i = rRg.nStart; i < rRg.nEnd; ++i) 217*cdf0e10cSrcweir { 218*cdf0e10cSrcweir const sal_uInt16 nTypeId = GetFldMgr().GetTypeId(i); 219*cdf0e10cSrcweir 220*cdf0e10cSrcweir if (!IsFldEdit() || nTypeId != TYP_SETREFFLD) 221*cdf0e10cSrcweir { 222*cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(GetFldMgr().GetTypeStr(i), i - rRg.nStart); 223*cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, reinterpret_cast<void*>(nTypeId)); 224*cdf0e10cSrcweir } 225*cdf0e10cSrcweir } 226*cdf0e10cSrcweir 227*cdf0e10cSrcweir // --> OD 2007-11-09 #i83479# 228*cdf0e10cSrcweir // entries for headings and numbered items 229*cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(sHeadingTxt); 230*cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, (void*)REFFLDFLAG_HEADING); 231*cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(sNumItemTxt); 232*cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, (void*)REFFLDFLAG_NUMITEM); 233*cdf0e10cSrcweir // <-- 234*cdf0e10cSrcweir 235*cdf0e10cSrcweir // mit den Sequence-Typen auffuellen 236*cdf0e10cSrcweir SwWrtShell *pSh = GetWrtShell(); 237*cdf0e10cSrcweir if(!pSh) 238*cdf0e10cSrcweir pSh = ::GetActiveWrtShell(); 239*cdf0e10cSrcweir 240*cdf0e10cSrcweir sal_uInt16 nFldTypeCnt = pSh->GetFldTypeCount(RES_SETEXPFLD); 241*cdf0e10cSrcweir 242*cdf0e10cSrcweir for (sal_uInt16 n = 0; n < nFldTypeCnt; ++n) 243*cdf0e10cSrcweir { 244*cdf0e10cSrcweir SwSetExpFieldType* pType = (SwSetExpFieldType*)pSh->GetFldType(n, RES_SETEXPFLD); 245*cdf0e10cSrcweir 246*cdf0e10cSrcweir if ((nsSwGetSetExpType::GSE_SEQ & pType->GetType()) && pType->GetDepends() && pSh->IsUsed(*pType)) 247*cdf0e10cSrcweir { 248*cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(pType->GetName()); 249*cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, (void*)(REFFLDFLAG | n)); 250*cdf0e10cSrcweir } 251*cdf0e10cSrcweir } 252*cdf0e10cSrcweir 253*cdf0e10cSrcweir // Textmarken - jetzt immer (wegen Globaldokumenten) 254*cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(sBookmarkTxt); 255*cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, (void*)REFFLDFLAG_BOOKMARK); 256*cdf0e10cSrcweir 257*cdf0e10cSrcweir // Fussnoten: 258*cdf0e10cSrcweir if( pSh->HasFtns() ) 259*cdf0e10cSrcweir { 260*cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(sFootnoteTxt); 261*cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, (void*)REFFLDFLAG_FOOTNOTE); 262*cdf0e10cSrcweir } 263*cdf0e10cSrcweir 264*cdf0e10cSrcweir // Endnoten: 265*cdf0e10cSrcweir if ( pSh->HasFtns(true) ) 266*cdf0e10cSrcweir { 267*cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(sEndnoteTxt); 268*cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, (void*)REFFLDFLAG_ENDNOTE); 269*cdf0e10cSrcweir } 270*cdf0e10cSrcweir 271*cdf0e10cSrcweir // alte Pos selektieren 272*cdf0e10cSrcweir if (!IsFldEdit()) 273*cdf0e10cSrcweir RestorePos(&aTypeLB); 274*cdf0e10cSrcweir 275*cdf0e10cSrcweir aTypeLB.SetUpdateMode(sal_True); 276*cdf0e10cSrcweir 277*cdf0e10cSrcweir nFldDlgFmtSel = 0; 278*cdf0e10cSrcweir 279*cdf0e10cSrcweir if( !IsRefresh() ) 280*cdf0e10cSrcweir { 281*cdf0e10cSrcweir String sUserData = GetUserData(); 282*cdf0e10cSrcweir if(!IsRefresh() && sUserData.GetToken(0, ';'). 283*cdf0e10cSrcweir EqualsIgnoreCaseAscii(USER_DATA_VERSION_1)) 284*cdf0e10cSrcweir { 285*cdf0e10cSrcweir String sVal = sUserData.GetToken(1, ';'); 286*cdf0e10cSrcweir sal_uInt16 nVal = static_cast< sal_uInt16 >(sVal.ToInt32()); 287*cdf0e10cSrcweir if(nVal != USHRT_MAX) 288*cdf0e10cSrcweir { 289*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aTypeLB.GetEntryCount(); i++) 290*cdf0e10cSrcweir if(nVal == (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(i)) 291*cdf0e10cSrcweir { 292*cdf0e10cSrcweir aTypeLB.SelectEntryPos(i); 293*cdf0e10cSrcweir break; 294*cdf0e10cSrcweir } 295*cdf0e10cSrcweir } 296*cdf0e10cSrcweir } 297*cdf0e10cSrcweir } 298*cdf0e10cSrcweir TypeHdl(0); 299*cdf0e10cSrcweir 300*cdf0e10cSrcweir if (IsFldEdit()) 301*cdf0e10cSrcweir { 302*cdf0e10cSrcweir aTypeLB.SaveValue(); 303*cdf0e10cSrcweir aSelectionLB.SaveValue(); 304*cdf0e10cSrcweir aFormatLB.SaveValue(); 305*cdf0e10cSrcweir aNameED.SaveValue(); 306*cdf0e10cSrcweir aValueED.SaveValue(); 307*cdf0e10cSrcweir } 308*cdf0e10cSrcweir } 309*cdf0e10cSrcweir 310*cdf0e10cSrcweir /*-------------------------------------------------------------------- 311*cdf0e10cSrcweir Beschreibung: 312*cdf0e10cSrcweir --------------------------------------------------------------------*/ 313*cdf0e10cSrcweir 314*cdf0e10cSrcweir IMPL_LINK( SwFldRefPage, TypeHdl, ListBox *, EMPTYARG ) 315*cdf0e10cSrcweir { 316*cdf0e10cSrcweir // Alte ListBoxPos sichern 317*cdf0e10cSrcweir const sal_uInt16 nOld = GetTypeSel(); 318*cdf0e10cSrcweir 319*cdf0e10cSrcweir // Aktuelle ListBoxPos 320*cdf0e10cSrcweir SetTypeSel(aTypeLB.GetSelectEntryPos()); 321*cdf0e10cSrcweir 322*cdf0e10cSrcweir if(GetTypeSel() == LISTBOX_ENTRY_NOTFOUND) 323*cdf0e10cSrcweir { 324*cdf0e10cSrcweir if (IsFldEdit()) 325*cdf0e10cSrcweir { 326*cdf0e10cSrcweir // Positionen selektieren 327*cdf0e10cSrcweir String sName; 328*cdf0e10cSrcweir sal_uInt16 nFlag = 0; 329*cdf0e10cSrcweir 330*cdf0e10cSrcweir switch( GetCurField()->GetSubType() ) 331*cdf0e10cSrcweir { 332*cdf0e10cSrcweir case REF_BOOKMARK: 333*cdf0e10cSrcweir { 334*cdf0e10cSrcweir // --> OD 2007-11-14 #i83479# 335*cdf0e10cSrcweir // sName = sBookmarkTxt; 336*cdf0e10cSrcweir // nFlag = REFFLDFLAG_BOOKMARK; 337*cdf0e10cSrcweir SwGetRefField* pRefFld = dynamic_cast<SwGetRefField*>(GetCurField()); 338*cdf0e10cSrcweir if ( pRefFld && 339*cdf0e10cSrcweir pRefFld->IsRefToHeadingCrossRefBookmark() ) 340*cdf0e10cSrcweir { 341*cdf0e10cSrcweir sName = sHeadingTxt; 342*cdf0e10cSrcweir nFlag = REFFLDFLAG_HEADING; 343*cdf0e10cSrcweir } 344*cdf0e10cSrcweir else if ( pRefFld && 345*cdf0e10cSrcweir pRefFld->IsRefToNumItemCrossRefBookmark() ) 346*cdf0e10cSrcweir { 347*cdf0e10cSrcweir sName = sNumItemTxt; 348*cdf0e10cSrcweir nFlag = REFFLDFLAG_NUMITEM; 349*cdf0e10cSrcweir } 350*cdf0e10cSrcweir else 351*cdf0e10cSrcweir { 352*cdf0e10cSrcweir sName = sBookmarkTxt; 353*cdf0e10cSrcweir nFlag = REFFLDFLAG_BOOKMARK; 354*cdf0e10cSrcweir } 355*cdf0e10cSrcweir // <-- 356*cdf0e10cSrcweir } 357*cdf0e10cSrcweir break; 358*cdf0e10cSrcweir 359*cdf0e10cSrcweir case REF_FOOTNOTE: 360*cdf0e10cSrcweir sName = sFootnoteTxt; 361*cdf0e10cSrcweir nFlag = REFFLDFLAG_FOOTNOTE; 362*cdf0e10cSrcweir break; 363*cdf0e10cSrcweir 364*cdf0e10cSrcweir case REF_ENDNOTE: 365*cdf0e10cSrcweir sName = sEndnoteTxt; 366*cdf0e10cSrcweir nFlag = REFFLDFLAG_ENDNOTE; 367*cdf0e10cSrcweir break; 368*cdf0e10cSrcweir 369*cdf0e10cSrcweir case REF_SETREFATTR: 370*cdf0e10cSrcweir sName = SW_RESSTR(STR_GETREFFLD); 371*cdf0e10cSrcweir nFlag = REF_SETREFATTR; 372*cdf0e10cSrcweir break; 373*cdf0e10cSrcweir 374*cdf0e10cSrcweir case REF_SEQUENCEFLD: 375*cdf0e10cSrcweir sName = ((SwGetRefField*)GetCurField())->GetSetRefName(); 376*cdf0e10cSrcweir nFlag = REFFLDFLAG; 377*cdf0e10cSrcweir break; 378*cdf0e10cSrcweir } 379*cdf0e10cSrcweir 380*cdf0e10cSrcweir if (aTypeLB.GetEntryPos(sName) == LISTBOX_ENTRY_NOTFOUND) // Referenz zu gel?schter Marke 381*cdf0e10cSrcweir { 382*cdf0e10cSrcweir sal_uInt16 nPos = aTypeLB.InsertEntry(sName); 383*cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, reinterpret_cast<void*>(nFlag)); 384*cdf0e10cSrcweir } 385*cdf0e10cSrcweir 386*cdf0e10cSrcweir aTypeLB.SelectEntry(sName); 387*cdf0e10cSrcweir SetTypeSel(aTypeLB.GetSelectEntryPos()); 388*cdf0e10cSrcweir } 389*cdf0e10cSrcweir else 390*cdf0e10cSrcweir { 391*cdf0e10cSrcweir SetTypeSel(0); 392*cdf0e10cSrcweir aTypeLB.SelectEntryPos(0); 393*cdf0e10cSrcweir } 394*cdf0e10cSrcweir } 395*cdf0e10cSrcweir 396*cdf0e10cSrcweir if (nOld != GetTypeSel()) 397*cdf0e10cSrcweir { 398*cdf0e10cSrcweir sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel()); 399*cdf0e10cSrcweir 400*cdf0e10cSrcweir // Auswahl-Listbox fuellen 401*cdf0e10cSrcweir UpdateSubType(); 402*cdf0e10cSrcweir 403*cdf0e10cSrcweir sal_Bool bName = sal_False; nFldDlgFmtSel = 0; 404*cdf0e10cSrcweir 405*cdf0e10cSrcweir if ( ( !IsFldEdit() || aSelectionLB.GetEntryCount() ) && 406*cdf0e10cSrcweir nOld != LISTBOX_ENTRY_NOTFOUND ) 407*cdf0e10cSrcweir { 408*cdf0e10cSrcweir aNameED.SetText(aEmptyStr); 409*cdf0e10cSrcweir aValueED.SetText(aEmptyStr); 410*cdf0e10cSrcweir } 411*cdf0e10cSrcweir 412*cdf0e10cSrcweir switch (nTypeId) 413*cdf0e10cSrcweir { 414*cdf0e10cSrcweir case TYP_GETREFFLD: 415*cdf0e10cSrcweir if (REFFLDFLAG & (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(nOld)) 416*cdf0e10cSrcweir // dann bleibt die alte bestehen 417*cdf0e10cSrcweir nFldDlgFmtSel = aFormatLB.GetSelectEntryPos(); 418*cdf0e10cSrcweir bName = sal_True; 419*cdf0e10cSrcweir break; 420*cdf0e10cSrcweir 421*cdf0e10cSrcweir case TYP_SETREFFLD: 422*cdf0e10cSrcweir bName = sal_True; 423*cdf0e10cSrcweir break; 424*cdf0e10cSrcweir 425*cdf0e10cSrcweir case REFFLDFLAG_BOOKMARK: 426*cdf0e10cSrcweir bName = sal_True; 427*cdf0e10cSrcweir // kein break!!! 428*cdf0e10cSrcweir default: 429*cdf0e10cSrcweir if( REFFLDFLAG & nTypeId ) 430*cdf0e10cSrcweir { 431*cdf0e10cSrcweir sal_uInt16 nOldId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(nOld); 432*cdf0e10cSrcweir if( nOldId & REFFLDFLAG || nOldId == TYP_GETREFFLD ) 433*cdf0e10cSrcweir // dann bleibt die alte bestehen 434*cdf0e10cSrcweir nFldDlgFmtSel = aFormatLB.GetSelectEntryPos(); 435*cdf0e10cSrcweir } 436*cdf0e10cSrcweir break; 437*cdf0e10cSrcweir } 438*cdf0e10cSrcweir 439*cdf0e10cSrcweir aNameED.Enable(bName); 440*cdf0e10cSrcweir aNameFT.Enable(bName); 441*cdf0e10cSrcweir 442*cdf0e10cSrcweir // Format-Listbox fuellen 443*cdf0e10cSrcweir sal_uInt16 nSize = FillFormatLB(nTypeId); 444*cdf0e10cSrcweir sal_Bool bFormat = nSize != 0; 445*cdf0e10cSrcweir aFormatLB.Enable(bFormat); 446*cdf0e10cSrcweir aFormatFT.Enable(bFormat); 447*cdf0e10cSrcweir 448*cdf0e10cSrcweir SubTypeHdl(); 449*cdf0e10cSrcweir ModifyHdl(); 450*cdf0e10cSrcweir } 451*cdf0e10cSrcweir 452*cdf0e10cSrcweir return 0; 453*cdf0e10cSrcweir } 454*cdf0e10cSrcweir 455*cdf0e10cSrcweir /*-------------------------------------------------------------------- 456*cdf0e10cSrcweir Beschreibung: 457*cdf0e10cSrcweir --------------------------------------------------------------------*/ 458*cdf0e10cSrcweir 459*cdf0e10cSrcweir IMPL_LINK( SwFldRefPage, SubTypeHdl, ListBox *, EMPTYARG ) 460*cdf0e10cSrcweir { 461*cdf0e10cSrcweir sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel()); 462*cdf0e10cSrcweir 463*cdf0e10cSrcweir switch(nTypeId) 464*cdf0e10cSrcweir { 465*cdf0e10cSrcweir case TYP_GETREFFLD: 466*cdf0e10cSrcweir if (!IsFldEdit() || aSelectionLB.GetSelectEntryCount()) 467*cdf0e10cSrcweir { 468*cdf0e10cSrcweir aNameED.SetText(aSelectionLB.GetSelectEntry()); 469*cdf0e10cSrcweir ModifyHdl(&aNameED); 470*cdf0e10cSrcweir } 471*cdf0e10cSrcweir break; 472*cdf0e10cSrcweir 473*cdf0e10cSrcweir case TYP_SETREFFLD: 474*cdf0e10cSrcweir { 475*cdf0e10cSrcweir SwWrtShell *pSh = GetWrtShell(); 476*cdf0e10cSrcweir if(!pSh) 477*cdf0e10cSrcweir pSh = ::GetActiveWrtShell(); 478*cdf0e10cSrcweir if(pSh) 479*cdf0e10cSrcweir { 480*cdf0e10cSrcweir aValueED.SetText(pSh->GetSelTxt()); 481*cdf0e10cSrcweir } 482*cdf0e10cSrcweir 483*cdf0e10cSrcweir } 484*cdf0e10cSrcweir break; 485*cdf0e10cSrcweir // --> OD 2007-11-21 #i83479# 486*cdf0e10cSrcweir case REFFLDFLAG_HEADING: 487*cdf0e10cSrcweir case REFFLDFLAG_NUMITEM: 488*cdf0e10cSrcweir { 489*cdf0e10cSrcweir if ( aSelectionToolTipLB.GetCurEntry() ) 490*cdf0e10cSrcweir { 491*cdf0e10cSrcweir aNameED.SetText( aSelectionToolTipLB.GetEntryText( 492*cdf0e10cSrcweir aSelectionToolTipLB.GetCurEntry() ) ); 493*cdf0e10cSrcweir } 494*cdf0e10cSrcweir } 495*cdf0e10cSrcweir break; 496*cdf0e10cSrcweir // <-- 497*cdf0e10cSrcweir 498*cdf0e10cSrcweir default: 499*cdf0e10cSrcweir if (!IsFldEdit() || aSelectionLB.GetSelectEntryCount()) 500*cdf0e10cSrcweir aNameED.SetText(aSelectionLB.GetSelectEntry()); 501*cdf0e10cSrcweir break; 502*cdf0e10cSrcweir } 503*cdf0e10cSrcweir 504*cdf0e10cSrcweir return 0; 505*cdf0e10cSrcweir } 506*cdf0e10cSrcweir 507*cdf0e10cSrcweir /*-------------------------------------------------------------------- 508*cdf0e10cSrcweir Beschreibung: Typen in SelectionLB erneuern 509*cdf0e10cSrcweir --------------------------------------------------------------------*/ 510*cdf0e10cSrcweir 511*cdf0e10cSrcweir void SwFldRefPage::UpdateSubType() 512*cdf0e10cSrcweir { 513*cdf0e10cSrcweir SwWrtShell *pSh = GetWrtShell(); 514*cdf0e10cSrcweir if(!pSh) 515*cdf0e10cSrcweir pSh = ::GetActiveWrtShell(); 516*cdf0e10cSrcweir SwGetRefField* pRefFld = (SwGetRefField*)GetCurField(); 517*cdf0e10cSrcweir const sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel()); 518*cdf0e10cSrcweir 519*cdf0e10cSrcweir String sOldSel; 520*cdf0e10cSrcweir // --> OD 2007-11-22 #i83479# 521*cdf0e10cSrcweir if ( aSelectionLB.IsVisible() ) 522*cdf0e10cSrcweir { 523*cdf0e10cSrcweir const sal_uInt16 nSelectionSel = aSelectionLB.GetSelectEntryPos(); 524*cdf0e10cSrcweir if (nSelectionSel != LISTBOX_ENTRY_NOTFOUND) 525*cdf0e10cSrcweir { 526*cdf0e10cSrcweir sOldSel = aSelectionLB.GetEntry(nSelectionSel); 527*cdf0e10cSrcweir } 528*cdf0e10cSrcweir } 529*cdf0e10cSrcweir // <-- 530*cdf0e10cSrcweir if (IsFldEdit() && !sOldSel.Len()) 531*cdf0e10cSrcweir sOldSel = String::CreateFromInt32( pRefFld->GetSeqNo() + 1 ); 532*cdf0e10cSrcweir 533*cdf0e10cSrcweir aSelectionLB.SetUpdateMode(sal_False); 534*cdf0e10cSrcweir aSelectionLB.Clear(); 535*cdf0e10cSrcweir // --> OD 2007-11-21 #i83479# 536*cdf0e10cSrcweir aSelectionToolTipLB.SetUpdateMode(sal_False); 537*cdf0e10cSrcweir aSelectionToolTipLB.Clear(); 538*cdf0e10cSrcweir bool bShowSelectionToolTipLB( false ); 539*cdf0e10cSrcweir // <-- 540*cdf0e10cSrcweir 541*cdf0e10cSrcweir if( REFFLDFLAG & nTypeId ) 542*cdf0e10cSrcweir { 543*cdf0e10cSrcweir if (nTypeId == REFFLDFLAG_BOOKMARK) // TextMarken! 544*cdf0e10cSrcweir { 545*cdf0e10cSrcweir aSelectionLB.SetStyle(aSelectionLB.GetStyle()|WB_SORT); 546*cdf0e10cSrcweir // alle Textmarken besorgen 547*cdf0e10cSrcweir IDocumentMarkAccess* const pMarkAccess = pSh->getIDocumentMarkAccess(); 548*cdf0e10cSrcweir for(IDocumentMarkAccess::const_iterator_t ppMark = pMarkAccess->getBookmarksBegin(); 549*cdf0e10cSrcweir ppMark != pMarkAccess->getBookmarksEnd(); 550*cdf0e10cSrcweir ppMark++) 551*cdf0e10cSrcweir { 552*cdf0e10cSrcweir const ::sw::mark::IMark* pBkmk = ppMark->get(); 553*cdf0e10cSrcweir if(IDocumentMarkAccess::BOOKMARK == IDocumentMarkAccess::GetType(*pBkmk)) 554*cdf0e10cSrcweir aSelectionLB.InsertEntry( pBkmk->GetName() ); 555*cdf0e10cSrcweir } 556*cdf0e10cSrcweir if (IsFldEdit()) 557*cdf0e10cSrcweir sOldSel = pRefFld->GetSetRefName(); 558*cdf0e10cSrcweir } 559*cdf0e10cSrcweir else if (nTypeId == REFFLDFLAG_FOOTNOTE) 560*cdf0e10cSrcweir { 561*cdf0e10cSrcweir aSelectionLB.SetStyle(aSelectionLB.GetStyle() & ~WB_SORT); 562*cdf0e10cSrcweir SwSeqFldList aArr; 563*cdf0e10cSrcweir sal_uInt16 nCnt = pSh->GetSeqFtnList( aArr ); 564*cdf0e10cSrcweir 565*cdf0e10cSrcweir for( sal_uInt16 n = 0; n < nCnt; ++n ) 566*cdf0e10cSrcweir { 567*cdf0e10cSrcweir aSelectionLB.InsertEntry( aArr[ n ]->sDlgEntry ); 568*cdf0e10cSrcweir if (IsFldEdit() && pRefFld->GetSeqNo() == aArr[ n ]->nSeqNo) 569*cdf0e10cSrcweir sOldSel = aArr[n]->sDlgEntry; 570*cdf0e10cSrcweir } 571*cdf0e10cSrcweir } 572*cdf0e10cSrcweir else if (nTypeId == REFFLDFLAG_ENDNOTE) 573*cdf0e10cSrcweir { 574*cdf0e10cSrcweir aSelectionLB.SetStyle(aSelectionLB.GetStyle() & ~WB_SORT); 575*cdf0e10cSrcweir SwSeqFldList aArr; 576*cdf0e10cSrcweir sal_uInt16 nCnt = pSh->GetSeqFtnList( aArr, true ); 577*cdf0e10cSrcweir 578*cdf0e10cSrcweir for( sal_uInt16 n = 0; n < nCnt; ++n ) 579*cdf0e10cSrcweir { 580*cdf0e10cSrcweir aSelectionLB.InsertEntry( aArr[ n ]->sDlgEntry ); 581*cdf0e10cSrcweir if (IsFldEdit() && pRefFld->GetSeqNo() == aArr[ n ]->nSeqNo) 582*cdf0e10cSrcweir sOldSel = aArr[n]->sDlgEntry; 583*cdf0e10cSrcweir } 584*cdf0e10cSrcweir } 585*cdf0e10cSrcweir // --> OD 2007-11-14 #i83479# 586*cdf0e10cSrcweir else if ( nTypeId == REFFLDFLAG_HEADING ) 587*cdf0e10cSrcweir { 588*cdf0e10cSrcweir bShowSelectionToolTipLB = true; 589*cdf0e10cSrcweir 590*cdf0e10cSrcweir const IDocumentOutlineNodes* pIDoc( pSh->getIDocumentOutlineNodesAccess() ); 591*cdf0e10cSrcweir pIDoc->getOutlineNodes( maOutlineNodes ); 592*cdf0e10cSrcweir bool bCertainTxtNodeSelected( false ); 593*cdf0e10cSrcweir SvLBoxEntry* pEntry = 0; 594*cdf0e10cSrcweir sal_uInt16 nOutlIdx = 0; 595*cdf0e10cSrcweir for ( nOutlIdx = 0; nOutlIdx < maOutlineNodes.size(); ++nOutlIdx ) 596*cdf0e10cSrcweir { 597*cdf0e10cSrcweir pEntry = aSelectionToolTipLB.InsertEntry( 598*cdf0e10cSrcweir pIDoc->getOutlineText( nOutlIdx, true, true ) ); 599*cdf0e10cSrcweir pEntry->SetUserData( reinterpret_cast<void*>(nOutlIdx) ); 600*cdf0e10cSrcweir if ( ( IsFldEdit() && 601*cdf0e10cSrcweir pRefFld->GetReferencedTxtNode() == maOutlineNodes[nOutlIdx] ) || 602*cdf0e10cSrcweir GetSavedSelectedTxtNode() == maOutlineNodes[nOutlIdx] ) 603*cdf0e10cSrcweir { 604*cdf0e10cSrcweir aSelectionToolTipLB.Select( pEntry ); 605*cdf0e10cSrcweir sOldSel.Erase(); 606*cdf0e10cSrcweir bCertainTxtNodeSelected = true; 607*cdf0e10cSrcweir } 608*cdf0e10cSrcweir else if ( !bCertainTxtNodeSelected && 609*cdf0e10cSrcweir GetSavedSelectedPos() == nOutlIdx ) 610*cdf0e10cSrcweir { 611*cdf0e10cSrcweir aSelectionToolTipLB.Select( pEntry ); 612*cdf0e10cSrcweir sOldSel.Erase(); 613*cdf0e10cSrcweir } 614*cdf0e10cSrcweir } 615*cdf0e10cSrcweir } 616*cdf0e10cSrcweir else if ( nTypeId == REFFLDFLAG_NUMITEM ) 617*cdf0e10cSrcweir { 618*cdf0e10cSrcweir bShowSelectionToolTipLB = true; 619*cdf0e10cSrcweir 620*cdf0e10cSrcweir const IDocumentListItems* pIDoc( pSh->getIDocumentListItemsAccess() ); 621*cdf0e10cSrcweir pIDoc->getNumItems( maNumItems ); 622*cdf0e10cSrcweir bool bCertainTxtNodeSelected( false ); 623*cdf0e10cSrcweir SvLBoxEntry* pEntry = 0; 624*cdf0e10cSrcweir sal_uInt16 nNumItemIdx = 0; 625*cdf0e10cSrcweir for ( nNumItemIdx = 0; nNumItemIdx < maNumItems.size(); ++nNumItemIdx ) 626*cdf0e10cSrcweir { 627*cdf0e10cSrcweir pEntry = aSelectionToolTipLB.InsertEntry( 628*cdf0e10cSrcweir pIDoc->getListItemText( *maNumItems[nNumItemIdx], true, true ) ); 629*cdf0e10cSrcweir pEntry->SetUserData( reinterpret_cast<void*>(nNumItemIdx) ); 630*cdf0e10cSrcweir if ( ( IsFldEdit() && 631*cdf0e10cSrcweir pRefFld->GetReferencedTxtNode() == maNumItems[nNumItemIdx]->GetTxtNode() ) || 632*cdf0e10cSrcweir GetSavedSelectedTxtNode() == maNumItems[nNumItemIdx]->GetTxtNode() ) 633*cdf0e10cSrcweir { 634*cdf0e10cSrcweir aSelectionToolTipLB.Select( pEntry ); 635*cdf0e10cSrcweir sOldSel.Erase(); 636*cdf0e10cSrcweir bCertainTxtNodeSelected = true; 637*cdf0e10cSrcweir } 638*cdf0e10cSrcweir else if ( !bCertainTxtNodeSelected && 639*cdf0e10cSrcweir GetSavedSelectedPos() == nNumItemIdx ) 640*cdf0e10cSrcweir { 641*cdf0e10cSrcweir aSelectionToolTipLB.Select( pEntry ); 642*cdf0e10cSrcweir sOldSel.Erase(); 643*cdf0e10cSrcweir } 644*cdf0e10cSrcweir } 645*cdf0e10cSrcweir } 646*cdf0e10cSrcweir // <-- 647*cdf0e10cSrcweir else 648*cdf0e10cSrcweir { 649*cdf0e10cSrcweir aSelectionLB.SetStyle(aSelectionLB.GetStyle()|WB_SORT); 650*cdf0e10cSrcweir // zum Seq-FeldTyp die Felder besorgen: 651*cdf0e10cSrcweir 652*cdf0e10cSrcweir SwSetExpFieldType* pType = (SwSetExpFieldType*)pSh->GetFldType( 653*cdf0e10cSrcweir nTypeId & ~REFFLDFLAG, RES_SETEXPFLD ); 654*cdf0e10cSrcweir if( pType ) 655*cdf0e10cSrcweir { 656*cdf0e10cSrcweir SwSeqFldList aArr; 657*cdf0e10cSrcweir // old selection should be kept in non-edit mode 658*cdf0e10cSrcweir if(IsFldEdit()) 659*cdf0e10cSrcweir sOldSel.Erase(); 660*cdf0e10cSrcweir 661*cdf0e10cSrcweir sal_uInt16 nCnt = pType->GetSeqFldList( aArr ); 662*cdf0e10cSrcweir for( sal_uInt16 n = 0; n < nCnt; ++n ) 663*cdf0e10cSrcweir { 664*cdf0e10cSrcweir aSelectionLB.InsertEntry( aArr[ n ]->sDlgEntry ); 665*cdf0e10cSrcweir if (IsFldEdit() && !sOldSel.Len() && 666*cdf0e10cSrcweir aArr[ n ]->nSeqNo == pRefFld->GetSeqNo()) 667*cdf0e10cSrcweir sOldSel = aArr[ n ]->sDlgEntry; 668*cdf0e10cSrcweir } 669*cdf0e10cSrcweir 670*cdf0e10cSrcweir if (IsFldEdit() && !sOldSel.Len()) 671*cdf0e10cSrcweir sOldSel = String::CreateFromInt32( pRefFld->GetSeqNo() + 1); 672*cdf0e10cSrcweir } 673*cdf0e10cSrcweir } 674*cdf0e10cSrcweir } 675*cdf0e10cSrcweir else 676*cdf0e10cSrcweir { 677*cdf0e10cSrcweir SvStringsDtor aLst; 678*cdf0e10cSrcweir GetFldMgr().GetSubTypes(nTypeId, aLst); 679*cdf0e10cSrcweir for (sal_uInt16 i = 0; i < aLst.Count(); ++i) 680*cdf0e10cSrcweir aSelectionLB.InsertEntry(*aLst[i]); 681*cdf0e10cSrcweir 682*cdf0e10cSrcweir if (IsFldEdit()) 683*cdf0e10cSrcweir sOldSel = pRefFld->GetSetRefName(); 684*cdf0e10cSrcweir } 685*cdf0e10cSrcweir 686*cdf0e10cSrcweir // --> OD 2007-11-21 #i83479# 687*cdf0e10cSrcweir aSelectionToolTipLB.Show( bShowSelectionToolTipLB ); 688*cdf0e10cSrcweir aSelectionLB.Show( !bShowSelectionToolTipLB ); 689*cdf0e10cSrcweir if ( bShowSelectionToolTipLB ) 690*cdf0e10cSrcweir { 691*cdf0e10cSrcweir aSelectionToolTipLB.SetUpdateMode(sal_True); 692*cdf0e10cSrcweir 693*cdf0e10cSrcweir sal_Bool bEnable = aSelectionToolTipLB.GetEntryCount() != 0; 694*cdf0e10cSrcweir aSelectionToolTipLB.Enable( bEnable ); 695*cdf0e10cSrcweir aSelectionFT.Enable( bEnable ); 696*cdf0e10cSrcweir 697*cdf0e10cSrcweir if ( aSelectionToolTipLB.GetCurEntry() != 0 ) 698*cdf0e10cSrcweir { 699*cdf0e10cSrcweir aSelectionToolTipLB.MakeVisible( aSelectionToolTipLB.GetCurEntry() ); 700*cdf0e10cSrcweir } 701*cdf0e10cSrcweir 702*cdf0e10cSrcweir if ( IsFldEdit() && aSelectionToolTipLB.GetCurEntry() == 0 ) 703*cdf0e10cSrcweir { 704*cdf0e10cSrcweir aNameED.SetText(sOldSel); 705*cdf0e10cSrcweir } 706*cdf0e10cSrcweir } 707*cdf0e10cSrcweir else 708*cdf0e10cSrcweir { 709*cdf0e10cSrcweir aSelectionLB.SetUpdateMode(sal_True); 710*cdf0e10cSrcweir 711*cdf0e10cSrcweir // Enable oder Disable 712*cdf0e10cSrcweir sal_Bool bEnable = aSelectionLB.GetEntryCount() != 0; 713*cdf0e10cSrcweir aSelectionLB.Enable( bEnable ); 714*cdf0e10cSrcweir aSelectionFT.Enable( bEnable ); 715*cdf0e10cSrcweir 716*cdf0e10cSrcweir if ( bEnable ) 717*cdf0e10cSrcweir { 718*cdf0e10cSrcweir aSelectionLB.SelectEntry(sOldSel); 719*cdf0e10cSrcweir if (!aSelectionLB.GetSelectEntryCount() && !IsFldEdit()) 720*cdf0e10cSrcweir aSelectionLB.SelectEntryPos(0); 721*cdf0e10cSrcweir } 722*cdf0e10cSrcweir 723*cdf0e10cSrcweir if (IsFldEdit() && !aSelectionLB.GetSelectEntryCount()) // Falls die Referenz schon geloescht wurde... 724*cdf0e10cSrcweir aNameED.SetText(sOldSel); 725*cdf0e10cSrcweir } 726*cdf0e10cSrcweir // <-- 727*cdf0e10cSrcweir } 728*cdf0e10cSrcweir 729*cdf0e10cSrcweir /*-------------------------------------------------------------------- 730*cdf0e10cSrcweir Beschreibung: 731*cdf0e10cSrcweir --------------------------------------------------------------------*/ 732*cdf0e10cSrcweir 733*cdf0e10cSrcweir sal_uInt16 SwFldRefPage::FillFormatLB(sal_uInt16 nTypeId) 734*cdf0e10cSrcweir { 735*cdf0e10cSrcweir String sOldSel; 736*cdf0e10cSrcweir 737*cdf0e10cSrcweir sal_uInt16 nFormatSel = aFormatLB.GetSelectEntryPos(); 738*cdf0e10cSrcweir if (nFormatSel != LISTBOX_ENTRY_NOTFOUND) 739*cdf0e10cSrcweir sOldSel = aFormatLB.GetEntry(nFormatSel); 740*cdf0e10cSrcweir 741*cdf0e10cSrcweir // Format-Listbox fuellen 742*cdf0e10cSrcweir aFormatLB.Clear(); 743*cdf0e10cSrcweir 744*cdf0e10cSrcweir // Referenz hat weniger als die Beschriftung 745*cdf0e10cSrcweir sal_uInt16 nSize( 0 ); 746*cdf0e10cSrcweir bool bAddCrossRefFormats( false ); 747*cdf0e10cSrcweir switch (nTypeId) 748*cdf0e10cSrcweir { 749*cdf0e10cSrcweir // --> OD 2007-11-16 #i83479# 750*cdf0e10cSrcweir case REFFLDFLAG_HEADING: 751*cdf0e10cSrcweir case REFFLDFLAG_NUMITEM: 752*cdf0e10cSrcweir bAddCrossRefFormats = true; 753*cdf0e10cSrcweir // intentional no break here 754*cdf0e10cSrcweir // <-- 755*cdf0e10cSrcweir 756*cdf0e10cSrcweir case TYP_GETREFFLD: 757*cdf0e10cSrcweir case REFFLDFLAG_BOOKMARK: 758*cdf0e10cSrcweir case REFFLDFLAG_FOOTNOTE: 759*cdf0e10cSrcweir case REFFLDFLAG_ENDNOTE: 760*cdf0e10cSrcweir nSize = FMT_REF_PAGE_PGDSC - FMT_REF_BEGIN + 1; 761*cdf0e10cSrcweir break; 762*cdf0e10cSrcweir 763*cdf0e10cSrcweir default: 764*cdf0e10cSrcweir // --> OD 2007-11-16 #i83479# 765*cdf0e10cSrcweir // nSize = GetFldMgr().GetFormatCount( (REFFLDFLAG & nTypeId) 766*cdf0e10cSrcweir // ? (sal_uInt16)TYP_GETREFFLD : nTypeId, 767*cdf0e10cSrcweir // sal_False, IsFldDlgHtmlMode() ); 768*cdf0e10cSrcweir if ( REFFLDFLAG & nTypeId ) 769*cdf0e10cSrcweir { 770*cdf0e10cSrcweir nSize = FMT_REF_ONLYSEQNO - FMT_REF_BEGIN + 1; 771*cdf0e10cSrcweir } 772*cdf0e10cSrcweir else 773*cdf0e10cSrcweir { 774*cdf0e10cSrcweir nSize = GetFldMgr().GetFormatCount( nTypeId, sal_False, IsFldDlgHtmlMode() ); 775*cdf0e10cSrcweir } 776*cdf0e10cSrcweir break; 777*cdf0e10cSrcweir } 778*cdf0e10cSrcweir 779*cdf0e10cSrcweir if (REFFLDFLAG & nTypeId) 780*cdf0e10cSrcweir nTypeId = TYP_GETREFFLD; 781*cdf0e10cSrcweir 782*cdf0e10cSrcweir for (sal_uInt16 i = 0; i < nSize; i++) 783*cdf0e10cSrcweir { 784*cdf0e10cSrcweir sal_uInt16 nPos = aFormatLB.InsertEntry(GetFldMgr().GetFormatStr( nTypeId, i )); 785*cdf0e10cSrcweir aFormatLB.SetEntryData( nPos, reinterpret_cast<void*>(GetFldMgr().GetFormatId( nTypeId, i ))); 786*cdf0e10cSrcweir } 787*cdf0e10cSrcweir // --> OD 2007-11-16 #i83479# 788*cdf0e10cSrcweir if ( bAddCrossRefFormats ) 789*cdf0e10cSrcweir { 790*cdf0e10cSrcweir sal_uInt16 nFormat = FMT_REF_NUMBER - FMT_REF_BEGIN; 791*cdf0e10cSrcweir sal_uInt16 nPos = aFormatLB.InsertEntry(GetFldMgr().GetFormatStr( nTypeId, nFormat )); 792*cdf0e10cSrcweir aFormatLB.SetEntryData( nPos, reinterpret_cast<void*>(GetFldMgr().GetFormatId( nTypeId, nFormat ))); 793*cdf0e10cSrcweir nFormat = FMT_REF_NUMBER_NO_CONTEXT - FMT_REF_BEGIN; 794*cdf0e10cSrcweir nPos = aFormatLB.InsertEntry(GetFldMgr().GetFormatStr( nTypeId, nFormat )); 795*cdf0e10cSrcweir aFormatLB.SetEntryData( nPos, reinterpret_cast<void*>(GetFldMgr().GetFormatId( nTypeId, nFormat ))); 796*cdf0e10cSrcweir nFormat = FMT_REF_NUMBER_FULL_CONTEXT - FMT_REF_BEGIN; 797*cdf0e10cSrcweir nPos = aFormatLB.InsertEntry(GetFldMgr().GetFormatStr( nTypeId, nFormat )); 798*cdf0e10cSrcweir aFormatLB.SetEntryData( nPos, reinterpret_cast<void*>(GetFldMgr().GetFormatId( nTypeId, nFormat ))); 799*cdf0e10cSrcweir nSize += 3; 800*cdf0e10cSrcweir } 801*cdf0e10cSrcweir // <-- 802*cdf0e10cSrcweir 803*cdf0e10cSrcweir // select a certain entry 804*cdf0e10cSrcweir if (nSize) 805*cdf0e10cSrcweir { 806*cdf0e10cSrcweir if (!IsFldEdit()) 807*cdf0e10cSrcweir aFormatLB.SelectEntry(sOldSel); 808*cdf0e10cSrcweir else 809*cdf0e10cSrcweir aFormatLB.SelectEntry(SW_RESSTR(FMT_REF_BEGIN + (sal_uInt16)GetCurField()->GetFormat())); 810*cdf0e10cSrcweir 811*cdf0e10cSrcweir if (!aFormatLB.GetSelectEntryCount()) 812*cdf0e10cSrcweir { 813*cdf0e10cSrcweir aFormatLB.SelectEntryPos(nFldDlgFmtSel); 814*cdf0e10cSrcweir if (!aFormatLB.GetSelectEntryCount()) 815*cdf0e10cSrcweir aFormatLB.SelectEntryPos(0); 816*cdf0e10cSrcweir } 817*cdf0e10cSrcweir } 818*cdf0e10cSrcweir 819*cdf0e10cSrcweir return nSize; 820*cdf0e10cSrcweir } 821*cdf0e10cSrcweir 822*cdf0e10cSrcweir /*-------------------------------------------------------------------- 823*cdf0e10cSrcweir Beschreibung: Modify 824*cdf0e10cSrcweir --------------------------------------------------------------------*/ 825*cdf0e10cSrcweir 826*cdf0e10cSrcweir IMPL_LINK( SwFldRefPage, ModifyHdl, Edit *, EMPTYARG ) 827*cdf0e10cSrcweir { 828*cdf0e10cSrcweir String aName(aNameED.GetText()); 829*cdf0e10cSrcweir const sal_uInt16 nLen = aName.Len(); 830*cdf0e10cSrcweir 831*cdf0e10cSrcweir sal_Bool bEnable = sal_True; 832*cdf0e10cSrcweir sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel()); 833*cdf0e10cSrcweir 834*cdf0e10cSrcweir if ((nTypeId == TYP_SETREFFLD && !GetFldMgr().CanInsertRefMark(aName)) || 835*cdf0e10cSrcweir (nLen == 0 && (nTypeId == TYP_GETREFFLD || nTypeId == TYP_SETREFFLD || 836*cdf0e10cSrcweir nTypeId == REFFLDFLAG_BOOKMARK))) 837*cdf0e10cSrcweir bEnable = sal_False; 838*cdf0e10cSrcweir 839*cdf0e10cSrcweir EnableInsert(bEnable); 840*cdf0e10cSrcweir 841*cdf0e10cSrcweir aSelectionLB.SelectEntry(aName); 842*cdf0e10cSrcweir 843*cdf0e10cSrcweir return 0; 844*cdf0e10cSrcweir } 845*cdf0e10cSrcweir 846*cdf0e10cSrcweir /*-------------------------------------------------------------------- 847*cdf0e10cSrcweir Beschreibung: 848*cdf0e10cSrcweir --------------------------------------------------------------------*/ 849*cdf0e10cSrcweir 850*cdf0e10cSrcweir sal_Bool SwFldRefPage::FillItemSet(SfxItemSet& ) 851*cdf0e10cSrcweir { 852*cdf0e10cSrcweir sal_Bool bModified = sal_False; 853*cdf0e10cSrcweir sal_uInt16 nTypeId = (sal_uInt16)(sal_uLong)aTypeLB.GetEntryData(GetTypeSel()); 854*cdf0e10cSrcweir 855*cdf0e10cSrcweir sal_uInt16 nSubType = 0; 856*cdf0e10cSrcweir sal_uLong nFormat; 857*cdf0e10cSrcweir 858*cdf0e10cSrcweir nFormat = aFormatLB.GetSelectEntryPos(); 859*cdf0e10cSrcweir 860*cdf0e10cSrcweir if(nFormat == LISTBOX_ENTRY_NOTFOUND) 861*cdf0e10cSrcweir nFormat = 0; 862*cdf0e10cSrcweir else 863*cdf0e10cSrcweir nFormat = (sal_uLong)aFormatLB.GetEntryData((sal_uInt16)nFormat); 864*cdf0e10cSrcweir 865*cdf0e10cSrcweir String aVal(aValueED.GetText()); 866*cdf0e10cSrcweir String aName(aNameED.GetText()); 867*cdf0e10cSrcweir 868*cdf0e10cSrcweir switch(nTypeId) 869*cdf0e10cSrcweir { 870*cdf0e10cSrcweir case TYP_GETREFFLD: 871*cdf0e10cSrcweir // aName = aSelectionLB.GetSelectEntry(); 872*cdf0e10cSrcweir nSubType = REF_SETREFATTR; 873*cdf0e10cSrcweir break; 874*cdf0e10cSrcweir 875*cdf0e10cSrcweir case TYP_SETREFFLD: 876*cdf0e10cSrcweir { 877*cdf0e10cSrcweir SwFieldType* pType = GetFldMgr().GetFldType(RES_SETEXPFLD, aName); 878*cdf0e10cSrcweir 879*cdf0e10cSrcweir if(!pType) // Nur einfuegen, wenn es den Namen noch nicht gibt 880*cdf0e10cSrcweir { 881*cdf0e10cSrcweir aSelectionLB.InsertEntry(aName); 882*cdf0e10cSrcweir aSelectionLB.Enable(); 883*cdf0e10cSrcweir aSelectionFT.Enable(); 884*cdf0e10cSrcweir } 885*cdf0e10cSrcweir break; 886*cdf0e10cSrcweir } 887*cdf0e10cSrcweir } 888*cdf0e10cSrcweir 889*cdf0e10cSrcweir SwGetRefField* pRefFld = (SwGetRefField*)GetCurField(); 890*cdf0e10cSrcweir 891*cdf0e10cSrcweir if (REFFLDFLAG & nTypeId) 892*cdf0e10cSrcweir { 893*cdf0e10cSrcweir SwWrtShell *pSh = GetWrtShell(); 894*cdf0e10cSrcweir if(!pSh) 895*cdf0e10cSrcweir { 896*cdf0e10cSrcweir pSh = ::GetActiveWrtShell(); 897*cdf0e10cSrcweir } 898*cdf0e10cSrcweir if (nTypeId == REFFLDFLAG_BOOKMARK) // TextMarken! 899*cdf0e10cSrcweir { 900*cdf0e10cSrcweir aName = aNameED.GetText(); 901*cdf0e10cSrcweir nTypeId = TYP_GETREFFLD; 902*cdf0e10cSrcweir nSubType = REF_BOOKMARK; 903*cdf0e10cSrcweir } 904*cdf0e10cSrcweir else if (REFFLDFLAG_FOOTNOTE == nTypeId) // Fussnoten 905*cdf0e10cSrcweir { 906*cdf0e10cSrcweir SwSeqFldList aArr; 907*cdf0e10cSrcweir _SeqFldLstElem aElem( aSelectionLB.GetSelectEntry(), 0 ); 908*cdf0e10cSrcweir 909*cdf0e10cSrcweir sal_uInt16 nPos; 910*cdf0e10cSrcweir 911*cdf0e10cSrcweir nTypeId = TYP_GETREFFLD; 912*cdf0e10cSrcweir nSubType = REF_FOOTNOTE; 913*cdf0e10cSrcweir aName.Erase(); 914*cdf0e10cSrcweir 915*cdf0e10cSrcweir if (pSh->GetSeqFtnList(aArr) && aArr.SeekEntry(aElem, &nPos)) 916*cdf0e10cSrcweir { 917*cdf0e10cSrcweir aVal = String::CreateFromInt32( aArr[nPos]->nSeqNo ); 918*cdf0e10cSrcweir 919*cdf0e10cSrcweir if (IsFldEdit() && aArr[nPos]->nSeqNo == pRefFld->GetSeqNo()) 920*cdf0e10cSrcweir bModified = sal_True; // Kann bei Feldern passieren, deren Referenz geloescht wurde 921*cdf0e10cSrcweir } 922*cdf0e10cSrcweir else if (IsFldEdit()) 923*cdf0e10cSrcweir aVal = String::CreateFromInt32( pRefFld->GetSeqNo() ); 924*cdf0e10cSrcweir } 925*cdf0e10cSrcweir else if (REFFLDFLAG_ENDNOTE == nTypeId) // Endnoten 926*cdf0e10cSrcweir { 927*cdf0e10cSrcweir SwSeqFldList aArr; 928*cdf0e10cSrcweir _SeqFldLstElem aElem( aSelectionLB.GetSelectEntry(), 0 ); 929*cdf0e10cSrcweir 930*cdf0e10cSrcweir sal_uInt16 nPos; 931*cdf0e10cSrcweir 932*cdf0e10cSrcweir nTypeId = TYP_GETREFFLD; 933*cdf0e10cSrcweir nSubType = REF_ENDNOTE; 934*cdf0e10cSrcweir aName.Erase(); 935*cdf0e10cSrcweir 936*cdf0e10cSrcweir if (pSh->GetSeqFtnList(aArr, true) && aArr.SeekEntry(aElem, &nPos)) 937*cdf0e10cSrcweir { 938*cdf0e10cSrcweir aVal = String::CreateFromInt32( aArr[nPos]->nSeqNo ); 939*cdf0e10cSrcweir 940*cdf0e10cSrcweir if (IsFldEdit() && aArr[nPos]->nSeqNo == pRefFld->GetSeqNo()) 941*cdf0e10cSrcweir bModified = sal_True; // Kann bei Feldern passieren, deren Referenz geloescht wurde 942*cdf0e10cSrcweir } 943*cdf0e10cSrcweir else if (IsFldEdit()) 944*cdf0e10cSrcweir aVal = String::CreateFromInt32( pRefFld->GetSeqNo() ); 945*cdf0e10cSrcweir } 946*cdf0e10cSrcweir // --> OD 2007-11-16 #i83479# 947*cdf0e10cSrcweir else if ( nTypeId == REFFLDFLAG_HEADING ) 948*cdf0e10cSrcweir { 949*cdf0e10cSrcweir SvLBoxEntry* pEntry = aSelectionToolTipLB.GetCurEntry(); 950*cdf0e10cSrcweir ASSERT( pEntry, 951*cdf0e10cSrcweir "<SwFldRefPage::FillItemSet(..)> - no entry selected in selection tool tip listbox!" ); 952*cdf0e10cSrcweir if ( pEntry ) 953*cdf0e10cSrcweir { 954*cdf0e10cSrcweir const sal_uInt16 nOutlIdx( static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(pEntry->GetUserData())) ); 955*cdf0e10cSrcweir pSh->getIDocumentOutlineNodesAccess()->getOutlineNodes( maOutlineNodes ); 956*cdf0e10cSrcweir if ( nOutlIdx < maOutlineNodes.size() ) 957*cdf0e10cSrcweir { 958*cdf0e10cSrcweir ::sw::mark::IMark const * const pMark = pSh->getIDocumentMarkAccess()->getMarkForTxtNode( 959*cdf0e10cSrcweir *(maOutlineNodes[nOutlIdx]), 960*cdf0e10cSrcweir IDocumentMarkAccess::CROSSREF_HEADING_BOOKMARK); 961*cdf0e10cSrcweir aName = pMark->GetName(); 962*cdf0e10cSrcweir nTypeId = TYP_GETREFFLD; 963*cdf0e10cSrcweir nSubType = REF_BOOKMARK; 964*cdf0e10cSrcweir } 965*cdf0e10cSrcweir } 966*cdf0e10cSrcweir } 967*cdf0e10cSrcweir else if ( nTypeId == REFFLDFLAG_NUMITEM ) 968*cdf0e10cSrcweir { 969*cdf0e10cSrcweir SvLBoxEntry* pEntry = aSelectionToolTipLB.GetCurEntry(); 970*cdf0e10cSrcweir ASSERT( pEntry, 971*cdf0e10cSrcweir "<SwFldRefPage::FillItemSet(..)> - no entry selected in selection tool tip listbox!" ); 972*cdf0e10cSrcweir if ( pEntry ) 973*cdf0e10cSrcweir { 974*cdf0e10cSrcweir const sal_uInt16 nNumItemIdx( static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(pEntry->GetUserData())) ); 975*cdf0e10cSrcweir pSh->getIDocumentListItemsAccess()->getNumItems( maNumItems ); 976*cdf0e10cSrcweir if ( nNumItemIdx < maNumItems.size() ) 977*cdf0e10cSrcweir { 978*cdf0e10cSrcweir ::sw::mark::IMark const * const pMark = pSh->getIDocumentMarkAccess()->getMarkForTxtNode( 979*cdf0e10cSrcweir *(maNumItems[nNumItemIdx]->GetTxtNode()), 980*cdf0e10cSrcweir IDocumentMarkAccess::CROSSREF_NUMITEM_BOOKMARK); 981*cdf0e10cSrcweir aName = pMark->GetName(); 982*cdf0e10cSrcweir nTypeId = TYP_GETREFFLD; 983*cdf0e10cSrcweir nSubType = REF_BOOKMARK; 984*cdf0e10cSrcweir } 985*cdf0e10cSrcweir } 986*cdf0e10cSrcweir } 987*cdf0e10cSrcweir // <-- 988*cdf0e10cSrcweir else // SeqenceFelder 989*cdf0e10cSrcweir { 990*cdf0e10cSrcweir // zum Seq-FeldTyp die Felder besorgen: 991*cdf0e10cSrcweir SwSetExpFieldType* pType = (SwSetExpFieldType*)pSh->GetFldType( 992*cdf0e10cSrcweir nTypeId & ~REFFLDFLAG, RES_SETEXPFLD ); 993*cdf0e10cSrcweir if( pType ) 994*cdf0e10cSrcweir { 995*cdf0e10cSrcweir SwSeqFldList aArr; 996*cdf0e10cSrcweir _SeqFldLstElem aElem( aSelectionLB.GetSelectEntry(), 0 ); 997*cdf0e10cSrcweir 998*cdf0e10cSrcweir sal_uInt16 nPos; 999*cdf0e10cSrcweir 1000*cdf0e10cSrcweir nTypeId = TYP_GETREFFLD; 1001*cdf0e10cSrcweir nSubType = REF_SEQUENCEFLD; 1002*cdf0e10cSrcweir aName = pType->GetName(); 1003*cdf0e10cSrcweir 1004*cdf0e10cSrcweir if (pType->GetSeqFldList(aArr) && aArr.SeekEntry(aElem, &nPos)) 1005*cdf0e10cSrcweir { 1006*cdf0e10cSrcweir aVal = String::CreateFromInt32( aArr[nPos]->nSeqNo ); 1007*cdf0e10cSrcweir 1008*cdf0e10cSrcweir if (IsFldEdit() && aArr[nPos]->nSeqNo == pRefFld->GetSeqNo()) 1009*cdf0e10cSrcweir bModified = sal_True; // Kann bei Feldern passieren, deren Referenz geloescht wurde 1010*cdf0e10cSrcweir } 1011*cdf0e10cSrcweir else if (IsFldEdit()) 1012*cdf0e10cSrcweir aVal = String::CreateFromInt32( pRefFld->GetSeqNo() ); 1013*cdf0e10cSrcweir } 1014*cdf0e10cSrcweir } 1015*cdf0e10cSrcweir } 1016*cdf0e10cSrcweir 1017*cdf0e10cSrcweir if (IsFldEdit() && nTypeId == TYP_GETREFFLD) 1018*cdf0e10cSrcweir { 1019*cdf0e10cSrcweir aVal.Insert('|', 0); 1020*cdf0e10cSrcweir aVal.Insert(String::CreateFromInt32(nSubType), 0); 1021*cdf0e10cSrcweir } 1022*cdf0e10cSrcweir 1023*cdf0e10cSrcweir if (!IsFldEdit() || bModified || 1024*cdf0e10cSrcweir aNameED.GetSavedValue() != aNameED.GetText() || 1025*cdf0e10cSrcweir aValueED.GetSavedValue() != aValueED.GetText() || 1026*cdf0e10cSrcweir aTypeLB.GetSavedValue() != aTypeLB.GetSelectEntryPos() || 1027*cdf0e10cSrcweir aSelectionLB.GetSavedValue() != aSelectionLB.GetSelectEntryPos() || 1028*cdf0e10cSrcweir aFormatLB.GetSavedValue() != aFormatLB.GetSelectEntryPos()) 1029*cdf0e10cSrcweir { 1030*cdf0e10cSrcweir InsertFld( nTypeId, nSubType, aName, aVal, nFormat ); 1031*cdf0e10cSrcweir } 1032*cdf0e10cSrcweir 1033*cdf0e10cSrcweir ModifyHdl(); // Insert ggf enablen/disablen 1034*cdf0e10cSrcweir 1035*cdf0e10cSrcweir return sal_False; 1036*cdf0e10cSrcweir } 1037*cdf0e10cSrcweir 1038*cdf0e10cSrcweir /*-------------------------------------------------------------------- 1039*cdf0e10cSrcweir Beschreibung: 1040*cdf0e10cSrcweir --------------------------------------------------------------------*/ 1041*cdf0e10cSrcweir 1042*cdf0e10cSrcweir SfxTabPage* SwFldRefPage::Create( Window* pParent, 1043*cdf0e10cSrcweir const SfxItemSet& rAttrSet ) 1044*cdf0e10cSrcweir { 1045*cdf0e10cSrcweir return ( new SwFldRefPage( pParent, rAttrSet ) ); 1046*cdf0e10cSrcweir } 1047*cdf0e10cSrcweir 1048*cdf0e10cSrcweir /*-------------------------------------------------------------------- 1049*cdf0e10cSrcweir Beschreibung: 1050*cdf0e10cSrcweir --------------------------------------------------------------------*/ 1051*cdf0e10cSrcweir 1052*cdf0e10cSrcweir sal_uInt16 SwFldRefPage::GetGroup() 1053*cdf0e10cSrcweir { 1054*cdf0e10cSrcweir return GRP_REF; 1055*cdf0e10cSrcweir } 1056*cdf0e10cSrcweir 1057*cdf0e10cSrcweir /* -----------------12.01.99 10:09------------------- 1058*cdf0e10cSrcweir * 1059*cdf0e10cSrcweir * --------------------------------------------------*/ 1060*cdf0e10cSrcweir void SwFldRefPage::FillUserData() 1061*cdf0e10cSrcweir { 1062*cdf0e10cSrcweir String sData( String::CreateFromAscii( 1063*cdf0e10cSrcweir RTL_CONSTASCII_STRINGPARAM( USER_DATA_VERSION ))); 1064*cdf0e10cSrcweir sData += ';'; 1065*cdf0e10cSrcweir sal_uInt16 nTypeSel = aTypeLB.GetSelectEntryPos(); 1066*cdf0e10cSrcweir if( LISTBOX_ENTRY_NOTFOUND == nTypeSel ) 1067*cdf0e10cSrcweir nTypeSel = USHRT_MAX; 1068*cdf0e10cSrcweir else 1069*cdf0e10cSrcweir nTypeSel = sal::static_int_cast< sal_uInt16 >(reinterpret_cast< sal_uIntPtr >(aTypeLB.GetEntryData( nTypeSel ))); 1070*cdf0e10cSrcweir sData += String::CreateFromInt32( nTypeSel ); 1071*cdf0e10cSrcweir SetUserData(sData); 1072*cdf0e10cSrcweir } 1073*cdf0e10cSrcweir 1074