Files
libreoffice/sw/source/ui/app/appopt.cxx
Vladimir Glazounov 7ff637bcfc INTEGRATION: CWS os6 (1.18.100); FILE MERGED
2003/03/06 13:23:36 os 1.18.100.1: #i11956# SfxBindings should (and can) only be updated if the current view has the correct type (and is available)
2003-04-01 14:23:32 +00:00

666 lines
23 KiB
C++

/*************************************************************************
*
* $RCSfile: appopt.cxx,v $
*
* $Revision: 1.19 $
*
* last change: $Author: vg $ $Date: 2003-04-01 15:23:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (the "License"); You may not use this file
* except in compliance with the License. You may obtain a copy of the
* License at http://www.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifdef PRECOMPILED
#include "ui_pch.hxx"
#endif
#pragma hdrstop
#ifndef _UIPARAM_HXX
#include <uiparam.hxx>
#endif
#ifndef _HINTIDS_HXX
#include <hintids.hxx>
#endif
#ifndef _CMDID_H
#include <cmdid.h> // Funktion-Ids
#endif
#define _SVSTDARR_STRINGSDTOR
#include <svtools/svstdarr.hxx>
#ifndef _MSGBOX_HXX //autogen
#include <vcl/msgbox.hxx>
#endif
#ifndef _SFXENUMITEM_HXX //autogen
#include <svtools/eitem.hxx>
#endif
#ifndef _SFXREQUEST_HXX //autogen
#include <sfx2/request.hxx>
#endif
#ifndef _SFXAPP_HXX //autogen
#include <sfx2/app.hxx>
#endif
#ifndef _SFX_PRINTER_HXX //autogen
#include <sfx2/printer.hxx>
#endif
#ifndef _SVX_HTMLMODE_HXX //autogen
#include <svx/htmlmode.hxx>
#endif
#ifndef _SFX_BINDINGS_HXX //autogen
#include <sfx2/bindings.hxx>
#endif
#ifndef _SVX_BRSHITEM_HXX //autogen
#include <svx/brshitem.hxx>
#endif
#ifndef _SVX_TSTPITEM_HXX //autogen
#include <svx/tstpitem.hxx>
#endif
#ifndef _SVX_OPTGRID_HXX //autogen
#include <svx/optgrid.hxx>
#endif
#ifndef _SVX_BACKGRND_HXX //autogen
#include <svx/backgrnd.hxx>
#endif
#ifndef _OFF_OFAIDS_HRC
#include <offmgr/ofaids.hrc>
#endif
#ifndef _OPTPAGE_HXX //autogen
#include <optpage.hxx>
#endif
#ifndef _OPTLOAD_HXX
#include <optload.hxx>
#endif
#ifndef _EDTWIN_HXX
#include <edtwin.hxx>
#endif
#ifndef _SWMODULE_HXX
#include <swmodule.hxx>
#endif
#ifndef _VIEW_HXX
#include <view.hxx>
#endif
#ifndef _WRTSH_HXX
#include <wrtsh.hxx>
#endif
#ifndef _UITOOL_HXX
#include <uitool.hxx>
#endif
#ifndef _INITUI_HXX
#include <initui.hxx> // fuer ::GetGlossaries()
#endif
#ifndef _FLDBAS_HXX
#include <fldbas.hxx> //fuer UpdateFields
#endif
#ifndef _WVIEW_HXX
#include <wview.hxx>
#endif
#ifndef _CFGITEMS_HXX
#include <cfgitems.hxx>
#endif
#ifndef _PRTOPT_HXX
#include <prtopt.hxx>
#endif
#ifndef _PVIEW_HXX
#include <pview.hxx>
#endif
#ifndef _USRPREF_HXX
#include <usrpref.hxx>
#endif
#ifndef _MODCFG_HXX
#include <modcfg.hxx>
#endif
#ifndef _GLOSDOC_HXX
#include <glosdoc.hxx>
#endif
#ifndef _UIITEMS_HXX
#include <uiitems.hxx>
#endif
#ifndef _SVX_LANGITEM_HXX
#include <svx/langitem.hxx>
#endif
#ifndef _SVTOOLS_LINGUCFG_HXX_
#include <svtools/lingucfg.hxx>
#endif
#ifndef _UNO_LINGU_HXX
#include <svx/unolingu.hxx>
#endif
#ifndef _GLOBALS_HRC
#include <globals.hrc>
#endif
#ifndef _GLOBALS_H
#include <globals.h> // globale Konstanten z.B.
#endif
#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
#include <com/sun/star/lang/Locale.hpp>
#endif
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
#define C2U(cChar) rtl::OUString::createFromAscii(cChar)
/* -----------------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,
#ifndef PRODUCT
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()));
}
SfxPrinter* pPrt = 0;
if( pAppView )
{
SwWrtShell& rWrtShell = pAppView->GetWrtShell();
SfxPrinter* pPrt = rWrtShell.GetPrt();
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);
}
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;
Any aLang = aLinguCfg.GetProperty(C2U("DefaultLocale"));
Locale aLocale;
aLang >>= aLocale;
pRet->Put(SvxLanguageItem(SvxLocaleToLanguage( aLocale ), SID_ATTR_LANGUAGE));
aLang = aLinguCfg.GetProperty(C2U("DefaultLocale_CJK"));
aLang >>= aLocale;
pRet->Put(SvxLanguageItem(SvxLocaleToLanguage( aLocale ), SID_ATTR_CHAR_CJK_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, eUnit));
eUnit = pPref->GetVScrollMetric();
if(pAppView)
pAppView->GetVLinealMetric(eUnit);
pRet->Put(SfxUInt16Item( FN_VSCROLL_METRIC, eUnit));
pRet->Put(SfxUInt16Item(SID_ATTR_METRIC, 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, 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().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));
}
#ifndef PRODUCT
/*-----------------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);
SwModuleOptions* pMCfg = GetModuleConfig();
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 ) )
{
SFX_APP()->SetOptions(rSet);
const SfxUInt16Item* pMetricItem = (const SfxUInt16Item*)pItem;
FieldUnit eUnit = (FieldUnit)pMetricItem->GetValue();
pUsrPref->SetHScrollMetric(eUnit);
if(pAppView)
pAppView->ChangeTabMetric(eUnit);
}
if( SFX_ITEM_SET == rSet.GetItemState(FN_VSCROLL_METRIC,
FALSE, &pItem ) )
{
SFX_APP()->SetOptions(rSet);
const SfxUInt16Item* pMetricItem = (const SfxUInt16Item*)pItem;
FieldUnit eUnit = (FieldUnit)pMetricItem->GetValue();
pUsrPref->SetVScrollMetric(eUnit);
if(pAppView)
pAppView->ChangeVLinealMetric(eUnit);
}
if( SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_DEFTABSTOP,
FALSE, &pItem ) )
{
USHORT nTabDist = ((const SfxUInt16Item*)pItem)->GetValue();
pUsrPref->SetDefTab(nTabDist);
if(pAppView)
{
SvxTabStopItem aDefTabs( 0, 0 );
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().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());
}
#ifndef PRODUCT
/*--------------------------------------------------------------------------
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 = 0;
switch(nId)
{
case RID_SW_TP_CONTENT_OPT:
case RID_SW_TP_HTML_CONTENT_OPT:
pRet = SwContentOptPage::Create(pParent, rSet); break;
case RID_SW_TP_HTML_OPTGRID_PAGE:
case RID_SVXPAGE_GRID:
pRet = SvxGridTabPage::Create(pParent, rSet);
break;
break;
case RID_SW_TP_STD_FONT:
case RID_SW_TP_STD_FONT_CJK:
case RID_SW_TP_STD_FONT_CTL:
pRet = SwStdFontTabPage::Create(pParent, rSet);
if(RID_SW_TP_STD_FONT != nId)
((SwStdFontTabPage*)pRet)->SetFontMode(
RID_SW_TP_STD_FONT_CJK == nId ? FONT_GROUP_CJK : FONT_GROUP_CTL);
break;
case RID_SW_TP_HTML_OPTPRINT_PAGE:
case RID_SW_TP_OPTPRINT_PAGE:
{
pRet = SwAddPrinterTabPage::Create(pParent, rSet);
SvStringsDtor aFaxList;
const USHORT nCount = Printer::GetQueueCount();
for (USHORT i = 0; i < nCount; ++i)
{
String* pString = new String( Printer::GetQueueInfo( i ).GetPrinterName());
String* &rpString = pString;
aFaxList.Insert(rpString, 0);
}
(( SwAddPrinterTabPage* )pRet)->SetFax( aFaxList );
}
break;
case RID_SW_TP_HTML_OPTTABLE_PAGE:
case RID_SW_TP_OPTTABLE_PAGE:
{
pRet = SwTableOptionsTabPage::Create(pParent, rSet);
SwView* pView = GetView();
if(pView)
{
// wenn Text dann nicht WebView und umgekehrt
BOOL bWebView = 0 != PTR_CAST(SwWebView, pView);
if( (bWebView && RID_SW_TP_HTML_OPTTABLE_PAGE == nId) ||
(!bWebView && RID_SW_TP_HTML_OPTTABLE_PAGE != nId) )
{
((SwTableOptionsTabPage*)pRet)->SetWrtShell(pView->GetWrtShellPtr());
}
}
}
break;
case RID_SW_TP_OPTSHDWCRSR:
case RID_SW_TP_HTML_OPTSHDWCRSR:
pRet = SwShdwCrsrOptionsTabPage::Create(pParent, rSet);
break;
case RID_SW_TP_REDLINE_OPT: pRet = SwRedlineOptionsTabPage::Create(pParent, rSet); break;
case RID_SW_TP_OPTLOAD_PAGE: pRet = SwLoadOptPage::Create(pParent, rSet); break;
#ifndef PRODUCT
case RID_SW_TP_OPTTEST_PAGE: pRet = SwTestTabPage::Create(pParent, rSet); break;
#endif
case RID_SW_TP_BACKGROUND: pRet = SvxBackgroundTabPage::Create(pParent, rSet); break;
}
DBG_ASSERT(pRet, "Id unbekannt")
return pRet;
}