summaryrefslogtreecommitdiff
path: root/sw/source/ui/fmtui/tmpdlg.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/fmtui/tmpdlg.cxx')
-rw-r--r--sw/source/ui/fmtui/tmpdlg.cxx647
1 files changed, 647 insertions, 0 deletions
diff --git a/sw/source/ui/fmtui/tmpdlg.cxx b/sw/source/ui/fmtui/tmpdlg.cxx
new file mode 100644
index 000000000000..015a31fce90e
--- /dev/null
+++ b/sw/source/ui/fmtui/tmpdlg.cxx
@@ -0,0 +1,647 @@
+/*************************************************************************
+ *
+ * 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"
+
+#ifdef SW_DLLIMPLEMENTATION
+#undef SW_DLLIMPLEMENTATION
+#endif
+
+
+#include <hintids.hxx>
+
+#ifndef _SVSTDARR_STRINGSSORTDTOR
+#define _SVSTDARR_STRINGSSORTDTOR
+#include <svl/svstdarr.hxx>
+#endif
+#include <vcl/msgbox.hxx>
+#include <sfx2/viewfrm.hxx>
+#include <svx/hdft.hxx>
+#include <editeng/flstitem.hxx>
+#include <svx/htmlmode.hxx>
+#include <svtools/htmlcfg.hxx>
+#include <svl/cjkoptions.hxx>
+#include <numpara.hxx>
+#include <fmtclds.hxx>
+#include <swtypes.hxx>
+#include <swmodule.hxx>
+#include <errhdl.hxx> // fuer Create-Methoden
+#include <wrtsh.hxx>
+#ifndef _VIEW_HXX
+#include <view.hxx>
+#endif
+#include <wdocsh.hxx>
+#include <viewopt.hxx>
+#include <pgfnote.hxx>
+#ifndef _PGFGRID_HXX
+#include <pggrid.hxx>
+#endif
+#ifndef _TMPDLG_HXX
+#include <tmpdlg.hxx> // der Dialog
+#endif
+#include <column.hxx> // Spalten
+#include <drpcps.hxx> // Initialen
+#include <frmpage.hxx> // Rahmen
+#include <wrap.hxx> // Rahmen
+#include <frmmgr.hxx> // Rahmen
+#include <ccoll.hxx> // CondColl
+#include <swuiccoll.hxx>
+#include <docstyle.hxx> //
+#include <fmtcol.hxx> //
+#include <macassgn.hxx> //
+#include <poolfmt.hxx>
+#include <uitool.hxx>
+#include <shellres.hxx>
+
+#ifndef _CMDID_H
+#include <cmdid.h>
+#endif
+#ifndef _HELPID_H
+#include <helpid.h>
+#endif
+#ifndef _GLOBALS_HRC
+#include <globals.hrc>
+#endif
+#ifndef _FMTUI_HRC
+#include <fmtui.hrc>
+#endif
+#include <SwStyleNameMapper.hxx>
+#include <svx/svxids.hrc>
+#include <svl/stritem.hxx>
+#include <svl/aeitem.hxx>
+#include <svl/slstitm.hxx>
+#include <svl/eitem.hxx>
+#include <svl/intitem.hxx>
+#include <svx/svxdlg.hxx>
+#include <svx/dialogs.hrc>
+#include <svx/flagsdef.hxx>
+
+extern SW_DLLPUBLIC SwWrtShell* GetActiveWrtShell();
+
+/*--------------------------------------------------------------------
+ Beschreibung: Der Traeger des Dialoges
+ --------------------------------------------------------------------*/
+
+SwTemplateDlg::SwTemplateDlg(Window* pParent,
+ SfxStyleSheetBase& rBase,
+ USHORT nRegion,
+ BOOL bColumn,
+ SwWrtShell* pActShell,
+ BOOL bNew ) :
+ SfxStyleDialog( pParent,
+ SW_RES(DLG_TEMPLATE_BASE + nRegion),
+ rBase,
+ FALSE,
+ 0 ),
+ nType( nRegion ),
+ pWrtShell(pActShell),
+ bNewStyle(bNew)
+{
+ FreeResource();
+
+ nHtmlMode = ::GetHtmlMode(pWrtShell->GetView().GetDocShell());
+ SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
+ DBG_ASSERT(pFact, "Dialogdiet fail!");
+ // TabPages zusammenfieseln
+ switch( nRegion )
+ {
+ // Zeichenvorlagen
+ case SFX_STYLE_FAMILY_CHAR:
+ {
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ) , "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_CHAR_STD, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ) , "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_CHAR_EXT, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) , "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_CHAR_POS, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) , "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_CHAR_TWOLN, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) , "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) );
+
+ SvtCJKOptions aCJKOptions;
+ if(nHtmlMode & HTMLMODE_ON || !aCJKOptions.IsDoubleLinesEnabled())
+ RemoveTabPage(TP_CHAR_TWOLN);
+ }
+ break;
+ // Absatzvorlagen
+ case SFX_STYLE_FAMILY_PARA:
+ {
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_STD_PARAGRAPH), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc(RID_SVXPAGE_STD_PARAGRAPH), "GetTabPageRangesFunc fail!");
+ AddTabPage( TP_PARA_STD, pFact->GetTabPageCreatorFunc(RID_SVXPAGE_STD_PARAGRAPH), pFact->GetTabPageRangesFunc(RID_SVXPAGE_STD_PARAGRAPH) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_ALIGN_PARAGRAPH), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc(RID_SVXPAGE_ALIGN_PARAGRAPH), "GetTabPageRangesFunc fail!");
+ AddTabPage( TP_PARA_ALIGN, pFact->GetTabPageCreatorFunc(RID_SVXPAGE_ALIGN_PARAGRAPH), pFact->GetTabPageRangesFunc(RID_SVXPAGE_ALIGN_PARAGRAPH) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_EXT_PARAGRAPH), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc(RID_SVXPAGE_EXT_PARAGRAPH), "GetTabPageRangesFunc fail!");
+ AddTabPage( TP_PARA_EXT, pFact->GetTabPageCreatorFunc(RID_SVXPAGE_EXT_PARAGRAPH), pFact->GetTabPageRangesFunc(RID_SVXPAGE_EXT_PARAGRAPH) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_PARA_ASIAN), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc(RID_SVXPAGE_PARA_ASIAN), "GetTabPageRangesFunc fail!");
+ AddTabPage( TP_PARA_ASIAN, pFact->GetTabPageCreatorFunc(RID_SVXPAGE_PARA_ASIAN), pFact->GetTabPageRangesFunc(RID_SVXPAGE_PARA_ASIAN) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_CHAR_STD, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_CHAR_EXT, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) , "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_CHAR_POS, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) );
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) , "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_CHAR_TWOLN, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) );
+
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_TABULATOR), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc(RID_SVXPAGE_TABULATOR), "GetTabPageRangesFunc fail!");
+ AddTabPage( TP_TABULATOR, pFact->GetTabPageCreatorFunc(RID_SVXPAGE_TABULATOR), pFact->GetTabPageRangesFunc(RID_SVXPAGE_TABULATOR) );
+
+
+ AddTabPage(TP_NUMPARA, SwParagraphNumTabPage::Create,
+ SwParagraphNumTabPage::GetRanges);
+ AddTabPage(TP_DROPCAPS, SwDropCapsPage::Create,
+ SwDropCapsPage::GetRanges );
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) );
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ), "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_BORDER, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ) );
+
+ AddTabPage( TP_CONDCOLL, SwCondCollPage::Create,
+ SwCondCollPage::GetRanges );
+ if( (!bNewStyle && RES_CONDTXTFMTCOLL != ((SwDocStyleSheet&)rBase).GetCollection()->Which())
+ || nHtmlMode & HTMLMODE_ON )
+ RemoveTabPage(TP_CONDCOLL);
+
+ SvtCJKOptions aCJKOptions;
+ if(nHtmlMode & HTMLMODE_ON)
+ {
+ SvxHtmlOptions* pHtmlOpt = SvxHtmlOptions::Get();
+ if (!pHtmlOpt->IsPrintLayoutExtension())
+ RemoveTabPage(TP_PARA_EXT);
+ RemoveTabPage(TP_PARA_ASIAN);
+ RemoveTabPage(TP_TABULATOR);
+ RemoveTabPage(TP_NUMPARA);
+ RemoveTabPage(TP_CHAR_TWOLN);
+ if(!(nHtmlMode & HTMLMODE_FULL_STYLES))
+ {
+ RemoveTabPage(TP_BACKGROUND);
+ RemoveTabPage(TP_DROPCAPS);
+ }
+ if(!(nHtmlMode & HTMLMODE_PARA_BORDER))
+ RemoveTabPage(TP_BORDER);
+ }
+ else
+ {
+ if(!aCJKOptions.IsAsianTypographyEnabled())
+ RemoveTabPage(TP_PARA_ASIAN);
+ if(!aCJKOptions.IsDoubleLinesEnabled())
+ RemoveTabPage(TP_CHAR_TWOLN);
+ }
+ }
+ break;
+ // Rahmenvorlagen
+ case SFX_STYLE_FAMILY_FRAME:
+ {
+ AddTabPage(TP_FRM_STD, SwFrmPage::Create,
+ SwFrmPage::GetRanges );
+ AddTabPage(TP_FRM_ADD, SwFrmAddPage::Create,
+ SwFrmAddPage::GetRanges );
+ AddTabPage(TP_FRM_WRAP, SwWrapTabPage::Create,
+ SwWrapTabPage::GetRanges );
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) );
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ), "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_BORDER, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ) );
+
+ AddTabPage(TP_COLUMN, SwColumnPage::Create,
+ SwColumnPage::GetRanges );
+
+ AddTabPage( TP_MACRO_ASSIGN, pFact->GetTabPageCreatorFunc(RID_SVXPAGE_MACROASSIGN), 0);
+
+ // Auskommentiert wegen Bug #45776 (per default keine Breite&Groesse in Rahmenvorlagen)
+/* SwFmtFrmSize aSize( (const SwFmtFrmSize&)rBase.
+ GetItemSet().Get(RES_FRM_SIZE));
+ if( !aSize.GetWidth() )
+ {
+ aSize.SetWidth( DFLT_WIDTH );
+ aSize.SetHeight( DFLT_HEIGHT );
+ rBase.GetItemSet().Put( aSize );
+ }*/
+ break;
+ }
+ // Seitenvorlagen
+ case SFX_STYLE_FAMILY_PAGE:
+ {
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) );
+ AddTabPage(TP_HEADER_PAGE, String(SW_RES(STR_PAGE_HEADER)),
+ SvxHeaderPage::Create,
+ SvxHeaderPage::GetRanges );
+ AddTabPage(TP_FOOTER_PAGE, String(SW_RES(STR_PAGE_FOOTER)),
+ SvxFooterPage::Create,
+ SvxFooterPage::GetRanges );
+ if(bColumn)
+ SetCurPageId(TP_COLUMN);
+
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_PAGE ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_PAGE ), "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_PAGE_STD, String(SW_RES(STR_PAGE_STD)),
+ pFact->GetTabPageCreatorFunc( RID_SVXPAGE_PAGE ),
+ pFact->GetTabPageRangesFunc( RID_SVXPAGE_PAGE ),
+ FALSE,
+ 1 ); // nach der Verwalten-Page
+ if(!pActShell || 0 == ::GetHtmlMode(pWrtShell->GetView().GetDocShell()))
+ {
+ DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), "GetTabPageCreatorFunc fail!");
+ DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ), "GetTabPageRangesFunc fail!");
+ AddTabPage(TP_BORDER, String(SW_RES(STR_PAGE_BORDER)),
+ pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ) );
+ AddTabPage(TP_COLUMN, String(SW_RES(STR_PAGE_COLUMN)),
+ SwColumnPage::Create,
+ SwColumnPage::GetRanges );
+ AddTabPage(TP_FOOTNOTE_PAGE, String(SW_RES(STR_PAGE_FOOTNOTE)),
+ SwFootNotePage::Create,
+ SwFootNotePage::GetRanges );
+ AddTabPage(TP_TEXTGRID_PAGE, String(SW_RES(STR_PAGE_TEXTGRID)),
+ SwTextGridPage::Create,
+ SwTextGridPage::GetRanges );
+ SvtCJKOptions aCJKOptions;
+ if(!aCJKOptions.IsAsianTypographyEnabled())
+ RemoveTabPage(TP_TEXTGRID_PAGE);
+ }
+
+
+ }
+ break;
+ // Numerierungsvorlagen
+ case SFX_STYLE_FAMILY_PSEUDO:
+ {
+ AddTabPage( RID_SVXPAGE_PICK_SINGLE_NUM );
+ AddTabPage( RID_SVXPAGE_PICK_BULLET );
+ AddTabPage( RID_SVXPAGE_PICK_NUM );
+ AddTabPage( RID_SVXPAGE_PICK_BMP);
+ AddTabPage( RID_SVXPAGE_NUM_OPTIONS );
+ AddTabPage( RID_SVXPAGE_NUM_POSITION );
+
+
+/* const SfxPoolItem* pItem;
+ if(SFX_ITEM_SET == rBase.GetItemSet().GetItemState(
+ FN_PARAM_ACT_NUMBER, FALSE, &pItem ))
+ {
+// pActNum = (ActNumberFormat*)((const SwPtrItem*)pItem)->GetValue();
+ }
+*/
+ }
+ break;
+
+ default:
+ ASSERT(!this, "Falsche Familie");
+
+ }
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+SwTemplateDlg::~SwTemplateDlg()
+{
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+short SwTemplateDlg::Ok()
+{
+ short nRet = SfxTabDialog::Ok();
+ if( RET_OK == nRet )
+ {
+ const SfxPoolItem *pOutItem, *pExItem;
+ if( SFX_ITEM_SET == pExampleSet->GetItemState(
+ SID_ATTR_NUMBERING_RULE, FALSE, &pExItem ) &&
+ ( !GetOutputItemSet() ||
+ SFX_ITEM_SET != GetOutputItemSet()->GetItemState(
+ SID_ATTR_NUMBERING_RULE, FALSE, &pOutItem ) ||
+ *pExItem != *pOutItem ))
+ {
+ if( GetOutputItemSet() )
+ ((SfxItemSet*)GetOutputItemSet())->Put( *pExItem );
+ else
+ nRet = RET_CANCEL;
+ }
+ }
+ else
+ //JP 09.01.98 Bug #46446#:
+ // das ist der Ok - Handler also muss auf OK defaultet werden!
+ nRet = RET_OK;
+ return nRet;
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+const SfxItemSet* SwTemplateDlg::GetRefreshedSet()
+{
+ SfxItemSet* pInSet = GetInputSetImpl();
+ pInSet->ClearItem();
+ pInSet->SetParent( &GetStyleSheet().GetItemSet() );
+ return pInSet;
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+void SwTemplateDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
+{
+ //Namen der Vorlagen und Metric setzen
+ String sNumCharFmt, sBulletCharFmt;
+ SwStyleNameMapper::FillUIName( RES_POOLCHR_NUM_LEVEL, sNumCharFmt);
+ SwStyleNameMapper::FillUIName( RES_POOLCHR_BUL_LEVEL, sBulletCharFmt);
+ SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
+
+ switch( nId )
+ {
+ case TP_CHAR_STD:
+ {
+ ASSERT(::GetActiveView(), "keine View aktiv");
+
+ SvxFontListItem aFontListItem( *( (SvxFontListItem*)::GetActiveView()->
+ GetDocShell()->GetItem( SID_ATTR_CHAR_FONTLIST ) ) );
+
+ aSet.Put (SvxFontListItem( aFontListItem.GetFontList(), SID_ATTR_CHAR_FONTLIST));
+ UINT32 nFlags = 0;
+ if(rPage.GetItemSet().GetParent() && 0 == (nHtmlMode & HTMLMODE_ON ))
+ nFlags = SVX_RELATIVE_MODE;
+ if( SFX_STYLE_FAMILY_CHAR == nType )
+ nFlags = nFlags|SVX_PREVIEW_CHARACTER;
+ aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, nFlags));
+ rPage.PageCreated(aSet);
+ }
+ break;
+
+ case TP_CHAR_EXT:
+ {
+ UINT32 nFlags = SVX_ENABLE_FLASH;
+ if( SFX_STYLE_FAMILY_CHAR == nType )
+ nFlags = nFlags|SVX_PREVIEW_CHARACTER;
+ aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, nFlags));
+ rPage.PageCreated(aSet);
+ }
+ break;
+
+ case TP_CHAR_POS:
+ if( SFX_STYLE_FAMILY_CHAR == nType )
+ {
+ aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, SVX_PREVIEW_CHARACTER));
+ rPage.PageCreated(aSet);
+ }
+ break;
+
+ case TP_CHAR_TWOLN:
+ if( SFX_STYLE_FAMILY_CHAR == nType )
+ {
+ aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, SVX_PREVIEW_CHARACTER));
+ rPage.PageCreated(aSet);
+ }
+ break;
+
+ case TP_PARA_STD:
+ {
+ if( rPage.GetItemSet().GetParent() )
+ {
+ aSet.Put(SfxUInt32Item(SID_SVXSTDPARAGRAPHTABPAGE_ABSLINEDIST,MM50/10));
+ aSet.Put(SfxUInt32Item(SID_SVXSTDPARAGRAPHTABPAGE_FLAGSET,0x000F));
+ rPage.PageCreated(aSet);
+ }
+
+ }
+ break;
+ case TP_NUMPARA:
+ {
+ //-->#outlinelevel added by zhaojianwei
+ // handle if the current paragraph style is assigned to a list level of outline style,
+ SwTxtFmtColl* pTmpColl = pWrtShell->FindTxtFmtCollByName( GetStyleSheet().GetName() );
+ if( pTmpColl && pTmpColl->IsAssignedToListLevelOfOutlineStyle() )
+ {
+ ((SwParagraphNumTabPage&)rPage).DisableOutline() ;
+ ((SwParagraphNumTabPage&)rPage).DisableNumbering();
+ }//<-end
+ ListBox & rBox = ((SwParagraphNumTabPage&)rPage).GetStyleBox();
+ SfxStyleSheetBasePool* pPool = pWrtShell->GetView().GetDocShell()->GetStyleSheetPool();
+ pPool->SetSearchMask(SFX_STYLE_FAMILY_PSEUDO, SFXSTYLEBIT_ALL);
+ const SfxStyleSheetBase* pBase = pPool->First();
+ SvStringsSortDtor aNames;
+ while(pBase)
+ {
+ aNames.Insert(new String(pBase->GetName()));
+ pBase = pPool->Next();
+ }
+ for(USHORT i = 0; i < aNames.Count(); i++)
+ rBox.InsertEntry(*aNames.GetObject(i));
+ }
+ break;
+ case TP_PARA_ALIGN:
+ {
+ aSet.Put(SfxBoolItem(SID_SVXPARAALIGNTABPAGE_ENABLEJUSTIFYEXT,TRUE));
+ rPage.PageCreated(aSet);
+ }
+ break;
+
+ case TP_FRM_STD:
+ ((SwFrmPage&)rPage).SetNewFrame( TRUE );
+ ((SwFrmPage&)rPage).SetFormatUsed( TRUE );
+ break;
+
+ case TP_FRM_ADD:
+ ((SwFrmAddPage&)rPage).SetFormatUsed(TRUE);
+ ((SwFrmAddPage&)rPage).SetNewFrame(TRUE);
+ break;
+
+ case TP_FRM_WRAP:
+ ((SwWrapTabPage&)rPage).SetFormatUsed( TRUE, FALSE );
+ break;
+
+ case TP_COLUMN:
+ if( nType == SFX_STYLE_FAMILY_FRAME )
+ ((SwColumnPage&)rPage).SetFrmMode(TRUE);
+ ((SwColumnPage&)rPage).SetFormatUsed( TRUE );
+ break;
+
+ case TP_BACKGROUND:
+ {
+ sal_Int32 nFlagType = 0;
+ if( SFX_STYLE_FAMILY_PARA == nType )
+ nFlagType |= SVX_SHOW_PARACTL;
+ if( SFX_STYLE_FAMILY_CHAR != nType )
+ nFlagType |= SVX_SHOW_SELECTOR;
+ if( SFX_STYLE_FAMILY_FRAME == nType )
+ nFlagType |= SVX_ENABLE_TRANSPARENCY;
+ aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, nFlagType));
+ rPage.PageCreated(aSet);
+ }
+ break;
+ case TP_CONDCOLL:
+ ((SwCondCollPage&)rPage).SetCollection(
+ ((SwDocStyleSheet&)GetStyleSheet()).GetCollection(), bNewStyle );
+ break;
+
+ case TP_PAGE_STD:
+ if(0 == (nHtmlMode & HTMLMODE_ON ))
+ {
+ List aList;
+ String* pNew = new String;
+ SwStyleNameMapper::FillUIName( RES_POOLCOLL_TEXT, *pNew );
+ aList.Insert( pNew, (ULONG)0 );
+ if( pWrtShell )
+ {
+ SfxStyleSheetBasePool* pStyleSheetPool = pWrtShell->
+ GetView().GetDocShell()->GetStyleSheetPool();
+ pStyleSheetPool->SetSearchMask(SFX_STYLE_FAMILY_PARA);
+ SfxStyleSheetBase *pFirstStyle = pStyleSheetPool->First();
+ while(pFirstStyle)
+ {
+ aList.Insert( new String(pFirstStyle->GetName()),
+ aList.Count());
+ pFirstStyle = pStyleSheetPool->Next();
+ }
+ }
+ aSet.Put (SfxStringListItem(SID_COLLECT_LIST, &aList));
+ rPage.PageCreated(aSet);
+ for( USHORT i = (USHORT)aList.Count(); i; --i )
+ delete (String*)aList.Remove(i);
+ }
+ break;
+
+ case TP_MACRO_ASSIGN:
+ {
+ SfxAllItemSet aNewSet(*aSet.GetPool());
+ aNewSet.Put( SwMacroAssignDlg::AddEvents(MACASSGN_ALLFRM) );
+ if ( pWrtShell )
+ rPage.SetFrame( pWrtShell->GetView().GetViewFrame()->GetFrame().GetFrameInterface() );
+ rPage.PageCreated(aNewSet);
+ break;
+ }
+
+ case RID_SVXPAGE_PICK_NUM:
+ {
+ aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt));
+ aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt));
+ rPage.PageCreated(aSet);
+ }
+ break;
+ case RID_SVXPAGE_NUM_OPTIONS:
+ {
+
+ aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt));
+ aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt));
+ // Zeichenvorlagen sammeln
+ ListBox rCharFmtLB(this);
+ rCharFmtLB.Clear();
+ rCharFmtLB.InsertEntry( ViewShell::GetShellRes()->aStrNone );
+ SwDocShell* pDocShell = ::GetActiveWrtShell()->GetView().GetDocShell();
+ ::FillCharStyleListBox(rCharFmtLB, pDocShell);
+ List aList;
+ for(USHORT j = 0; j < rCharFmtLB.GetEntryCount(); j++)
+ {
+
+ aList.Insert( new XubString(rCharFmtLB.GetEntry(j)), LIST_APPEND );
+ }
+ aSet.Put( SfxStringListItem( SID_CHAR_FMT_LIST_BOX,&aList ) ) ;
+ FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell));
+ aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< USHORT >(eMetric)));
+ rPage.PageCreated(aSet);
+ for( USHORT i = (USHORT)aList.Count(); i; --i )
+ delete (XubString*)aList.Remove(i);
+ aList.Clear();
+ }
+ break;
+ case RID_SVXPAGE_NUM_POSITION:
+ {
+ SwDocShell* pDocShell = ::GetActiveWrtShell()->GetView().GetDocShell();
+ FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell));
+
+ aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< USHORT >(eMetric)));
+ rPage.PageCreated(aSet);
+ }
+ break;
+ case RID_SVXPAGE_PICK_BULLET :
+ {
+ aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt));
+ rPage.PageCreated(aSet);
+ }
+ break;
+ case TP_HEADER_PAGE:
+ if(0 == (nHtmlMode & HTMLMODE_ON ))
+ ((SvxHeaderPage&)rPage).EnableDynamicSpacing();
+ break;
+ case TP_FOOTER_PAGE:
+ if(0 == (nHtmlMode & HTMLMODE_ON ))
+ ((SvxFooterPage&)rPage).EnableDynamicSpacing();
+ break;
+ case TP_BORDER :
+ if( SFX_STYLE_FAMILY_PARA == nType )
+ {
+ aSet.Put (SfxUInt16Item(SID_SWMODE_TYPE,SW_BORDER_MODE_PARA));
+ }
+ else if( SFX_STYLE_FAMILY_FRAME == nType )
+ {
+ aSet.Put (SfxUInt16Item(SID_SWMODE_TYPE,SW_BORDER_MODE_FRAME));
+ }
+ rPage.PageCreated(aSet);
+
+ break;
+ }
+}
+
+
+