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 #include "swuiidxmrk.hxx" 35*cdf0e10cSrcweir #include <hintids.hxx> 36*cdf0e10cSrcweir #include <helpid.h> 37*cdf0e10cSrcweir #define _SVSTDARR_STRINGSSORT 38*cdf0e10cSrcweir #include <svl/svstdarr.hxx> 39*cdf0e10cSrcweir #include <comphelper/processfactory.hxx> 40*cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp> 41*cdf0e10cSrcweir #include <com/sun/star/beans/PropertyValue.hpp> 42*cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp> 43*cdf0e10cSrcweir #include <com/sun/star/util/SearchOptions.hpp> 44*cdf0e10cSrcweir #include <com/sun/star/util/SearchFlags.hpp> 45*cdf0e10cSrcweir #include <com/sun/star/i18n/TransliterationModules.hpp> 46*cdf0e10cSrcweir #include <svl/stritem.hxx> 47*cdf0e10cSrcweir #include <vcl/msgbox.hxx> 48*cdf0e10cSrcweir #include <sfx2/dispatch.hxx> 49*cdf0e10cSrcweir #include <svl/eitem.hxx> 50*cdf0e10cSrcweir #include <svtools/txtcmp.hxx> 51*cdf0e10cSrcweir #include <editeng/scripttypeitem.hxx> 52*cdf0e10cSrcweir #include <svl/itemset.hxx> 53*cdf0e10cSrcweir #include <editeng/langitem.hxx> 54*cdf0e10cSrcweir #include "editeng/unolingu.hxx" 55*cdf0e10cSrcweir #include <swtypes.hxx> 56*cdf0e10cSrcweir #include <idxmrk.hxx> 57*cdf0e10cSrcweir #include <txttxmrk.hxx> 58*cdf0e10cSrcweir #include <wrtsh.hxx> 59*cdf0e10cSrcweir #include <view.hxx> 60*cdf0e10cSrcweir #include <multmrk.hxx> 61*cdf0e10cSrcweir #include <swundo.hxx> // fuer Undo-Ids 62*cdf0e10cSrcweir #include <cmdid.h> 63*cdf0e10cSrcweir #include <index.hrc> 64*cdf0e10cSrcweir #include <idxmrk.hrc> 65*cdf0e10cSrcweir #include <swmodule.hxx> 66*cdf0e10cSrcweir #include <fldmgr.hxx> 67*cdf0e10cSrcweir #include <fldbas.hxx> 68*cdf0e10cSrcweir #include <utlui.hrc> 69*cdf0e10cSrcweir #include <swcont.hxx> 70*cdf0e10cSrcweir #include <svl/cjkoptions.hxx> 71*cdf0e10cSrcweir #include <ndtxt.hxx> 72*cdf0e10cSrcweir #include <breakit.hxx> 73*cdf0e10cSrcweir #include <SwRewriter.hxx> 74*cdf0e10cSrcweir 75*cdf0e10cSrcweir #include "swuiidxmrk.hxx" 76*cdf0e10cSrcweir #include <unomid.h> 77*cdf0e10cSrcweir 78*cdf0e10cSrcweir 79*cdf0e10cSrcweir #define POS_CONTENT 0 80*cdf0e10cSrcweir #define POS_INDEX 1 81*cdf0e10cSrcweir #define POS_USER 2 82*cdf0e10cSrcweir 83*cdf0e10cSrcweir static sal_uInt16 nTypePos = 1; // TOX_INDEX as standard 84*cdf0e10cSrcweir static sal_uInt16 nKey1Pos = USHRT_MAX; 85*cdf0e10cSrcweir 86*cdf0e10cSrcweir static sal_uInt16 nKey2Pos = USHRT_MAX; 87*cdf0e10cSrcweir 88*cdf0e10cSrcweir using namespace com::sun::star; 89*cdf0e10cSrcweir using namespace com::sun::star::i18n; 90*cdf0e10cSrcweir using namespace com::sun::star::lang; 91*cdf0e10cSrcweir using namespace com::sun::star::util; 92*cdf0e10cSrcweir using namespace com::sun::star::i18n; 93*cdf0e10cSrcweir using ::rtl::OUString; 94*cdf0e10cSrcweir using namespace ::comphelper; 95*cdf0e10cSrcweir using namespace ::com::sun::star; 96*cdf0e10cSrcweir 97*cdf0e10cSrcweir /*-------------------------------------------------------------------- 98*cdf0e10cSrcweir Beschreibung: Dialog zum Einfuegen einer Verzeichnismarkierung 99*cdf0e10cSrcweir --------------------------------------------------------------------*/ 100*cdf0e10cSrcweir SwIndexMarkDlg::SwIndexMarkDlg(Window *pParent, 101*cdf0e10cSrcweir sal_Bool bNewDlg, 102*cdf0e10cSrcweir const ResId& rResId, 103*cdf0e10cSrcweir sal_Int32 _nOptionsId, SwWrtShell& rWrtShell ) : 104*cdf0e10cSrcweir Window(pParent, rResId), 105*cdf0e10cSrcweir aIndexFL(this, SW_RES(FL_INDEX )), 106*cdf0e10cSrcweir aTypeFT (this, SW_RES(LBL_INDEX )), 107*cdf0e10cSrcweir aTypeDCB(this, SW_RES(DCB_INDEX )), 108*cdf0e10cSrcweir aNewBT(this, SW_RES(BT_NEW )), 109*cdf0e10cSrcweir 110*cdf0e10cSrcweir aEntryFT(this, SW_RES(LBL_ENTRY )), 111*cdf0e10cSrcweir aEntryED(this, SW_RES(SL_ENTRY )), 112*cdf0e10cSrcweir aPhoneticFT0(this, SW_RES(FT_PHONETIC_1 )), 113*cdf0e10cSrcweir aPhoneticED0(this, SW_RES(ED_PHONETIC_1 )), 114*cdf0e10cSrcweir 115*cdf0e10cSrcweir aKeyFT(this, SW_RES(LBL_KEY )), 116*cdf0e10cSrcweir aKeyDCB(this, SW_RES(DCB_KEY )), 117*cdf0e10cSrcweir aPhoneticFT1(this, SW_RES(FT_PHONETIC_2 )), 118*cdf0e10cSrcweir aPhoneticED1(this, SW_RES(ED_PHONETIC_2 )), 119*cdf0e10cSrcweir 120*cdf0e10cSrcweir aKey2FT(this, SW_RES(LBL_KEY2 )), 121*cdf0e10cSrcweir aKey2DCB(this, SW_RES(DCB_KEY2 )), 122*cdf0e10cSrcweir aPhoneticFT2(this, SW_RES(FT_PHONETIC_3 )), 123*cdf0e10cSrcweir aPhoneticED2(this, SW_RES(ED_PHONETIC_3 )), 124*cdf0e10cSrcweir 125*cdf0e10cSrcweir aLevelFT(this, SW_RES(LBL_LEVEL )), 126*cdf0e10cSrcweir aLevelED(this, SW_RES(SL_LEVEL )), 127*cdf0e10cSrcweir aMainEntryCB(this, SW_RES(CB_MAIN_ENTRY )), 128*cdf0e10cSrcweir aApplyToAllCB(this,SW_RES(CB_APPLY_TO_ALL)), 129*cdf0e10cSrcweir aSearchCaseSensitiveCB(this, SW_RES(CB_CASESENSITIVE )), 130*cdf0e10cSrcweir aSearchCaseWordOnlyCB(this, SW_RES(CB_WORDONLY )), 131*cdf0e10cSrcweir 132*cdf0e10cSrcweir 133*cdf0e10cSrcweir aOKBT(this, SW_RES(BT_OK )), 134*cdf0e10cSrcweir aCancelBT(this, SW_RES(BT_CANCEL )), 135*cdf0e10cSrcweir aHelpBT(this, SW_RES(BT_HELP )), 136*cdf0e10cSrcweir aDelBT(this, SW_RES(BT_DEL )), 137*cdf0e10cSrcweir 138*cdf0e10cSrcweir aPrevSameBT(this,SW_RES(BT_PREVSAME)), 139*cdf0e10cSrcweir aNextSameBT(this,SW_RES(BT_NXTSAME)), 140*cdf0e10cSrcweir aPrevBT(this, SW_RES(BT_PREV )), 141*cdf0e10cSrcweir aNextBT(this, SW_RES(BT_NXT )), 142*cdf0e10cSrcweir 143*cdf0e10cSrcweir nOptionsId( _nOptionsId ), 144*cdf0e10cSrcweir bDel(sal_False), 145*cdf0e10cSrcweir bNewMark(bNewDlg), 146*cdf0e10cSrcweir bSelected(sal_False), 147*cdf0e10cSrcweir 148*cdf0e10cSrcweir bPhoneticED0_ChangedByUser(sal_False), 149*cdf0e10cSrcweir bPhoneticED1_ChangedByUser(sal_False), 150*cdf0e10cSrcweir bPhoneticED2_ChangedByUser(sal_False), 151*cdf0e10cSrcweir nLangForPhoneticReading(2052), 152*cdf0e10cSrcweir bIsPhoneticReadingEnabled(sal_False), 153*cdf0e10cSrcweir xExtendedIndexEntrySupplier(NULL), 154*cdf0e10cSrcweir pTOXMgr(0), 155*cdf0e10cSrcweir pSh(&rWrtShell) 156*cdf0e10cSrcweir { 157*cdf0e10cSrcweir aNewBT.SetAccessibleRelationMemberOf(&aIndexFL); 158*cdf0e10cSrcweir 159*cdf0e10cSrcweir if( SvtCJKOptions().IsCJKFontEnabled() ) 160*cdf0e10cSrcweir { 161*cdf0e10cSrcweir uno::Reference< lang::XMultiServiceFactory > xMSF = getProcessServiceFactory(); 162*cdf0e10cSrcweir 163*cdf0e10cSrcweir xExtendedIndexEntrySupplier = 164*cdf0e10cSrcweir uno::Reference< i18n::XExtendedIndexEntrySupplier > ( 165*cdf0e10cSrcweir xMSF->createInstance( C2U("com.sun.star.i18n.IndexEntrySupplier") ), 166*cdf0e10cSrcweir uno::UNO_QUERY ); 167*cdf0e10cSrcweir } 168*cdf0e10cSrcweir 169*cdf0e10cSrcweir SetStyle(GetStyle()|WB_DIALOGCONTROL); 170*cdf0e10cSrcweir FreeResource(); 171*cdf0e10cSrcweir aOKBT .SetHelpId(HID_INSERT_IDX_MRK_OK ); 172*cdf0e10cSrcweir aCancelBT .SetHelpId(HID_INSERT_IDX_MRK_CLOSE ); 173*cdf0e10cSrcweir aDelBT .SetHelpId(HID_INSERT_IDX_MRK_DELETE ); 174*cdf0e10cSrcweir aNewBT .SetHelpId(HID_INSERT_IDX_MRK_NEW ); 175*cdf0e10cSrcweir aPrevBT .SetHelpId(HID_INSERT_IDX_MRK_PREV ); 176*cdf0e10cSrcweir aPrevSameBT .SetHelpId(HID_INSERT_IDX_MRK_PREV_SAME ); 177*cdf0e10cSrcweir aNextBT .SetHelpId(HID_INSERT_IDX_MRK_NEXT ); 178*cdf0e10cSrcweir aNextSameBT .SetHelpId(HID_INSERT_IDX_MRK_NEXT_SAME ); 179*cdf0e10cSrcweir aTypeDCB .SetHelpId(HID_INSERT_IDX_MRK_TYPE ); 180*cdf0e10cSrcweir aEntryED .SetHelpId(HID_INSERT_IDX_MRK_ENTRY ); 181*cdf0e10cSrcweir aKeyDCB .SetHelpId(HID_INSERT_IDX_MRK_PRIM_KEY ); 182*cdf0e10cSrcweir aKey2DCB .SetHelpId(HID_INSERT_IDX_MRK_SEC_KEY ); 183*cdf0e10cSrcweir aLevelED .SetHelpId(HID_INSERT_IDX_MRK_LEVEL ); 184*cdf0e10cSrcweir aMainEntryCB .SetHelpId(HID_INSERT_IDX_MRK_MAIN_ENTRY); 185*cdf0e10cSrcweir aApplyToAllCB .SetHelpId(HID_INSERT_IDX_MRK_APPLY_ALL ); 186*cdf0e10cSrcweir aPhoneticED0 .SetHelpId(HID_INSERT_IDX_MRK_PHONETIC_READING ); 187*cdf0e10cSrcweir aPhoneticED1 .SetHelpId(HID_INSERT_IDX_MRK_PHONETIC_READING ); 188*cdf0e10cSrcweir aPhoneticED2 .SetHelpId(HID_INSERT_IDX_MRK_PHONETIC_READING ); 189*cdf0e10cSrcweir 190*cdf0e10cSrcweir aSearchCaseSensitiveCB.SetHelpId( HID_INSERT_IDX_MRK_SRCH_CASESENSITIVE ); 191*cdf0e10cSrcweir aSearchCaseWordOnlyCB.SetHelpId( HID_INSERT_IDX_MRK_SRCH_WORDONLY ); 192*cdf0e10cSrcweir 193*cdf0e10cSrcweir 194*cdf0e10cSrcweir GetParent()->SetText( SW_RESSTR( bNewMark ? STR_IDXMRK_INSERT : STR_IDXMRK_EDIT)); 195*cdf0e10cSrcweir 196*cdf0e10cSrcweir aDelBT.SetClickHdl(LINK(this,SwIndexMarkDlg, DelHdl)); 197*cdf0e10cSrcweir aPrevBT.SetClickHdl(LINK(this,SwIndexMarkDlg, PrevHdl)); 198*cdf0e10cSrcweir aPrevSameBT.SetClickHdl(LINK(this,SwIndexMarkDlg, PrevSameHdl)); 199*cdf0e10cSrcweir aNextBT.SetClickHdl(LINK(this,SwIndexMarkDlg, NextHdl)); 200*cdf0e10cSrcweir aNextSameBT.SetClickHdl(LINK(this,SwIndexMarkDlg, NextSameHdl)); 201*cdf0e10cSrcweir //aTypeDCB.SetModifyHdl(LINK(this,SwIndexMarkDlg, ModifyHdl)); 202*cdf0e10cSrcweir aTypeDCB.SetSelectHdl(LINK(this,SwIndexMarkDlg, ModifyHdl)); 203*cdf0e10cSrcweir aKeyDCB.SetModifyHdl(LINK(this,SwIndexMarkDlg, KeyDCBModifyHdl)); 204*cdf0e10cSrcweir aKey2DCB.SetModifyHdl(LINK(this,SwIndexMarkDlg, KeyDCBModifyHdl)); 205*cdf0e10cSrcweir aOKBT.SetClickHdl(LINK(this,SwIndexMarkDlg, InsertHdl)); 206*cdf0e10cSrcweir aCancelBT.SetClickHdl(LINK(this,SwIndexMarkDlg, CloseHdl)); 207*cdf0e10cSrcweir aEntryED.SetModifyHdl(LINK(this,SwIndexMarkDlg, ModifyHdl)); 208*cdf0e10cSrcweir aNewBT.SetClickHdl(LINK(this, SwIndexMarkDlg, NewUserIdxHdl)); 209*cdf0e10cSrcweir aApplyToAllCB.SetClickHdl(LINK(this, SwIndexMarkDlg, SearchTypeHdl)); 210*cdf0e10cSrcweir aPhoneticED0.SetModifyHdl(LINK(this,SwIndexMarkDlg, PhoneticEDModifyHdl)); 211*cdf0e10cSrcweir aPhoneticED1.SetModifyHdl(LINK(this,SwIndexMarkDlg, PhoneticEDModifyHdl)); 212*cdf0e10cSrcweir aPhoneticED2.SetModifyHdl(LINK(this,SwIndexMarkDlg, PhoneticEDModifyHdl)); 213*cdf0e10cSrcweir 214*cdf0e10cSrcweir if(bNewMark) 215*cdf0e10cSrcweir { 216*cdf0e10cSrcweir aDelBT.Hide(); 217*cdf0e10cSrcweir 218*cdf0e10cSrcweir { 219*cdf0e10cSrcweir ImageList aTempList( SW_RES( IMG_NAVI_ENTRYBMPH ) ); 220*cdf0e10cSrcweir aNewBT.SetModeImage( aTempList.GetImage( SID_SW_START + CONTENT_TYPE_INDEX ), BMP_COLOR_HIGHCONTRAST ); 221*cdf0e10cSrcweir } 222*cdf0e10cSrcweir 223*cdf0e10cSrcweir { 224*cdf0e10cSrcweir ImageList aTempList( SW_RES( IMG_NAVI_ENTRYBMP ) ); 225*cdf0e10cSrcweir aNewBT.SetModeImage( aTempList.GetImage( SID_SW_START + CONTENT_TYPE_INDEX ), BMP_COLOR_NORMAL ); 226*cdf0e10cSrcweir } 227*cdf0e10cSrcweir } 228*cdf0e10cSrcweir else 229*cdf0e10cSrcweir { 230*cdf0e10cSrcweir aNewBT.Hide(); 231*cdf0e10cSrcweir OKButton aTmp(this, WB_HIDE); 232*cdf0e10cSrcweir aOKBT.SetText( aTmp.GetText() ); 233*cdf0e10cSrcweir } 234*cdf0e10cSrcweir 235*cdf0e10cSrcweir aEntryED.GrabFocus(); 236*cdf0e10cSrcweir } 237*cdf0e10cSrcweir 238*cdf0e10cSrcweir /*-------------------------------------------------------------------- 239*cdf0e10cSrcweir Beschreibung: Controls neu initialisieren mit der aktuellen 240*cdf0e10cSrcweir Markierung 241*cdf0e10cSrcweir --------------------------------------------------------------------*/ 242*cdf0e10cSrcweir 243*cdf0e10cSrcweir 244*cdf0e10cSrcweir void SwIndexMarkDlg::InitControls() 245*cdf0e10cSrcweir { 246*cdf0e10cSrcweir DBG_ASSERT(pSh && pTOXMgr, "Shell nicht da?"); 247*cdf0e10cSrcweir // Inhalts-Verzeichnis 248*cdf0e10cSrcweir const SwTOXType* pType = pTOXMgr->GetTOXType(TOX_CONTENT, 0); 249*cdf0e10cSrcweir ASSERT(pType, "Kein Verzeichnistyp !!"); 250*cdf0e10cSrcweir String sTmpTypeSelection; 251*cdf0e10cSrcweir if(aTypeDCB.GetSelectEntryCount()) 252*cdf0e10cSrcweir sTmpTypeSelection = aTypeDCB.GetSelectEntry(); 253*cdf0e10cSrcweir aTypeDCB.Clear(); 254*cdf0e10cSrcweir aTypeDCB.InsertEntry(pType->GetTypeName()); 255*cdf0e10cSrcweir 256*cdf0e10cSrcweir // Stichwort-Verzeichnis 257*cdf0e10cSrcweir pType = pTOXMgr->GetTOXType(TOX_INDEX, 0); 258*cdf0e10cSrcweir ASSERT(pType, "Kein Verzeichnistyp !!"); 259*cdf0e10cSrcweir aTypeDCB.InsertEntry(pType->GetTypeName()); 260*cdf0e10cSrcweir 261*cdf0e10cSrcweir // Benutzerverzeichnisse 262*cdf0e10cSrcweir sal_uInt16 nCount = pSh->GetTOXTypeCount(TOX_USER); 263*cdf0e10cSrcweir sal_uInt16 i; 264*cdf0e10cSrcweir for( i = 0; i < nCount; ++i ) 265*cdf0e10cSrcweir aTypeDCB.InsertEntry( pSh->GetTOXType(TOX_USER, i)->GetTypeName() ); 266*cdf0e10cSrcweir 267*cdf0e10cSrcweir // KeyWords Primary einlesen 268*cdf0e10cSrcweir SvStringsSort aArr; 269*cdf0e10cSrcweir nCount = pSh->GetTOIKeys( TOI_PRIMARY, aArr ); 270*cdf0e10cSrcweir for(i=0; i < nCount; ++i) 271*cdf0e10cSrcweir aKeyDCB.InsertEntry( *aArr[ i ] ); 272*cdf0e10cSrcweir 273*cdf0e10cSrcweir // KeyWords Secondary einlesen 274*cdf0e10cSrcweir nCount = pSh->GetTOIKeys( TOI_SECONDARY, aArr ); 275*cdf0e10cSrcweir for(i=0; i < nCount; ++i) 276*cdf0e10cSrcweir aKey2DCB.InsertEntry( *aArr[ i ] ); 277*cdf0e10cSrcweir 278*cdf0e10cSrcweir UpdateLanguageDependenciesForPhoneticReading(); 279*cdf0e10cSrcweir 280*cdf0e10cSrcweir // Aktueller Eintrag 281*cdf0e10cSrcweir const SwTOXMark* pMark = pTOXMgr->GetCurTOXMark(); 282*cdf0e10cSrcweir if( pMark && !bNewMark) 283*cdf0e10cSrcweir { 284*cdf0e10cSrcweir // Controls-Handling 285*cdf0e10cSrcweir 286*cdf0e10cSrcweir // nur wenn mehr als eins vorhanden 287*cdf0e10cSrcweir // wenn gleich landet es auf dem gleichen Eintrag 288*cdf0e10cSrcweir pSh->SttCrsrMove(); 289*cdf0e10cSrcweir 290*cdf0e10cSrcweir const SwTOXMark* pMoveMark; 291*cdf0e10cSrcweir sal_Bool bShow = sal_False; 292*cdf0e10cSrcweir 293*cdf0e10cSrcweir pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_PRV ); 294*cdf0e10cSrcweir if( pMoveMark != pMark ) 295*cdf0e10cSrcweir pSh->GotoTOXMark( *pMoveMark, TOX_NXT ), bShow = sal_True; 296*cdf0e10cSrcweir aPrevBT.Enable( pMoveMark != pMark ); 297*cdf0e10cSrcweir pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_NXT ); 298*cdf0e10cSrcweir if( pMoveMark != pMark ) 299*cdf0e10cSrcweir pSh->GotoTOXMark( *pMoveMark, TOX_PRV ), bShow = sal_True; 300*cdf0e10cSrcweir aNextBT.Enable( pMoveMark != pMark ); 301*cdf0e10cSrcweir if( bShow ) 302*cdf0e10cSrcweir { 303*cdf0e10cSrcweir aPrevBT.Show(); 304*cdf0e10cSrcweir aNextBT.Show(); 305*cdf0e10cSrcweir bShow = sal_False; 306*cdf0e10cSrcweir } 307*cdf0e10cSrcweir 308*cdf0e10cSrcweir pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_PRV ); 309*cdf0e10cSrcweir if( pMoveMark != pMark ) 310*cdf0e10cSrcweir pSh->GotoTOXMark( *pMoveMark, TOX_SAME_NXT ), bShow = sal_True; 311*cdf0e10cSrcweir aPrevSameBT.Enable( pMoveMark != pMark ); 312*cdf0e10cSrcweir pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_NXT ); 313*cdf0e10cSrcweir if( pMoveMark != pMark ) 314*cdf0e10cSrcweir pSh->GotoTOXMark( *pMoveMark, TOX_SAME_PRV ), bShow = sal_True; 315*cdf0e10cSrcweir aNextSameBT.Enable( pMoveMark != pMark ); 316*cdf0e10cSrcweir if( bShow ) 317*cdf0e10cSrcweir { 318*cdf0e10cSrcweir aNextSameBT.Show(); 319*cdf0e10cSrcweir aPrevSameBT.Show(); 320*cdf0e10cSrcweir } 321*cdf0e10cSrcweir pSh->EndCrsrMove(); 322*cdf0e10cSrcweir 323*cdf0e10cSrcweir aTypeFT.Show(); 324*cdf0e10cSrcweir 325*cdf0e10cSrcweir aTypeDCB.Enable(sal_False); 326*cdf0e10cSrcweir aTypeFT.Enable(sal_False); 327*cdf0e10cSrcweir 328*cdf0e10cSrcweir UpdateDialog(); 329*cdf0e10cSrcweir } 330*cdf0e10cSrcweir else 331*cdf0e10cSrcweir { // aktuelle Selektion (1.Element) anzeigen ???? 332*cdf0e10cSrcweir sal_uInt16 nCnt = pSh->GetCrsrCnt(); 333*cdf0e10cSrcweir if (nCnt < 2) 334*cdf0e10cSrcweir { 335*cdf0e10cSrcweir bSelected = !pSh->HasSelection(); 336*cdf0e10cSrcweir aOrgStr = pSh->GetView().GetSelectionTextParam(sal_True, sal_False); 337*cdf0e10cSrcweir aEntryED.SetText(aOrgStr); 338*cdf0e10cSrcweir 339*cdf0e10cSrcweir //alle gleichen Eintraege aufzunehmen darf nur im Body und auch da nur 340*cdf0e10cSrcweir //bei vorhandener einfacher Selektion erlaubt werden 341*cdf0e10cSrcweir const sal_uInt16 nFrmType = pSh->GetFrmType(0,sal_True); 342*cdf0e10cSrcweir aApplyToAllCB.Show(); 343*cdf0e10cSrcweir aSearchCaseSensitiveCB.Show(); 344*cdf0e10cSrcweir aSearchCaseWordOnlyCB.Show(); 345*cdf0e10cSrcweir aApplyToAllCB.Enable(0 != aOrgStr.Len() && 346*cdf0e10cSrcweir 0 == (nFrmType & ( FRMTYPE_HEADER | FRMTYPE_FOOTER | FRMTYPE_FLY_ANY ))); 347*cdf0e10cSrcweir SearchTypeHdl(&aApplyToAllCB); 348*cdf0e10cSrcweir } 349*cdf0e10cSrcweir 350*cdf0e10cSrcweir // Verzeichnistyp ist default 351*cdf0e10cSrcweir if( sTmpTypeSelection.Len() && 352*cdf0e10cSrcweir LISTBOX_ENTRY_NOTFOUND != aTypeDCB.GetEntryPos( sTmpTypeSelection ) ) 353*cdf0e10cSrcweir aTypeDCB.SelectEntry(sTmpTypeSelection); 354*cdf0e10cSrcweir else 355*cdf0e10cSrcweir aTypeDCB.SelectEntry(aTypeDCB.GetEntry(nTypePos)); 356*cdf0e10cSrcweir ModifyHdl(&aTypeDCB); 357*cdf0e10cSrcweir } 358*cdf0e10cSrcweir } 359*cdf0e10cSrcweir 360*cdf0e10cSrcweir void SwIndexMarkDlg::UpdateLanguageDependenciesForPhoneticReading() 361*cdf0e10cSrcweir { 362*cdf0e10cSrcweir //no phonetic reading if no global cjk support 363*cdf0e10cSrcweir if( !xExtendedIndexEntrySupplier.is() ) 364*cdf0e10cSrcweir { 365*cdf0e10cSrcweir bIsPhoneticReadingEnabled = sal_False; 366*cdf0e10cSrcweir return; 367*cdf0e10cSrcweir } 368*cdf0e10cSrcweir bIsPhoneticReadingEnabled = sal_True; 369*cdf0e10cSrcweir 370*cdf0e10cSrcweir //get the current language 371*cdf0e10cSrcweir if(!bNewMark) //if dialog is opened to iterate existing marks 372*cdf0e10cSrcweir { 373*cdf0e10cSrcweir ASSERT(pTOXMgr, "need TOXMgr") 374*cdf0e10cSrcweir if(!pTOXMgr) 375*cdf0e10cSrcweir return; 376*cdf0e10cSrcweir SwTOXMark* pMark = pTOXMgr->GetCurTOXMark(); 377*cdf0e10cSrcweir ASSERT(pMark, "need current SwTOXMark"); 378*cdf0e10cSrcweir if(!pMark) 379*cdf0e10cSrcweir return; 380*cdf0e10cSrcweir SwTxtTOXMark* pTxtTOXMark = pMark->GetTxtTOXMark(); 381*cdf0e10cSrcweir ASSERT(pTxtTOXMark, "need current SwTxtTOXMark"); 382*cdf0e10cSrcweir if(!pTxtTOXMark) 383*cdf0e10cSrcweir return; 384*cdf0e10cSrcweir const SwTxtNode* pTxtNode = pTxtTOXMark->GetpTxtNd(); 385*cdf0e10cSrcweir ASSERT(pTxtNode, "need current SwTxtNode"); 386*cdf0e10cSrcweir if(!pTxtNode) 387*cdf0e10cSrcweir return; 388*cdf0e10cSrcweir xub_StrLen nTextIndex = *pTxtTOXMark->GetStart(); 389*cdf0e10cSrcweir nLangForPhoneticReading = pTxtNode->GetLang( nTextIndex ); 390*cdf0e10cSrcweir } 391*cdf0e10cSrcweir else //if dialog is opened to create a new mark 392*cdf0e10cSrcweir { 393*cdf0e10cSrcweir sal_uInt16 nScriptType = pSh->GetScriptType(); 394*cdf0e10cSrcweir sal_uInt16 nWhich; 395*cdf0e10cSrcweir switch(nScriptType) 396*cdf0e10cSrcweir { 397*cdf0e10cSrcweir case SCRIPTTYPE_ASIAN: nWhich = RES_CHRATR_CJK_LANGUAGE; break; 398*cdf0e10cSrcweir case SCRIPTTYPE_COMPLEX:nWhich = RES_CHRATR_CTL_LANGUAGE; break; 399*cdf0e10cSrcweir //case SCRIPTTYPE_LATIN: 400*cdf0e10cSrcweir default:nWhich = RES_CHRATR_LANGUAGE; break; 401*cdf0e10cSrcweir } 402*cdf0e10cSrcweir SfxItemSet aLangSet(pSh->GetAttrPool(), nWhich, nWhich); 403*cdf0e10cSrcweir pSh->GetCurAttr(aLangSet); 404*cdf0e10cSrcweir nLangForPhoneticReading = ((const SvxLanguageItem&)aLangSet.Get(nWhich)).GetLanguage(); 405*cdf0e10cSrcweir } 406*cdf0e10cSrcweir 407*cdf0e10cSrcweir /* 408*cdf0e10cSrcweir //enable phonetic reading dependent on the current language 409*cdf0e10cSrcweir { 410*cdf0e10cSrcweir lang::Locale aLocale( SvxCreateLocale( LanguageType( nLangForPhoneticReading ) ) ); 411*cdf0e10cSrcweir bIsPhoneticReadingEnabled = xExtendedIndexEntrySupplier->usePhoneticEntry( aLocale ); 412*cdf0e10cSrcweir } 413*cdf0e10cSrcweir */ 414*cdf0e10cSrcweir } 415*cdf0e10cSrcweir 416*cdf0e10cSrcweir String SwIndexMarkDlg::GetDefaultPhoneticReading( const String& rText ) 417*cdf0e10cSrcweir { 418*cdf0e10cSrcweir if( !bIsPhoneticReadingEnabled ) 419*cdf0e10cSrcweir return aEmptyStr; 420*cdf0e10cSrcweir 421*cdf0e10cSrcweir lang::Locale aLocale( SvxCreateLocale( LanguageType( nLangForPhoneticReading ) ) ); 422*cdf0e10cSrcweir return xExtendedIndexEntrySupplier->getPhoneticCandidate(rText, aLocale); 423*cdf0e10cSrcweir } 424*cdf0e10cSrcweir 425*cdf0e10cSrcweir /* -----------------07.09.99 10:43------------------- 426*cdf0e10cSrcweir Change the content of aEntryED if text is selected 427*cdf0e10cSrcweir --------------------------------------------------*/ 428*cdf0e10cSrcweir 429*cdf0e10cSrcweir void SwIndexMarkDlg::Activate() 430*cdf0e10cSrcweir { 431*cdf0e10cSrcweir // aktuelle Selektion (1.Element) anzeigen ???? 432*cdf0e10cSrcweir if(bNewMark) 433*cdf0e10cSrcweir { 434*cdf0e10cSrcweir sal_uInt16 nCnt = pSh->GetCrsrCnt(); 435*cdf0e10cSrcweir if (nCnt < 2) 436*cdf0e10cSrcweir { 437*cdf0e10cSrcweir bSelected = !pSh->HasSelection(); 438*cdf0e10cSrcweir aOrgStr = pSh->GetView().GetSelectionTextParam(sal_True, sal_False); 439*cdf0e10cSrcweir aEntryED.SetText(aOrgStr); 440*cdf0e10cSrcweir 441*cdf0e10cSrcweir //alle gleichen Eintraege aufzunehmen darf nur im Body und auch da nur 442*cdf0e10cSrcweir //bei vorhandener einfacher Selektion erlaubt werden 443*cdf0e10cSrcweir const sal_uInt16 nFrmType = pSh->GetFrmType(0,sal_True); 444*cdf0e10cSrcweir aApplyToAllCB.Show(); 445*cdf0e10cSrcweir aSearchCaseSensitiveCB.Show(); 446*cdf0e10cSrcweir aSearchCaseWordOnlyCB.Show(); 447*cdf0e10cSrcweir aApplyToAllCB.Enable(0 != aOrgStr.Len() && 448*cdf0e10cSrcweir 0 == (nFrmType & ( FRMTYPE_HEADER | FRMTYPE_FOOTER | FRMTYPE_FLY_ANY ))); 449*cdf0e10cSrcweir SearchTypeHdl(&aApplyToAllCB); 450*cdf0e10cSrcweir } 451*cdf0e10cSrcweir ModifyHdl(&aTypeDCB); 452*cdf0e10cSrcweir } 453*cdf0e10cSrcweir } 454*cdf0e10cSrcweir 455*cdf0e10cSrcweir /*-------------------------------------------------------------------- 456*cdf0e10cSrcweir Beschreibung: Ok-Button auswerten 457*cdf0e10cSrcweir --------------------------------------------------------------------*/ 458*cdf0e10cSrcweir void SwIndexMarkDlg::Apply() 459*cdf0e10cSrcweir { 460*cdf0e10cSrcweir InsertUpdate(); 461*cdf0e10cSrcweir if(bSelected) 462*cdf0e10cSrcweir pSh->ResetSelect(0, sal_False); 463*cdf0e10cSrcweir } 464*cdf0e10cSrcweir 465*cdf0e10cSrcweir /*-------------------------------------------------------------------- 466*cdf0e10cSrcweir Beschreibung: Aenderungen uebernehmen 467*cdf0e10cSrcweir --------------------------------------------------------------------*/ 468*cdf0e10cSrcweir 469*cdf0e10cSrcweir 470*cdf0e10cSrcweir void SwIndexMarkDlg::InsertUpdate() 471*cdf0e10cSrcweir { 472*cdf0e10cSrcweir pSh->StartUndo(bDel ? UNDO_INDEX_ENTRY_DELETE : UNDO_INDEX_ENTRY_INSERT); 473*cdf0e10cSrcweir pSh->StartAllAction(); 474*cdf0e10cSrcweir 475*cdf0e10cSrcweir SwRewriter aRewriter; 476*cdf0e10cSrcweir 477*cdf0e10cSrcweir if( bNewMark ) 478*cdf0e10cSrcweir { 479*cdf0e10cSrcweir InsertMark(); 480*cdf0e10cSrcweir 481*cdf0e10cSrcweir if ( pTOXMgr->GetCurTOXMark()) 482*cdf0e10cSrcweir aRewriter.AddRule(UNDO_ARG1, pTOXMgr->GetCurTOXMark()->GetText()); 483*cdf0e10cSrcweir } 484*cdf0e10cSrcweir else if( !pSh->HasReadonlySel() ) 485*cdf0e10cSrcweir { 486*cdf0e10cSrcweir if ( pTOXMgr->GetCurTOXMark()) 487*cdf0e10cSrcweir aRewriter.AddRule(UNDO_ARG1, 488*cdf0e10cSrcweir pTOXMgr->GetCurTOXMark()->GetText()); 489*cdf0e10cSrcweir 490*cdf0e10cSrcweir if( bDel ) 491*cdf0e10cSrcweir pTOXMgr->DeleteTOXMark(); 492*cdf0e10cSrcweir else if( pTOXMgr->GetCurTOXMark() ) 493*cdf0e10cSrcweir UpdateMark(); 494*cdf0e10cSrcweir } 495*cdf0e10cSrcweir 496*cdf0e10cSrcweir pSh->EndAllAction(); 497*cdf0e10cSrcweir pSh->EndUndo(bDel ? UNDO_INDEX_ENTRY_DELETE : UNDO_INDEX_ENTRY_INSERT); 498*cdf0e10cSrcweir 499*cdf0e10cSrcweir if((nTypePos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry())) == LISTBOX_ENTRY_NOTFOUND) 500*cdf0e10cSrcweir nTypePos = 0; 501*cdf0e10cSrcweir 502*cdf0e10cSrcweir nKey1Pos = aKeyDCB.GetEntryPos(aKeyDCB.GetText()); 503*cdf0e10cSrcweir nKey2Pos = aKey2DCB.GetEntryPos(aKey2DCB.GetText()); 504*cdf0e10cSrcweir } 505*cdf0e10cSrcweir 506*cdf0e10cSrcweir /*-------------------------------------------------------------------- 507*cdf0e10cSrcweir Beschreibung: Marke einfuegen 508*cdf0e10cSrcweir --------------------------------------------------------------------*/ 509*cdf0e10cSrcweir static void lcl_SelectSameStrings(SwWrtShell& rSh, sal_Bool bWordOnly, sal_Bool bCaseSensitive) 510*cdf0e10cSrcweir { 511*cdf0e10cSrcweir rSh.Push(); 512*cdf0e10cSrcweir 513*cdf0e10cSrcweir SearchOptions aSearchOpt( 514*cdf0e10cSrcweir SearchAlgorithms_ABSOLUTE, 515*cdf0e10cSrcweir ( bWordOnly ? SearchFlags::NORM_WORD_ONLY : 0 ), 516*cdf0e10cSrcweir rSh.GetSelTxt(), OUString(), 517*cdf0e10cSrcweir SvxCreateLocale( GetAppLanguage() ), 518*cdf0e10cSrcweir 0, 0, 0, 519*cdf0e10cSrcweir (bCaseSensitive 520*cdf0e10cSrcweir ? 0 521*cdf0e10cSrcweir : TransliterationModules_IGNORE_CASE) ); 522*cdf0e10cSrcweir 523*cdf0e10cSrcweir rSh.ClearMark(); 524*cdf0e10cSrcweir sal_Bool bCancel; 525*cdf0e10cSrcweir 526*cdf0e10cSrcweir //todo/mba: assuming that notes should not be searched 527*cdf0e10cSrcweir sal_Bool bSearchInNotes = sal_False; 528*cdf0e10cSrcweir rSh.Find( aSearchOpt, bSearchInNotes, DOCPOS_START, DOCPOS_END, bCancel, 529*cdf0e10cSrcweir (FindRanges)(FND_IN_SELALL|FND_IN_BODYONLY), sal_False ); 530*cdf0e10cSrcweir } 531*cdf0e10cSrcweir 532*cdf0e10cSrcweir 533*cdf0e10cSrcweir void SwIndexMarkDlg::InsertMark() 534*cdf0e10cSrcweir { 535*cdf0e10cSrcweir sal_uInt16 nPos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry()); 536*cdf0e10cSrcweir TOXTypes eType = nPos == POS_CONTENT ? TOX_CONTENT : 537*cdf0e10cSrcweir nPos == POS_INDEX ? TOX_INDEX : TOX_USER; 538*cdf0e10cSrcweir 539*cdf0e10cSrcweir SwTOXMarkDescription aDesc(eType); 540*cdf0e10cSrcweir 541*cdf0e10cSrcweir sal_uInt16 nLevel = (sal_uInt16)aLevelED.Denormalize(aLevelED.GetValue()); 542*cdf0e10cSrcweir switch(nPos) 543*cdf0e10cSrcweir { 544*cdf0e10cSrcweir case POS_CONTENT : break; 545*cdf0e10cSrcweir case POS_INDEX: // Stichwortverzeichnismarke 546*cdf0e10cSrcweir { 547*cdf0e10cSrcweir UpdateKeyBoxes(); 548*cdf0e10cSrcweir String aPrim(aKeyDCB.GetText()); 549*cdf0e10cSrcweir String aSec(aKey2DCB.GetText()); 550*cdf0e10cSrcweir aDesc.SetPrimKey(aPrim); 551*cdf0e10cSrcweir aDesc.SetSecKey(aSec); 552*cdf0e10cSrcweir aDesc.SetMainEntry(aMainEntryCB.IsChecked()); 553*cdf0e10cSrcweir aDesc.SetPhoneticReadingOfAltStr(aPhoneticED0.GetText()); 554*cdf0e10cSrcweir aDesc.SetPhoneticReadingOfPrimKey(aPhoneticED1.GetText()); 555*cdf0e10cSrcweir aDesc.SetPhoneticReadingOfSecKey(aPhoneticED2.GetText()); 556*cdf0e10cSrcweir } 557*cdf0e10cSrcweir break; 558*cdf0e10cSrcweir default: // Userdefinedverz.-Marke 559*cdf0e10cSrcweir { 560*cdf0e10cSrcweir String aName(aTypeDCB.GetSelectEntry()); 561*cdf0e10cSrcweir aDesc.SetTOUName(aName); 562*cdf0e10cSrcweir } 563*cdf0e10cSrcweir } 564*cdf0e10cSrcweir if (aOrgStr != aEntryED.GetText()) 565*cdf0e10cSrcweir aDesc.SetAltStr(aEntryED.GetText()); 566*cdf0e10cSrcweir sal_Bool bApplyAll = aApplyToAllCB.IsChecked(); 567*cdf0e10cSrcweir sal_Bool bWordOnly = aSearchCaseWordOnlyCB.IsChecked(); 568*cdf0e10cSrcweir sal_Bool bCaseSensitive = aSearchCaseSensitiveCB.IsChecked(); 569*cdf0e10cSrcweir 570*cdf0e10cSrcweir pSh->StartAllAction(); 571*cdf0e10cSrcweir // hier muessen alle gleichen Strings selektiert werden 572*cdf0e10cSrcweir // damit der Eintrag auf alle gleichen Strings angewandt wird 573*cdf0e10cSrcweir if(bApplyAll) 574*cdf0e10cSrcweir { 575*cdf0e10cSrcweir lcl_SelectSameStrings(*pSh, bWordOnly, bCaseSensitive); 576*cdf0e10cSrcweir } 577*cdf0e10cSrcweir aDesc.SetLevel(nLevel); 578*cdf0e10cSrcweir SwTOXMgr aMgr(pSh); 579*cdf0e10cSrcweir aMgr.InsertTOXMark(aDesc); 580*cdf0e10cSrcweir if(bApplyAll) 581*cdf0e10cSrcweir pSh->Pop(sal_False); 582*cdf0e10cSrcweir 583*cdf0e10cSrcweir pSh->EndAllAction(); 584*cdf0e10cSrcweir } 585*cdf0e10cSrcweir 586*cdf0e10cSrcweir /*-------------------------------------------------------------------- 587*cdf0e10cSrcweir Beschreibung: Marke Updaten 588*cdf0e10cSrcweir --------------------------------------------------------------------*/ 589*cdf0e10cSrcweir 590*cdf0e10cSrcweir 591*cdf0e10cSrcweir void SwIndexMarkDlg::UpdateMark() 592*cdf0e10cSrcweir { 593*cdf0e10cSrcweir String aAltText(aEntryED.GetText()); 594*cdf0e10cSrcweir String* pAltText = aOrgStr != aEntryED.GetText() ? &aAltText : 0; 595*cdf0e10cSrcweir //empty alternative texts are not allowed 596*cdf0e10cSrcweir if(pAltText && !pAltText->Len()) 597*cdf0e10cSrcweir return; 598*cdf0e10cSrcweir 599*cdf0e10cSrcweir UpdateKeyBoxes(); 600*cdf0e10cSrcweir 601*cdf0e10cSrcweir sal_uInt16 nPos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry()); 602*cdf0e10cSrcweir TOXTypes eType = TOX_USER; 603*cdf0e10cSrcweir if(POS_CONTENT == nPos) 604*cdf0e10cSrcweir eType = TOX_CONTENT; 605*cdf0e10cSrcweir else if(POS_INDEX == nPos) 606*cdf0e10cSrcweir eType = TOX_INDEX; 607*cdf0e10cSrcweir 608*cdf0e10cSrcweir SwTOXMarkDescription aDesc(eType); 609*cdf0e10cSrcweir aDesc.SetLevel( static_cast< int >(aLevelED.GetValue()) ); 610*cdf0e10cSrcweir if(pAltText) 611*cdf0e10cSrcweir aDesc.SetAltStr(*pAltText); 612*cdf0e10cSrcweir 613*cdf0e10cSrcweir String aPrim(aKeyDCB.GetText()); 614*cdf0e10cSrcweir if(aPrim.Len()) 615*cdf0e10cSrcweir aDesc.SetPrimKey(aPrim); 616*cdf0e10cSrcweir String aSec(aKey2DCB.GetText()); 617*cdf0e10cSrcweir if(aSec.Len()) 618*cdf0e10cSrcweir aDesc.SetSecKey(aSec); 619*cdf0e10cSrcweir 620*cdf0e10cSrcweir if(eType == TOX_INDEX) 621*cdf0e10cSrcweir { 622*cdf0e10cSrcweir aDesc.SetPhoneticReadingOfAltStr(aPhoneticED0.GetText()); 623*cdf0e10cSrcweir aDesc.SetPhoneticReadingOfPrimKey(aPhoneticED1.GetText()); 624*cdf0e10cSrcweir aDesc.SetPhoneticReadingOfSecKey(aPhoneticED2.GetText()); 625*cdf0e10cSrcweir } 626*cdf0e10cSrcweir aDesc.SetMainEntry(aMainEntryCB.IsVisible() && aMainEntryCB.IsChecked()); 627*cdf0e10cSrcweir pTOXMgr->UpdateTOXMark(aDesc); 628*cdf0e10cSrcweir } 629*cdf0e10cSrcweir 630*cdf0e10cSrcweir /*-------------------------------------------------------------------- 631*cdf0e10cSrcweir Beschreibung: Neue Keys eintragen 632*cdf0e10cSrcweir --------------------------------------------------------------------*/ 633*cdf0e10cSrcweir 634*cdf0e10cSrcweir 635*cdf0e10cSrcweir void SwIndexMarkDlg::UpdateKeyBoxes() 636*cdf0e10cSrcweir { 637*cdf0e10cSrcweir String aKey(aKeyDCB.GetText()); 638*cdf0e10cSrcweir sal_uInt16 nPos = aKeyDCB.GetEntryPos(aKey); 639*cdf0e10cSrcweir 640*cdf0e10cSrcweir if(nPos == LISTBOX_ENTRY_NOTFOUND && aKey.Len() > 0) 641*cdf0e10cSrcweir { // neuen Key erzeugen 642*cdf0e10cSrcweir aKeyDCB.InsertEntry(aKey); 643*cdf0e10cSrcweir } 644*cdf0e10cSrcweir 645*cdf0e10cSrcweir aKey = aKey2DCB.GetText(); 646*cdf0e10cSrcweir nPos = aKey2DCB.GetEntryPos(aKey); 647*cdf0e10cSrcweir 648*cdf0e10cSrcweir if(nPos == LISTBOX_ENTRY_NOTFOUND && aKey.Len() > 0) 649*cdf0e10cSrcweir { // neuen Key erzeugen 650*cdf0e10cSrcweir aKey2DCB.InsertEntry(aKey); 651*cdf0e10cSrcweir } 652*cdf0e10cSrcweir } 653*cdf0e10cSrcweir /* -----------------13.10.99 15:10------------------- 654*cdf0e10cSrcweir 655*cdf0e10cSrcweir --------------------------------------------------*/ 656*cdf0e10cSrcweir class SwNewUserIdxDlg : public ModalDialog 657*cdf0e10cSrcweir { 658*cdf0e10cSrcweir OKButton aOKPB; 659*cdf0e10cSrcweir CancelButton aCancelPB; 660*cdf0e10cSrcweir HelpButton aHelpPB; 661*cdf0e10cSrcweir FixedLine aNameFL; 662*cdf0e10cSrcweir FixedText aNameFT; 663*cdf0e10cSrcweir Edit aNameED; 664*cdf0e10cSrcweir 665*cdf0e10cSrcweir SwIndexMarkDlg* pDlg; 666*cdf0e10cSrcweir 667*cdf0e10cSrcweir DECL_LINK( ModifyHdl, Edit*); 668*cdf0e10cSrcweir 669*cdf0e10cSrcweir public: 670*cdf0e10cSrcweir SwNewUserIdxDlg(SwIndexMarkDlg* pParent) : 671*cdf0e10cSrcweir ModalDialog(pParent, SW_RES(DLG_NEW_USER_IDX)), 672*cdf0e10cSrcweir aOKPB(this, SW_RES( PB_OK )), 673*cdf0e10cSrcweir aCancelPB(this, SW_RES( PB_CANCEL )), 674*cdf0e10cSrcweir aHelpPB(this, SW_RES( PB_HELP )), 675*cdf0e10cSrcweir aNameFL(this, SW_RES( FL_NAME )), 676*cdf0e10cSrcweir aNameFT(this, SW_RES( FT_NAME )), 677*cdf0e10cSrcweir aNameED(this, SW_RES( ED_NAME )), 678*cdf0e10cSrcweir pDlg(pParent) 679*cdf0e10cSrcweir { 680*cdf0e10cSrcweir FreeResource(); 681*cdf0e10cSrcweir aNameED.SetModifyHdl(LINK(this, SwNewUserIdxDlg, ModifyHdl)); 682*cdf0e10cSrcweir aOKPB.Enable(sal_False); 683*cdf0e10cSrcweir aNameED.GrabFocus(); 684*cdf0e10cSrcweir } 685*cdf0e10cSrcweir 686*cdf0e10cSrcweir virtual void Apply(); 687*cdf0e10cSrcweir String GetName(){return aNameED.GetText();} 688*cdf0e10cSrcweir }; 689*cdf0e10cSrcweir void SwNewUserIdxDlg::Apply() 690*cdf0e10cSrcweir { 691*cdf0e10cSrcweir } 692*cdf0e10cSrcweir 693*cdf0e10cSrcweir IMPL_LINK( SwNewUserIdxDlg, ModifyHdl, Edit*, pEdit) 694*cdf0e10cSrcweir { 695*cdf0e10cSrcweir aOKPB.Enable(pEdit->GetText().Len() && !pDlg->IsTOXType(pEdit->GetText())); 696*cdf0e10cSrcweir return 0; 697*cdf0e10cSrcweir } 698*cdf0e10cSrcweir 699*cdf0e10cSrcweir IMPL_LINK( SwIndexMarkDlg, NewUserIdxHdl, Button*, EMPTYARG) 700*cdf0e10cSrcweir { 701*cdf0e10cSrcweir SwNewUserIdxDlg* pDlg = new SwNewUserIdxDlg(this); 702*cdf0e10cSrcweir if(RET_OK == pDlg->Execute()) 703*cdf0e10cSrcweir { 704*cdf0e10cSrcweir String sNewName(pDlg->GetName()); 705*cdf0e10cSrcweir aTypeDCB.InsertEntry(sNewName); 706*cdf0e10cSrcweir aTypeDCB.SelectEntry(sNewName); 707*cdf0e10cSrcweir } 708*cdf0e10cSrcweir delete pDlg; 709*cdf0e10cSrcweir return 0; 710*cdf0e10cSrcweir } 711*cdf0e10cSrcweir /* -----------------------------17.01.00 12:18-------------------------------- 712*cdf0e10cSrcweir 713*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 714*cdf0e10cSrcweir IMPL_LINK( SwIndexMarkDlg, SearchTypeHdl, CheckBox*, pBox) 715*cdf0e10cSrcweir { 716*cdf0e10cSrcweir sal_Bool bEnable = pBox->IsChecked() && pBox->IsEnabled(); 717*cdf0e10cSrcweir aSearchCaseWordOnlyCB.Enable(bEnable); 718*cdf0e10cSrcweir aSearchCaseSensitiveCB.Enable(bEnable); 719*cdf0e10cSrcweir return 0; 720*cdf0e10cSrcweir } 721*cdf0e10cSrcweir /* -----------------07.09.99 10:30------------------- 722*cdf0e10cSrcweir 723*cdf0e10cSrcweir --------------------------------------------------*/ 724*cdf0e10cSrcweir IMPL_LINK( SwIndexMarkDlg, InsertHdl, Button *, pButton ) 725*cdf0e10cSrcweir { 726*cdf0e10cSrcweir Apply(); 727*cdf0e10cSrcweir //close the dialog if only one entry is available 728*cdf0e10cSrcweir if(!bNewMark && !aPrevBT.IsVisible() && !aNextBT.IsVisible()) 729*cdf0e10cSrcweir CloseHdl(pButton); 730*cdf0e10cSrcweir return 0; 731*cdf0e10cSrcweir } 732*cdf0e10cSrcweir /* -----------------07.09.99 10:29------------------- 733*cdf0e10cSrcweir 734*cdf0e10cSrcweir --------------------------------------------------*/ 735*cdf0e10cSrcweir IMPL_LINK( SwIndexMarkDlg, CloseHdl, Button *, EMPTYARG ) 736*cdf0e10cSrcweir { 737*cdf0e10cSrcweir if(bNewMark) 738*cdf0e10cSrcweir { 739*cdf0e10cSrcweir sal_uInt16 nSlot = FN_INSERT_IDX_ENTRY_DLG; 740*cdf0e10cSrcweir SfxViewFrame::Current()->GetDispatcher()->Execute(nSlot, 741*cdf0e10cSrcweir SFX_CALLMODE_ASYNCHRON|SFX_CALLMODE_RECORD); 742*cdf0e10cSrcweir } 743*cdf0e10cSrcweir else 744*cdf0e10cSrcweir { 745*cdf0e10cSrcweir ((SwIndexMarkModalDlg*)GetParent())->EndDialog(RET_CANCEL); 746*cdf0e10cSrcweir } 747*cdf0e10cSrcweir return 0; 748*cdf0e10cSrcweir } 749*cdf0e10cSrcweir /*-------------------------------------------------------------------- 750*cdf0e10cSrcweir Beschreibung: VerzeichnisTyp auswaehlen nur bei Einfuegen 751*cdf0e10cSrcweir --------------------------------------------------------------------*/ 752*cdf0e10cSrcweir IMPL_LINK( SwIndexMarkDlg, ModifyHdl, ListBox *, pBox ) 753*cdf0e10cSrcweir { 754*cdf0e10cSrcweir if(&aTypeDCB == pBox) 755*cdf0e10cSrcweir { 756*cdf0e10cSrcweir // Verzeichnistyp setzen 757*cdf0e10cSrcweir sal_uInt16 nPos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry()); 758*cdf0e10cSrcweir sal_Bool bLevelEnable = sal_False, 759*cdf0e10cSrcweir bKeyEnable = sal_False, 760*cdf0e10cSrcweir bSetKey2 = sal_False, 761*cdf0e10cSrcweir bKey2Enable = sal_False, 762*cdf0e10cSrcweir bEntryHasText = sal_False, 763*cdf0e10cSrcweir bKey1HasText = sal_False, 764*cdf0e10cSrcweir bKey2HasText = sal_False; 765*cdf0e10cSrcweir if(nPos == POS_INDEX) 766*cdf0e10cSrcweir { 767*cdf0e10cSrcweir if(aEntryED.GetText().Len()) 768*cdf0e10cSrcweir bEntryHasText = sal_True; 769*cdf0e10cSrcweir aPhoneticED0.SetText(GetDefaultPhoneticReading(aEntryED.GetText())); 770*cdf0e10cSrcweir 771*cdf0e10cSrcweir bKeyEnable = sal_True; 772*cdf0e10cSrcweir aKeyDCB.SetText(aKeyDCB.GetEntry(nKey1Pos)); 773*cdf0e10cSrcweir aPhoneticED1.SetText(GetDefaultPhoneticReading(aKeyDCB.GetText())); 774*cdf0e10cSrcweir if(aKeyDCB.GetText().Len() > 0) 775*cdf0e10cSrcweir { 776*cdf0e10cSrcweir bKey1HasText = bSetKey2 = bKey2Enable = sal_True; 777*cdf0e10cSrcweir aKey2DCB.SetText(aKey2DCB.GetEntry(nKey2Pos)); 778*cdf0e10cSrcweir aPhoneticED2.SetText(GetDefaultPhoneticReading(aKey2DCB.GetText())); 779*cdf0e10cSrcweir if(aKey2DCB.GetText().Len()) 780*cdf0e10cSrcweir bKey2HasText = sal_True; 781*cdf0e10cSrcweir } 782*cdf0e10cSrcweir } 783*cdf0e10cSrcweir else 784*cdf0e10cSrcweir { 785*cdf0e10cSrcweir bLevelEnable = sal_True; 786*cdf0e10cSrcweir aLevelED.SetMax(MAXLEVEL); 787*cdf0e10cSrcweir aLevelED.SetValue(aLevelED.Normalize(0)); 788*cdf0e10cSrcweir bSetKey2 = sal_True; 789*cdf0e10cSrcweir } 790*cdf0e10cSrcweir aLevelFT.Show(bLevelEnable); 791*cdf0e10cSrcweir aLevelED.Show(bLevelEnable); 792*cdf0e10cSrcweir aMainEntryCB.Show(nPos == POS_INDEX); 793*cdf0e10cSrcweir 794*cdf0e10cSrcweir aKeyFT.Enable(bKeyEnable); 795*cdf0e10cSrcweir aKeyDCB.Enable(bKeyEnable); 796*cdf0e10cSrcweir if ( bSetKey2 ) 797*cdf0e10cSrcweir { 798*cdf0e10cSrcweir aKey2DCB.Enable(bKey2Enable); 799*cdf0e10cSrcweir aKey2FT.Enable(bKey2Enable); 800*cdf0e10cSrcweir } 801*cdf0e10cSrcweir aPhoneticFT0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled); 802*cdf0e10cSrcweir aPhoneticED0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled); 803*cdf0e10cSrcweir aPhoneticFT1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled); 804*cdf0e10cSrcweir aPhoneticED1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled); 805*cdf0e10cSrcweir aPhoneticFT2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled); 806*cdf0e10cSrcweir aPhoneticED2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled); 807*cdf0e10cSrcweir } 808*cdf0e10cSrcweir else //aEntryED !!aEntryED is not a ListBox but a Edit 809*cdf0e10cSrcweir { 810*cdf0e10cSrcweir sal_Bool bHasText = (aEntryED.GetText().Len()>0); 811*cdf0e10cSrcweir if(!bHasText) 812*cdf0e10cSrcweir { 813*cdf0e10cSrcweir aPhoneticED0.SetText(aEmptyStr); 814*cdf0e10cSrcweir bPhoneticED0_ChangedByUser = sal_False; 815*cdf0e10cSrcweir } 816*cdf0e10cSrcweir else if(!bPhoneticED0_ChangedByUser) 817*cdf0e10cSrcweir aPhoneticED0.SetText(GetDefaultPhoneticReading(aEntryED.GetText())); 818*cdf0e10cSrcweir 819*cdf0e10cSrcweir aPhoneticFT0.Enable(bHasText&&bIsPhoneticReadingEnabled); 820*cdf0e10cSrcweir aPhoneticED0.Enable(bHasText&&bIsPhoneticReadingEnabled); 821*cdf0e10cSrcweir } 822*cdf0e10cSrcweir aOKBT.Enable(!pSh->HasReadonlySel() && 823*cdf0e10cSrcweir (aEntryED.GetText().Len() || pSh->GetCrsrCnt(sal_False))); 824*cdf0e10cSrcweir return 0; 825*cdf0e10cSrcweir } 826*cdf0e10cSrcweir 827*cdf0e10cSrcweir /*-------------------------------------------------------------------- 828*cdf0e10cSrcweir Beschreibung: 829*cdf0e10cSrcweir --------------------------------------------------------------------*/ 830*cdf0e10cSrcweir 831*cdf0e10cSrcweir 832*cdf0e10cSrcweir IMPL_LINK_INLINE_START( SwIndexMarkDlg, NextHdl, Button *, EMPTYARG ) 833*cdf0e10cSrcweir { 834*cdf0e10cSrcweir InsertUpdate(); 835*cdf0e10cSrcweir pTOXMgr->NextTOXMark(); 836*cdf0e10cSrcweir UpdateDialog(); 837*cdf0e10cSrcweir return 0; 838*cdf0e10cSrcweir } 839*cdf0e10cSrcweir IMPL_LINK_INLINE_END( SwIndexMarkDlg, NextHdl, Button *, EMPTYARG ) 840*cdf0e10cSrcweir 841*cdf0e10cSrcweir 842*cdf0e10cSrcweir IMPL_LINK_INLINE_START( SwIndexMarkDlg, NextSameHdl, Button *, EMPTYARG ) 843*cdf0e10cSrcweir { 844*cdf0e10cSrcweir InsertUpdate(); 845*cdf0e10cSrcweir pTOXMgr->NextTOXMark(sal_True); 846*cdf0e10cSrcweir UpdateDialog(); 847*cdf0e10cSrcweir return 0; 848*cdf0e10cSrcweir } 849*cdf0e10cSrcweir IMPL_LINK_INLINE_END( SwIndexMarkDlg, NextSameHdl, Button *, EMPTYARG ) 850*cdf0e10cSrcweir 851*cdf0e10cSrcweir 852*cdf0e10cSrcweir IMPL_LINK_INLINE_START( SwIndexMarkDlg, PrevHdl, Button *, EMPTYARG ) 853*cdf0e10cSrcweir { 854*cdf0e10cSrcweir InsertUpdate(); 855*cdf0e10cSrcweir pTOXMgr->PrevTOXMark(); 856*cdf0e10cSrcweir UpdateDialog(); 857*cdf0e10cSrcweir return 0; 858*cdf0e10cSrcweir } 859*cdf0e10cSrcweir IMPL_LINK_INLINE_END( SwIndexMarkDlg, PrevHdl, Button *, EMPTYARG ) 860*cdf0e10cSrcweir 861*cdf0e10cSrcweir 862*cdf0e10cSrcweir IMPL_LINK_INLINE_START( SwIndexMarkDlg, PrevSameHdl, Button *, EMPTYARG ) 863*cdf0e10cSrcweir { 864*cdf0e10cSrcweir InsertUpdate(); 865*cdf0e10cSrcweir pTOXMgr->PrevTOXMark(sal_True); 866*cdf0e10cSrcweir UpdateDialog(); 867*cdf0e10cSrcweir 868*cdf0e10cSrcweir return 0; 869*cdf0e10cSrcweir } 870*cdf0e10cSrcweir IMPL_LINK_INLINE_END( SwIndexMarkDlg, PrevSameHdl, Button *, EMPTYARG ) 871*cdf0e10cSrcweir 872*cdf0e10cSrcweir 873*cdf0e10cSrcweir IMPL_LINK( SwIndexMarkDlg, DelHdl, Button *, EMPTYARG ) 874*cdf0e10cSrcweir { 875*cdf0e10cSrcweir bDel = sal_True; 876*cdf0e10cSrcweir InsertUpdate(); 877*cdf0e10cSrcweir bDel = sal_False; 878*cdf0e10cSrcweir 879*cdf0e10cSrcweir if(pTOXMgr->GetCurTOXMark()) 880*cdf0e10cSrcweir UpdateDialog(); 881*cdf0e10cSrcweir else 882*cdf0e10cSrcweir { 883*cdf0e10cSrcweir CloseHdl(&aCancelBT); 884*cdf0e10cSrcweir SfxViewFrame::Current()->GetBindings().Invalidate(FN_EDIT_IDX_ENTRY_DLG); 885*cdf0e10cSrcweir } 886*cdf0e10cSrcweir return 0; 887*cdf0e10cSrcweir } 888*cdf0e10cSrcweir 889*cdf0e10cSrcweir /*-------------------------------------------------------------------- 890*cdf0e10cSrcweir Beschreibung: Dialoganzeige erneuern 891*cdf0e10cSrcweir --------------------------------------------------------------------*/ 892*cdf0e10cSrcweir 893*cdf0e10cSrcweir 894*cdf0e10cSrcweir void SwIndexMarkDlg::UpdateDialog() 895*cdf0e10cSrcweir { 896*cdf0e10cSrcweir DBG_ASSERT(pSh && pTOXMgr, "Shell nicht da?"); 897*cdf0e10cSrcweir SwTOXMark* pMark = pTOXMgr->GetCurTOXMark(); 898*cdf0e10cSrcweir ASSERT(pMark, "Keine aktuelle Markierung"); 899*cdf0e10cSrcweir if(!pMark) 900*cdf0e10cSrcweir return; 901*cdf0e10cSrcweir 902*cdf0e10cSrcweir ViewShell::SetCareWin( GetParent() ); 903*cdf0e10cSrcweir 904*cdf0e10cSrcweir aOrgStr = pMark->GetText(); 905*cdf0e10cSrcweir aEntryED.SetText(aOrgStr); 906*cdf0e10cSrcweir 907*cdf0e10cSrcweir // Verzeichnistyp setzen 908*cdf0e10cSrcweir sal_Bool bLevelEnable = sal_True, 909*cdf0e10cSrcweir bKeyEnable = sal_False, 910*cdf0e10cSrcweir bKey2Enable = sal_False, 911*cdf0e10cSrcweir bEntryHasText = sal_False, 912*cdf0e10cSrcweir bKey1HasText = sal_False, 913*cdf0e10cSrcweir bKey2HasText = sal_False; 914*cdf0e10cSrcweir 915*cdf0e10cSrcweir TOXTypes eCurType = pMark->GetTOXType()->GetType(); 916*cdf0e10cSrcweir if(TOX_INDEX == eCurType) 917*cdf0e10cSrcweir { 918*cdf0e10cSrcweir bLevelEnable = sal_False; 919*cdf0e10cSrcweir bKeyEnable = sal_True; 920*cdf0e10cSrcweir bKey1HasText = bKey2Enable = 0 != pMark->GetPrimaryKey().Len(); 921*cdf0e10cSrcweir bKey2HasText = 0 != pMark->GetSecondaryKey().Len(); 922*cdf0e10cSrcweir bEntryHasText = 0 != pMark->GetText().Len(); 923*cdf0e10cSrcweir aKeyDCB.SetText( pMark->GetPrimaryKey() ); 924*cdf0e10cSrcweir aKey2DCB.SetText( pMark->GetSecondaryKey() ); 925*cdf0e10cSrcweir aPhoneticED0.SetText( pMark->GetTextReading() ); 926*cdf0e10cSrcweir aPhoneticED1.SetText( pMark->GetPrimaryKeyReading() ); 927*cdf0e10cSrcweir aPhoneticED2.SetText( pMark->GetSecondaryKeyReading() ); 928*cdf0e10cSrcweir aMainEntryCB.Check(pMark->IsMainEntry()); 929*cdf0e10cSrcweir } 930*cdf0e10cSrcweir else if(TOX_CONTENT == eCurType || TOX_USER == eCurType) 931*cdf0e10cSrcweir { 932*cdf0e10cSrcweir aLevelED.SetValue(aLevelED.Normalize(pMark->GetLevel())); 933*cdf0e10cSrcweir } 934*cdf0e10cSrcweir aKeyFT.Enable(bKeyEnable); 935*cdf0e10cSrcweir aKeyDCB.Enable(bKeyEnable); 936*cdf0e10cSrcweir aLevelED.SetMax(MAXLEVEL); 937*cdf0e10cSrcweir aLevelFT.Show(bLevelEnable); 938*cdf0e10cSrcweir aLevelED.Show(bLevelEnable); 939*cdf0e10cSrcweir aMainEntryCB.Show(!bLevelEnable); 940*cdf0e10cSrcweir aKey2FT.Enable(bKey2Enable); 941*cdf0e10cSrcweir aKey2DCB.Enable(bKey2Enable); 942*cdf0e10cSrcweir 943*cdf0e10cSrcweir UpdateLanguageDependenciesForPhoneticReading(); 944*cdf0e10cSrcweir aPhoneticFT0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled); 945*cdf0e10cSrcweir aPhoneticED0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled); 946*cdf0e10cSrcweir aPhoneticFT1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled); 947*cdf0e10cSrcweir aPhoneticED1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled); 948*cdf0e10cSrcweir aPhoneticFT2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled); 949*cdf0e10cSrcweir aPhoneticED2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled); 950*cdf0e10cSrcweir 951*cdf0e10cSrcweir // Verzeichnis-Typ setzen 952*cdf0e10cSrcweir aTypeDCB.SelectEntry(pMark->GetTOXType()->GetTypeName()); 953*cdf0e10cSrcweir 954*cdf0e10cSrcweir // Next - Prev - Buttons setzen 955*cdf0e10cSrcweir pSh->SttCrsrMove(); 956*cdf0e10cSrcweir if( aPrevBT.IsVisible() ) 957*cdf0e10cSrcweir { 958*cdf0e10cSrcweir const SwTOXMark* pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_PRV ); 959*cdf0e10cSrcweir if( pMoveMark != pMark ) 960*cdf0e10cSrcweir pSh->GotoTOXMark( *pMoveMark, TOX_NXT ); 961*cdf0e10cSrcweir aPrevBT.Enable( pMoveMark != pMark ); 962*cdf0e10cSrcweir pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_NXT ); 963*cdf0e10cSrcweir if( pMoveMark != pMark ) 964*cdf0e10cSrcweir pSh->GotoTOXMark( *pMoveMark, TOX_PRV ); 965*cdf0e10cSrcweir aNextBT.Enable( pMoveMark != pMark ); 966*cdf0e10cSrcweir } 967*cdf0e10cSrcweir 968*cdf0e10cSrcweir if( aPrevSameBT.IsVisible() ) 969*cdf0e10cSrcweir { 970*cdf0e10cSrcweir const SwTOXMark* pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_PRV ); 971*cdf0e10cSrcweir if( pMoveMark != pMark ) 972*cdf0e10cSrcweir pSh->GotoTOXMark( *pMoveMark, TOX_SAME_NXT ); 973*cdf0e10cSrcweir aPrevSameBT.Enable( pMoveMark != pMark ); 974*cdf0e10cSrcweir pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_NXT ); 975*cdf0e10cSrcweir if( pMoveMark != pMark ) 976*cdf0e10cSrcweir pSh->GotoTOXMark( *pMoveMark, TOX_SAME_PRV ); 977*cdf0e10cSrcweir aNextSameBT.Enable( pMoveMark != pMark ); 978*cdf0e10cSrcweir } 979*cdf0e10cSrcweir 980*cdf0e10cSrcweir sal_Bool bEnable = !pSh->HasReadonlySel(); 981*cdf0e10cSrcweir aOKBT.Enable( bEnable ); 982*cdf0e10cSrcweir aDelBT.Enable( bEnable ); 983*cdf0e10cSrcweir aEntryED.SetReadOnly( !bEnable ); 984*cdf0e10cSrcweir aLevelED.SetReadOnly( !bEnable ); 985*cdf0e10cSrcweir aKeyDCB.SetReadOnly( !bEnable ); 986*cdf0e10cSrcweir aKey2DCB.SetReadOnly( !bEnable ); 987*cdf0e10cSrcweir 988*cdf0e10cSrcweir pSh->SelectTxtAttr( RES_TXTATR_TOXMARK, pMark->GetTxtTOXMark() ); 989*cdf0e10cSrcweir // we need the point at the start of the attribut 990*cdf0e10cSrcweir pSh->SwapPam(); 991*cdf0e10cSrcweir 992*cdf0e10cSrcweir pSh->EndCrsrMove(); 993*cdf0e10cSrcweir } 994*cdf0e10cSrcweir 995*cdf0e10cSrcweir /*-------------------------------------------------------------------- 996*cdf0e10cSrcweir Remind wether the edit boxes for Phonetic reading are changed manually 997*cdf0e10cSrcweir --------------------------------------------------------------------*/ 998*cdf0e10cSrcweir 999*cdf0e10cSrcweir IMPL_LINK( SwIndexMarkDlg, PhoneticEDModifyHdl, Edit *, pEdit ) 1000*cdf0e10cSrcweir { 1001*cdf0e10cSrcweir if(&aPhoneticED0 == pEdit) 1002*cdf0e10cSrcweir { 1003*cdf0e10cSrcweir bPhoneticED0_ChangedByUser = pEdit->GetText().Len()>0; 1004*cdf0e10cSrcweir } 1005*cdf0e10cSrcweir else if(&aPhoneticED1 == pEdit) 1006*cdf0e10cSrcweir { 1007*cdf0e10cSrcweir bPhoneticED1_ChangedByUser = pEdit->GetText().Len()>0; 1008*cdf0e10cSrcweir } 1009*cdf0e10cSrcweir else if(&aPhoneticED2 == pEdit) 1010*cdf0e10cSrcweir { 1011*cdf0e10cSrcweir bPhoneticED2_ChangedByUser = pEdit->GetText().Len()>0; 1012*cdf0e10cSrcweir } 1013*cdf0e10cSrcweir return 0; 1014*cdf0e10cSrcweir } 1015*cdf0e10cSrcweir 1016*cdf0e10cSrcweir /*-------------------------------------------------------------------- 1017*cdf0e10cSrcweir Beschreibung: Enable Disable des 2. Schluessels 1018*cdf0e10cSrcweir --------------------------------------------------------------------*/ 1019*cdf0e10cSrcweir 1020*cdf0e10cSrcweir IMPL_LINK( SwIndexMarkDlg, KeyDCBModifyHdl, ComboBox *, pBox ) 1021*cdf0e10cSrcweir { 1022*cdf0e10cSrcweir if(&aKeyDCB == pBox) 1023*cdf0e10cSrcweir { 1024*cdf0e10cSrcweir sal_Bool bEnable = pBox->GetText().Len() > 0; 1025*cdf0e10cSrcweir if(!bEnable) 1026*cdf0e10cSrcweir { 1027*cdf0e10cSrcweir aKey2DCB.SetText(aEmptyStr); 1028*cdf0e10cSrcweir aPhoneticED1.SetText(aEmptyStr); 1029*cdf0e10cSrcweir aPhoneticED2.SetText(aEmptyStr); 1030*cdf0e10cSrcweir bPhoneticED1_ChangedByUser = sal_False; 1031*cdf0e10cSrcweir bPhoneticED2_ChangedByUser = sal_False; 1032*cdf0e10cSrcweir } 1033*cdf0e10cSrcweir else 1034*cdf0e10cSrcweir { 1035*cdf0e10cSrcweir if(pBox->IsInDropDown()) 1036*cdf0e10cSrcweir { 1037*cdf0e10cSrcweir //reset bPhoneticED1_ChangedByUser if a completly new string is selected 1038*cdf0e10cSrcweir bPhoneticED1_ChangedByUser = sal_False; 1039*cdf0e10cSrcweir } 1040*cdf0e10cSrcweir if(!bPhoneticED1_ChangedByUser) 1041*cdf0e10cSrcweir aPhoneticED1.SetText(GetDefaultPhoneticReading(pBox->GetText())); 1042*cdf0e10cSrcweir } 1043*cdf0e10cSrcweir aKey2DCB.Enable(bEnable); 1044*cdf0e10cSrcweir aKey2FT.Enable(bEnable); 1045*cdf0e10cSrcweir } 1046*cdf0e10cSrcweir else if(&aKey2DCB == pBox) 1047*cdf0e10cSrcweir { 1048*cdf0e10cSrcweir if(!(pBox->GetText().Len()>0)) 1049*cdf0e10cSrcweir { 1050*cdf0e10cSrcweir aPhoneticED2.SetText(aEmptyStr); 1051*cdf0e10cSrcweir bPhoneticED2_ChangedByUser = sal_False; 1052*cdf0e10cSrcweir } 1053*cdf0e10cSrcweir else 1054*cdf0e10cSrcweir { 1055*cdf0e10cSrcweir if(pBox->IsInDropDown()) 1056*cdf0e10cSrcweir { 1057*cdf0e10cSrcweir //reset bPhoneticED1_ChangedByUser if a completly new string is selected 1058*cdf0e10cSrcweir bPhoneticED2_ChangedByUser = sal_False; 1059*cdf0e10cSrcweir } 1060*cdf0e10cSrcweir if(!bPhoneticED2_ChangedByUser) 1061*cdf0e10cSrcweir aPhoneticED2.SetText(GetDefaultPhoneticReading(pBox->GetText())); 1062*cdf0e10cSrcweir } 1063*cdf0e10cSrcweir } 1064*cdf0e10cSrcweir sal_Bool bKey1HasText = (0 != aKeyDCB.GetText().Len()); 1065*cdf0e10cSrcweir sal_Bool bKey2HasText = (0 != aKey2DCB.GetText().Len()); 1066*cdf0e10cSrcweir 1067*cdf0e10cSrcweir aPhoneticFT1.Enable(bKey1HasText&&bIsPhoneticReadingEnabled); 1068*cdf0e10cSrcweir aPhoneticED1.Enable(bKey1HasText&bIsPhoneticReadingEnabled); 1069*cdf0e10cSrcweir aPhoneticFT2.Enable(bKey2HasText&bIsPhoneticReadingEnabled); 1070*cdf0e10cSrcweir aPhoneticED2.Enable(bKey2HasText&bIsPhoneticReadingEnabled); 1071*cdf0e10cSrcweir 1072*cdf0e10cSrcweir return 0; 1073*cdf0e10cSrcweir } 1074*cdf0e10cSrcweir 1075*cdf0e10cSrcweir /*-----------------25.02.94 21:19------------------- 1076*cdf0e10cSrcweir dtor ueberladen 1077*cdf0e10cSrcweir --------------------------------------------------*/ 1078*cdf0e10cSrcweir 1079*cdf0e10cSrcweir 1080*cdf0e10cSrcweir SwIndexMarkDlg::~SwIndexMarkDlg() 1081*cdf0e10cSrcweir { 1082*cdf0e10cSrcweir delete pTOXMgr; 1083*cdf0e10cSrcweir ViewShell::SetCareWin( 0 ); 1084*cdf0e10cSrcweir } 1085*cdf0e10cSrcweir /* -----------------07.09.99 08:41------------------- 1086*cdf0e10cSrcweir 1087*cdf0e10cSrcweir --------------------------------------------------*/ 1088*cdf0e10cSrcweir void SwIndexMarkDlg::ReInitDlg(SwWrtShell& rWrtShell, SwTOXMark* pCurTOXMark) 1089*cdf0e10cSrcweir { 1090*cdf0e10cSrcweir pSh = &rWrtShell; 1091*cdf0e10cSrcweir delete pTOXMgr; 1092*cdf0e10cSrcweir pTOXMgr = new SwTOXMgr(pSh); 1093*cdf0e10cSrcweir if(pCurTOXMark) 1094*cdf0e10cSrcweir { 1095*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < pTOXMgr->GetTOXMarkCount(); i++) 1096*cdf0e10cSrcweir if(pTOXMgr->GetTOXMark(i) == pCurTOXMark) 1097*cdf0e10cSrcweir { 1098*cdf0e10cSrcweir pTOXMgr->SetCurTOXMark(i); 1099*cdf0e10cSrcweir break; 1100*cdf0e10cSrcweir } 1101*cdf0e10cSrcweir } 1102*cdf0e10cSrcweir InitControls(); 1103*cdf0e10cSrcweir } 1104*cdf0e10cSrcweir /* -----------------06.10.99 10:00------------------- 1105*cdf0e10cSrcweir 1106*cdf0e10cSrcweir --------------------------------------------------*/ 1107*cdf0e10cSrcweir SwIndexMarkFloatDlg::SwIndexMarkFloatDlg(SfxBindings* _pBindings, 1108*cdf0e10cSrcweir SfxChildWindow* pChild, 1109*cdf0e10cSrcweir Window *pParent, 1110*cdf0e10cSrcweir SfxChildWinInfo* pInfo, 1111*cdf0e10cSrcweir sal_Bool bNew) : 1112*cdf0e10cSrcweir SfxModelessDialog(_pBindings, pChild, pParent, SvtCJKOptions().IsCJKFontEnabled()?SW_RES(DLG_INSIDXMARK_CJK):SW_RES(DLG_INSIDXMARK)), 1113*cdf0e10cSrcweir aDlg(this, bNew, SW_RES(WIN_DLG), SvtCJKOptions().IsCJKFontEnabled()?DLG_INSIDXMARK_CJK:DLG_INSIDXMARK, *::GetActiveWrtShell()) 1114*cdf0e10cSrcweir { 1115*cdf0e10cSrcweir FreeResource(); 1116*cdf0e10cSrcweir aDlg.ReInitDlg(*::GetActiveWrtShell()); 1117*cdf0e10cSrcweir Initialize(pInfo); 1118*cdf0e10cSrcweir } 1119*cdf0e10cSrcweir /* -----------------06.10.99 10:27------------------- 1120*cdf0e10cSrcweir 1121*cdf0e10cSrcweir --------------------------------------------------*/ 1122*cdf0e10cSrcweir void SwIndexMarkFloatDlg::Activate() 1123*cdf0e10cSrcweir { 1124*cdf0e10cSrcweir SfxModelessDialog::Activate(); 1125*cdf0e10cSrcweir aDlg.Activate(); 1126*cdf0e10cSrcweir } 1127*cdf0e10cSrcweir 1128*cdf0e10cSrcweir void SwIndexMarkFloatDlg::ReInitDlg(SwWrtShell& rWrtShell) 1129*cdf0e10cSrcweir { 1130*cdf0e10cSrcweir aDlg.ReInitDlg( rWrtShell ); 1131*cdf0e10cSrcweir } 1132*cdf0e10cSrcweir 1133*cdf0e10cSrcweir /* -----------------06.10.99 10:35------------------- 1134*cdf0e10cSrcweir 1135*cdf0e10cSrcweir --------------------------------------------------*/ 1136*cdf0e10cSrcweir SwIndexMarkModalDlg::SwIndexMarkModalDlg(Window *pParent, SwWrtShell& rSh, SwTOXMark* pCurTOXMark) : 1137*cdf0e10cSrcweir SvxStandardDialog(pParent, SvtCJKOptions().IsCJKFontEnabled()?SW_RES(DLG_EDIT_IDXMARK_CJK):SW_RES(DLG_EDIT_IDXMARK)), 1138*cdf0e10cSrcweir aDlg(this, sal_False, SW_RES(WIN_DLG), SvtCJKOptions().IsCJKFontEnabled()?DLG_EDIT_IDXMARK_CJK:DLG_EDIT_IDXMARK, rSh) 1139*cdf0e10cSrcweir { 1140*cdf0e10cSrcweir FreeResource(); 1141*cdf0e10cSrcweir aDlg.ReInitDlg(rSh, pCurTOXMark); 1142*cdf0e10cSrcweir } 1143*cdf0e10cSrcweir /* -----------------06.10.99 10:46------------------- 1144*cdf0e10cSrcweir 1145*cdf0e10cSrcweir --------------------------------------------------*/ 1146*cdf0e10cSrcweir void SwIndexMarkModalDlg::Apply() 1147*cdf0e10cSrcweir { 1148*cdf0e10cSrcweir aDlg.Apply(); 1149*cdf0e10cSrcweir } 1150*cdf0e10cSrcweir /* -----------------16.09.99 14:19------------------- 1151*cdf0e10cSrcweir 1152*cdf0e10cSrcweir --------------------------------------------------*/ 1153*cdf0e10cSrcweir class SwCreateAuthEntryDlg_Impl : public ModalDialog 1154*cdf0e10cSrcweir { 1155*cdf0e10cSrcweir FixedLine aEntriesFL; 1156*cdf0e10cSrcweir 1157*cdf0e10cSrcweir FixedText* pFixedTexts[AUTH_FIELD_END]; 1158*cdf0e10cSrcweir ListBox* pTypeListBox; 1159*cdf0e10cSrcweir ComboBox* pIdentifierBox; 1160*cdf0e10cSrcweir Edit* pEdits[AUTH_FIELD_END]; 1161*cdf0e10cSrcweir 1162*cdf0e10cSrcweir OKButton aOKBT; 1163*cdf0e10cSrcweir CancelButton aCancelBT; 1164*cdf0e10cSrcweir HelpButton aHelpBT; 1165*cdf0e10cSrcweir 1166*cdf0e10cSrcweir Link aShortNameCheckLink; 1167*cdf0e10cSrcweir 1168*cdf0e10cSrcweir SwWrtShell& rWrtSh; 1169*cdf0e10cSrcweir 1170*cdf0e10cSrcweir sal_Bool m_bNewEntryMode; 1171*cdf0e10cSrcweir sal_Bool m_bNameAllowed; 1172*cdf0e10cSrcweir 1173*cdf0e10cSrcweir DECL_LINK(IdentifierHdl, ComboBox*); 1174*cdf0e10cSrcweir DECL_LINK(ShortNameHdl, Edit*); 1175*cdf0e10cSrcweir DECL_LINK(EnableHdl, ListBox* pBox); 1176*cdf0e10cSrcweir 1177*cdf0e10cSrcweir public: 1178*cdf0e10cSrcweir SwCreateAuthEntryDlg_Impl(Window* pParent, 1179*cdf0e10cSrcweir const String pFields[], 1180*cdf0e10cSrcweir SwWrtShell& rSh, 1181*cdf0e10cSrcweir sal_Bool bNewEntry, 1182*cdf0e10cSrcweir sal_Bool bCreate); 1183*cdf0e10cSrcweir ~SwCreateAuthEntryDlg_Impl(); 1184*cdf0e10cSrcweir 1185*cdf0e10cSrcweir String GetEntryText(ToxAuthorityField eField) const; 1186*cdf0e10cSrcweir 1187*cdf0e10cSrcweir void SetCheckNameHdl(const Link& rLink) {aShortNameCheckLink = rLink;} 1188*cdf0e10cSrcweir 1189*cdf0e10cSrcweir }; 1190*cdf0e10cSrcweir /*-- 15.09.99 08:43:24--------------------------------------------------- 1191*cdf0e10cSrcweir 1192*cdf0e10cSrcweir -----------------------------------------------------------------------*/ 1193*cdf0e10cSrcweir struct TextInfo 1194*cdf0e10cSrcweir { 1195*cdf0e10cSrcweir sal_uInt16 nToxField; 1196*cdf0e10cSrcweir const char* pHelpId; 1197*cdf0e10cSrcweir }; 1198*cdf0e10cSrcweir 1199*cdf0e10cSrcweir static const TextInfo aTextInfoArr[] = 1200*cdf0e10cSrcweir { 1201*cdf0e10cSrcweir {AUTH_FIELD_IDENTIFIER, HID_AUTH_FIELD_IDENTIFIER }, 1202*cdf0e10cSrcweir {AUTH_FIELD_AUTHORITY_TYPE, HID_AUTH_FIELD_AUTHORITY_TYPE }, 1203*cdf0e10cSrcweir {AUTH_FIELD_AUTHOR, HID_AUTH_FIELD_AUTHOR }, 1204*cdf0e10cSrcweir {AUTH_FIELD_TITLE, HID_AUTH_FIELD_TITLE }, 1205*cdf0e10cSrcweir {AUTH_FIELD_YEAR, HID_AUTH_FIELD_YEAR }, 1206*cdf0e10cSrcweir {AUTH_FIELD_PUBLISHER, HID_AUTH_FIELD_PUBLISHER }, 1207*cdf0e10cSrcweir {AUTH_FIELD_ADDRESS, HID_AUTH_FIELD_ADDRESS }, 1208*cdf0e10cSrcweir {AUTH_FIELD_ISBN, HID_AUTH_FIELD_ISBN }, 1209*cdf0e10cSrcweir {AUTH_FIELD_CHAPTER, HID_AUTH_FIELD_CHAPTER }, 1210*cdf0e10cSrcweir {AUTH_FIELD_PAGES, HID_AUTH_FIELD_PAGES }, 1211*cdf0e10cSrcweir {AUTH_FIELD_EDITOR, HID_AUTH_FIELD_EDITOR }, 1212*cdf0e10cSrcweir {AUTH_FIELD_EDITION, HID_AUTH_FIELD_EDITION }, 1213*cdf0e10cSrcweir {AUTH_FIELD_BOOKTITLE, HID_AUTH_FIELD_BOOKTITLE }, 1214*cdf0e10cSrcweir {AUTH_FIELD_VOLUME, HID_AUTH_FIELD_VOLUME }, 1215*cdf0e10cSrcweir {AUTH_FIELD_HOWPUBLISHED, HID_AUTH_FIELD_HOWPUBLISHED }, 1216*cdf0e10cSrcweir {AUTH_FIELD_ORGANIZATIONS, HID_AUTH_FIELD_ORGANIZATIONS }, 1217*cdf0e10cSrcweir {AUTH_FIELD_INSTITUTION, HID_AUTH_FIELD_INSTITUTION }, 1218*cdf0e10cSrcweir {AUTH_FIELD_SCHOOL, HID_AUTH_FIELD_SCHOOL }, 1219*cdf0e10cSrcweir {AUTH_FIELD_REPORT_TYPE, HID_AUTH_FIELD_REPORT_TYPE }, 1220*cdf0e10cSrcweir {AUTH_FIELD_MONTH, HID_AUTH_FIELD_MONTH }, 1221*cdf0e10cSrcweir {AUTH_FIELD_JOURNAL, HID_AUTH_FIELD_JOURNAL }, 1222*cdf0e10cSrcweir {AUTH_FIELD_NUMBER, HID_AUTH_FIELD_NUMBER }, 1223*cdf0e10cSrcweir {AUTH_FIELD_SERIES, HID_AUTH_FIELD_SERIES }, 1224*cdf0e10cSrcweir {AUTH_FIELD_ANNOTE, HID_AUTH_FIELD_ANNOTE }, 1225*cdf0e10cSrcweir {AUTH_FIELD_NOTE, HID_AUTH_FIELD_NOTE }, 1226*cdf0e10cSrcweir {AUTH_FIELD_URL, HID_AUTH_FIELD_URL }, 1227*cdf0e10cSrcweir {AUTH_FIELD_CUSTOM1, HID_AUTH_FIELD_CUSTOM1 }, 1228*cdf0e10cSrcweir {AUTH_FIELD_CUSTOM2, HID_AUTH_FIELD_CUSTOM2 }, 1229*cdf0e10cSrcweir {AUTH_FIELD_CUSTOM3, HID_AUTH_FIELD_CUSTOM3 }, 1230*cdf0e10cSrcweir {AUTH_FIELD_CUSTOM4, HID_AUTH_FIELD_CUSTOM4 }, 1231*cdf0e10cSrcweir {AUTH_FIELD_CUSTOM5, HID_AUTH_FIELD_CUSTOM5 } 1232*cdf0e10cSrcweir }; 1233*cdf0e10cSrcweir 1234*cdf0e10cSrcweir sal_Bool SwAuthMarkDlg::bIsFromComponent = sal_True; 1235*cdf0e10cSrcweir 1236*cdf0e10cSrcweir SwAuthMarkDlg::SwAuthMarkDlg( Window *pParent, 1237*cdf0e10cSrcweir const ResId& rResId, 1238*cdf0e10cSrcweir sal_Bool bNewDlg) : 1239*cdf0e10cSrcweir Window(pParent, rResId), 1240*cdf0e10cSrcweir aFromComponentRB( this, ResId(RB_FROMCOMPONENT, *rResId.GetResMgr() )), 1241*cdf0e10cSrcweir aFromDocContentRB( this, ResId(RB_FROMDOCCONTENT, *rResId.GetResMgr() )), 1242*cdf0e10cSrcweir 1243*cdf0e10cSrcweir aAuthorFT( this, ResId(FT_AUTHOR, *rResId.GetResMgr() )), 1244*cdf0e10cSrcweir aAuthorFI( this, ResId(FI_AUTHOR, *rResId.GetResMgr() )), 1245*cdf0e10cSrcweir aTitleFT( this, ResId(FT_TITLE, *rResId.GetResMgr() )), 1246*cdf0e10cSrcweir aTitleFI( this, ResId(FI_TITLE, *rResId.GetResMgr() )), 1247*cdf0e10cSrcweir aEntryFT( this, ResId(FT_ENTRY, *rResId.GetResMgr() )), 1248*cdf0e10cSrcweir aEntryED( this, ResId(ED_ENTRY, *rResId.GetResMgr() )), 1249*cdf0e10cSrcweir aEntryLB( this, ResId(LB_ENTRY, *rResId.GetResMgr() )), 1250*cdf0e10cSrcweir 1251*cdf0e10cSrcweir aEntryFL( this, ResId(FL_ENTRY, *rResId.GetResMgr() )), 1252*cdf0e10cSrcweir 1253*cdf0e10cSrcweir aOKBT( this, ResId(PB_OK, *rResId.GetResMgr() )), 1254*cdf0e10cSrcweir aCancelBT( this, ResId(PB_CANCEL, *rResId.GetResMgr() )), 1255*cdf0e10cSrcweir aHelpBT( this, ResId(PB_HELP, *rResId.GetResMgr() )), 1256*cdf0e10cSrcweir aCreateEntryPB(this,ResId(PB_CREATEENTRY, *rResId.GetResMgr())), 1257*cdf0e10cSrcweir aEditEntryPB(this, ResId(PB_EDITENTRY, *rResId.GetResMgr())), 1258*cdf0e10cSrcweir 1259*cdf0e10cSrcweir sChangeST( ResId(ST_CHANGE, *rResId.GetResMgr())), 1260*cdf0e10cSrcweir bNewEntry(bNewDlg), 1261*cdf0e10cSrcweir bBibAccessInitialized(sal_False), 1262*cdf0e10cSrcweir 1263*cdf0e10cSrcweir pSh(0) 1264*cdf0e10cSrcweir { 1265*cdf0e10cSrcweir SetStyle(GetStyle()|WB_DIALOGCONTROL); 1266*cdf0e10cSrcweir FreeResource(); 1267*cdf0e10cSrcweir 1268*cdf0e10cSrcweir aFromComponentRB.SetHelpId(HID_AUTH_MARK_DLG_FROM_COMP_RB); 1269*cdf0e10cSrcweir aFromDocContentRB.SetHelpId(HID_AUTH_MARK_DLG_FROM_DOC_RB ); 1270*cdf0e10cSrcweir aEntryED.SetHelpId(HID_AUTH_MARK_DLG_ID_LISTBOX ); 1271*cdf0e10cSrcweir aEntryLB.SetHelpId(HID_AUTH_MARK_DLG_ID_LISTBOX ); 1272*cdf0e10cSrcweir 1273*cdf0e10cSrcweir aFromComponentRB.Show(bNewEntry); 1274*cdf0e10cSrcweir aFromDocContentRB.Show(bNewEntry); 1275*cdf0e10cSrcweir aFromComponentRB.Check(bIsFromComponent); 1276*cdf0e10cSrcweir aFromDocContentRB.Check(!bIsFromComponent); 1277*cdf0e10cSrcweir 1278*cdf0e10cSrcweir aOKBT .SetHelpId(HID_INSERT_AUTH_MRK_OK ); 1279*cdf0e10cSrcweir aCancelBT .SetHelpId(HID_INSERT_AUTH_MRK_CLOSE); 1280*cdf0e10cSrcweir aEntryED .SetHelpId(HID_INSERT_AUTH_MRK_ENTRY ); 1281*cdf0e10cSrcweir aCreateEntryPB .SetHelpId(HID_INSERT_AUTH_MRK_CREATE_ENTRY ); 1282*cdf0e10cSrcweir aEditEntryPB .SetHelpId(HID_INSERT_AUTH_MRK_EDIT_ENTRY ); 1283*cdf0e10cSrcweir 1284*cdf0e10cSrcweir aOKBT.SetClickHdl(LINK(this,SwAuthMarkDlg, InsertHdl)); 1285*cdf0e10cSrcweir aCancelBT.SetClickHdl(LINK(this,SwAuthMarkDlg, CloseHdl)); 1286*cdf0e10cSrcweir aCreateEntryPB.SetClickHdl(LINK(this,SwAuthMarkDlg, CreateEntryHdl)); 1287*cdf0e10cSrcweir aEditEntryPB.SetClickHdl(LINK(this,SwAuthMarkDlg, CreateEntryHdl)); 1288*cdf0e10cSrcweir aFromComponentRB.SetClickHdl(LINK(this,SwAuthMarkDlg, ChangeSourceHdl)); 1289*cdf0e10cSrcweir aFromDocContentRB.SetClickHdl(LINK(this,SwAuthMarkDlg, ChangeSourceHdl)); 1290*cdf0e10cSrcweir aEntryED.SetModifyHdl(LINK(this,SwAuthMarkDlg, EditModifyHdl)); 1291*cdf0e10cSrcweir 1292*cdf0e10cSrcweir GetParent()->SetText(String(SW_RES( 1293*cdf0e10cSrcweir bNewEntry ? STR_AUTHMRK_INSERT : STR_AUTHMRK_EDIT))); 1294*cdf0e10cSrcweir aEntryED.Show(!bNewEntry); 1295*cdf0e10cSrcweir aEntryLB.Show(bNewEntry); 1296*cdf0e10cSrcweir if(!bNewEntry) 1297*cdf0e10cSrcweir { 1298*cdf0e10cSrcweir aOKBT.SetText(sChangeST); 1299*cdf0e10cSrcweir } 1300*cdf0e10cSrcweir else 1301*cdf0e10cSrcweir { 1302*cdf0e10cSrcweir aEntryLB.SetSelectHdl(LINK(this, SwAuthMarkDlg, CompEntryHdl)); 1303*cdf0e10cSrcweir } 1304*cdf0e10cSrcweir } 1305*cdf0e10cSrcweir /*-- 15.09.99 08:43:25--------------------------------------------------- 1306*cdf0e10cSrcweir 1307*cdf0e10cSrcweir -----------------------------------------------------------------------*/ 1308*cdf0e10cSrcweir SwAuthMarkDlg::~SwAuthMarkDlg() 1309*cdf0e10cSrcweir { 1310*cdf0e10cSrcweir } 1311*cdf0e10cSrcweir /*-- 15.09.99 08:43:25--------------------------------------------------- 1312*cdf0e10cSrcweir 1313*cdf0e10cSrcweir -----------------------------------------------------------------------*/ 1314*cdf0e10cSrcweir void SwAuthMarkDlg::ReInitDlg(SwWrtShell& rWrtShell) 1315*cdf0e10cSrcweir { 1316*cdf0e10cSrcweir pSh = &rWrtShell; 1317*cdf0e10cSrcweir InitControls(); 1318*cdf0e10cSrcweir } 1319*cdf0e10cSrcweir /* -----------------15.09.99 08:57------------------- 1320*cdf0e10cSrcweir 1321*cdf0e10cSrcweir --------------------------------------------------*/ 1322*cdf0e10cSrcweir IMPL_LINK( SwAuthMarkDlg, CloseHdl, PushButton *, EMPTYARG ) 1323*cdf0e10cSrcweir { 1324*cdf0e10cSrcweir if(bNewEntry) 1325*cdf0e10cSrcweir { 1326*cdf0e10cSrcweir sal_uInt16 nSlot = FN_INSERT_AUTH_ENTRY_DLG; 1327*cdf0e10cSrcweir SfxViewFrame::Current()->GetDispatcher()->Execute(nSlot, 1328*cdf0e10cSrcweir SFX_CALLMODE_ASYNCHRON|SFX_CALLMODE_RECORD); 1329*cdf0e10cSrcweir } 1330*cdf0e10cSrcweir else 1331*cdf0e10cSrcweir { 1332*cdf0e10cSrcweir ((SwAuthMarkModalDlg*)GetParent())->EndDialog(RET_CANCEL); 1333*cdf0e10cSrcweir } 1334*cdf0e10cSrcweir return 0; 1335*cdf0e10cSrcweir } 1336*cdf0e10cSrcweir /* -----------------06.12.99 13:54------------------- 1337*cdf0e10cSrcweir 1338*cdf0e10cSrcweir --------------------------------------------------*/ 1339*cdf0e10cSrcweir static String lcl_FindColumnEntry(const beans::PropertyValue* pFields, sal_Int32 nLen, const String& rColumnTitle) 1340*cdf0e10cSrcweir { 1341*cdf0e10cSrcweir String sRet; 1342*cdf0e10cSrcweir OUString uColumnTitle = rColumnTitle; 1343*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < nLen; i++) 1344*cdf0e10cSrcweir { 1345*cdf0e10cSrcweir OUString uTmp; 1346*cdf0e10cSrcweir if(pFields[i].Name == uColumnTitle && 1347*cdf0e10cSrcweir (pFields[i].Value >>= uTmp)) 1348*cdf0e10cSrcweir { 1349*cdf0e10cSrcweir sRet = String(uTmp); 1350*cdf0e10cSrcweir break; 1351*cdf0e10cSrcweir } 1352*cdf0e10cSrcweir } 1353*cdf0e10cSrcweir return sRet; 1354*cdf0e10cSrcweir } 1355*cdf0e10cSrcweir /* -----------------------------07.12.99 15:39-------------------------------- 1356*cdf0e10cSrcweir 1357*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1358*cdf0e10cSrcweir IMPL_LINK( SwAuthMarkDlg, CompEntryHdl, ListBox*, pBox) 1359*cdf0e10cSrcweir { 1360*cdf0e10cSrcweir String sEntry(pBox->GetSelectEntry()); 1361*cdf0e10cSrcweir if(bIsFromComponent) 1362*cdf0e10cSrcweir { 1363*cdf0e10cSrcweir if(xBibAccess.is() && sEntry.Len()) 1364*cdf0e10cSrcweir { 1365*cdf0e10cSrcweir OUString uEntry(sEntry); 1366*cdf0e10cSrcweir if(xBibAccess->hasByName(uEntry)) 1367*cdf0e10cSrcweir { 1368*cdf0e10cSrcweir uno::Any aEntry(xBibAccess->getByName(uEntry)); 1369*cdf0e10cSrcweir uno::Sequence<beans::PropertyValue> aFieldProps; 1370*cdf0e10cSrcweir if(aEntry >>= aFieldProps) 1371*cdf0e10cSrcweir { 1372*cdf0e10cSrcweir const beans::PropertyValue* pProps = aFieldProps.getConstArray(); 1373*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END && i < aFieldProps.getLength(); i++) 1374*cdf0e10cSrcweir { 1375*cdf0e10cSrcweir m_sFields[i] = lcl_FindColumnEntry( 1376*cdf0e10cSrcweir pProps, aFieldProps.getLength(), m_sColumnTitles[i]); 1377*cdf0e10cSrcweir } 1378*cdf0e10cSrcweir } 1379*cdf0e10cSrcweir } 1380*cdf0e10cSrcweir } 1381*cdf0e10cSrcweir } 1382*cdf0e10cSrcweir else 1383*cdf0e10cSrcweir { 1384*cdf0e10cSrcweir if(sEntry.Len()) 1385*cdf0e10cSrcweir { 1386*cdf0e10cSrcweir const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*) 1387*cdf0e10cSrcweir pSh->GetFldType(RES_AUTHORITY, aEmptyStr); 1388*cdf0e10cSrcweir const SwAuthEntry* pEntry = pFType ? pFType->GetEntryByIdentifier(sEntry) : 0; 1389*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1390*cdf0e10cSrcweir m_sFields[i] = pEntry ? 1391*cdf0e10cSrcweir pEntry->GetAuthorField((ToxAuthorityField)i) : aEmptyStr; 1392*cdf0e10cSrcweir } 1393*cdf0e10cSrcweir } 1394*cdf0e10cSrcweir if(!pBox->GetSelectEntry().Len()) 1395*cdf0e10cSrcweir { 1396*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1397*cdf0e10cSrcweir m_sFields[i] = aEmptyStr; 1398*cdf0e10cSrcweir } 1399*cdf0e10cSrcweir aAuthorFI.SetText(m_sFields[AUTH_FIELD_AUTHOR]); 1400*cdf0e10cSrcweir aTitleFI.SetText(m_sFields[AUTH_FIELD_TITLE]); 1401*cdf0e10cSrcweir return 0; 1402*cdf0e10cSrcweir } 1403*cdf0e10cSrcweir 1404*cdf0e10cSrcweir /* -----------------15.09.99 08:57------------------- 1405*cdf0e10cSrcweir 1406*cdf0e10cSrcweir --------------------------------------------------*/ 1407*cdf0e10cSrcweir IMPL_LINK( SwAuthMarkDlg, InsertHdl, PushButton *, EMPTYARG ) 1408*cdf0e10cSrcweir { 1409*cdf0e10cSrcweir //insert or update the SwAuthorityField... 1410*cdf0e10cSrcweir if(pSh) 1411*cdf0e10cSrcweir { 1412*cdf0e10cSrcweir sal_Bool bDifferent = sal_False; 1413*cdf0e10cSrcweir DBG_ASSERT(m_sFields[AUTH_FIELD_IDENTIFIER].Len() , "No Id is set!"); 1414*cdf0e10cSrcweir DBG_ASSERT(m_sFields[AUTH_FIELD_AUTHORITY_TYPE].Len() , "No authority type is set!"); 1415*cdf0e10cSrcweir //check if the entry already exists with different content 1416*cdf0e10cSrcweir const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*) 1417*cdf0e10cSrcweir pSh->GetFldType(RES_AUTHORITY, aEmptyStr); 1418*cdf0e10cSrcweir const SwAuthEntry* pEntry = pFType ? 1419*cdf0e10cSrcweir pFType->GetEntryByIdentifier( m_sFields[AUTH_FIELD_IDENTIFIER]) 1420*cdf0e10cSrcweir : 0; 1421*cdf0e10cSrcweir if(pEntry) 1422*cdf0e10cSrcweir { 1423*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END && !bDifferent; i++) 1424*cdf0e10cSrcweir bDifferent |= m_sFields[i] != pEntry->GetAuthorField((ToxAuthorityField)i); 1425*cdf0e10cSrcweir if(bDifferent) 1426*cdf0e10cSrcweir { 1427*cdf0e10cSrcweir QueryBox aQuery(this, SW_RES(DLG_CHANGE_AUTH_ENTRY)); 1428*cdf0e10cSrcweir if(RET_YES != aQuery.Execute()) 1429*cdf0e10cSrcweir return 0; 1430*cdf0e10cSrcweir } 1431*cdf0e10cSrcweir } 1432*cdf0e10cSrcweir 1433*cdf0e10cSrcweir SwFldMgr aMgr(pSh); 1434*cdf0e10cSrcweir String sFields; 1435*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1436*cdf0e10cSrcweir { 1437*cdf0e10cSrcweir sFields += m_sFields[i]; 1438*cdf0e10cSrcweir sFields += TOX_STYLE_DELIMITER; 1439*cdf0e10cSrcweir } 1440*cdf0e10cSrcweir if(bNewEntry) 1441*cdf0e10cSrcweir { 1442*cdf0e10cSrcweir if(bDifferent) 1443*cdf0e10cSrcweir { 1444*cdf0e10cSrcweir SwAuthEntry aNewData; 1445*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1446*cdf0e10cSrcweir aNewData.SetAuthorField((ToxAuthorityField)i, m_sFields[i]); 1447*cdf0e10cSrcweir pSh->ChangeAuthorityData(&aNewData); 1448*cdf0e10cSrcweir } 1449*cdf0e10cSrcweir SwInsertFld_Data aData(TYP_AUTHORITY, 0, sFields, aEmptyStr, 0 ); 1450*cdf0e10cSrcweir aMgr.InsertFld( aData ); 1451*cdf0e10cSrcweir } 1452*cdf0e10cSrcweir else if(aMgr.GetCurFld()) 1453*cdf0e10cSrcweir { 1454*cdf0e10cSrcweir aMgr.UpdateCurFld(0, sFields, aEmptyStr); 1455*cdf0e10cSrcweir } 1456*cdf0e10cSrcweir } 1457*cdf0e10cSrcweir if(!bNewEntry) 1458*cdf0e10cSrcweir CloseHdl(0); 1459*cdf0e10cSrcweir return 0; 1460*cdf0e10cSrcweir } 1461*cdf0e10cSrcweir /* -----------------17.09.99 13:06------------------- 1462*cdf0e10cSrcweir 1463*cdf0e10cSrcweir --------------------------------------------------*/ 1464*cdf0e10cSrcweir IMPL_LINK(SwAuthMarkDlg, CreateEntryHdl, PushButton*, pButton) 1465*cdf0e10cSrcweir { 1466*cdf0e10cSrcweir sal_Bool bCreate = pButton == &aCreateEntryPB; 1467*cdf0e10cSrcweir String sOldId = m_sCreatedEntry[0]; 1468*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1469*cdf0e10cSrcweir m_sCreatedEntry[i] = bCreate ? aEmptyStr : m_sFields[i]; 1470*cdf0e10cSrcweir SwCreateAuthEntryDlg_Impl aDlg(pButton, 1471*cdf0e10cSrcweir bCreate ? m_sCreatedEntry : m_sFields, 1472*cdf0e10cSrcweir *pSh, bNewEntry, bCreate); 1473*cdf0e10cSrcweir if(bNewEntry) 1474*cdf0e10cSrcweir { 1475*cdf0e10cSrcweir aDlg.SetCheckNameHdl(LINK(this, SwAuthMarkDlg, IsEntryAllowedHdl)); 1476*cdf0e10cSrcweir } 1477*cdf0e10cSrcweir if(RET_OK == aDlg.Execute()) 1478*cdf0e10cSrcweir { 1479*cdf0e10cSrcweir if(bCreate && sOldId.Len()) 1480*cdf0e10cSrcweir { 1481*cdf0e10cSrcweir aEntryLB.RemoveEntry(sOldId); 1482*cdf0e10cSrcweir } 1483*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1484*cdf0e10cSrcweir { 1485*cdf0e10cSrcweir m_sFields[i] = aDlg.GetEntryText((ToxAuthorityField)i); 1486*cdf0e10cSrcweir m_sCreatedEntry[i] = m_sFields[i]; 1487*cdf0e10cSrcweir } 1488*cdf0e10cSrcweir if(bNewEntry && !aFromDocContentRB.IsChecked()) 1489*cdf0e10cSrcweir { 1490*cdf0e10cSrcweir aFromDocContentRB.Check(sal_True); 1491*cdf0e10cSrcweir ChangeSourceHdl(&aFromDocContentRB); 1492*cdf0e10cSrcweir } 1493*cdf0e10cSrcweir if(bCreate) 1494*cdf0e10cSrcweir { 1495*cdf0e10cSrcweir DBG_ASSERT(LISTBOX_ENTRY_NOTFOUND == 1496*cdf0e10cSrcweir aEntryLB.GetEntryPos(m_sFields[AUTH_FIELD_IDENTIFIER]), 1497*cdf0e10cSrcweir "entry exists!"); 1498*cdf0e10cSrcweir aEntryLB.InsertEntry(m_sFields[AUTH_FIELD_IDENTIFIER]); 1499*cdf0e10cSrcweir aEntryLB.SelectEntry(m_sFields[AUTH_FIELD_IDENTIFIER]); 1500*cdf0e10cSrcweir } 1501*cdf0e10cSrcweir aEntryED.SetText(m_sFields[AUTH_FIELD_IDENTIFIER]); 1502*cdf0e10cSrcweir aAuthorFI.SetText(m_sFields[AUTH_FIELD_AUTHOR]); 1503*cdf0e10cSrcweir aTitleFI.SetText(m_sFields[AUTH_FIELD_TITLE]); 1504*cdf0e10cSrcweir aOKBT.Enable(); 1505*cdf0e10cSrcweir } 1506*cdf0e10cSrcweir return 0; 1507*cdf0e10cSrcweir } 1508*cdf0e10cSrcweir /* -----------------------------20.12.99 14:26-------------------------------- 1509*cdf0e10cSrcweir 1510*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1511*cdf0e10cSrcweir IMPL_LINK(SwAuthMarkDlg, ChangeSourceHdl, RadioButton*, pButton) 1512*cdf0e10cSrcweir { 1513*cdf0e10cSrcweir sal_Bool bFromComp = (pButton == &aFromComponentRB); 1514*cdf0e10cSrcweir bIsFromComponent = bFromComp; 1515*cdf0e10cSrcweir aCreateEntryPB.Enable(!bIsFromComponent); 1516*cdf0e10cSrcweir aEntryLB.Clear(); 1517*cdf0e10cSrcweir if(bIsFromComponent) 1518*cdf0e10cSrcweir { 1519*cdf0e10cSrcweir if(!bBibAccessInitialized) 1520*cdf0e10cSrcweir { 1521*cdf0e10cSrcweir uno::Reference< lang::XMultiServiceFactory > xMSF = getProcessServiceFactory(); 1522*cdf0e10cSrcweir xBibAccess = uno::Reference< container::XNameAccess > ( 1523*cdf0e10cSrcweir xMSF->createInstance( C2U("com.sun.star.frame.Bibliography") ), 1524*cdf0e10cSrcweir uno::UNO_QUERY ); 1525*cdf0e10cSrcweir uno::Reference< beans::XPropertySet > xPropSet(xBibAccess, uno::UNO_QUERY); 1526*cdf0e10cSrcweir OUString uPropName(C2U("BibliographyDataFieldNames")); 1527*cdf0e10cSrcweir if(xPropSet.is() && xPropSet->getPropertySetInfo()->hasPropertyByName(uPropName)) 1528*cdf0e10cSrcweir { 1529*cdf0e10cSrcweir uno::Any aNames = xPropSet->getPropertyValue(uPropName); 1530*cdf0e10cSrcweir uno::Sequence<beans::PropertyValue> aSeq; 1531*cdf0e10cSrcweir if( aNames >>= aSeq) 1532*cdf0e10cSrcweir { 1533*cdf0e10cSrcweir const beans::PropertyValue* pArr = aSeq.getConstArray(); 1534*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aSeq.getLength(); i++) 1535*cdf0e10cSrcweir { 1536*cdf0e10cSrcweir String sTitle = pArr[i].Name; 1537*cdf0e10cSrcweir sal_Int16 nField = 0; 1538*cdf0e10cSrcweir pArr[i].Value >>= nField; 1539*cdf0e10cSrcweir if(nField >= 0 && nField < AUTH_FIELD_END) 1540*cdf0e10cSrcweir m_sColumnTitles[nField] = sTitle; 1541*cdf0e10cSrcweir } 1542*cdf0e10cSrcweir } 1543*cdf0e10cSrcweir } 1544*cdf0e10cSrcweir bBibAccessInitialized = sal_True; 1545*cdf0e10cSrcweir } 1546*cdf0e10cSrcweir if(xBibAccess.is()) 1547*cdf0e10cSrcweir { 1548*cdf0e10cSrcweir uno::Sequence<OUString> aIdentifiers = xBibAccess->getElementNames(); 1549*cdf0e10cSrcweir const OUString* pNames = aIdentifiers.getConstArray(); 1550*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aIdentifiers.getLength(); i++) 1551*cdf0e10cSrcweir { 1552*cdf0e10cSrcweir aEntryLB.InsertEntry(pNames[i]); 1553*cdf0e10cSrcweir } 1554*cdf0e10cSrcweir } 1555*cdf0e10cSrcweir } 1556*cdf0e10cSrcweir else 1557*cdf0e10cSrcweir { 1558*cdf0e10cSrcweir const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*) 1559*cdf0e10cSrcweir pSh->GetFldType(RES_AUTHORITY, aEmptyStr); 1560*cdf0e10cSrcweir if(pFType) 1561*cdf0e10cSrcweir { 1562*cdf0e10cSrcweir SvStringsDtor aIds; 1563*cdf0e10cSrcweir pFType->GetAllEntryIdentifiers( aIds ); 1564*cdf0e10cSrcweir for(sal_uInt16 n = 0; n < aIds.Count(); n++) 1565*cdf0e10cSrcweir aEntryLB.InsertEntry(*aIds.GetObject(n)); 1566*cdf0e10cSrcweir } 1567*cdf0e10cSrcweir if(m_sCreatedEntry[AUTH_FIELD_IDENTIFIER].Len()) 1568*cdf0e10cSrcweir aEntryLB.InsertEntry(m_sCreatedEntry[AUTH_FIELD_IDENTIFIER]); 1569*cdf0e10cSrcweir } 1570*cdf0e10cSrcweir aEntryLB.SelectEntryPos(0); 1571*cdf0e10cSrcweir CompEntryHdl(&aEntryLB); 1572*cdf0e10cSrcweir return 0; 1573*cdf0e10cSrcweir } 1574*cdf0e10cSrcweir /* -----------------15.10.2002 13:16----------------- 1575*cdf0e10cSrcweir * 1576*cdf0e10cSrcweir * --------------------------------------------------*/ 1577*cdf0e10cSrcweir IMPL_LINK(SwAuthMarkDlg, EditModifyHdl, Edit*, pEdit) 1578*cdf0e10cSrcweir { 1579*cdf0e10cSrcweir Link aAllowed = LINK(this, SwAuthMarkDlg, IsEntryAllowedHdl); 1580*cdf0e10cSrcweir long nResult = aAllowed.Call(pEdit); 1581*cdf0e10cSrcweir aOKBT.Enable(nResult > 0); 1582*cdf0e10cSrcweir if(nResult) 1583*cdf0e10cSrcweir { 1584*cdf0e10cSrcweir String sEntry(pEdit->GetText()); 1585*cdf0e10cSrcweir m_sFields[AUTH_FIELD_IDENTIFIER] = sEntry; 1586*cdf0e10cSrcweir m_sCreatedEntry[AUTH_FIELD_IDENTIFIER] = sEntry; 1587*cdf0e10cSrcweir } 1588*cdf0e10cSrcweir return 0; 1589*cdf0e10cSrcweir }; 1590*cdf0e10cSrcweir /* -----------------------------20.12.99 15:11-------------------------------- 1591*cdf0e10cSrcweir 1592*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1593*cdf0e10cSrcweir IMPL_LINK(SwAuthMarkDlg, IsEntryAllowedHdl, Edit*, pEdit) 1594*cdf0e10cSrcweir { 1595*cdf0e10cSrcweir String sEntry = pEdit->GetText(); 1596*cdf0e10cSrcweir sal_Bool bAllowed = sal_False; 1597*cdf0e10cSrcweir if(sEntry.Len()) 1598*cdf0e10cSrcweir { 1599*cdf0e10cSrcweir if(aEntryLB.GetEntryPos(sEntry) != LISTBOX_ENTRY_NOTFOUND) 1600*cdf0e10cSrcweir return 0; 1601*cdf0e10cSrcweir else if(bIsFromComponent) 1602*cdf0e10cSrcweir { 1603*cdf0e10cSrcweir const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*) 1604*cdf0e10cSrcweir pSh->GetFldType(RES_AUTHORITY, aEmptyStr); 1605*cdf0e10cSrcweir bAllowed = !pFType || !pFType->GetEntryByIdentifier(sEntry); 1606*cdf0e10cSrcweir } 1607*cdf0e10cSrcweir else 1608*cdf0e10cSrcweir { 1609*cdf0e10cSrcweir bAllowed = !xBibAccess.is() || !xBibAccess->hasByName(sEntry); 1610*cdf0e10cSrcweir } 1611*cdf0e10cSrcweir } 1612*cdf0e10cSrcweir return bAllowed; 1613*cdf0e10cSrcweir } 1614*cdf0e10cSrcweir /* -----------------21.09.99 14:19------------------- 1615*cdf0e10cSrcweir 1616*cdf0e10cSrcweir --------------------------------------------------*/ 1617*cdf0e10cSrcweir void SwAuthMarkDlg::InitControls() 1618*cdf0e10cSrcweir { 1619*cdf0e10cSrcweir DBG_ASSERT(pSh, "Shell nicht da?"); 1620*cdf0e10cSrcweir SwField* pField = pSh->GetCurFld(); 1621*cdf0e10cSrcweir ASSERT(bNewEntry || pField, "Keine aktuelle Markierung"); 1622*cdf0e10cSrcweir if(bNewEntry) 1623*cdf0e10cSrcweir { 1624*cdf0e10cSrcweir ChangeSourceHdl(aFromComponentRB.IsChecked() ? &aFromComponentRB : &aFromDocContentRB); 1625*cdf0e10cSrcweir aCreateEntryPB.Enable(!aFromComponentRB.IsChecked()); 1626*cdf0e10cSrcweir if(!aFromComponentRB.IsChecked() && m_sCreatedEntry[0].Len()) 1627*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1628*cdf0e10cSrcweir m_sFields[i] = m_sCreatedEntry[i]; 1629*cdf0e10cSrcweir } 1630*cdf0e10cSrcweir if(bNewEntry || !pField || pField->GetTyp()->Which() != RES_AUTHORITY) 1631*cdf0e10cSrcweir return; 1632*cdf0e10cSrcweir 1633*cdf0e10cSrcweir const SwAuthEntry* pEntry = ((SwAuthorityFieldType*)pField->GetTyp())-> 1634*cdf0e10cSrcweir GetEntryByHandle(((SwAuthorityField*)pField)->GetHandle()); 1635*cdf0e10cSrcweir 1636*cdf0e10cSrcweir DBG_ASSERT(pEntry, "No authority entry found"); 1637*cdf0e10cSrcweir if(!pEntry) 1638*cdf0e10cSrcweir return; 1639*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1640*cdf0e10cSrcweir m_sFields[i] = pEntry->GetAuthorField((ToxAuthorityField)i); 1641*cdf0e10cSrcweir 1642*cdf0e10cSrcweir aEntryED.SetText(pEntry->GetAuthorField(AUTH_FIELD_IDENTIFIER)); 1643*cdf0e10cSrcweir aAuthorFI.SetText(pEntry->GetAuthorField(AUTH_FIELD_AUTHOR)); 1644*cdf0e10cSrcweir aTitleFI.SetText(pEntry->GetAuthorField(AUTH_FIELD_TITLE)); 1645*cdf0e10cSrcweir } 1646*cdf0e10cSrcweir /* -----------------------------05.09.2002 09:44------------------------------ 1647*cdf0e10cSrcweir 1648*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1649*cdf0e10cSrcweir void SwAuthMarkDlg::Activate() 1650*cdf0e10cSrcweir { 1651*cdf0e10cSrcweir aOKBT.Enable(!pSh->HasReadonlySel()); 1652*cdf0e10cSrcweir Window::Activate(); 1653*cdf0e10cSrcweir } 1654*cdf0e10cSrcweir /* -----------------16.09.99 14:27------------------- 1655*cdf0e10cSrcweir 1656*cdf0e10cSrcweir --------------------------------------------------*/ 1657*cdf0e10cSrcweir SwCreateAuthEntryDlg_Impl::SwCreateAuthEntryDlg_Impl(Window* pParent, 1658*cdf0e10cSrcweir const String pFields[], 1659*cdf0e10cSrcweir SwWrtShell& rSh, 1660*cdf0e10cSrcweir sal_Bool bNewEntry, 1661*cdf0e10cSrcweir sal_Bool bCreate) : 1662*cdf0e10cSrcweir ModalDialog(pParent, SW_RES(DLG_CREATE_AUTH_ENTRY)), 1663*cdf0e10cSrcweir aEntriesFL(this, SW_RES(FL_ENTRIES )), 1664*cdf0e10cSrcweir pTypeListBox(0), 1665*cdf0e10cSrcweir pIdentifierBox(0), 1666*cdf0e10cSrcweir aOKBT(this, SW_RES(PB_OK )), 1667*cdf0e10cSrcweir aCancelBT(this, SW_RES(PB_CANCEL )), 1668*cdf0e10cSrcweir aHelpBT(this, SW_RES(PB_HELP )), 1669*cdf0e10cSrcweir rWrtSh(rSh), 1670*cdf0e10cSrcweir m_bNewEntryMode(bNewEntry), 1671*cdf0e10cSrcweir m_bNameAllowed(sal_True) 1672*cdf0e10cSrcweir { 1673*cdf0e10cSrcweir FreeResource(); 1674*cdf0e10cSrcweir Point aFLPos(aEntriesFL.GetPosPixel()); 1675*cdf0e10cSrcweir Point aTL1(aFLPos); 1676*cdf0e10cSrcweir Size aFLSz(aEntriesFL.GetSizePixel().Width(), GetSizePixel().Height()); 1677*cdf0e10cSrcweir long nControlSpace = aFLSz.Width() / 4; 1678*cdf0e10cSrcweir long nControlWidth = nControlSpace - 2 * aTL1.X(); 1679*cdf0e10cSrcweir aTL1.X() *= 2; 1680*cdf0e10cSrcweir aTL1.Y() *= 5; 1681*cdf0e10cSrcweir Point aTR1(aTL1); 1682*cdf0e10cSrcweir aTR1.X() += nControlSpace; 1683*cdf0e10cSrcweir Point aTL2(aTR1); 1684*cdf0e10cSrcweir aTL2.X() += nControlSpace; 1685*cdf0e10cSrcweir Point aTR2(aTL2); 1686*cdf0e10cSrcweir aTR2.X() += nControlSpace; 1687*cdf0e10cSrcweir Size aFixedTextSize(aFLSz); 1688*cdf0e10cSrcweir Size aTmpSz(8,10); 1689*cdf0e10cSrcweir aTmpSz = LogicToPixel(aTmpSz, MAP_APPFONT); 1690*cdf0e10cSrcweir aFixedTextSize.Height() = aTmpSz.Width(); 1691*cdf0e10cSrcweir Size aEditSize(aFixedTextSize); 1692*cdf0e10cSrcweir aFixedTextSize.Width() = nControlWidth + aFLPos.X(); 1693*cdf0e10cSrcweir aEditSize.Height() = aTmpSz.Height(); 1694*cdf0e10cSrcweir aEditSize.Width() = nControlWidth; 1695*cdf0e10cSrcweir 1696*cdf0e10cSrcweir sal_uInt16 nOffset = static_cast< sal_uInt16 >(aTmpSz.Width() * 3 / 2); 1697*cdf0e10cSrcweir sal_Bool bLeft = sal_True; 1698*cdf0e10cSrcweir Window* pRefWindow = 0; 1699*cdf0e10cSrcweir for(sal_uInt16 nIndex = 0; nIndex < AUTH_FIELD_END; nIndex++) 1700*cdf0e10cSrcweir { 1701*cdf0e10cSrcweir const TextInfo aCurInfo = aTextInfoArr[nIndex]; 1702*cdf0e10cSrcweir 1703*cdf0e10cSrcweir pFixedTexts[nIndex] = new FixedText(this); 1704*cdf0e10cSrcweir if(nIndex) 1705*cdf0e10cSrcweir pFixedTexts[nIndex]->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND ); 1706*cdf0e10cSrcweir else 1707*cdf0e10cSrcweir pFixedTexts[nIndex]->SetZOrder( 0, WINDOW_ZORDER_FIRST ); 1708*cdf0e10cSrcweir 1709*cdf0e10cSrcweir pRefWindow = pFixedTexts[nIndex]; 1710*cdf0e10cSrcweir 1711*cdf0e10cSrcweir pFixedTexts[nIndex]->SetSizePixel(aFixedTextSize); 1712*cdf0e10cSrcweir pFixedTexts[nIndex]->SetPosPixel(bLeft ? aTL1 : aTL2); 1713*cdf0e10cSrcweir pFixedTexts[nIndex]->SetText(SW_RES(STR_AUTH_FIELD_START + aCurInfo.nToxField)); 1714*cdf0e10cSrcweir pFixedTexts[nIndex]->Show(); 1715*cdf0e10cSrcweir pEdits[nIndex] = 0; 1716*cdf0e10cSrcweir if( AUTH_FIELD_AUTHORITY_TYPE == aCurInfo.nToxField ) 1717*cdf0e10cSrcweir { 1718*cdf0e10cSrcweir pTypeListBox = new ListBox(this, WB_DROPDOWN|WB_BORDER); 1719*cdf0e10cSrcweir pTypeListBox->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND ); 1720*cdf0e10cSrcweir pRefWindow = pTypeListBox; 1721*cdf0e10cSrcweir for(sal_uInt16 j = 0; j < AUTH_TYPE_END; j++) 1722*cdf0e10cSrcweir pTypeListBox->InsertEntry(String(SW_RES(STR_AUTH_TYPE_START + j))); 1723*cdf0e10cSrcweir if(pFields[aCurInfo.nToxField].Len()) 1724*cdf0e10cSrcweir { 1725*cdf0e10cSrcweir sal_uInt16 nIndexPos = static_cast< sal_uInt16 >(pFields[aCurInfo.nToxField].ToInt32()); 1726*cdf0e10cSrcweir pTypeListBox->SelectEntryPos(nIndexPos); 1727*cdf0e10cSrcweir } 1728*cdf0e10cSrcweir Size aTmp(aEditSize); 1729*cdf0e10cSrcweir aTmp.Height() *= 4; 1730*cdf0e10cSrcweir pTypeListBox->SetSizePixel(aTmp); 1731*cdf0e10cSrcweir pTypeListBox->SetPosPixel(bLeft ? aTR1 : aTR2); 1732*cdf0e10cSrcweir pTypeListBox->Show(); 1733*cdf0e10cSrcweir pTypeListBox->SetSelectHdl(LINK(this, SwCreateAuthEntryDlg_Impl, EnableHdl)); 1734*cdf0e10cSrcweir pTypeListBox->SetHelpId(aCurInfo.pHelpId); 1735*cdf0e10cSrcweir 1736*cdf0e10cSrcweir } 1737*cdf0e10cSrcweir else if(AUTH_FIELD_IDENTIFIER == aCurInfo.nToxField && !m_bNewEntryMode) 1738*cdf0e10cSrcweir { 1739*cdf0e10cSrcweir pIdentifierBox = new ComboBox(this, WB_BORDER|WB_DROPDOWN); 1740*cdf0e10cSrcweir pIdentifierBox->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND ); 1741*cdf0e10cSrcweir pRefWindow = pIdentifierBox; 1742*cdf0e10cSrcweir 1743*cdf0e10cSrcweir pIdentifierBox->SetSelectHdl(LINK(this, 1744*cdf0e10cSrcweir SwCreateAuthEntryDlg_Impl, IdentifierHdl)); 1745*cdf0e10cSrcweir 1746*cdf0e10cSrcweir 1747*cdf0e10cSrcweir const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*) 1748*cdf0e10cSrcweir rSh.GetFldType(RES_AUTHORITY, aEmptyStr); 1749*cdf0e10cSrcweir if(pFType) 1750*cdf0e10cSrcweir { 1751*cdf0e10cSrcweir SvStringsDtor aIds; 1752*cdf0e10cSrcweir pFType->GetAllEntryIdentifiers( aIds ); 1753*cdf0e10cSrcweir for(sal_uInt16 n = 0; n < aIds.Count(); n++) 1754*cdf0e10cSrcweir pIdentifierBox->InsertEntry(*aIds.GetObject(n)); 1755*cdf0e10cSrcweir } 1756*cdf0e10cSrcweir pIdentifierBox->SetText(pFields[aCurInfo.nToxField]); 1757*cdf0e10cSrcweir Size aTmp(aEditSize); 1758*cdf0e10cSrcweir aTmp.Height() *= 4; 1759*cdf0e10cSrcweir pIdentifierBox->SetSizePixel(aTmp); 1760*cdf0e10cSrcweir pIdentifierBox->SetPosPixel(bLeft ? aTR1 : aTR2); 1761*cdf0e10cSrcweir pIdentifierBox->Show(); 1762*cdf0e10cSrcweir pIdentifierBox->SetHelpId(aCurInfo.pHelpId); 1763*cdf0e10cSrcweir } 1764*cdf0e10cSrcweir else 1765*cdf0e10cSrcweir { 1766*cdf0e10cSrcweir pEdits[nIndex] = new Edit(this, WB_BORDER); 1767*cdf0e10cSrcweir pEdits[nIndex]->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND ); 1768*cdf0e10cSrcweir pRefWindow = pEdits[nIndex]; 1769*cdf0e10cSrcweir pEdits[nIndex]->SetSizePixel(aEditSize); 1770*cdf0e10cSrcweir pEdits[nIndex]->SetPosPixel(bLeft ? aTR1 : aTR2); 1771*cdf0e10cSrcweir pEdits[nIndex]->SetText(pFields[aCurInfo.nToxField]); 1772*cdf0e10cSrcweir pEdits[nIndex]->Show(); 1773*cdf0e10cSrcweir pEdits[nIndex]->SetHelpId(aCurInfo.pHelpId); 1774*cdf0e10cSrcweir if(AUTH_FIELD_IDENTIFIER == aCurInfo.nToxField) 1775*cdf0e10cSrcweir { 1776*cdf0e10cSrcweir pEdits[nIndex]->SetModifyHdl(LINK(this, SwCreateAuthEntryDlg_Impl, ShortNameHdl)); 1777*cdf0e10cSrcweir m_bNameAllowed = pFields[nIndex].Len() > 0; 1778*cdf0e10cSrcweir if(!bCreate) 1779*cdf0e10cSrcweir { 1780*cdf0e10cSrcweir pFixedTexts[nIndex]->Enable(sal_False); 1781*cdf0e10cSrcweir pEdits[nIndex]->Enable(sal_False); 1782*cdf0e10cSrcweir } 1783*cdf0e10cSrcweir } 1784*cdf0e10cSrcweir } 1785*cdf0e10cSrcweir if(bLeft) 1786*cdf0e10cSrcweir { 1787*cdf0e10cSrcweir aTL1.Y() += nOffset; 1788*cdf0e10cSrcweir aTR1.Y() += nOffset; 1789*cdf0e10cSrcweir } 1790*cdf0e10cSrcweir else 1791*cdf0e10cSrcweir { 1792*cdf0e10cSrcweir aTL2.Y() += nOffset; 1793*cdf0e10cSrcweir aTR2.Y() += nOffset; 1794*cdf0e10cSrcweir } 1795*cdf0e10cSrcweir bLeft = !bLeft; 1796*cdf0e10cSrcweir } 1797*cdf0e10cSrcweir EnableHdl(pTypeListBox); 1798*cdf0e10cSrcweir 1799*cdf0e10cSrcweir long nHeightDiff = - aFLSz.Height(); 1800*cdf0e10cSrcweir aFLSz.Height() = aTL1.Y(); 1801*cdf0e10cSrcweir nHeightDiff += aFLSz.Height(); 1802*cdf0e10cSrcweir // aEntriesFL.SetSizePixel(aFLSz); 1803*cdf0e10cSrcweir Size aDlgSize(GetSizePixel()); 1804*cdf0e10cSrcweir aDlgSize.Height() += nHeightDiff; 1805*cdf0e10cSrcweir SetSizePixel(aDlgSize); 1806*cdf0e10cSrcweir 1807*cdf0e10cSrcweir } 1808*cdf0e10cSrcweir /* -----------------16.09.99 14:47------------------- 1809*cdf0e10cSrcweir 1810*cdf0e10cSrcweir --------------------------------------------------*/ 1811*cdf0e10cSrcweir SwCreateAuthEntryDlg_Impl::~SwCreateAuthEntryDlg_Impl() 1812*cdf0e10cSrcweir { 1813*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1814*cdf0e10cSrcweir { 1815*cdf0e10cSrcweir delete pFixedTexts[i]; 1816*cdf0e10cSrcweir delete pEdits[i]; 1817*cdf0e10cSrcweir } 1818*cdf0e10cSrcweir delete pTypeListBox; 1819*cdf0e10cSrcweir delete pIdentifierBox; 1820*cdf0e10cSrcweir } 1821*cdf0e10cSrcweir /* -----------------16.09.99 14:27------------------- 1822*cdf0e10cSrcweir 1823*cdf0e10cSrcweir --------------------------------------------------*/ 1824*cdf0e10cSrcweir String SwCreateAuthEntryDlg_Impl::GetEntryText(ToxAuthorityField eField) const 1825*cdf0e10cSrcweir { 1826*cdf0e10cSrcweir String sRet; 1827*cdf0e10cSrcweir if( AUTH_FIELD_AUTHORITY_TYPE == eField ) 1828*cdf0e10cSrcweir { 1829*cdf0e10cSrcweir DBG_ASSERT(pTypeListBox, "No ListBox"); 1830*cdf0e10cSrcweir sRet = String::CreateFromInt32(pTypeListBox->GetSelectEntryPos()); 1831*cdf0e10cSrcweir } 1832*cdf0e10cSrcweir else if( AUTH_FIELD_IDENTIFIER == eField && !m_bNewEntryMode) 1833*cdf0e10cSrcweir { 1834*cdf0e10cSrcweir DBG_ASSERT(pIdentifierBox, "No ComboBox"); 1835*cdf0e10cSrcweir sRet = pIdentifierBox->GetText(); 1836*cdf0e10cSrcweir } 1837*cdf0e10cSrcweir else 1838*cdf0e10cSrcweir { 1839*cdf0e10cSrcweir for(sal_uInt16 nIndex = 0; nIndex < AUTH_FIELD_END; nIndex++) 1840*cdf0e10cSrcweir { 1841*cdf0e10cSrcweir const TextInfo aCurInfo = aTextInfoArr[nIndex]; 1842*cdf0e10cSrcweir if(aCurInfo.nToxField == eField) 1843*cdf0e10cSrcweir { 1844*cdf0e10cSrcweir sRet = pEdits[nIndex]->GetText(); 1845*cdf0e10cSrcweir break; 1846*cdf0e10cSrcweir } 1847*cdf0e10cSrcweir } 1848*cdf0e10cSrcweir } 1849*cdf0e10cSrcweir return sRet; 1850*cdf0e10cSrcweir } 1851*cdf0e10cSrcweir /* -----------------21.09.99 13:54------------------- 1852*cdf0e10cSrcweir 1853*cdf0e10cSrcweir --------------------------------------------------*/ 1854*cdf0e10cSrcweir IMPL_LINK(SwCreateAuthEntryDlg_Impl, IdentifierHdl, ComboBox*, pBox) 1855*cdf0e10cSrcweir { 1856*cdf0e10cSrcweir const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*) 1857*cdf0e10cSrcweir rWrtSh.GetFldType(RES_AUTHORITY, aEmptyStr); 1858*cdf0e10cSrcweir if(pFType) 1859*cdf0e10cSrcweir { 1860*cdf0e10cSrcweir const SwAuthEntry* pEntry = pFType->GetEntryByIdentifier( 1861*cdf0e10cSrcweir pBox->GetText()); 1862*cdf0e10cSrcweir if(pEntry) 1863*cdf0e10cSrcweir { 1864*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++) 1865*cdf0e10cSrcweir { 1866*cdf0e10cSrcweir if(AUTH_FIELD_IDENTIFIER == i) 1867*cdf0e10cSrcweir continue; 1868*cdf0e10cSrcweir if(AUTH_FIELD_AUTHORITY_TYPE == i) 1869*cdf0e10cSrcweir pTypeListBox->SelectEntry( 1870*cdf0e10cSrcweir pEntry->GetAuthorField((ToxAuthorityField)i)); 1871*cdf0e10cSrcweir else 1872*cdf0e10cSrcweir pEdits[i]->SetText( 1873*cdf0e10cSrcweir pEntry->GetAuthorField((ToxAuthorityField)i)); 1874*cdf0e10cSrcweir } 1875*cdf0e10cSrcweir } 1876*cdf0e10cSrcweir } 1877*cdf0e10cSrcweir return 0; 1878*cdf0e10cSrcweir } 1879*cdf0e10cSrcweir /* -----------------------------20.12.99 15:07-------------------------------- 1880*cdf0e10cSrcweir 1881*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1882*cdf0e10cSrcweir 1883*cdf0e10cSrcweir IMPL_LINK(SwCreateAuthEntryDlg_Impl, ShortNameHdl, Edit*, pEdit) 1884*cdf0e10cSrcweir { 1885*cdf0e10cSrcweir if(aShortNameCheckLink.IsSet()) 1886*cdf0e10cSrcweir { 1887*cdf0e10cSrcweir sal_Bool bEnable = 0 != aShortNameCheckLink.Call(pEdit); 1888*cdf0e10cSrcweir m_bNameAllowed |= bEnable; 1889*cdf0e10cSrcweir aOKBT.Enable(pTypeListBox->GetSelectEntryCount() && bEnable); 1890*cdf0e10cSrcweir } 1891*cdf0e10cSrcweir return 0; 1892*cdf0e10cSrcweir } 1893*cdf0e10cSrcweir /* -----------------------------20.12.99 15:54-------------------------------- 1894*cdf0e10cSrcweir 1895*cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1896*cdf0e10cSrcweir IMPL_LINK(SwCreateAuthEntryDlg_Impl, EnableHdl, ListBox*, pBox) 1897*cdf0e10cSrcweir { 1898*cdf0e10cSrcweir aOKBT.Enable(m_bNameAllowed && pBox->GetSelectEntryCount()); 1899*cdf0e10cSrcweir return 0; 1900*cdf0e10cSrcweir }; 1901*cdf0e10cSrcweir /* -----------------06.10.99 10:00------------------- 1902*cdf0e10cSrcweir 1903*cdf0e10cSrcweir --------------------------------------------------*/ 1904*cdf0e10cSrcweir SwAuthMarkFloatDlg::SwAuthMarkFloatDlg(SfxBindings* _pBindings, 1905*cdf0e10cSrcweir SfxChildWindow* pChild, 1906*cdf0e10cSrcweir Window *pParent, 1907*cdf0e10cSrcweir SfxChildWinInfo* pInfo, 1908*cdf0e10cSrcweir sal_Bool bNew) : 1909*cdf0e10cSrcweir SfxModelessDialog(_pBindings, pChild, pParent, SW_RES(DLG_INSAUTHMARK)), 1910*cdf0e10cSrcweir aDlg(this, SW_RES(WIN_DLG), bNew) 1911*cdf0e10cSrcweir { 1912*cdf0e10cSrcweir FreeResource(); 1913*cdf0e10cSrcweir Initialize(pInfo); 1914*cdf0e10cSrcweir SwWrtShell* pWrtShell = ::GetActiveWrtShell(); 1915*cdf0e10cSrcweir DBG_ASSERT(pWrtShell, "No shell?"); 1916*cdf0e10cSrcweir aDlg.ReInitDlg(*pWrtShell); 1917*cdf0e10cSrcweir } 1918*cdf0e10cSrcweir /* -----------------06.10.99 10:27------------------- 1919*cdf0e10cSrcweir 1920*cdf0e10cSrcweir --------------------------------------------------*/ 1921*cdf0e10cSrcweir void SwAuthMarkFloatDlg::Activate() 1922*cdf0e10cSrcweir { 1923*cdf0e10cSrcweir SfxModelessDialog::Activate(); 1924*cdf0e10cSrcweir aDlg.Activate(); 1925*cdf0e10cSrcweir } 1926*cdf0e10cSrcweir 1927*cdf0e10cSrcweir void SwAuthMarkFloatDlg::ReInitDlg(SwWrtShell& rWrtShell) 1928*cdf0e10cSrcweir { 1929*cdf0e10cSrcweir aDlg.ReInitDlg( rWrtShell ); 1930*cdf0e10cSrcweir } 1931*cdf0e10cSrcweir 1932*cdf0e10cSrcweir /* -----------------06.10.99 10:35------------------- 1933*cdf0e10cSrcweir 1934*cdf0e10cSrcweir --------------------------------------------------*/ 1935*cdf0e10cSrcweir SwAuthMarkModalDlg::SwAuthMarkModalDlg(Window *pParent, SwWrtShell& rSh) : 1936*cdf0e10cSrcweir SvxStandardDialog(pParent, SW_RES(DLG_EDIT_AUTHMARK)), 1937*cdf0e10cSrcweir aDlg(this, SW_RES(WIN_DLG), sal_False) 1938*cdf0e10cSrcweir { 1939*cdf0e10cSrcweir FreeResource(); 1940*cdf0e10cSrcweir aDlg.ReInitDlg(rSh); 1941*cdf0e10cSrcweir } 1942*cdf0e10cSrcweir /* -----------------06.10.99 10:46------------------- 1943*cdf0e10cSrcweir 1944*cdf0e10cSrcweir --------------------------------------------------*/ 1945*cdf0e10cSrcweir void SwAuthMarkModalDlg::Apply() 1946*cdf0e10cSrcweir { 1947*cdf0e10cSrcweir aDlg.InsertHdl(0); 1948*cdf0e10cSrcweir } 1949*cdf0e10cSrcweir 1950