diff options
Diffstat (limited to 'sw/source/ui/app/appopt.cxx')
-rw-r--r-- | sw/source/ui/app/appopt.cxx | 657 |
1 files changed, 657 insertions, 0 deletions
diff --git a/sw/source/ui/app/appopt.cxx b/sw/source/ui/app/appopt.cxx new file mode 100644 index 000000000000..c6e2527ba0c8 --- /dev/null +++ b/sw/source/ui/app/appopt.cxx @@ -0,0 +1,657 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_sw.hxx" +#include <hintids.hxx> +#ifndef _CMDID_H +#include <cmdid.h> // Funktion-Ids +#endif + +#include <com/sun/star/i18n/ScriptType.hpp> + +#define _SVSTDARR_STRINGSDTOR +#include <svl/svstdarr.hxx> + +#ifndef _MSGBOX_HXX //autogen +#include <vcl/msgbox.hxx> +#endif +#include <svl/eitem.hxx> +#include <sfx2/request.hxx> +#include <sfx2/app.hxx> +#include <sfx2/printer.hxx> +#include <svx/htmlmode.hxx> +#include <sfx2/bindings.hxx> +#include <editeng/brshitem.hxx> +#ifndef _SVX_TSTPITEM_HXX //autogen +#include <editeng/tstpitem.hxx> +#endif +#include <svx/optgrid.hxx> +#include <svx/svxdlg.hxx> +#include <svx/dialogs.hrc> +#include <i18npool/mslangid.hxx> +#include <fontcfg.hxx> +#include <optload.hxx> +#include <optcomp.hxx> +#include <edtwin.hxx> +#include <swmodule.hxx> +#ifndef _VIEW_HXX +#include <view.hxx> +#endif +#include <wrtsh.hxx> +#ifndef IDOCUMENTDEVICEACCESS_HXX_INCLUDED +#include <IDocumentDeviceAccess.hxx> +#endif +#include <uitool.hxx> +#include <initui.hxx> // fuer ::GetGlossaries() +#include <fldbas.hxx> //fuer UpdateFields +#ifndef _WVIEW_HXX +#include <wview.hxx> +#endif +#include <cfgitems.hxx> +#include <prtopt.hxx> +#ifndef _PVIEW_HXX +#include <pview.hxx> +#endif +#include <usrpref.hxx> +#ifndef _MODCFG_HXX +#include <modcfg.hxx> +#endif +#include <glosdoc.hxx> +#include <uiitems.hxx> +#include <editeng/langitem.hxx> +#include <unotools/lingucfg.hxx> +#include <editeng/unolingu.hxx> + +#ifndef _GLOBALS_HRC +#include <globals.hrc> +#endif +#include <globals.h> // globale Konstanten z.B. +#include <svl/slstitm.hxx> +#include "swabstdlg.hxx" +#include <swwrtshitem.hxx> + +#include <unomid.h> + +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::lang; + +/* -----------------12.02.99 12:28------------------- + * + * --------------------------------------------------*/ + +SfxItemSet* SwModule::CreateItemSet( USHORT nId ) +{ + BOOL bTextDialog = (nId == SID_SW_EDITOPTIONS) ? TRUE : FALSE; + + // hier werden die Optionen fuer die Web- und den Textdialog zusmmengesetzt + SwViewOption aViewOpt = *GetUsrPref(!bTextDialog); + SwMasterUsrPref* pPref = bTextDialog ? pUsrPref : pWebUsrPref; + //kein MakeUsrPref, da hier nur die Optionen von Textdoks genommen werden duerfen + SwView* pAppView = GetView(); + if(pAppView && pAppView->GetViewFrame() != SfxViewFrame::Current()) + pAppView = 0; + if(pAppView) + { + // wenn Text dann nicht WebView und umgekehrt + BOOL bWebView = 0 != PTR_CAST(SwWebView, pAppView); + if( (bWebView && !bTextDialog) ||(!bWebView && bTextDialog)) + { + aViewOpt = *pAppView->GetWrtShell().GetViewOptions(); + } + else + pAppView = 0; // mit View kann hier nichts gewonnen werden + } + + /********************************************************************/ + /* */ + /* Optionen/Bearbeiten */ + /* */ + /********************************************************************/ + SfxItemSet* pRet = new SfxItemSet (GetPool(), FN_PARAM_DOCDISP, FN_PARAM_ELEM, + SID_PRINTPREVIEW, SID_PRINTPREVIEW, + SID_ATTR_GRID_OPTIONS, SID_ATTR_GRID_OPTIONS, + FN_PARAM_PRINTER, FN_PARAM_STDFONTS, + FN_PARAM_WRTSHELL, FN_PARAM_WRTSHELL, + FN_PARAM_ADDPRINTER, FN_PARAM_ADDPRINTER, + SID_ATTR_METRIC, SID_ATTR_METRIC, + SID_ATTR_DEFTABSTOP, SID_ATTR_DEFTABSTOP, + RES_BACKGROUND, RES_BACKGROUND, + SID_HTML_MODE, SID_HTML_MODE, + FN_PARAM_SHADOWCURSOR, FN_PARAM_SHADOWCURSOR, + FN_PARAM_CRSR_IN_PROTECTED, FN_PARAM_CRSR_IN_PROTECTED, + FN_HSCROLL_METRIC, FN_VSCROLL_METRIC, + SID_ATTR_LANGUAGE, SID_ATTR_LANGUAGE, + SID_ATTR_CHAR_CJK_LANGUAGE, SID_ATTR_CHAR_CJK_LANGUAGE, + SID_ATTR_CHAR_CTL_LANGUAGE, SID_ATTR_CHAR_CTL_LANGUAGE, +#ifdef DBG_UTIL + FN_PARAM_SWTEST, FN_PARAM_SWTEST, +#endif + 0); + + pRet->Put( SwDocDisplayItem( aViewOpt, FN_PARAM_DOCDISP) ); + pRet->Put( SwElemItem( aViewOpt, FN_PARAM_ELEM) ); + if( bTextDialog ) + { + pRet->Put( SwShadowCursorItem( aViewOpt, FN_PARAM_SHADOWCURSOR )); + pRet->Put( SfxBoolItem(FN_PARAM_CRSR_IN_PROTECTED, aViewOpt.IsCursorInProtectedArea())); + } + + if( pAppView ) + { + SwWrtShell& rWrtShell = pAppView->GetWrtShell(); + + SfxPrinter* pPrt = rWrtShell.getIDocumentDeviceAccess()->getPrinter( false ); + if( pPrt ) + pRet->Put(SwPtrItem(FN_PARAM_PRINTER, pPrt)); + pRet->Put(SwPtrItem(FN_PARAM_WRTSHELL, &rWrtShell)); + + pRet->Put((const SvxLanguageItem&) + rWrtShell.GetDefault(RES_CHRATR_LANGUAGE), SID_ATTR_LANGUAGE); + + pRet->Put((const SvxLanguageItem&) + rWrtShell.GetDefault(RES_CHRATR_CJK_LANGUAGE), SID_ATTR_CHAR_CJK_LANGUAGE); + + pRet->Put((const SvxLanguageItem&) + rWrtShell.GetDefault(RES_CHRATR_CTL_LANGUAGE), SID_ATTR_CHAR_CTL_LANGUAGE); + } + else + { +/* Der Drucker wird jetzt von der TabPage erzeugt und auch geloescht + * SfxItemSet* pSet = new SfxItemSet( SFX_APP()->GetPool(), + SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, + SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, + 0 ); + + pPrt = new SfxPrinter(pSet); + pRet->Put(SwPtrItem(FN_PARAM_PRINTER, pPrt));*/ + + SvtLinguConfig aLinguCfg; + Locale aLocale; + LanguageType nLang; + + using namespace ::com::sun::star::i18n::ScriptType; + + Any aLang = aLinguCfg.GetProperty(C2U("DefaultLocale")); + aLang >>= aLocale; + nLang = MsLangId::resolveSystemLanguageByScriptType(MsLangId::convertLocaleToLanguage(aLocale), LATIN); + pRet->Put(SvxLanguageItem(nLang, SID_ATTR_LANGUAGE)); + + aLang = aLinguCfg.GetProperty(C2U("DefaultLocale_CJK")); + aLang >>= aLocale; + nLang = MsLangId::resolveSystemLanguageByScriptType(MsLangId::convertLocaleToLanguage(aLocale), ASIAN); + pRet->Put(SvxLanguageItem(nLang, SID_ATTR_CHAR_CJK_LANGUAGE)); + + aLang = aLinguCfg.GetProperty(C2U("DefaultLocale_CTL")); + aLang >>= aLocale; + nLang = MsLangId::resolveSystemLanguageByScriptType(MsLangId::convertLocaleToLanguage(aLocale), COMPLEX); + pRet->Put(SvxLanguageItem(nLang, SID_ATTR_CHAR_CTL_LANGUAGE)); + } + if(bTextDialog) + pRet->Put(SwPtrItem(FN_PARAM_STDFONTS, GetStdFontConfig())); + if( PTR_CAST( SwPagePreView, SfxViewShell::Current())!=0) + { + SfxBoolItem aBool(SfxBoolItem(SID_PRINTPREVIEW, TRUE)); + pRet->Put(aBool); + } + + FieldUnit eUnit = pPref->GetHScrollMetric(); + if(pAppView) + pAppView->GetHLinealMetric(eUnit); + pRet->Put(SfxUInt16Item( FN_HSCROLL_METRIC, static_cast< UINT16 >(eUnit))); + + eUnit = pPref->GetVScrollMetric(); + if(pAppView) + pAppView->GetVLinealMetric(eUnit); + pRet->Put(SfxUInt16Item( FN_VSCROLL_METRIC, static_cast< UINT16 >(eUnit) )); + pRet->Put(SfxUInt16Item( SID_ATTR_METRIC, static_cast< UINT16 >(pPref->GetMetric()) )); + if(bTextDialog) + { + if(pAppView) + { + const SvxTabStopItem& rDefTabs = + (const SvxTabStopItem&)pAppView->GetWrtShell(). + GetDefault(RES_PARATR_TABSTOP); + pRet->Put( SfxUInt16Item( SID_ATTR_DEFTABSTOP, (USHORT)::GetTabDist(rDefTabs))); + } + else + pRet->Put(SfxUInt16Item( SID_ATTR_DEFTABSTOP, (UINT16)pPref->GetDefTab())); + } + + /*-----------------01.02.97 11.13------------------- + Optionen fuer GridTabPage + --------------------------------------------------*/ + + SvxGridItem aGridItem( SID_ATTR_GRID_OPTIONS); + + aGridItem.SetUseGridSnap( aViewOpt.IsSnap()); + aGridItem.SetSynchronize( aViewOpt.IsSynchronize()); + aGridItem.SetGridVisible( aViewOpt.IsGridVisible()); + + const Size& rSnapSize = aViewOpt.GetSnapSize(); + aGridItem.SetFldDrawX( (USHORT) (rSnapSize.Width() )); + aGridItem.SetFldDrawY( (USHORT) (rSnapSize.Height())); + + aGridItem.SetFldDivisionX( aViewOpt.GetDivisionX()); + aGridItem.SetFldDivisionY( aViewOpt.GetDivisionY()); + + pRet->Put(aGridItem); + + /*-----------------01.02.97 13.02------------------- + Optionen fuer PrintTabPage + --------------------------------------------------*/ + SwPrintData* pOpt = pAppView ? + pAppView->GetWrtShell().getIDocumentDeviceAccess()->getPrintData() : + 0; + + if(!pOpt) + pOpt = GetPrtOptions(!bTextDialog); + + SwAddPrinterItem aAddPrinterItem (FN_PARAM_ADDPRINTER, *pOpt ); + pRet->Put(aAddPrinterItem); + + /*-----------------01.02.97 13.12------------------- + Optionen fuer Web-Hintergrund + --------------------------------------------------*/ + if(!bTextDialog) + { + pRet->Put(SvxBrushItem(aViewOpt.GetRetoucheColor(), RES_BACKGROUND)); + } + +#ifdef DBG_UTIL + /*-----------------01.02.97 13.02------------------- + Test-Optionen + --------------------------------------------------*/ + SwTestItem aTestItem(FN_PARAM_SWTEST); + aTestItem.bTest1 = aViewOpt.IsTest1(); + aTestItem.bTest2 = aViewOpt.IsTest2(); + aTestItem.bTest3 = aViewOpt.IsTest3(); + aTestItem.bTest4 = aViewOpt.IsTest4(); + aTestItem.bTest5 = aViewOpt.IsTest5(); + aTestItem.bTest6 = aViewOpt.IsTest6(); + aTestItem.bTest7 = aViewOpt.IsTest7(); + aTestItem.bTest8 = aViewOpt.IsTest8(); + aTestItem.bTest9 = SwViewOption::IsTest9(); + aTestItem.bTest10 = aViewOpt.IsTest10(); + pRet->Put(aTestItem); +#endif + /*-----------------01.02.97 13.04------------------- + + --------------------------------------------------*/ + if(!bTextDialog) + pRet->Put(SfxUInt16Item(SID_HTML_MODE, HTMLMODE_ON)); +// delete pPrt; + return pRet; +} +/* -----------------12.02.99 12:28------------------- + * + * --------------------------------------------------*/ +void SwModule::ApplyItemSet( USHORT nId, const SfxItemSet& rSet ) +{ + BOOL bTextDialog = nId == SID_SW_EDITOPTIONS; + SwView* pAppView = GetView(); + if(pAppView && pAppView->GetViewFrame() != SfxViewFrame::Current()) + pAppView = 0; + if(pAppView) + { + // the text dialog mustn't apply data to the web view and vice versa + BOOL bWebView = 0 != PTR_CAST(SwWebView, pAppView); + if( (bWebView == bTextDialog)) + pAppView = 0; // + } + + SwViewOption aViewOpt = *GetUsrPref(!bTextDialog); + SwMasterUsrPref* pPref = bTextDialog ? pUsrPref : pWebUsrPref; + + const SfxPoolItem* pItem; + SfxBindings *pBindings = pAppView ? &pAppView->GetViewFrame()->GetBindings() + : NULL; + + /*--------------------------------------------------------------------- + Seite Dokumentansicht auswerten + -----------------------------------------------------------------------*/ + if( SFX_ITEM_SET == rSet.GetItemState( + FN_PARAM_DOCDISP, FALSE, &pItem )) + { + const SwDocDisplayItem* pDocDispItem = (const SwDocDisplayItem*)pItem; + + if(!aViewOpt.IsViewMetaChars()) + { + if( (!aViewOpt.IsTab( TRUE ) && pDocDispItem->bTab) || + (!aViewOpt.IsBlank( TRUE ) && pDocDispItem->bSpace) || + (!aViewOpt.IsParagraph( TRUE ) && pDocDispItem->bParagraphEnd) || + (!aViewOpt.IsLineBreak( TRUE ) && pDocDispItem->bManualBreak) ) + { + aViewOpt.SetViewMetaChars(TRUE); + if(pBindings) + pBindings->Invalidate(FN_VIEW_META_CHARS); + } + + } + pDocDispItem->FillViewOptions( aViewOpt ); + if(pBindings) + { + pBindings->Invalidate(FN_VIEW_GRAPHIC); + pBindings->Invalidate(FN_VIEW_HIDDEN_PARA); + } + } + + /*--------------------------------------------------------------------- + Elemente - Item auswerten + -----------------------------------------------------------------------*/ + + if( SFX_ITEM_SET == rSet.GetItemState( + FN_PARAM_ELEM, FALSE, &pItem ) ) + { + const SwElemItem* pElemItem = (const SwElemItem*)pItem; + pElemItem->FillViewOptions( aViewOpt ); + + } + + if( SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_METRIC, + FALSE, &pItem ) ) + { + SFX_APP()->SetOptions(rSet); + const SfxUInt16Item* pMetricItem = (const SfxUInt16Item*)pItem; + ::SetDfltMetric((FieldUnit)pMetricItem->GetValue(), !bTextDialog); + } + if( SFX_ITEM_SET == rSet.GetItemState(FN_HSCROLL_METRIC, + FALSE, &pItem ) ) + { + const SfxUInt16Item* pMetricItem = (const SfxUInt16Item*)pItem; + FieldUnit eUnit = (FieldUnit)pMetricItem->GetValue(); + pPref->SetHScrollMetric(eUnit); + if(pAppView) + pAppView->ChangeTabMetric(eUnit); + } + + if( SFX_ITEM_SET == rSet.GetItemState(FN_VSCROLL_METRIC, + FALSE, &pItem ) ) + { + const SfxUInt16Item* pMetricItem = (const SfxUInt16Item*)pItem; + FieldUnit eUnit = (FieldUnit)pMetricItem->GetValue(); + pPref->SetVScrollMetric(eUnit); + if(pAppView) + pAppView->ChangeVLinealMetric(eUnit); + } + + if( SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_DEFTABSTOP, + FALSE, &pItem ) ) + { + USHORT nTabDist = ((const SfxUInt16Item*)pItem)->GetValue(); + pPref->SetDefTab(nTabDist); + if(pAppView) + { + SvxTabStopItem aDefTabs( 0, 0, SVX_TAB_ADJUST_DEFAULT, RES_PARATR_TABSTOP ); + MakeDefTabs( nTabDist, aDefTabs ); + pAppView->GetWrtShell().SetDefault( aDefTabs ); + } + } + + + /*-----------------01.02.97 11.36------------------- + Hintergrund nur im WebDialog + --------------------------------------------------*/ + if(SFX_ITEM_SET == rSet.GetItemState(RES_BACKGROUND)) + { + const SvxBrushItem& rBrushItem = (const SvxBrushItem&)rSet.Get( + RES_BACKGROUND); + aViewOpt.SetRetoucheColor( rBrushItem.GetColor() ); + } + + /*-------------------------------------------------------------------- + Seite Rastereinstellungen auswerten + ----------------------------------------------------------------------*/ + + if( SFX_ITEM_SET == rSet.GetItemState( + SID_ATTR_GRID_OPTIONS, FALSE, &pItem )) + { + const SvxGridItem* pGridItem = (const SvxGridItem*)pItem; + + aViewOpt.SetSnap( pGridItem->GetUseGridSnap() ); + aViewOpt.SetSynchronize(pGridItem->GetSynchronize()); + if( aViewOpt.IsGridVisible() != pGridItem->GetGridVisible() ) + aViewOpt.SetGridVisible( pGridItem->GetGridVisible()); + Size aSize = Size( pGridItem->GetFldDrawX() , + pGridItem->GetFldDrawY() ); + if( aViewOpt.GetSnapSize() != aSize ) + aViewOpt.SetSnapSize( aSize ); + short nDiv = (short)pGridItem->GetFldDivisionX() ; + if( aViewOpt.GetDivisionX() != nDiv ) + aViewOpt.SetDivisionX( nDiv ); + nDiv = (short)pGridItem->GetFldDivisionY(); + if( aViewOpt.GetDivisionY() != nDiv ) + aViewOpt.SetDivisionY( nDiv ); + + if(pBindings) + { + pBindings->Invalidate(SID_GRID_VISIBLE); + pBindings->Invalidate(SID_GRID_USE); + } + } + + //-------------------------------------------------------------------------- + // Writer Drucker Zusatzeinstellungen auswerten + //---------------------------------------------------------------------------- + + if( SFX_ITEM_SET == rSet.GetItemState( + FN_PARAM_ADDPRINTER, FALSE, &pItem )) + { + SwPrintOptions* pOpt = GetPrtOptions(!bTextDialog); + if (pOpt) + { + const SwAddPrinterItem* pAddPrinterAttr = (const SwAddPrinterItem*)pItem; + *pOpt = *pAddPrinterAttr; + + if(pAppView) + pAppView->GetWrtShell().getIDocumentDeviceAccess()->setPrintData( *pOpt ); + } + + } + + if( SFX_ITEM_SET == rSet.GetItemState( + FN_PARAM_SHADOWCURSOR, FALSE, &pItem )) + { + ((SwShadowCursorItem*)pItem)->FillViewOptions( aViewOpt ); + if(pBindings) + pBindings->Invalidate(FN_SHADOWCURSOR); + } + + if( SFX_ITEM_SET == rSet.GetItemState( + FN_PARAM_CRSR_IN_PROTECTED, FALSE, &pItem )) + { + aViewOpt.SetCursorInProtectedArea(((const SfxBoolItem*)pItem)->GetValue()); + } + + +#ifdef DBG_UTIL + /*-------------------------------------------------------------------------- + Writer Testseite auswerten + ----------------------------------------------------------------------------*/ + + if( SFX_ITEM_SET == rSet.GetItemState( + FN_PARAM_SWTEST, FALSE, &pItem )) + { + const SwTestItem* pTestItem = (const SwTestItem*)pItem; + aViewOpt.SetTest1((BOOL)pTestItem->bTest1); + aViewOpt.SetTest2((BOOL)pTestItem->bTest2); + aViewOpt.SetTest3((BOOL)pTestItem->bTest3); + aViewOpt.SetTest4((BOOL)pTestItem->bTest4); + aViewOpt.SetTest5((BOOL)pTestItem->bTest5); + aViewOpt.SetTest6((BOOL)pTestItem->bTest6); + aViewOpt.SetTest7((BOOL)pTestItem->bTest7); + aViewOpt.SetTest8((BOOL)pTestItem->bTest8); + SwViewOption::SetTest9((BOOL)pTestItem->bTest9); + aViewOpt.SetTest10((BOOL)pTestItem->bTest10); + } +#endif + // dann an der akt. View und Shell die entsp. Elemente setzen + ApplyUsrPref( aViewOpt, pAppView, + bTextDialog? VIEWOPT_DEST_TEXT : VIEWOPT_DEST_WEB); +} +/* -----------------12.02.99 12:28------------------- + * + * --------------------------------------------------*/ +SfxTabPage* SwModule::CreateTabPage( USHORT nId, Window* pParent, const SfxItemSet& rSet ) +{ + SfxTabPage* pRet = NULL; + SfxAllItemSet aSet(*(rSet.GetPool())); + switch( nId ) + { + case RID_SW_TP_CONTENT_OPT: + case RID_SW_TP_HTML_CONTENT_OPT: + { + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + if ( pFact ) + { + ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( nId ); + if ( fnCreatePage ) + pRet = (*fnCreatePage)( pParent, rSet ); + } + break; + } + case RID_SW_TP_HTML_OPTGRID_PAGE: + case RID_SVXPAGE_GRID: + pRet = SvxGridTabPage::Create(pParent, rSet); + break; + + case RID_SW_TP_STD_FONT: + case RID_SW_TP_STD_FONT_CJK: + case RID_SW_TP_STD_FONT_CTL: + { + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + if ( pFact ) + { + ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( nId ); + if ( fnCreatePage ) + pRet = (*fnCreatePage)( pParent, rSet ); + } + if(RID_SW_TP_STD_FONT != nId) + { + aSet.Put (SfxUInt16Item(SID_FONTMODE_TYPE, RID_SW_TP_STD_FONT_CJK == nId ? FONT_GROUP_CJK : FONT_GROUP_CTL)); + pRet->PageCreated(aSet); + } + } + break; + case RID_SW_TP_HTML_OPTPRINT_PAGE: + case RID_SW_TP_OPTPRINT_PAGE: + { + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + if ( pFact ) + { + ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( nId ); + if ( fnCreatePage ) + pRet = (*fnCreatePage)( pParent, rSet ); + } + aSet.Put (SfxBoolItem(SID_FAX_LIST, sal_True)); + pRet->PageCreated(aSet); + } + break; + case RID_SW_TP_HTML_OPTTABLE_PAGE: + case RID_SW_TP_OPTTABLE_PAGE: + { + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + if ( pFact ) + { + ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( nId ); + if ( fnCreatePage ) + pRet = (*fnCreatePage)( pParent, rSet ); + } + SwView* pCurrView = GetView(); + if(pCurrView) + { + // wenn Text dann nicht WebView und umgekehrt + BOOL bWebView = 0 != PTR_CAST(SwWebView, pCurrView); + if( (bWebView && RID_SW_TP_HTML_OPTTABLE_PAGE == nId) || + (!bWebView && RID_SW_TP_HTML_OPTTABLE_PAGE != nId) ) + { + aSet.Put (SwWrtShellItem(SID_WRT_SHELL,pCurrView->GetWrtShellPtr())); + pRet->PageCreated(aSet); + } + } + } + break; + case RID_SW_TP_OPTSHDWCRSR: + case RID_SW_TP_HTML_OPTSHDWCRSR: + case RID_SW_TP_REDLINE_OPT: + case RID_SW_TP_OPTLOAD_PAGE: + case RID_SW_TP_OPTCOMPATIBILITY_PAGE: + case RID_SW_TP_MAILCONFIG: + { + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + if ( pFact ) + { + ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( nId ); + if ( fnCreatePage ) + pRet = (*fnCreatePage)( pParent, rSet ); + } + } + break; +#ifdef DBG_UTIL + case RID_SW_TP_OPTTEST_PAGE: + { + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + if ( pFact ) + { + ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( nId ); + if ( fnCreatePage ) + pRet = (*fnCreatePage)( pParent, rSet ); + } + break; + } +#endif + case RID_SW_TP_BACKGROUND: + { + SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create(); + if ( pFact ) + { + ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ); + if ( fnCreatePage ) + pRet = (*fnCreatePage)( pParent, rSet ); + } + break; + } + case TP_OPTCAPTION_PAGE: + case RID_SW_TP_OPTCAPTION_PAGE: + { + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + if ( pFact ) + { + ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( RID_SW_TP_OPTCAPTION_PAGE ); + if ( fnCreatePage ) + pRet = (*fnCreatePage)( pParent, rSet ); + } + } + break; + } + + DBG_ASSERT( pRet, "SwModule::CreateTabPage(): Unknown tabpage id" ); + return pRet; +} + + + |