summaryrefslogtreecommitdiff
path: root/sw/source/ui/index/idxmrk.cxx
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2004-05-10 15:32:46 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2004-05-10 15:32:46 +0000
commitaacd211d12e98c091accbfa360a83434cbec68b8 (patch)
tree0eda167edc96ec669b7cbb881929bc25c4c03e58 /sw/source/ui/index/idxmrk.cxx
parentcd845b4dc91fa2dc080f4a8c34b8f75e1d3215cf (diff)
INTEGRATION: CWS dialogdiet01 (1.30.126); FILE MERGED
2004/03/26 09:12:07 mwu 1.30.126.1: sw model converted. 20040326
Diffstat (limited to 'sw/source/ui/index/idxmrk.cxx')
-rw-r--r--sw/source/ui/index/idxmrk.cxx1857
1 files changed, 17 insertions, 1840 deletions
diff --git a/sw/source/ui/index/idxmrk.cxx b/sw/source/ui/index/idxmrk.cxx
index 1ec924a469fb..677036570264 100644
--- a/sw/source/ui/index/idxmrk.cxx
+++ b/sw/source/ui/index/idxmrk.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: idxmrk.cxx,v $
*
- * $Revision: 1.30 $
+ * $Revision: 1.31 $
*
- * last change: $Author: rt $ $Date: 2003-12-01 17:34:26 $
+ * last change: $Author: hr $ $Date: 2004-05-10 16:32:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -184,1050 +184,7 @@
#include <breakit.hxx>
#endif
-#define POS_CONTENT 0
-#define POS_INDEX 1
-#define POS_USER 2
-static sal_uInt16 nTypePos = 1; // TOX_INDEX as standard
-static sal_uInt16 nKey1Pos = USHRT_MAX;
-
-static sal_uInt16 nKey2Pos = USHRT_MAX;
-
-static const char* pUserItemNamePosX = "POSX";
-static const char* pUserItemNamePosY = "POSY";
-
-using namespace com::sun::star;
-using namespace com::sun::star::i18n;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::util;
-using namespace com::sun::star::i18n;
-using namespace ::rtl;
-using namespace ::comphelper;
-using namespace ::com::sun::star;
-
-#define C2U(cChar) OUString::createFromAscii(cChar)
-
-/*--------------------------------------------------------------------
- Beschreibung: Dialog zum Einfuegen einer Verzeichnismarkierung
- --------------------------------------------------------------------*/
-SwIndexMarkDlg::SwIndexMarkDlg(Window *pParent,
- sal_Bool bNewDlg,
- const ResId& rResId,
- sal_Int32 _nOptionsId ) :
- Window(pParent, rResId),
- nOptionsId( _nOptionsId ),
- bDel(sal_False),
- bNewMark(bNewDlg),
- pTOXMgr(0),
- pSh(0),
- aOKBT(this, SW_RES(BT_OK )),
- aCancelBT(this, SW_RES(BT_CANCEL )),
- aHelpBT(this, SW_RES(BT_HELP )),
- aDelBT(this, SW_RES(BT_DEL )),
- aNewBT(this, SW_RES(BT_NEW )),
- aPrevBT(this, SW_RES(BT_PREV )),
- aPrevSameBT(this,SW_RES(BT_PREVSAME)),
- aNextBT(this, SW_RES(BT_NXT )),
- aNextSameBT(this,SW_RES(BT_NXTSAME)),
- aTypeFT (this, SW_RES(LBL_INDEX )),
- aTypeDCB(this, SW_RES(DCB_INDEX )),
- aEntryFT(this, SW_RES(LBL_ENTRY )),
- aEntryED(this, SW_RES(SL_ENTRY )),
- aPhoneticFT0(this, SW_RES(FT_PHONETIC_1 )),
- aPhoneticED0(this, SW_RES(ED_PHONETIC_1 )),
- aKeyFT(this, SW_RES(LBL_KEY )),
- aKeyDCB(this, SW_RES(DCB_KEY )),
- aPhoneticFT1(this, SW_RES(FT_PHONETIC_2 )),
- aPhoneticED1(this, SW_RES(ED_PHONETIC_2 )),
- aKey2FT(this, SW_RES(LBL_KEY2 )),
- aKey2DCB(this, SW_RES(DCB_KEY2 )),
- aPhoneticFT2(this, SW_RES(FT_PHONETIC_3 )),
- aPhoneticED2(this, SW_RES(ED_PHONETIC_3 )),
- aLevelFT(this, SW_RES(LBL_LEVEL )),
- aLevelED(this, SW_RES(SL_LEVEL )),
- aMainEntryCB(this, SW_RES(CB_MAIN_ENTRY )),
- aApplyToAllCB(this,SW_RES(CB_APPLY_TO_ALL)),
- aSearchCaseSensitiveCB(this, SW_RES(CB_CASESENSITIVE )),
- aSearchCaseWordOnlyCB(this, SW_RES(CB_WORDONLY )),
- aIndexFL(this, SW_RES(FL_INDEX )),
- bSelected(sal_False),
- bPhoneticED0_ChangedByUser(FALSE),
- bPhoneticED1_ChangedByUser(FALSE),
- bPhoneticED2_ChangedByUser(FALSE),
- xExtendedIndexEntrySupplier(NULL),
- nLangForPhoneticReading(2052),
- bIsPhoneticReadingEnabled(FALSE)
-{
- if( SvtCJKOptions().IsCJKFontEnabled() )
- {
- uno::Reference< lang::XMultiServiceFactory > xMSF = getProcessServiceFactory();
-
- xExtendedIndexEntrySupplier =
- uno::Reference< com::sun::star::i18n::XExtendedIndexEntrySupplier > (
- xMSF->createInstance( C2U("com.sun.star.i18n.IndexEntrySupplier") ),
- uno::UNO_QUERY );
- }
-
- SetStyle(GetStyle()|WB_DIALOGCONTROL);
- FreeResource();
- aOKBT .SetHelpId(HID_INSERT_IDX_MRK_OK );
- aCancelBT .SetHelpId(HID_INSERT_IDX_MRK_CLOSE );
- aDelBT .SetHelpId(HID_INSERT_IDX_MRK_DELETE );
- aNewBT .SetHelpId(HID_INSERT_IDX_MRK_NEW );
- aPrevBT .SetHelpId(HID_INSERT_IDX_MRK_PREV );
- aPrevSameBT .SetHelpId(HID_INSERT_IDX_MRK_PREV_SAME );
- aNextBT .SetHelpId(HID_INSERT_IDX_MRK_NEXT );
- aNextSameBT .SetHelpId(HID_INSERT_IDX_MRK_NEXT_SAME );
- aTypeDCB .SetHelpId(HID_INSERT_IDX_MRK_TYPE );
- aEntryED .SetHelpId(HID_INSERT_IDX_MRK_ENTRY );
- aKeyDCB .SetHelpId(HID_INSERT_IDX_MRK_PRIM_KEY );
- aKey2DCB .SetHelpId(HID_INSERT_IDX_MRK_SEC_KEY );
- aLevelED .SetHelpId(HID_INSERT_IDX_MRK_LEVEL );
- aMainEntryCB .SetHelpId(HID_INSERT_IDX_MRK_MAIN_ENTRY);
- aApplyToAllCB .SetHelpId(HID_INSERT_IDX_MRK_APPLY_ALL );
- aPhoneticED0 .SetHelpId(HID_INSERT_IDX_MRK_PHONETIC_READING );
- aPhoneticED1 .SetHelpId(HID_INSERT_IDX_MRK_PHONETIC_READING );
- aPhoneticED2 .SetHelpId(HID_INSERT_IDX_MRK_PHONETIC_READING );
-
- aSearchCaseSensitiveCB.SetHelpId( HID_INSERT_IDX_MRK_SRCH_CASESENSITIVE );
- aSearchCaseWordOnlyCB.SetHelpId( HID_INSERT_IDX_MRK_SRCH_WORDONLY );
-
-
- GetParent()->SetText( SW_RESSTR( bNewMark ? STR_IDXMRK_INSERT : STR_IDXMRK_EDIT));
-
- aDelBT.SetClickHdl(LINK(this,SwIndexMarkDlg, DelHdl));
- aPrevBT.SetClickHdl(LINK(this,SwIndexMarkDlg, PrevHdl));
- aPrevSameBT.SetClickHdl(LINK(this,SwIndexMarkDlg, PrevSameHdl));
- aNextBT.SetClickHdl(LINK(this,SwIndexMarkDlg, NextHdl));
- aNextSameBT.SetClickHdl(LINK(this,SwIndexMarkDlg, NextSameHdl));
- //aTypeDCB.SetModifyHdl(LINK(this,SwIndexMarkDlg, ModifyHdl));
- aTypeDCB.SetSelectHdl(LINK(this,SwIndexMarkDlg, ModifyHdl));
- aKeyDCB.SetModifyHdl(LINK(this,SwIndexMarkDlg, KeyDCBModifyHdl));
- aKey2DCB.SetModifyHdl(LINK(this,SwIndexMarkDlg, KeyDCBModifyHdl));
- aOKBT.SetClickHdl(LINK(this,SwIndexMarkDlg, InsertHdl));
- aCancelBT.SetClickHdl(LINK(this,SwIndexMarkDlg, CloseHdl));
- aEntryED.SetModifyHdl(LINK(this,SwIndexMarkDlg, ModifyHdl));
- aNewBT.SetClickHdl(LINK(this, SwIndexMarkDlg, NewUserIdxHdl));
- aApplyToAllCB.SetClickHdl(LINK(this, SwIndexMarkDlg, SearchTypeHdl));
- aPhoneticED0.SetModifyHdl(LINK(this,SwIndexMarkDlg, PhoneticEDModifyHdl));
- aPhoneticED1.SetModifyHdl(LINK(this,SwIndexMarkDlg, PhoneticEDModifyHdl));
- aPhoneticED2.SetModifyHdl(LINK(this,SwIndexMarkDlg, PhoneticEDModifyHdl));
-
- if(bNewMark)
- {
- aDelBT.Hide();
-
- {
- ImageList aTempList( SW_RES( IMG_NAVI_ENTRYBMPH ) );
- aNewBT.SetModeImage( aTempList.GetImage( SID_SW_START + CONTENT_TYPE_INDEX ), BMP_COLOR_HIGHCONTRAST );
- }
-
- {
- ImageList aTempList( SW_RES( IMG_NAVI_ENTRYBMP ) );
- aNewBT.SetModeImage( aTempList.GetImage( SID_SW_START + CONTENT_TYPE_INDEX ), BMP_COLOR_NORMAL );
- }
- }
- else
- {
- aNewBT.Hide();
- OKButton aTmp(this, WB_HIDE);
- aOKBT.SetText( aTmp.GetText() );
- }
-
- aEntryED.GrabFocus();
-}
-
-/*--------------------------------------------------------------------
- Beschreibung: Controls neu initialisieren mit der aktuellen
- Markierung
- --------------------------------------------------------------------*/
-
-
-void SwIndexMarkDlg::InitControls()
-{
- DBG_ASSERT(pSh && pTOXMgr, "Shell nicht da?")
- // Inhalts-Verzeichnis
- const SwTOXType* pType = pTOXMgr->GetTOXType(TOX_CONTENT, 0);
- ASSERT(pType, "Kein Verzeichnistyp !!");
- String sTmpTypeSelection;
- if(aTypeDCB.GetSelectEntryCount())
- sTmpTypeSelection = aTypeDCB.GetSelectEntry();
- aTypeDCB.Clear();
- aTypeDCB.InsertEntry(pType->GetTypeName());
-
- // Stichwort-Verzeichnis
- pType = pTOXMgr->GetTOXType(TOX_INDEX, 0);
- ASSERT(pType, "Kein Verzeichnistyp !!");
- aTypeDCB.InsertEntry(pType->GetTypeName());
-
- // Benutzerverzeichnisse
- sal_uInt16 nCount = pSh->GetTOXTypeCount(TOX_USER);
- sal_uInt16 i;
- for( i = 0; i < nCount; ++i )
- aTypeDCB.InsertEntry( pSh->GetTOXType(TOX_USER, i)->GetTypeName() );
-
- // KeyWords Primary einlesen
- SvStringsSort aArr;
- nCount = pSh->GetTOIKeys( TOI_PRIMARY, aArr );
- for(i=0; i < nCount; ++i)
- aKeyDCB.InsertEntry( *aArr[ i ] );
-
- // KeyWords Secondary einlesen
- nCount = pSh->GetTOIKeys( TOI_SECONDARY, aArr );
- for(i=0; i < nCount; ++i)
- aKey2DCB.InsertEntry( *aArr[ i ] );
-
- UpdateLanguageDependenciesForPhoneticReading();
-
- // Aktueller Eintrag
- const SwTOXMark* pMark = pTOXMgr->GetCurTOXMark();
- if( pMark && !bNewMark)
- {
- // Controls-Handling
-
- // nur wenn mehr als eins vorhanden
- // wenn gleich landet es auf dem gleichen Eintrag
- pSh->SttCrsrMove();
-
- const SwTOXMark* pMoveMark;
- sal_Bool bShow = sal_False;
-
- pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_PRV );
- if( pMoveMark != pMark )
- pSh->GotoTOXMark( *pMoveMark, TOX_NXT ), bShow = sal_True;
- aPrevBT.Enable( pMoveMark != pMark );
- pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_NXT );
- if( pMoveMark != pMark )
- pSh->GotoTOXMark( *pMoveMark, TOX_PRV ), bShow = sal_True;
- aNextBT.Enable( pMoveMark != pMark );
- if( bShow )
- {
- aPrevBT.Show();
- aNextBT.Show();
- bShow = sal_False;
- }
-
- pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_PRV );
- if( pMoveMark != pMark )
- pSh->GotoTOXMark( *pMoveMark, TOX_SAME_NXT ), bShow = sal_True;
- aPrevSameBT.Enable( pMoveMark != pMark );
- pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_NXT );
- if( pMoveMark != pMark )
- pSh->GotoTOXMark( *pMoveMark, TOX_SAME_PRV ), bShow = sal_True;
- aNextSameBT.Enable( pMoveMark != pMark );
- if( bShow )
- {
- aNextSameBT.Show();
- aPrevSameBT.Show();
- }
- pSh->EndCrsrMove();
-
- aTypeFT.Show();
-
- aTypeDCB.Enable(sal_False);
- aTypeFT.Enable(sal_False);
-
- UpdateDialog();
- }
- else
- { // aktuelle Selektion (1.Element) anzeigen ????
- sal_uInt16 nCnt = pSh->GetCrsrCnt();
- if (nCnt < 2)
- {
- bSelected = !pSh->HasSelection();
- aOrgStr = pSh->GetView().GetSelectionTextParam(sal_True, sal_False);
- aEntryED.SetText(aOrgStr);
-
- //alle gleichen Eintraege aufzunehmen darf nur im Body und auch da nur
- //bei vorhandener einfacher Selektion erlaubt werden
- const sal_uInt16 nFrmType = pSh->GetFrmType(0,sal_True);
- aApplyToAllCB.Show();
- aSearchCaseSensitiveCB.Show();
- aSearchCaseWordOnlyCB.Show();
- aApplyToAllCB.Enable(0 != aOrgStr.Len() &&
- 0 == (nFrmType & ( FRMTYPE_HEADER | FRMTYPE_FOOTER | FRMTYPE_FLY_ANY )));
- SearchTypeHdl(&aApplyToAllCB);
- }
-
- // Verzeichnistyp ist default
- if( sTmpTypeSelection.Len() &&
- LISTBOX_ENTRY_NOTFOUND != aTypeDCB.GetEntryPos( sTmpTypeSelection ) )
- aTypeDCB.SelectEntry(sTmpTypeSelection);
- else
- aTypeDCB.SelectEntry(aTypeDCB.GetEntry(nTypePos));
- ModifyHdl(&aTypeDCB);
- }
-}
-
-void SwIndexMarkDlg::UpdateLanguageDependenciesForPhoneticReading()
-{
- //no phonetic reading if no global cjk support
- if( !xExtendedIndexEntrySupplier.is() )
- {
- bIsPhoneticReadingEnabled = FALSE;
- return;
- }
- bIsPhoneticReadingEnabled = TRUE;
-
- //get the current language
- if(!bNewMark) //if dialog is opened to iterate existing marks
- {
- ASSERT(pTOXMgr, "need TOXMgr")
- if(!pTOXMgr)
- return;
- SwTOXMark* pMark = pTOXMgr->GetCurTOXMark();
- ASSERT(pMark, "need current SwTOXMark");
- if(!pMark)
- return;
- SwTxtTOXMark* pTxtTOXMark = pMark->GetTxtTOXMark();
- ASSERT(pTxtTOXMark, "need current SwTxtTOXMark");
- if(!pTxtTOXMark)
- return;
- const SwTxtNode* pTxtNode = pTxtTOXMark->GetpTxtNd();
- ASSERT(pTxtNode, "need current SwTxtNode");
- if(!pTxtNode)
- return;
- xub_StrLen nTextIndex = *pTxtTOXMark->GetStart();
- nLangForPhoneticReading = pTxtNode->GetLang( nTextIndex );
- }
- else //if dialog is opened to create a new mark
- {
- USHORT nScriptType = pSh->GetScriptType();
- USHORT nWhich;
- switch(nScriptType)
- {
- case SCRIPTTYPE_ASIAN: nWhich = RES_CHRATR_CJK_LANGUAGE; break;
- case SCRIPTTYPE_COMPLEX:nWhich = RES_CHRATR_CTL_LANGUAGE; break;
- //case SCRIPTTYPE_LATIN:
- default:nWhich = RES_CHRATR_LANGUAGE; break;
- }
- SfxItemSet aLangSet(pSh->GetAttrPool(), nWhich, nWhich);
- pSh->GetAttr(aLangSet);
- nLangForPhoneticReading = ((const SvxLanguageItem&)aLangSet.Get(nWhich)).GetLanguage();
- }
-
- /*
- //enable phonetic reading dependent on the current language
- {
- SwBreakIt aBreakIt = SwBreakIt();
- lang::Locale& rLocale = aBreakIt.GetLocale( LanguageType( nLangForPhoneticReading ) );
- bIsPhoneticReadingEnabled = xExtendedIndexEntrySupplier->usePhoneticEntry( rLocale );
- }
- */
-}
-
-String SwIndexMarkDlg::GetDefaultPhoneticReading( const String& rText )
-{
- if( !bIsPhoneticReadingEnabled )
- return aEmptyStr;
-
- SwBreakIt aBreakIt = SwBreakIt();
- lang::Locale& rLocale = aBreakIt.GetLocale( LanguageType( nLangForPhoneticReading ) );
- return xExtendedIndexEntrySupplier->getPhoneticCandidate(rText, rLocale);
-}
-
-/* -----------------07.09.99 10:43-------------------
- Change the content of aEntryED if text is selected
- --------------------------------------------------*/
-
-void SwIndexMarkDlg::Activate()
-{
- // aktuelle Selektion (1.Element) anzeigen ????
- if(bNewMark)
- {
- sal_uInt16 nCnt = pSh->GetCrsrCnt();
- if (nCnt < 2)
- {
- bSelected = !pSh->HasSelection();
- aOrgStr = pSh->GetView().GetSelectionTextParam(sal_True, sal_False);
- aEntryED.SetText(aOrgStr);
-
- //alle gleichen Eintraege aufzunehmen darf nur im Body und auch da nur
- //bei vorhandener einfacher Selektion erlaubt werden
- const sal_uInt16 nFrmType = pSh->GetFrmType(0,sal_True);
- aApplyToAllCB.Show();
- aSearchCaseSensitiveCB.Show();
- aSearchCaseWordOnlyCB.Show();
- aApplyToAllCB.Enable(0 != aOrgStr.Len() &&
- 0 == (nFrmType & ( FRMTYPE_HEADER | FRMTYPE_FOOTER | FRMTYPE_FLY_ANY )));
- SearchTypeHdl(&aApplyToAllCB);
- }
- ModifyHdl(&aTypeDCB);
- }
-}
-
-/*--------------------------------------------------------------------
- Beschreibung: Ok-Button auswerten
- --------------------------------------------------------------------*/
-void SwIndexMarkDlg::Apply()
-{
- InsertUpdate();
- if(bSelected)
- pSh->ResetSelect(0, sal_False);
-}
-
-/*--------------------------------------------------------------------
- Beschreibung: Aenderungen uebernehmen
- --------------------------------------------------------------------*/
-
-
-void SwIndexMarkDlg::InsertUpdate()
-{
- pSh->StartUndo(UNDO_INSATTR);
- pSh->StartAllAction();
-
- if( bNewMark )
- InsertMark();
- else if( !pSh->HasReadonlySel() )
- {
- if( bDel )
- pTOXMgr->DeleteTOXMark();
- else if( pTOXMgr->GetCurTOXMark() )
- UpdateMark();
- }
-
- pSh->EndAllAction();
- pSh->EndUndo(UNDO_INSATTR);
-
- if((nTypePos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry())) == LISTBOX_ENTRY_NOTFOUND)
- nTypePos = 0;
-
- nKey1Pos = aKeyDCB.GetEntryPos(aKeyDCB.GetText());
- nKey2Pos = aKey2DCB.GetEntryPos(aKey2DCB.GetText());
-}
-
-/*--------------------------------------------------------------------
- Beschreibung: Marke einfuegen
- --------------------------------------------------------------------*/
-void lcl_SelectSameStrings(SwWrtShell& rSh, BOOL bWordOnly, BOOL bCaseSensitive)
-{
- rSh.Push();
-
- SearchOptions aSearchOpt(
- SearchAlgorithms_ABSOLUTE,
- ( bWordOnly ? SearchFlags::NORM_WORD_ONLY : 0 ),
- rSh.GetSelTxt(), OUString(),
- CreateLocale( GetAppLanguage() ),
- 0, 0, 0,
- (bCaseSensitive
- ? 0
- : TransliterationModules_IGNORE_CASE) );
-
- rSh.ClearMark();
- BOOL bCancel;
- ULONG nRet = rSh.Find( aSearchOpt, DOCPOS_START, DOCPOS_END, bCancel,
- (FindRanges)(FND_IN_SELALL|FND_IN_BODYONLY), FALSE );
-}
-
-
-void SwIndexMarkDlg::InsertMark()
-{
- sal_uInt16 nPos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry());
- TOXTypes eType = nPos == POS_CONTENT ? TOX_CONTENT :
- nPos == POS_INDEX ? TOX_INDEX : TOX_USER;
-
- SwTOXMarkDescription aDesc(eType);
-
- sal_uInt16 nLevel = (sal_uInt16)aLevelED.Denormalize(aLevelED.GetValue());
- switch(nPos)
- {
- case POS_CONTENT : break;
- case POS_INDEX: // Stichwortverzeichnismarke
- {
- UpdateKeyBoxes();
- String aPrim(aKeyDCB.GetText());
- String aSec(aKey2DCB.GetText());
- aDesc.SetPrimKey(aPrim);
- aDesc.SetSecKey(aSec);
- aDesc.SetMainEntry(aMainEntryCB.IsChecked());
- aDesc.SetPhoneticReadingOfAltStr(aPhoneticED0.GetText());
- aDesc.SetPhoneticReadingOfPrimKey(aPhoneticED1.GetText());
- aDesc.SetPhoneticReadingOfSecKey(aPhoneticED2.GetText());
- }
- break;
- default: // Userdefinedverz.-Marke
- {
- String aName(aTypeDCB.GetSelectEntry());
- aDesc.SetTOUName(aName);
- }
- }
- if (aOrgStr != aEntryED.GetText())
- aDesc.SetAltStr(aEntryED.GetText());
- BOOL bApplyAll = aApplyToAllCB.IsChecked();
- BOOL bWordOnly = aSearchCaseWordOnlyCB.IsChecked();
- BOOL bCaseSensitive = aSearchCaseSensitiveCB.IsChecked();
-
- pSh->StartAllAction();
- // hier muessen alle gleichen Strings selektiert werden
- // damit der Eintrag auf alle gleichen Strings angewandt wird
- if(bApplyAll)
- {
- lcl_SelectSameStrings(*pSh, bWordOnly, bCaseSensitive);
- }
- aDesc.SetLevel(nLevel);
- SwTOXMgr aMgr(pSh);
- aMgr.InsertTOXMark(aDesc);
- if(bApplyAll)
- pSh->Pop(FALSE);
-
- pSh->EndAllAction();
-}
-
-/*--------------------------------------------------------------------
- Beschreibung: Marke Updaten
- --------------------------------------------------------------------*/
-
-
-void SwIndexMarkDlg::UpdateMark()
-{
- String aAltText(aEntryED.GetText());
- String* pAltText = aOrgStr != aEntryED.GetText() ? &aAltText : 0;
- //empty alternative texts are not allowed
- if(pAltText && !pAltText->Len())
- return;
-
- UpdateKeyBoxes();
-
- sal_uInt16 nPos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry());
- TOXTypes eType = TOX_USER;
- if(POS_CONTENT == nPos)
- eType = TOX_CONTENT;
- else if(POS_INDEX == nPos)
- eType = TOX_INDEX;
-
- SwTOXMarkDescription aDesc(eType);
- aDesc.SetLevel(aLevelED.GetValue());
- if(pAltText)
- aDesc.SetAltStr(*pAltText);
-
- String aPrim(aKeyDCB.GetText());
- if(aPrim.Len())
- aDesc.SetPrimKey(aPrim);
- String aSec(aKey2DCB.GetText());
- if(aSec.Len())
- aDesc.SetSecKey(aSec);
-
- if(eType == TOX_INDEX)
- {
- aDesc.SetPhoneticReadingOfAltStr(aPhoneticED0.GetText());
- aDesc.SetPhoneticReadingOfPrimKey(aPhoneticED1.GetText());
- aDesc.SetPhoneticReadingOfSecKey(aPhoneticED2.GetText());
- }
- aDesc.SetMainEntry(aMainEntryCB.IsVisible() && aMainEntryCB.IsChecked());
- pTOXMgr->UpdateTOXMark(aDesc);
-}
-
-/*--------------------------------------------------------------------
- Beschreibung: Neue Keys eintragen
- --------------------------------------------------------------------*/
-
-
-void SwIndexMarkDlg::UpdateKeyBoxes()
-{
- String aKey(aKeyDCB.GetText());
- sal_uInt16 nPos = aKeyDCB.GetEntryPos(aKey);
-
- if(nPos == LISTBOX_ENTRY_NOTFOUND && aKey.Len() > 0)
- { // neuen Key erzeugen
- aKeyDCB.InsertEntry(aKey);
- }
-
- aKey = aKey2DCB.GetText();
- nPos = aKey2DCB.GetEntryPos(aKey);
-
- if(nPos == LISTBOX_ENTRY_NOTFOUND && aKey.Len() > 0)
- { // neuen Key erzeugen
- aKey2DCB.InsertEntry(aKey);
- }
-}
-/* -----------------13.10.99 15:10-------------------
-
- --------------------------------------------------*/
-class SwNewUserIdxDlg : public ModalDialog
-{
- OKButton aOKPB;
- CancelButton aCancelPB;
- HelpButton aHelpPB;
- FixedLine aNameFL;
- FixedText aNameFT;
- Edit aNameED;
-
- SwIndexMarkDlg* pDlg;
-
- DECL_LINK( ModifyHdl, Edit*);
-
- public:
- SwNewUserIdxDlg(SwIndexMarkDlg* pParent) :
- ModalDialog(pParent, SW_RES(DLG_NEW_USER_IDX)),
- pDlg(pParent),
- aOKPB(this, ResId( PB_OK )),
- aCancelPB(this, ResId( PB_CANCEL )),
- aHelpPB(this, ResId( PB_HELP )),
- aNameFL(this, ResId( FL_NAME )),
- aNameFT(this, ResId( FT_NAME )),
- aNameED(this, ResId( ED_NAME ))
- {
- FreeResource();
- aNameED.SetModifyHdl(LINK(this, SwNewUserIdxDlg, ModifyHdl));
- aOKPB.Enable(sal_False);
- aNameED.GrabFocus();
- }
-
- virtual void Apply();
- String GetName(){return aNameED.GetText();}
-};
-void SwNewUserIdxDlg::Apply()
-{
-}
-
-IMPL_LINK( SwNewUserIdxDlg, ModifyHdl, Edit*, pEdit)
-{
- aOKPB.Enable(pEdit->GetText().Len() && !pDlg->IsTOXType(pEdit->GetText()));
- return 0;
-}
-
-IMPL_LINK( SwIndexMarkDlg, NewUserIdxHdl, Button*, pButton)
-{
- SwNewUserIdxDlg* pDlg = new SwNewUserIdxDlg(this);
- if(RET_OK == pDlg->Execute())
- {
- String sNewName(pDlg->GetName());
- aTypeDCB.InsertEntry(sNewName);
- aTypeDCB.SelectEntry(sNewName);
- }
- delete pDlg;
- return 0;
-}
-/* -----------------------------17.01.00 12:18--------------------------------
-
- ---------------------------------------------------------------------------*/
-IMPL_LINK( SwIndexMarkDlg, SearchTypeHdl, CheckBox*, pBox)
-{
- sal_Bool bEnable = pBox->IsChecked() && pBox->IsEnabled();
- aSearchCaseWordOnlyCB.Enable(bEnable);
- aSearchCaseSensitiveCB.Enable(bEnable);
- return 0;
-}
-/* -----------------07.09.99 10:30-------------------
-
- --------------------------------------------------*/
-IMPL_LINK( SwIndexMarkDlg, InsertHdl, Button *, pButton )
-{
- Apply();
- //close the dialog if only one entry is available
- if(!bNewMark && !aPrevBT.IsVisible() && !aNextBT.IsVisible())
- CloseHdl(pButton);
- return 0;
-}
-/* -----------------07.09.99 10:29-------------------
-
- --------------------------------------------------*/
-IMPL_LINK( SwIndexMarkDlg, CloseHdl, Button *, pButton )
-{
- if(bNewMark)
- {
- sal_uInt16 nSlot = FN_INSERT_IDX_ENTRY_DLG;
- SfxViewFrame::Current()->GetDispatcher()->Execute(nSlot,
- SFX_CALLMODE_ASYNCHRON|SFX_CALLMODE_RECORD);
- }
- else
- {
- ((SwIndexMarkModalDlg*)GetParent())->EndDialog(RET_CANCEL);
- }
- return 0;
-}
-/*--------------------------------------------------------------------
- Beschreibung: VerzeichnisTyp auswaehlen nur bei Einfuegen
- --------------------------------------------------------------------*/
-IMPL_LINK( SwIndexMarkDlg, ModifyHdl, ListBox *, pBox )
-{
- if(&aTypeDCB == pBox)
- {
- // Verzeichnistyp setzen
- sal_uInt16 nPos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry());
- sal_Bool bLevelEnable = sal_False,
- bKeyEnable = sal_False,
- bSetKey2 = sal_False,
- bKey2Enable = sal_False,
- bEntryHasText = sal_False,
- bKey1HasText = sal_False,
- bKey2HasText = sal_False;
- if(nPos == POS_INDEX)
- {
- if(aEntryED.GetText().Len())
- bEntryHasText = sal_True;
- aPhoneticED0.SetText(GetDefaultPhoneticReading(aEntryED.GetText()));
-
- bKeyEnable = sal_True;
- aKeyDCB.SetText(aKeyDCB.GetEntry(nKey1Pos));
- aPhoneticED1.SetText(GetDefaultPhoneticReading(aKeyDCB.GetText()));
- if(aKeyDCB.GetText().Len() > 0)
- {
- bKey1HasText = bSetKey2 = bKey2Enable = sal_True;
- aKey2DCB.SetText(aKey2DCB.GetEntry(nKey2Pos));
- aPhoneticED2.SetText(GetDefaultPhoneticReading(aKey2DCB.GetText()));
- if(aKey2DCB.GetText().Len())
- bKey2HasText = sal_True;
- }
- }
- else
- {
- bLevelEnable = sal_True;
- aLevelED.SetMax(MAXLEVEL);
- aLevelED.SetValue(aLevelED.Normalize(0));
- bSetKey2 = sal_True;
- }
- aLevelFT.Show(bLevelEnable);
- aLevelED.Show(bLevelEnable);
- aMainEntryCB.Show(nPos == POS_INDEX);
-
- aKeyFT.Enable(bKeyEnable);
- aKeyDCB.Enable(bKeyEnable);
- if ( bSetKey2 )
- {
- aKey2DCB.Enable(bKey2Enable);
- aKey2FT.Enable(bKey2Enable);
- }
- aPhoneticFT0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled);
- aPhoneticED0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled);
- aPhoneticFT1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled);
- aPhoneticED1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled);
- aPhoneticFT2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled);
- aPhoneticED2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled);
- }
- else //aEntryED !!aEntryED is not a ListBox but a Edit
- {
- BOOL bHasText = (aEntryED.GetText().Len()>0);
- if(!bHasText)
- {
- aPhoneticED0.SetText(aEmptyStr);
- bPhoneticED0_ChangedByUser = FALSE;
- }
- else if(!bPhoneticED0_ChangedByUser)
- aPhoneticED0.SetText(GetDefaultPhoneticReading(aEntryED.GetText()));
-
- aPhoneticFT0.Enable(bHasText&&bIsPhoneticReadingEnabled);
- aPhoneticED0.Enable(bHasText&&bIsPhoneticReadingEnabled);
- }
- aOKBT.Enable(!pSh->HasReadonlySel() &&
- (aEntryED.GetText().Len() || pSh->GetCrsrCnt(sal_False)));
- return 0;
-}
-
-/*--------------------------------------------------------------------
- Beschreibung:
- --------------------------------------------------------------------*/
-
-
-IMPL_LINK_INLINE_START( SwIndexMarkDlg, NextHdl, Button *, EMPTYARG )
-{
- InsertUpdate();
- pTOXMgr->NextTOXMark();
- UpdateDialog();
- return 0;
-}
-IMPL_LINK_INLINE_END( SwIndexMarkDlg, NextHdl, Button *, EMPTYARG )
-
-
-IMPL_LINK_INLINE_START( SwIndexMarkDlg, NextSameHdl, Button *, EMPTYARG )
-{
- InsertUpdate();
- pTOXMgr->NextTOXMark(sal_True);
- UpdateDialog();
- return 0;
-}
-IMPL_LINK_INLINE_END( SwIndexMarkDlg, NextSameHdl, Button *, EMPTYARG )
-
-
-IMPL_LINK_INLINE_START( SwIndexMarkDlg, PrevHdl, Button *, EMPTYARG )
-{
- InsertUpdate();
- pTOXMgr->PrevTOXMark();
- UpdateDialog();
- return 0;
-}
-IMPL_LINK_INLINE_END( SwIndexMarkDlg, PrevHdl, Button *, EMPTYARG )
-
-
-IMPL_LINK_INLINE_START( SwIndexMarkDlg, PrevSameHdl, Button *, EMPTYARG )
-{
- InsertUpdate();
- pTOXMgr->PrevTOXMark(sal_True);
- UpdateDialog();
-
- return 0;
-}
-IMPL_LINK_INLINE_END( SwIndexMarkDlg, PrevSameHdl, Button *, EMPTYARG )
-
-
-IMPL_LINK( SwIndexMarkDlg, DelHdl, Button *, EMPTYARG )
-{
- bDel = sal_True;
- InsertUpdate();
- bDel = sal_False;
-
- if(pTOXMgr->GetCurTOXMark())
- UpdateDialog();
- else
- {
- CloseHdl(&aCancelBT);
- SfxViewFrame::Current()->GetBindings().Invalidate(FN_EDIT_IDX_ENTRY_DLG);
- }
- return 0;
-}
-
-/*--------------------------------------------------------------------
- Beschreibung: Dialoganzeige erneuern
- --------------------------------------------------------------------*/
-
-
-void SwIndexMarkDlg::UpdateDialog()
-{
- DBG_ASSERT(pSh && pTOXMgr, "Shell nicht da?")
- SwTOXMark* pMark = pTOXMgr->GetCurTOXMark();
- ASSERT(pMark, "Keine aktuelle Markierung");
- if(!pMark)
- return;
-
- ViewShell::SetCareWin( GetParent() );
-
- aOrgStr = pMark->GetText();
- aEntryED.SetText(aOrgStr);
-
- // Verzeichnistyp setzen
- sal_Bool bLevelEnable = sal_True,
- bKeyEnable = sal_False,
- bKey2Enable = sal_False,
- bEntryHasText = sal_False,
- bKey1HasText = sal_False,
- bKey2HasText = sal_False;
-
- TOXTypes eCurType = pMark->GetTOXType()->GetType();
- if(TOX_INDEX == eCurType)
- {
- bLevelEnable = sal_False;
- bKeyEnable = sal_True;
- bKey1HasText = bKey2Enable = 0 != pMark->GetPrimaryKey().Len();
- bKey2HasText = 0 != pMark->GetSecondaryKey().Len();
- bEntryHasText = 0 != pMark->GetText().Len();
- aKeyDCB.SetText( pMark->GetPrimaryKey() );
- aKey2DCB.SetText( pMark->GetSecondaryKey() );
- aPhoneticED0.SetText( pMark->GetTextReading() );
- aPhoneticED1.SetText( pMark->GetPrimaryKeyReading() );
- aPhoneticED2.SetText( pMark->GetSecondaryKeyReading() );
- aMainEntryCB.Check(pMark->IsMainEntry());
- }
- else if(TOX_CONTENT == eCurType || TOX_USER == eCurType)
- {
- aLevelED.SetValue(aLevelED.Normalize(pMark->GetLevel()));
- }
- aKeyFT.Enable(bKeyEnable);
- aKeyDCB.Enable(bKeyEnable);
- aLevelED.SetMax(MAXLEVEL);
- aLevelFT.Show(bLevelEnable);
- aLevelED.Show(bLevelEnable);
- aMainEntryCB.Show(!bLevelEnable);
- aKey2FT.Enable(bKey2Enable);
- aKey2DCB.Enable(bKey2Enable);
-
- UpdateLanguageDependenciesForPhoneticReading();
- aPhoneticFT0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled);
- aPhoneticED0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled);
- aPhoneticFT1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled);
- aPhoneticED1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled);
- aPhoneticFT2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled);
- aPhoneticED2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled);
-
- // Verzeichnis-Typ setzen
- aTypeDCB.SelectEntry(pMark->GetTOXType()->GetTypeName());
-
- // Next - Prev - Buttons setzen
- pSh->SttCrsrMove();
- if( aPrevBT.IsVisible() )
- {
- const SwTOXMark* pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_PRV );
- if( pMoveMark != pMark )
- pSh->GotoTOXMark( *pMoveMark, TOX_NXT );
- aPrevBT.Enable( pMoveMark != pMark );
- pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_NXT );
- if( pMoveMark != pMark )
- pSh->GotoTOXMark( *pMoveMark, TOX_PRV );
- aNextBT.Enable( pMoveMark != pMark );
- }
-
- if( aPrevSameBT.IsVisible() )
- {
- const SwTOXMark* pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_PRV );
- if( pMoveMark != pMark )
- pSh->GotoTOXMark( *pMoveMark, TOX_SAME_NXT );
- aPrevSameBT.Enable( pMoveMark != pMark );
- pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_NXT );
- if( pMoveMark != pMark )
- pSh->GotoTOXMark( *pMoveMark, TOX_SAME_PRV );
- aNextSameBT.Enable( pMoveMark != pMark );
- }
-
- sal_Bool bEnable = !pSh->HasReadonlySel();
- aOKBT.Enable( bEnable );
- aDelBT.Enable( bEnable );
- aEntryED.SetReadOnly( !bEnable );
- aLevelED.SetReadOnly( !bEnable );
- aKeyDCB.SetReadOnly( !bEnable );
- aKey2DCB.SetReadOnly( !bEnable );
-
- pSh->SelectTxtAttr( RES_TXTATR_TOXMARK, pMark->GetTxtTOXMark() );
- // we need the point at the start of the attribut
- pSh->SwapPam();
-
- pSh->EndCrsrMove();
-}
-
-/*--------------------------------------------------------------------
- Remind wether the edit boxes for Phonetic reading are changed manually
- --------------------------------------------------------------------*/
-
-IMPL_LINK( SwIndexMarkDlg, PhoneticEDModifyHdl, Edit *, pEdit )
-{
- if(&aPhoneticED0 == pEdit)
- {
- bPhoneticED0_ChangedByUser = pEdit->GetText().Len()>0;
- }
- else if(&aPhoneticED1 == pEdit)
- {
- bPhoneticED1_ChangedByUser = pEdit->GetText().Len()>0;
- }
- else if(&aPhoneticED2 == pEdit)
- {
- bPhoneticED2_ChangedByUser = pEdit->GetText().Len()>0;
- }
- return 0;
-}
-
-/*--------------------------------------------------------------------
- Beschreibung: Enable Disable des 2. Schluessels
- --------------------------------------------------------------------*/
-
-IMPL_LINK( SwIndexMarkDlg, KeyDCBModifyHdl, ComboBox *, pBox )
-{
- if(&aKeyDCB == pBox)
- {
- sal_Bool bEnable = pBox->GetText().Len() > 0;
- if(!bEnable)
- {
- aKey2DCB.SetText(aEmptyStr);
- aPhoneticED1.SetText(aEmptyStr);
- aPhoneticED2.SetText(aEmptyStr);
- bPhoneticED1_ChangedByUser = FALSE;
- bPhoneticED2_ChangedByUser = FALSE;
- }
- else
- {
- if(pBox->IsInDropDown())
- {
- //reset bPhoneticED1_ChangedByUser if a completly new string is selected
- bPhoneticED1_ChangedByUser = FALSE;
- }
- if(!bPhoneticED1_ChangedByUser)
- aPhoneticED1.SetText(GetDefaultPhoneticReading(pBox->GetText()));
- }
- aKey2DCB.Enable(bEnable);
- aKey2FT.Enable(bEnable);
- }
- else if(&aKey2DCB == pBox)
- {
- if(!(pBox->GetText().Len()>0))
- {
- aPhoneticED2.SetText(aEmptyStr);
- bPhoneticED2_ChangedByUser = FALSE;
- }
- else
- {
- if(pBox->IsInDropDown())
- {
- //reset bPhoneticED1_ChangedByUser if a completly new string is selected
- bPhoneticED2_ChangedByUser = FALSE;
- }
- if(!bPhoneticED2_ChangedByUser)
- aPhoneticED2.SetText(GetDefaultPhoneticReading(pBox->GetText()));
- }
- }
- sal_Bool bKey1HasText = (0 != aKeyDCB.GetText().Len());
- sal_Bool bKey2HasText = (0 != aKey2DCB.GetText().Len());
-
- aPhoneticFT1.Enable(bKey1HasText&&bIsPhoneticReadingEnabled);
- aPhoneticED1.Enable(bKey1HasText&bIsPhoneticReadingEnabled);
- aPhoneticFT2.Enable(bKey2HasText&bIsPhoneticReadingEnabled);
- aPhoneticED2.Enable(bKey2HasText&bIsPhoneticReadingEnabled);
-
- return 0;
-}
-
-/*-----------------25.02.94 21:19-------------------
- dtor ueberladen
---------------------------------------------------*/
-
-
-SwIndexMarkDlg::~SwIndexMarkDlg()
-{
- delete pTOXMgr;
- ViewShell::SetCareWin( 0 );
-}
-/* -----------------07.09.99 08:41-------------------
-
- --------------------------------------------------*/
-void SwIndexMarkDlg::ReInitDlg(SwWrtShell& rWrtShell, SwTOXMark* pCurTOXMark)
-{
- pSh = &rWrtShell;
- delete pTOXMgr;
- pTOXMgr = new SwTOXMgr(pSh);
- if(pCurTOXMark)
- {
- for(USHORT i = 0; i < pTOXMgr->GetTOXMarkCount(); i++)
- if(pTOXMgr->GetTOXMark(i) == pCurTOXMark)
- {
- pTOXMgr->SetCurTOXMark(i);
- break;
- }
- }
- InitControls();
-}
-/* -----------------06.10.99 10:00-------------------
-
- --------------------------------------------------*/
-SwIndexMarkFloatDlg::SwIndexMarkFloatDlg(SfxBindings* pBindings,
- SfxChildWindow* pChild,
- Window *pParent,
- sal_Bool bNew) :
-SfxModelessDialog(pBindings, pChild, pParent, SvtCJKOptions().IsCJKFontEnabled()?SW_RES(DLG_INSIDXMARK_CJK):SW_RES(DLG_INSIDXMARK)),
- aDlg(this, bNew, ResId(WIN_DLG), SvtCJKOptions().IsCJKFontEnabled()?DLG_INSIDXMARK_CJK:DLG_INSIDXMARK)
-{
- FreeResource();
-}
-/* -----------------06.10.99 10:27-------------------
-
- --------------------------------------------------*/
-void SwIndexMarkFloatDlg::Activate()
-{
- SfxModelessDialog::Activate();
- GetDlg().Activate();
-}
-/* -----------------06.10.99 10:35-------------------
-
- --------------------------------------------------*/
-SwIndexMarkModalDlg::SwIndexMarkModalDlg(Window *pParent, SwWrtShell& rSh, SwTOXMark* pCurTOXMark) :
-SvxStandardDialog(pParent, SvtCJKOptions().IsCJKFontEnabled()?SW_RES(DLG_EDIT_IDXMARK_CJK):SW_RES(DLG_EDIT_IDXMARK)),
- aDlg(this, sal_False, ResId(WIN_DLG), SvtCJKOptions().IsCJKFontEnabled()?DLG_EDIT_IDXMARK_CJK:DLG_EDIT_IDXMARK)
-{
- FreeResource();
- aDlg.ReInitDlg(rSh, pCurTOXMark);
-}
-/* -----------------06.10.99 10:46-------------------
-
- --------------------------------------------------*/
-void SwIndexMarkModalDlg::Apply()
-{
- aDlg.Apply();
-}
/* -----------------07.09.99 08:15-------------------
--------------------------------------------------*/
@@ -1240,14 +197,12 @@ SwInsertIdxMarkWrapper::SwInsertIdxMarkWrapper( Window *pParentWindow,
SfxChildWindow(pParentWindow, nId)
{
- pWindow = new SwIndexMarkFloatDlg(pBindings, this, pParentWindow );
-
- SwIndexMarkDlg& rDlg = ((SwIndexMarkFloatDlg*)pWindow)->GetDlg();
- SwWrtShell* pWrtShell = ::GetActiveWrtShell();
- DBG_ASSERT(pWrtShell, "No shell?")
- rDlg.ReInitDlg(*pWrtShell);
-
- ((SwIndexMarkFloatDlg*)pWindow)->Initialize(pInfo);
+ //CHINA001 pWindow = new SwIndexMarkFloatDlg(pBindings, this, pParentWindow, pInfo );
+ SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();//CHINA001
+ DBG_ASSERT(pFact, "SwAbstractDialogFactory fail!");//CHINA001
+ pAbstDlg = pFact->CreateIndexMarkFloatDlg( ResId( DLG_INSIDXMARK ), pBindings, this, pParentWindow, pInfo );
+ DBG_ASSERT(pAbstDlg, "Dialogdiet fail!");//CHINA001
+ pWindow = pAbstDlg->GetWindow(); //CHINA001
pWindow->Show(); // at this point,because before pSh has to be initialized in ReInitDlg()
// -> Show() will invoke StateChanged() and save pos
eChildAlignment = SFX_ALIGN_NOALIGNMENT;
@@ -1261,505 +216,13 @@ SfxChildWinInfo SwInsertIdxMarkWrapper::GetInfo() const
return aInfo;
}
-/* -----------------16.09.99 14:19-------------------
-
- --------------------------------------------------*/
-class SwCreateAuthEntryDlg_Impl : public ModalDialog
-{
-
- FixedLine aEntriesFL;
-
- FixedText* pFixedTexts[AUTH_FIELD_END];
- ListBox* pTypeListBox;
- ComboBox* pIdentifierBox;
- Edit* pEdits[AUTH_FIELD_END];
-
- OKButton aOKBT;
- CancelButton aCancelBT;
- HelpButton aHelpBT;
-
- Link aShortNameCheckLink;
-
- SwWrtShell& rWrtSh;
-
- sal_Bool m_bNewEntryMode;
- sal_Bool m_bNameAllowed;
-
- DECL_LINK(IdentifierHdl, ComboBox*);
- DECL_LINK(ShortNameHdl, Edit*);
- DECL_LINK(EnableHdl, ListBox* pBox);
-
-public:
- SwCreateAuthEntryDlg_Impl(Window* pParent,
- const String pFields[],
- SwWrtShell& rSh,
- sal_Bool bNewEntry,
- sal_Bool bCreate);
- ~SwCreateAuthEntryDlg_Impl();
-
- String GetEntryText(ToxAuthorityField eField) const;
-
- void SetCheckNameHdl(const Link& rLink) {aShortNameCheckLink = rLink;}
-
-};
-/*-- 15.09.99 08:43:24---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-struct TextInfo
-{
- sal_uInt16 nToxField;
- sal_uInt16 nHelpId;
-};
-static const TextInfo aTextInfoArr[] =
-{
- {AUTH_FIELD_IDENTIFIER, HID_AUTH_FIELD_IDENTIFIER },
- {AUTH_FIELD_AUTHORITY_TYPE, HID_AUTH_FIELD_AUTHORITY_TYPE },
- {AUTH_FIELD_AUTHOR, HID_AUTH_FIELD_AUTHOR },
- {AUTH_FIELD_TITLE, HID_AUTH_FIELD_TITLE },
- {AUTH_FIELD_YEAR, HID_AUTH_FIELD_YEAR },
- {AUTH_FIELD_PUBLISHER, HID_AUTH_FIELD_PUBLISHER },
- {AUTH_FIELD_ADDRESS, HID_AUTH_FIELD_ADDRESS },
- {AUTH_FIELD_ISBN, HID_AUTH_FIELD_ISBN },
- {AUTH_FIELD_CHAPTER, HID_AUTH_FIELD_CHAPTER },
- {AUTH_FIELD_PAGES, HID_AUTH_FIELD_PAGES },
- {AUTH_FIELD_EDITOR, HID_AUTH_FIELD_EDITOR },
- {AUTH_FIELD_EDITION, HID_AUTH_FIELD_EDITION },
- {AUTH_FIELD_BOOKTITLE, HID_AUTH_FIELD_BOOKTITLE },
- {AUTH_FIELD_VOLUME, HID_AUTH_FIELD_VOLUME },
- {AUTH_FIELD_HOWPUBLISHED, HID_AUTH_FIELD_HOWPUBLISHED },
- {AUTH_FIELD_ORGANIZATIONS, HID_AUTH_FIELD_ORGANIZATIONS },
- {AUTH_FIELD_INSTITUTION, HID_AUTH_FIELD_INSTITUTION },
- {AUTH_FIELD_SCHOOL, HID_AUTH_FIELD_SCHOOL },
- {AUTH_FIELD_REPORT_TYPE, HID_AUTH_FIELD_REPORT_TYPE },
- {AUTH_FIELD_MONTH, HID_AUTH_FIELD_MONTH },
- {AUTH_FIELD_JOURNAL, HID_AUTH_FIELD_JOURNAL },
- {AUTH_FIELD_NUMBER, HID_AUTH_FIELD_NUMBER },
- {AUTH_FIELD_SERIES, HID_AUTH_FIELD_SERIES },
- {AUTH_FIELD_ANNOTE, HID_AUTH_FIELD_ANNOTE },
- {AUTH_FIELD_NOTE, HID_AUTH_FIELD_NOTE },
- {AUTH_FIELD_URL, HID_AUTH_FIELD_URL },
- {AUTH_FIELD_CUSTOM1, HID_AUTH_FIELD_CUSTOM1 },
- {AUTH_FIELD_CUSTOM2, HID_AUTH_FIELD_CUSTOM2 },
- {AUTH_FIELD_CUSTOM3, HID_AUTH_FIELD_CUSTOM3 },
- {AUTH_FIELD_CUSTOM4, HID_AUTH_FIELD_CUSTOM4 },
- {AUTH_FIELD_CUSTOM5, HID_AUTH_FIELD_CUSTOM5 }
-};
-
-sal_Bool SwAuthMarkDlg::bIsFromComponent = sal_True;
-
-SwAuthMarkDlg::SwAuthMarkDlg( Window *pParent,
- const ResId& rResId,
- sal_Bool bNewDlg) :
- Window(pParent, rResId),
- aFromComponentRB( this, ResId(RB_FROMCOMPONENT )),
- aFromDocContentRB( this, ResId(RB_FROMDOCCONTENT )),
- aEntryFT( this, ResId(FT_ENTRY )),
- aEntryED( this, ResId(ED_ENTRY )),
- aEntryLB( this, ResId(LB_ENTRY )),
- aAuthorFT( this, ResId(FT_AUTHOR )),
- aAuthorFI( this, ResId(FI_AUTHOR )),
- aTitleFT( this, ResId(FT_TITLE )),
- aTitleFI( this, ResId(FI_TITLE )),
- aEntryFL( this, ResId(FL_ENTRY )),
- aOKBT( this, ResId(PB_OK )),
- aCancelBT( this, ResId(PB_CANCEL )),
- aHelpBT( this, ResId(PB_HELP )),
- sChangeST( ResId(ST_CHANGE)),
- aCreateEntryPB(this,ResId(PB_CREATEENTRY)),
- aEditEntryPB(this, ResId(PB_EDITENTRY)),
- bNewEntry(bNewDlg),
- pSh(0),
- bBibAccessInitialized(sal_False)
-{
- SetStyle(GetStyle()|WB_DIALOGCONTROL);
- FreeResource();
-
- aFromComponentRB.SetHelpId(HID_AUTH_MARK_DLG_FROM_COMP_RB);
- aFromDocContentRB.SetHelpId(HID_AUTH_MARK_DLG_FROM_DOC_RB );
- aEntryED.SetHelpId(HID_AUTH_MARK_DLG_ID_LISTBOX );
- aEntryLB.SetHelpId(HID_AUTH_MARK_DLG_ID_LISTBOX );
-
- aFromComponentRB.Show(bNewEntry);
- aFromDocContentRB.Show(bNewEntry);
- aFromComponentRB.Check(bIsFromComponent);
- aFromDocContentRB.Check(!bIsFromComponent);
-
- aOKBT .SetHelpId(HID_INSERT_AUTH_MRK_OK );
- aCancelBT .SetHelpId(HID_INSERT_AUTH_MRK_CLOSE);
- aEntryED .SetHelpId(HID_INSERT_AUTH_MRK_ENTRY );
- aCreateEntryPB .SetHelpId(HID_INSERT_AUTH_MRK_CREATE_ENTRY );
- aEditEntryPB .SetHelpId(HID_INSERT_AUTH_MRK_EDIT_ENTRY );
-
- aOKBT.SetClickHdl(LINK(this,SwAuthMarkDlg, InsertHdl));
- aCancelBT.SetClickHdl(LINK(this,SwAuthMarkDlg, CloseHdl));
- aCreateEntryPB.SetClickHdl(LINK(this,SwAuthMarkDlg, CreateEntryHdl));
- aEditEntryPB.SetClickHdl(LINK(this,SwAuthMarkDlg, CreateEntryHdl));
- aFromComponentRB.SetClickHdl(LINK(this,SwAuthMarkDlg, ChangeSourceHdl));
- aFromDocContentRB.SetClickHdl(LINK(this,SwAuthMarkDlg, ChangeSourceHdl));
- aEntryED.SetModifyHdl(LINK(this,SwAuthMarkDlg, EditModifyHdl));
-
- GetParent()->SetText(String(SW_RES(
- bNewEntry ? STR_AUTHMRK_INSERT : STR_AUTHMRK_EDIT)));
- aEntryED.Show(!bNewEntry);
- aEntryLB.Show(bNewEntry);
- if(!bNewEntry)
- {
- aOKBT.SetText(sChangeST);
- }
- else
- {
- aEntryLB.SetSelectHdl(LINK(this, SwAuthMarkDlg, CompEntryHdl));
- }
-}
-/*-- 15.09.99 08:43:25---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SwAuthMarkDlg::~SwAuthMarkDlg()
-{
-}
-/*-- 15.09.99 08:43:25---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SwAuthMarkDlg::ReInitDlg(SwWrtShell& rWrtShell)
-{
- pSh = &rWrtShell;
- InitControls();
-}
-/* -----------------15.09.99 08:57-------------------
- --------------------------------------------------*/
-IMPL_LINK( SwAuthMarkDlg, CloseHdl, PushButton *, EMPTYARG )
+void SwInsertIdxMarkWrapper::ReInitDlg(SwWrtShell& rWrtShell)
{
- if(bNewEntry)
- {
- sal_uInt16 nSlot = FN_INSERT_AUTH_ENTRY_DLG;
- SfxViewFrame::Current()->GetDispatcher()->Execute(nSlot,
- SFX_CALLMODE_ASYNCHRON|SFX_CALLMODE_RECORD);
- }
- else
- {
- ((SwAuthMarkModalDlg*)GetParent())->EndDialog(RET_CANCEL);
- }
- return 0;
+ pAbstDlg->ReInitDlg(rWrtShell); //CHINA001 ((SwIndexMarkFloatDlg*)pWindow)->ReInitDlg(rWrtShell);
}
-/* -----------------06.12.99 13:54-------------------
- --------------------------------------------------*/
-String lcl_FindColumnEntry(const beans::PropertyValue* pFields, sal_Int32 nLen, const String& rColumnTitle)
-{
- String sRet;
- OUString uColumnTitle = rColumnTitle;
- for(sal_uInt16 i = 0; i < nLen; i++)
- {
- OUString uTmp;
- if(pFields[i].Name == uColumnTitle &&
- (pFields[i].Value >>= uTmp))
- {
- sRet = String(uTmp);
- break;
- }
- }
- return sRet;
-}
-/* -----------------------------07.12.99 15:39--------------------------------
- ---------------------------------------------------------------------------*/
-IMPL_LINK( SwAuthMarkDlg, CompEntryHdl, ListBox*, pBox)
-{
- String sEntry(pBox->GetSelectEntry());
- if(bIsFromComponent)
- {
- if(xBibAccess.is() && sEntry.Len())
- {
- OUString uEntry(sEntry);
- if(xBibAccess->hasByName(uEntry))
- {
- uno::Any aEntry(xBibAccess->getByName(uEntry));
- uno::Sequence<beans::PropertyValue> aFieldProps;
- if(aEntry >>= aFieldProps)
- {
- const beans::PropertyValue* pProps = aFieldProps.getConstArray();
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END && i < aFieldProps.getLength(); i++)
- {
- m_sFields[i] = lcl_FindColumnEntry(
- pProps, aFieldProps.getLength(), m_sColumnTitles[i]);
- }
- }
- }
- }
- }
- else
- {
- if(sEntry.Len())
- {
- const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
- pSh->GetFldType(RES_AUTHORITY, aEmptyStr);
- const SwAuthEntry* pEntry = pFType ? pFType->GetEntryByIdentifier(sEntry) : 0;
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- m_sFields[i] = pEntry ?
- pEntry->GetAuthorField((ToxAuthorityField)i) : aEmptyStr;
- }
- }
- if(!pBox->GetSelectEntry().Len())
- {
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- m_sFields[i] = aEmptyStr;
- }
- aAuthorFI.SetText(m_sFields[AUTH_FIELD_AUTHOR]);
- aTitleFI.SetText(m_sFields[AUTH_FIELD_TITLE]);
- return 0;
-}
-
-/* -----------------15.09.99 08:57-------------------
-
- --------------------------------------------------*/
-IMPL_LINK( SwAuthMarkDlg, InsertHdl, PushButton *, EMPTYARG )
-{
- //insert or update the SwAuthorityField...
- if(pSh)
- {
- sal_Bool bDifferent = sal_False;
- DBG_ASSERT(m_sFields[AUTH_FIELD_IDENTIFIER].Len() , "No Id is set!")
- DBG_ASSERT(m_sFields[AUTH_FIELD_AUTHORITY_TYPE].Len() , "No authority type is set!")
- //check if the entry already exists with different content
- const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
- pSh->GetFldType(RES_AUTHORITY, aEmptyStr);
- const SwAuthEntry* pEntry = pFType ?
- pFType->GetEntryByIdentifier( m_sFields[AUTH_FIELD_IDENTIFIER])
- : 0;
- if(pEntry)
- {
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END && !bDifferent; i++)
- bDifferent |= m_sFields[i] != pEntry->GetAuthorField((ToxAuthorityField)i);
- if(bDifferent)
- {
- QueryBox aQuery(this, SW_RES(DLG_CHANGE_AUTH_ENTRY));
- if(RET_YES != aQuery.Execute())
- return 0;
- }
- }
-
- SwFldMgr aMgr(pSh);
- String sFields;
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- {
- sFields += m_sFields[i];
- sFields += TOX_STYLE_DELIMITER;
- }
- if(bNewEntry)
- {
- if(bDifferent)
- {
- SwAuthEntry aNewData;
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- aNewData.SetAuthorField((ToxAuthorityField)i, m_sFields[i]);
- pSh->ChangeAuthorityData(&aNewData);
- }
- SwInsertFld_Data aData(TYP_AUTHORITY, 0, sFields, aEmptyStr, 0 );
- aMgr.InsertFld( aData );
- }
- else if(aMgr.GetCurFld())
- {
- aMgr.UpdateCurFld(0, sFields, aEmptyStr);
- }
- }
- if(!bNewEntry)
- CloseHdl(0);
- return 0;
-}
-/* -----------------17.09.99 13:06-------------------
-
- --------------------------------------------------*/
-IMPL_LINK(SwAuthMarkDlg, CreateEntryHdl, PushButton*, pButton)
-{
- sal_Bool bCreate = pButton == &aCreateEntryPB;
- String sOldId = m_sCreatedEntry[0];
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- m_sCreatedEntry[i] = bCreate ? aEmptyStr : m_sFields[i];
- SwCreateAuthEntryDlg_Impl aDlg(pButton,
- bCreate ? m_sCreatedEntry : m_sFields,
- *pSh, bNewEntry, bCreate);
- if(bNewEntry)
- {
- aDlg.SetCheckNameHdl(LINK(this, SwAuthMarkDlg, IsEntryAllowedHdl));
- }
- if(RET_OK == aDlg.Execute())
- {
- if(bCreate && sOldId.Len())
- {
- aEntryLB.RemoveEntry(sOldId);
- }
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- {
- m_sFields[i] = aDlg.GetEntryText((ToxAuthorityField)i);
- m_sCreatedEntry[i] = m_sFields[i];
- }
- if(bNewEntry && !aFromDocContentRB.IsChecked())
- {
- aFromDocContentRB.Check(sal_True);
- ChangeSourceHdl(&aFromDocContentRB);
- }
- if(bCreate)
- {
- DBG_ASSERT(LISTBOX_ENTRY_NOTFOUND ==
- aEntryLB.GetEntryPos(m_sFields[AUTH_FIELD_IDENTIFIER]),
- "entry exists!")
- aEntryLB.InsertEntry(m_sFields[AUTH_FIELD_IDENTIFIER]);
- aEntryLB.SelectEntry(m_sFields[AUTH_FIELD_IDENTIFIER]);
- }
- aEntryED.SetText(m_sFields[AUTH_FIELD_IDENTIFIER]);
- aAuthorFI.SetText(m_sFields[AUTH_FIELD_AUTHOR]);
- aTitleFI.SetText(m_sFields[AUTH_FIELD_TITLE]);
- aOKBT.Enable();
- }
- return 0;
-}
-/* -----------------------------20.12.99 14:26--------------------------------
-
- ---------------------------------------------------------------------------*/
-IMPL_LINK(SwAuthMarkDlg, ChangeSourceHdl, RadioButton*, pButton)
-{
- sal_Bool bFromComp = (pButton == &aFromComponentRB);
- bIsFromComponent = bFromComp;
- aCreateEntryPB.Enable(!bIsFromComponent);
- aEntryLB.Clear();
- if(bIsFromComponent)
- {
- if(!bBibAccessInitialized)
- {
- uno::Reference< lang::XMultiServiceFactory > xMSF = getProcessServiceFactory();
- xBibAccess = uno::Reference< container::XNameAccess > (
- xMSF->createInstance( C2U("com.sun.star.frame.Bibliography") ),
- uno::UNO_QUERY );
- uno::Reference< beans::XPropertySet > xPropSet(xBibAccess, uno::UNO_QUERY);
- OUString uPropName(C2U("BibliographyDataFieldNames"));
- if(xPropSet.is() && xPropSet->getPropertySetInfo()->hasPropertyByName(uPropName))
- {
- uno::Any aNames = xPropSet->getPropertyValue(uPropName);
- uno::Sequence<beans::PropertyValue> aSeq;
- if( aNames >>= aSeq)
- {
- const beans::PropertyValue* pArr = aSeq.getConstArray();
- for(sal_uInt16 i = 0; i < aSeq.getLength(); i++)
- {
- String sTitle = pArr[i].Name;
- sal_Int16 nField;
- pArr[i].Value >>= nField;
- if(nField >= 0 && nField < AUTH_FIELD_END)
- m_sColumnTitles[nField] = sTitle;
- }
- }
- }
- bBibAccessInitialized = sal_True;
- }
- if(xBibAccess.is())
- {
- uno::Sequence<OUString> aIdentifiers = xBibAccess->getElementNames();
- const OUString* pNames = aIdentifiers.getConstArray();
- for(sal_uInt16 i = 0; i < aIdentifiers.getLength(); i++)
- {
- aEntryLB.InsertEntry(pNames[i]);
- }
- }
- }
- else
- {
- const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
- pSh->GetFldType(RES_AUTHORITY, aEmptyStr);
- if(pFType)
- {
- SvStringsDtor aIds;
- pFType->GetAllEntryIdentifiers( aIds );
- for(sal_uInt16 n = 0; n < aIds.Count(); n++)
- aEntryLB.InsertEntry(*aIds.GetObject(n));
- }
- if(m_sCreatedEntry[AUTH_FIELD_IDENTIFIER].Len())
- aEntryLB.InsertEntry(m_sCreatedEntry[AUTH_FIELD_IDENTIFIER]);
- }
- aEntryLB.SelectEntryPos(0);
- CompEntryHdl(&aEntryLB);
- return 0;
-}
-/* -----------------15.10.2002 13:16-----------------
- *
- * --------------------------------------------------*/
-IMPL_LINK(SwAuthMarkDlg, EditModifyHdl, Edit*, pEdit)
-{
- Link aAllowed = LINK(this, SwAuthMarkDlg, IsEntryAllowedHdl);
- long nResult = aAllowed.Call(pEdit);
- aOKBT.Enable(nResult > 0);
- if(nResult)
- {
- String sEntry(pEdit->GetText());
- m_sFields[AUTH_FIELD_IDENTIFIER] = sEntry;
- m_sCreatedEntry[AUTH_FIELD_IDENTIFIER] = sEntry;
- }
- return 0;
-};
-/* -----------------------------20.12.99 15:11--------------------------------
-
- ---------------------------------------------------------------------------*/
-IMPL_LINK(SwAuthMarkDlg, IsEntryAllowedHdl, Edit*, pEdit)
-{
- String sEntry = pEdit->GetText();
- sal_Bool bAllowed = sal_False;
- if(sEntry.Len())
- {
- if(aEntryLB.GetEntryPos(sEntry) != LISTBOX_ENTRY_NOTFOUND)
- return 0;
- else if(bIsFromComponent)
- {
- const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
- pSh->GetFldType(RES_AUTHORITY, aEmptyStr);
- bAllowed = !pFType || !pFType->GetEntryByIdentifier(sEntry);
- }
- else
- {
- bAllowed = !xBibAccess.is() || !xBibAccess->hasByName(sEntry);
- }
- }
- return bAllowed;
-}
-/* -----------------21.09.99 14:19-------------------
-
- --------------------------------------------------*/
-void SwAuthMarkDlg::InitControls()
-{
- DBG_ASSERT(pSh, "Shell nicht da?")
- SwField* pField = pSh->GetCurFld();
- ASSERT(bNewEntry || pField, "Keine aktuelle Markierung");
- if(bNewEntry)
- {
- ChangeSourceHdl(aFromComponentRB.IsChecked() ? &aFromComponentRB : &aFromDocContentRB);
- aCreateEntryPB.Enable(!aFromComponentRB.IsChecked());
- if(!aFromComponentRB.IsChecked() && m_sCreatedEntry[0].Len())
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- m_sFields[i] = m_sCreatedEntry[i];
- }
- if(bNewEntry || !pField || pField->GetTyp()->Which() != RES_AUTHORITY)
- return;
-
- const SwAuthEntry* pEntry = ((SwAuthorityFieldType*)pField->GetTyp())->
- GetEntryByHandle(((SwAuthorityField*)pField)->GetHandle());
-
- DBG_ASSERT(pEntry, "No authority entry found")
- if(!pEntry)
- return;
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- m_sFields[i] = pEntry->GetAuthorField((ToxAuthorityField)i);
-
- aEntryED.SetText(pEntry->GetAuthorField(AUTH_FIELD_IDENTIFIER));
- aAuthorFI.SetText(pEntry->GetAuthorField(AUTH_FIELD_AUTHOR));
- aTitleFI.SetText(pEntry->GetAuthorField(AUTH_FIELD_TITLE));
-}
-/* -----------------------------05.09.2002 09:44------------------------------
-
- ---------------------------------------------------------------------------*/
-void SwAuthMarkDlg::Activate()
-{
- aOKBT.Enable(!pSh->HasReadonlySel());
- Window::Activate();
-}
/* -----------------07.09.99 08:15-------------------
--------------------------------------------------*/
@@ -1772,13 +235,12 @@ SwInsertAuthMarkWrapper::SwInsertAuthMarkWrapper( Window *pParentWindow,
SfxChildWindow(pParentWindow, nId)
{
- pWindow = new SwAuthMarkFloatDlg(pBindings, this, pParentWindow );
-
- SwAuthMarkDlg& rDlg = ((SwAuthMarkFloatDlg*)pWindow)->GetDlg();
- ((SwAuthMarkFloatDlg*)pWindow)->Initialize(pInfo);
- SwWrtShell* pWrtShell = ::GetActiveWrtShell();
- DBG_ASSERT(pWrtShell, "No shell?")
- rDlg.ReInitDlg(*pWrtShell);
+ //CHINA001 pWindow = new SwAuthMarkFloatDlg(pBindings, this, pParentWindow, pInfo );
+ SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();//CHINA001
+ DBG_ASSERT(pFact, "SwAbstractDialogFactory fail!");//CHINA001
+ pAbstDlg = pFact->CreateAuthMarkFloatDlg( ResId( DLG_INSAUTHMARK ), pBindings, this, pParentWindow, pInfo );
+ DBG_ASSERT(pAbstDlg, "Dialogdiet fail!");//CHINA001
+ pWindow = pAbstDlg->GetWindow(); //CHINA001
eChildAlignment = SFX_ALIGN_NOALIGNMENT;
}
@@ -1795,291 +257,6 @@ SfxChildWinInfo SwInsertAuthMarkWrapper::GetInfo() const
--------------------------------------------------*/
void SwInsertAuthMarkWrapper::ReInitDlg(SwWrtShell& rWrtShell)
{
- ((SwAuthMarkFloatDlg*)pWindow)->GetDlg().ReInitDlg(rWrtShell);
-}
-
-/* -----------------16.09.99 14:27-------------------
-
- --------------------------------------------------*/
-SwCreateAuthEntryDlg_Impl::SwCreateAuthEntryDlg_Impl(Window* pParent,
- const String pFields[],
- SwWrtShell& rSh,
- sal_Bool bNewEntry,
- sal_Bool bCreate) :
- ModalDialog(pParent, SW_RES(DLG_CREATE_AUTH_ENTRY)),
- aOKBT(this, ResId(PB_OK )),
- aCancelBT(this, ResId(PB_CANCEL )),
- aHelpBT(this, ResId(PB_HELP )),
- aEntriesFL(this, ResId(FL_ENTRIES )),
- pIdentifierBox(0),
- pTypeListBox(0),
- rWrtSh(rSh),
- m_bNewEntryMode(bNewEntry),
- m_bNameAllowed(sal_True)
-{
- FreeResource();
- Point aFLPos(aEntriesFL.GetPosPixel());
- Point aTL1(aFLPos);
- Size aFLSz(aEntriesFL.GetSizePixel().Width(), GetSizePixel().Height());
- long nControlSpace = aFLSz.Width() / 4;
- long nControlWidth = nControlSpace - 2 * aTL1.X();
- aTL1.X() *= 2;
- aTL1.Y() *= 5;
- Point aTR1(aTL1);
- aTR1.X() += nControlSpace;
- Point aTL2(aTR1);
- aTL2.X() += nControlSpace;
- Point aTR2(aTL2);
- aTR2.X() += nControlSpace;
- Size aFixedTextSize(aFLSz);
- Size aTmpSz(8,10);
- aTmpSz = LogicToPixel(aTmpSz, MAP_APPFONT);
- aFixedTextSize.Height() = aTmpSz.Width();
- Size aEditSize(aFixedTextSize);
- aFixedTextSize.Width() = nControlWidth + aFLPos.X();
- aEditSize.Height() = aTmpSz.Height();
- aEditSize.Width() = nControlWidth;
-
- sal_uInt16 nOffset = aTmpSz.Width() * 3 / 2;
- sal_Bool bLeft = sal_True;
- Window* pRefWindow = 0;
- for(sal_uInt16 nIndex = 0; nIndex < AUTH_FIELD_END; nIndex++)
- {
- const TextInfo aCurInfo = aTextInfoArr[nIndex];
-
- pFixedTexts[nIndex] = new FixedText(this);
- if(nIndex)
- pFixedTexts[nIndex]->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND );
- else
- pFixedTexts[nIndex]->SetZOrder( 0, WINDOW_ZORDER_FIRST );
-
- pRefWindow = pFixedTexts[nIndex];
-
- pFixedTexts[nIndex]->SetSizePixel(aFixedTextSize);
- pFixedTexts[nIndex]->SetPosPixel(bLeft ? aTL1 : aTL2);
- pFixedTexts[nIndex]->SetText(SW_RES(STR_AUTH_FIELD_START + aCurInfo.nToxField));
- pFixedTexts[nIndex]->Show();
- pEdits[nIndex] = 0;
- if( AUTH_FIELD_AUTHORITY_TYPE == aCurInfo.nToxField )
- {
- pTypeListBox = new ListBox(this, WB_DROPDOWN|WB_BORDER);
- pTypeListBox->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND );
- pRefWindow = pTypeListBox;
- for(sal_uInt16 j = 0; j < AUTH_TYPE_END; j++)
- pTypeListBox->InsertEntry(String(SW_RES(STR_AUTH_TYPE_START + j)));
- if(pFields[aCurInfo.nToxField].Len())
- {
- sal_uInt16 nIndexPos = pFields[aCurInfo.nToxField].ToInt32();
- pTypeListBox->SelectEntryPos(nIndexPos);
- }
- Size aTmp(aEditSize);
- aTmp.Height() *= 4;
- pTypeListBox->SetSizePixel(aTmp);
- pTypeListBox->SetPosPixel(bLeft ? aTR1 : aTR2);
- pTypeListBox->Show();
- pTypeListBox->SetSelectHdl(LINK(this, SwCreateAuthEntryDlg_Impl, EnableHdl));
- pTypeListBox->SetHelpId(aCurInfo.nHelpId);
-
- }
- else if(AUTH_FIELD_IDENTIFIER == aCurInfo.nToxField && !m_bNewEntryMode)
- {
- pIdentifierBox = new ComboBox(this, WB_BORDER|WB_DROPDOWN);
- pIdentifierBox->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND );
- pRefWindow = pIdentifierBox;
-
- pIdentifierBox->SetSelectHdl(LINK(this,
- SwCreateAuthEntryDlg_Impl, IdentifierHdl));
-
-
- const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
- rSh.GetFldType(RES_AUTHORITY, aEmptyStr);
- if(pFType)
- {
- SvStringsDtor aIds;
- pFType->GetAllEntryIdentifiers( aIds );
- for(sal_uInt16 n = 0; n < aIds.Count(); n++)
- pIdentifierBox->InsertEntry(*aIds.GetObject(n));
- }
- pIdentifierBox->SetText(pFields[aCurInfo.nToxField]);
- Size aTmp(aEditSize);
- aTmp.Height() *= 4;
- pIdentifierBox->SetSizePixel(aTmp);
- pIdentifierBox->SetPosPixel(bLeft ? aTR1 : aTR2);
- pIdentifierBox->Show();
- pIdentifierBox->SetHelpId(aCurInfo.nHelpId);
- }
- else
- {
- pEdits[nIndex] = new Edit(this, WB_BORDER);
- pEdits[nIndex]->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND );
- pRefWindow = pEdits[nIndex];
- pEdits[nIndex]->SetSizePixel(aEditSize);
- pEdits[nIndex]->SetPosPixel(bLeft ? aTR1 : aTR2);
- pEdits[nIndex]->SetText(pFields[aCurInfo.nToxField]);
- pEdits[nIndex]->Show();
- pEdits[nIndex]->SetHelpId(aCurInfo.nHelpId);
- if(AUTH_FIELD_IDENTIFIER == aCurInfo.nToxField)
- {
- pEdits[nIndex]->SetModifyHdl(LINK(this, SwCreateAuthEntryDlg_Impl, ShortNameHdl));
- m_bNameAllowed = pFields[nIndex].Len() > 0;
- if(!bCreate)
- {
- pFixedTexts[nIndex]->Enable(sal_False);
- pEdits[nIndex]->Enable(sal_False);
- }
- }
- }
- if(bLeft)
- {
- aTL1.Y() += nOffset;
- aTR1.Y() += nOffset;
- }
- else
- {
- aTL2.Y() += nOffset;
- aTR2.Y() += nOffset;
- }
- bLeft = !bLeft;
- }
- EnableHdl(pTypeListBox);
-
- long nHeightDiff = - aFLSz.Height();
- aFLSz.Height() = aTL1.Y();
- nHeightDiff += aFLSz.Height();
-// aEntriesFL.SetSizePixel(aFLSz);
- Size aDlgSize(GetSizePixel());
- aDlgSize.Height() += nHeightDiff;
- SetSizePixel(aDlgSize);
-
-}
-/* -----------------16.09.99 14:47-------------------
-
- --------------------------------------------------*/
-SwCreateAuthEntryDlg_Impl::~SwCreateAuthEntryDlg_Impl()
-{
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- {
- delete pFixedTexts[i];
- delete pEdits[i];
- }
- delete pTypeListBox;
- delete pIdentifierBox;
-}
-/* -----------------16.09.99 14:27-------------------
-
- --------------------------------------------------*/
-String SwCreateAuthEntryDlg_Impl::GetEntryText(ToxAuthorityField eField) const
-{
- String sRet;
- if( AUTH_FIELD_AUTHORITY_TYPE == eField )
- {
- DBG_ASSERT(pTypeListBox, "No ListBox")
- sRet = String::CreateFromInt32(pTypeListBox->GetSelectEntryPos());
- }
- else if( AUTH_FIELD_IDENTIFIER == eField && !m_bNewEntryMode)
- {
- DBG_ASSERT(pIdentifierBox, "No ComboBox")
- sRet = pIdentifierBox->GetText();
- }
- else
- {
- for(sal_uInt16 nIndex = 0; nIndex < AUTH_FIELD_END; nIndex++)
- {
- const TextInfo aCurInfo = aTextInfoArr[nIndex];
- if(aCurInfo.nToxField == eField)
- {
- sRet = pEdits[nIndex]->GetText();
- break;
- }
- }
- }
- return sRet;
-}
-/* -----------------21.09.99 13:54-------------------
-
- --------------------------------------------------*/
-IMPL_LINK(SwCreateAuthEntryDlg_Impl, IdentifierHdl, ComboBox*, pBox)
-{
- const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
- rWrtSh.GetFldType(RES_AUTHORITY, aEmptyStr);
- if(pFType)
- {
- const SwAuthEntry* pEntry = pFType->GetEntryByIdentifier(
- pBox->GetText());
- if(pEntry)
- {
- for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
- {
- if(AUTH_FIELD_IDENTIFIER == i)
- continue;
- if(AUTH_FIELD_AUTHORITY_TYPE == i)
- pTypeListBox->SelectEntry(
- pEntry->GetAuthorField((ToxAuthorityField)i));
- else
- pEdits[i]->SetText(
- pEntry->GetAuthorField((ToxAuthorityField)i));
- }
- }
- }
- return 0;
-}
-/* -----------------------------20.12.99 15:07--------------------------------
-
- ---------------------------------------------------------------------------*/
-
-IMPL_LINK(SwCreateAuthEntryDlg_Impl, ShortNameHdl, Edit*, pEdit)
-{
- if(aShortNameCheckLink.IsSet())
- {
- sal_Bool bEnable = 0 != aShortNameCheckLink.Call(pEdit);
- m_bNameAllowed |= bEnable;
- aOKBT.Enable(pTypeListBox->GetSelectEntryCount() && bEnable);
- }
- return 0;
-}
-/* -----------------------------20.12.99 15:54--------------------------------
-
- ---------------------------------------------------------------------------*/
-IMPL_LINK(SwCreateAuthEntryDlg_Impl, EnableHdl, ListBox*, pBox)
-{
- aOKBT.Enable(m_bNameAllowed && pBox->GetSelectEntryCount());
- return 0;
-};
-/* -----------------06.10.99 10:00-------------------
-
- --------------------------------------------------*/
-SwAuthMarkFloatDlg::SwAuthMarkFloatDlg(SfxBindings* pBindings,
- SfxChildWindow* pChild,
- Window *pParent,
- sal_Bool bNew) :
- SfxModelessDialog(pBindings, pChild, pParent, SW_RES(DLG_INSAUTHMARK)),
- aDlg(this, ResId(WIN_DLG), bNew)
-{
- FreeResource();
-}
-/* -----------------06.10.99 10:27-------------------
-
- --------------------------------------------------*/
-void SwAuthMarkFloatDlg::Activate()
-{
- SfxModelessDialog::Activate();
- GetDlg().Activate();
-}
-/* -----------------06.10.99 10:35-------------------
-
- --------------------------------------------------*/
-SwAuthMarkModalDlg::SwAuthMarkModalDlg(Window *pParent, SwWrtShell& rSh) :
- SvxStandardDialog(pParent, SW_RES(DLG_EDIT_AUTHMARK)),
- aDlg(this, ResId(WIN_DLG), sal_False)
-{
- FreeResource();
- aDlg.ReInitDlg(rSh);
-}
-/* -----------------06.10.99 10:46-------------------
-
- --------------------------------------------------*/
-void SwAuthMarkModalDlg::Apply()
-{
- aDlg.InsertHdl(0);
+ pAbstDlg->ReInitDlg(rWrtShell);//CHINA001 ((SwAuthMarkFloatDlg*)pWindow)->ReInitDlg(rWrtShell);
}