xref: /aoo41x/main/sc/source/ui/styleui/styledlg.cxx (revision b3f79822)
1*b3f79822SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*b3f79822SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*b3f79822SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*b3f79822SAndrew Rist  * distributed with this work for additional information
6*b3f79822SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*b3f79822SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*b3f79822SAndrew Rist  * "License"); you may not use this file except in compliance
9*b3f79822SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*b3f79822SAndrew Rist  *
11*b3f79822SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*b3f79822SAndrew Rist  *
13*b3f79822SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*b3f79822SAndrew Rist  * software distributed under the License is distributed on an
15*b3f79822SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b3f79822SAndrew Rist  * KIND, either express or implied.  See the License for the
17*b3f79822SAndrew Rist  * specific language governing permissions and limitations
18*b3f79822SAndrew Rist  * under the License.
19*b3f79822SAndrew Rist  *
20*b3f79822SAndrew Rist  *************************************************************/
21*b3f79822SAndrew Rist 
22*b3f79822SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_sc.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #undef SC_DLLIMPLEMENTATION
28cdf0e10cSrcweir 
29cdf0e10cSrcweir 
30cdf0e10cSrcweir 
31cdf0e10cSrcweir //------------------------------------------------------------------
32cdf0e10cSrcweir 
33cdf0e10cSrcweir #include "scitems.hxx"
34cdf0e10cSrcweir //CHINA001 #include <svx/align.hxx>
35cdf0e10cSrcweir //CHINA001 #include <svx/backgrnd.hxx>
36cdf0e10cSrcweir //CHINA001 #include <svx/border.hxx>
37cdf0e10cSrcweir //CHINA001 #include <svx/chardlg.hxx>
38cdf0e10cSrcweir //CHINA001 #include <svx/numfmt.hxx>
39cdf0e10cSrcweir #include <svx/numinf.hxx> //CHINA001
40cdf0e10cSrcweir //CHINA001 #include <svx/page.hxx>
41cdf0e10cSrcweir //CHINA001 #include <svx/paragrph.hxx>
42cdf0e10cSrcweir #include <sfx2/objsh.hxx>
43cdf0e10cSrcweir #include <svl/style.hxx>
44cdf0e10cSrcweir #include <svl/cjkoptions.hxx>
45cdf0e10cSrcweir 
46cdf0e10cSrcweir #include "styledlg.hxx"
47cdf0e10cSrcweir #include "tabpages.hxx"		// Zellvorlagen
48cdf0e10cSrcweir #include "tphf.hxx"			// Seitenvorlage: Kopf-/Fusszeilen
49cdf0e10cSrcweir #include "tptable.hxx"		// Seitenvorlage: Tabelle
50cdf0e10cSrcweir #include "scresid.hxx"
51cdf0e10cSrcweir #include "sc.hrc"
52cdf0e10cSrcweir #include "styledlg.hrc"
53cdf0e10cSrcweir #include <svx/svxdlg.hxx> //CHINA001
54cdf0e10cSrcweir #include <svx/svxids.hrc> //CHINA001
55cdf0e10cSrcweir #include <svx/dialogs.hrc> //CHINA001
56cdf0e10cSrcweir #include <svl/intitem.hxx> //CHINA001
57cdf0e10cSrcweir #include <editeng/flstitem.hxx> //CHINA001
58cdf0e10cSrcweir #include <svl/aeitem.hxx> //CHINA001
59cdf0e10cSrcweir #include <svx/flagsdef.hxx> //CHINA001
60cdf0e10cSrcweir //==================================================================
61cdf0e10cSrcweir 
ScStyleDlg(Window * pParent,SfxStyleSheetBase & rStyleBase,sal_uInt16 nRscId)62cdf0e10cSrcweir ScStyleDlg::ScStyleDlg( Window*				pParent,
63cdf0e10cSrcweir 						SfxStyleSheetBase&	rStyleBase,
64cdf0e10cSrcweir 						sal_uInt16				nRscId )
65cdf0e10cSrcweir 
66cdf0e10cSrcweir 	:	SfxStyleDialog	( pParent,
67cdf0e10cSrcweir 						  ScResId( nRscId ),
68cdf0e10cSrcweir 						  rStyleBase,
69cdf0e10cSrcweir 						  sal_False ),
70cdf0e10cSrcweir 		nDlgRsc			( nRscId )
71cdf0e10cSrcweir {
72cdf0e10cSrcweir 	SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create(); //CHINA001
73cdf0e10cSrcweir 	DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001
74cdf0e10cSrcweir 	switch ( nRscId )
75cdf0e10cSrcweir 	{
76cdf0e10cSrcweir 		case RID_SCDLG_STYLES_PAR:	// Zellformatvorlagen
77cdf0e10cSrcweir 			{
78cdf0e10cSrcweir 				SvtCJKOptions aCJKOptions;
79cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_NUMBERFORMAT ), "GetTabPageCreatorFunc fail!");//CHINA001
80cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_NUMBERFORMAT ), "GetTabPageRangesFunc fail!");//CHINA001
81cdf0e10cSrcweir 				AddTabPage( TP_NUMBER, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_NUMBERFORMAT ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_NUMBERFORMAT ) );  //CHINA001 AddTabPage( TP_NUMBER, &SvxNumberFormatTabPage::Create, &SvxNumberFormatTabPage::GetRanges );
82cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageCreatorFunc fail!");//CHINA001
83cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageRangesFunc fail!");//CHINA001
84cdf0e10cSrcweir 				AddTabPage( TP_FONT, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ) ); //CHINA001 AddTabPage( TP_FONT, &SvxCharNamePage::Create,		    &SvxCharNamePage::GetRanges );
85cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageCreatorFunc fail!");//CHINA001
86cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageRangesFunc fail!");//CHINA001
87cdf0e10cSrcweir 				AddTabPage( TP_FONTEFF, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ) ); //CHINA001 AddTabPage( TP_FONTEFF, &SvxCharEffectsPage::Create,		    &SvxCharEffectsPage::GetRanges );
88cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_ALIGNMENT ), "GetTabPageCreatorFunc fail!");//CHINA001
89cdf0e10cSrcweir 				DBG_ASSERT( pFact->GetTabPageRangesFunc( RID_SVXPAGE_ALIGNMENT ), "GetTabPageRangesFunc fail!");//CHINA001
90cdf0e10cSrcweir 				AddTabPage( TP_ALIGNMENT, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_ALIGNMENT ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_ALIGNMENT ) ); //CHINA001 AddTabPage( TP_ALIGNMENT, &SvxAlignmentTabPage::Create,	&SvxAlignmentTabPage::GetRanges );
91cdf0e10cSrcweir 				if ( aCJKOptions.IsAsianTypographyEnabled() )
92cdf0e10cSrcweir 				{
93cdf0e10cSrcweir 				//CHINA001 	AddTabPage( TP_ASIAN, &SvxAsianTabPage::Create,		&SvxAsianTabPage::GetRanges );
94cdf0e10cSrcweir 
95cdf0e10cSrcweir 					DBG_ASSERT(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_PARA_ASIAN), "GetTabPageCreatorFunc fail!");//CHINA001
96cdf0e10cSrcweir 					DBG_ASSERT(pFact->GetTabPageRangesFunc(RID_SVXPAGE_PARA_ASIAN), "GetTabPageRangesFunc fail!");//CHINA001
97cdf0e10cSrcweir 					AddTabPage( TP_ASIAN,	pFact->GetTabPageCreatorFunc(RID_SVXPAGE_PARA_ASIAN),		pFact->GetTabPageRangesFunc(RID_SVXPAGE_PARA_ASIAN) );
98cdf0e10cSrcweir 				}
99cdf0e10cSrcweir 				else
100cdf0e10cSrcweir 					RemoveTabPage( TP_ASIAN );
101cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), "GetTabPageCreatorFunc fail!");//CHINA001
102cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ), "GetTabPageRangesFunc fail!");//CHINA001
103cdf0e10cSrcweir 				AddTabPage( TP_BORDER, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ) ); //CHINA001 AddTabPage( TP_BORDER, &SvxBorderTabPage::Create,		&SvxBorderTabPage::GetRanges );
104cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");//CHINA001
105cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageRangesFunc fail!");//CHINA001
106cdf0e10cSrcweir 				AddTabPage( TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) ); //CHINA001 AddTabPage( TP_BACKGROUND, &SvxBackgroundTabPage::Create,	&SvxBackgroundTabPage::GetRanges );
107cdf0e10cSrcweir 				AddTabPage( TP_PROTECTION, &ScTabPageProtection::Create,	&ScTabPageProtection::GetRanges );
108cdf0e10cSrcweir 			}
109cdf0e10cSrcweir 			break;
110cdf0e10cSrcweir 
111cdf0e10cSrcweir 		case RID_SCDLG_STYLES_PAGE:	// Seitenvorlagen
112cdf0e10cSrcweir 			{
113cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_PAGE ), "GetTabPageCreatorFunc fail!");//CHINA001
114cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_PAGE ), "GetTabPageRangesFunc fail!");//CHINA001
115cdf0e10cSrcweir 				AddTabPage( TP_PAGE_STD, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_PAGE ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_PAGE ) ); //CHINA001 AddTabPage( TP_PAGE_STD, &SvxPageDescPage::Create,	&SvxPageDescPage::GetRanges );
116cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), "GetTabPageCreatorFunc fail!");//CHINA001
117cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ), "GetTabPageRangesFunc fail!");//CHINA001
118cdf0e10cSrcweir 				AddTabPage( TP_BORDER, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ) ); //CHINA001 AddTabPage( TP_BORDER, &SvxBorderTabPage::Create,	&SvxBorderTabPage::GetRanges );
119cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");//CHINA001
120cdf0e10cSrcweir 				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageRangesFunc fail!");//CHINA001
121cdf0e10cSrcweir 				AddTabPage( TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) ); //CHINA001 AddTabPage( TP_BACKGROUND, &SvxBackgroundTabPage::Create,	&SvxBackgroundTabPage::GetRanges );
122cdf0e10cSrcweir 				AddTabPage( TP_PAGE_HEADER, &ScHeaderPage::Create,	  	&ScHeaderPage::GetRanges );
123cdf0e10cSrcweir 				AddTabPage( TP_PAGE_FOOTER, &ScFooterPage::Create,	 	&ScFooterPage::GetRanges );
124cdf0e10cSrcweir 				AddTabPage( TP_TABLE, &ScTablePage::Create,		&ScTablePage::GetRanges );
125cdf0e10cSrcweir 			}
126cdf0e10cSrcweir 			break;
127cdf0e10cSrcweir 
128cdf0e10cSrcweir 		default:
129cdf0e10cSrcweir 			DBG_ERROR( "Family not supported" );
130cdf0e10cSrcweir 	}
131cdf0e10cSrcweir 
132cdf0e10cSrcweir 	//--------------------------------------------------------------------
133cdf0e10cSrcweir 	FreeResource();
134cdf0e10cSrcweir }
135cdf0e10cSrcweir 
136cdf0e10cSrcweir // -----------------------------------------------------------------------
137cdf0e10cSrcweir 
~ScStyleDlg()138cdf0e10cSrcweir __EXPORT ScStyleDlg::~ScStyleDlg()
139cdf0e10cSrcweir {
140cdf0e10cSrcweir }
141cdf0e10cSrcweir 
142cdf0e10cSrcweir // -----------------------------------------------------------------------
143cdf0e10cSrcweir 
PageCreated(sal_uInt16 nPageId,SfxTabPage & rTabPage)144cdf0e10cSrcweir void __EXPORT ScStyleDlg::PageCreated( sal_uInt16 nPageId, SfxTabPage& rTabPage )
145cdf0e10cSrcweir {
146cdf0e10cSrcweir 	if ( nDlgRsc == RID_SCDLG_STYLES_PAR )
147cdf0e10cSrcweir 	{
148cdf0e10cSrcweir 		SfxObjectShell* pDocSh = SfxObjectShell::Current();
149cdf0e10cSrcweir 		SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); //CHINA001
150cdf0e10cSrcweir 		switch ( nPageId )
151cdf0e10cSrcweir 		{
152cdf0e10cSrcweir 			case TP_NUMBER:
153cdf0e10cSrcweir 				{
154cdf0e10cSrcweir 					const SfxPoolItem* pInfoItem
155cdf0e10cSrcweir 						= pDocSh->GetItem( SID_ATTR_NUMBERFORMAT_INFO );
156cdf0e10cSrcweir 
157cdf0e10cSrcweir 					DBG_ASSERT( pInfoItem, "NumberInfoItem nicht gefunden!" );
158cdf0e10cSrcweir 
159cdf0e10cSrcweir 					//CHINA001 ((SvxNumberFormatTabPage&)rTabPage).
160cdf0e10cSrcweir 						//CHINA001 SetNumberFormatList(
161cdf0e10cSrcweir 							//CHINA001 (const SvxNumberInfoItem&)*pInfoItem ) ;
162cdf0e10cSrcweir 					aSet.Put (SvxNumberInfoItem( (const SvxNumberInfoItem&)*pInfoItem ) );
163cdf0e10cSrcweir 					rTabPage.PageCreated(aSet);
164cdf0e10cSrcweir 				}
165cdf0e10cSrcweir 				break;
166cdf0e10cSrcweir 
167cdf0e10cSrcweir 			case TP_FONT:
168cdf0e10cSrcweir 				{
169cdf0e10cSrcweir 					const SfxPoolItem* pInfoItem
170cdf0e10cSrcweir 						= pDocSh->GetItem( SID_ATTR_CHAR_FONTLIST );
171cdf0e10cSrcweir 
172cdf0e10cSrcweir 					DBG_ASSERT( pInfoItem, "FontListItem nicht gefunden!" );
173cdf0e10cSrcweir 
174cdf0e10cSrcweir 					//CHINA001 ((SvxCharNamePage&)rTabPage).
175cdf0e10cSrcweir 						//CHINA001 SetFontList(
176cdf0e10cSrcweir 							//CHINA001 (const SvxFontListItem&)*pInfoItem );
177cdf0e10cSrcweir 					aSet.Put (SvxFontListItem(((const SvxFontListItem&)*pInfoItem).GetFontList(), SID_ATTR_CHAR_FONTLIST));
178cdf0e10cSrcweir 					rTabPage.PageCreated(aSet);
179cdf0e10cSrcweir 				}
180cdf0e10cSrcweir 				break;
181cdf0e10cSrcweir 
182cdf0e10cSrcweir 			default:
183cdf0e10cSrcweir 			break;
184cdf0e10cSrcweir 		}
185cdf0e10cSrcweir 	}
186cdf0e10cSrcweir 	else if ( nDlgRsc == RID_SCDLG_STYLES_PAGE )
187cdf0e10cSrcweir 	{
188cdf0e10cSrcweir 		SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));//CHINA001
189cdf0e10cSrcweir 		switch ( nPageId )
190cdf0e10cSrcweir 		{
191cdf0e10cSrcweir 			case TP_PAGE_STD:
192cdf0e10cSrcweir 				//CHINA001 ((SvxPageDescPage&)rTabPage).SetMode( SVX_PAGE_MODE_CENTER );
193cdf0e10cSrcweir 				aSet.Put (SfxAllEnumItem((const sal_uInt16)SID_ENUM_PAGE_MODE, SVX_PAGE_MODE_CENTER)); //CHINA001
194cdf0e10cSrcweir 				rTabPage.PageCreated(aSet); //CHINA001
195cdf0e10cSrcweir 				break;
196cdf0e10cSrcweir 
197cdf0e10cSrcweir 			case TP_PAGE_HEADER:
198cdf0e10cSrcweir 			case TP_PAGE_FOOTER:
199cdf0e10cSrcweir 				((ScHFPage&)rTabPage).SetStyleDlg( this );
200cdf0e10cSrcweir 				((ScHFPage&)rTabPage).SetPageStyle( GetStyleSheet().GetName() );
201cdf0e10cSrcweir 				((ScHFPage&)rTabPage).DisableDeleteQueryBox();
202cdf0e10cSrcweir 				break;
203cdf0e10cSrcweir 			case TP_BACKGROUND:
204cdf0e10cSrcweir 					if( nDlgRsc == RID_SCDLG_STYLES_PAGE)
205cdf0e10cSrcweir 						//CHINA001 ((SvxBackgroundTabPage&)rTabPage).ShowSelector();
206cdf0e10cSrcweir 					{	//add CHINA001
207cdf0e10cSrcweir 						aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, SVX_SHOW_SELECTOR));
208cdf0e10cSrcweir 						rTabPage.PageCreated(aSet);
209cdf0e10cSrcweir 					}
210cdf0e10cSrcweir 				break;
211cdf0e10cSrcweir 
212cdf0e10cSrcweir 			default:
213cdf0e10cSrcweir 				break;
214cdf0e10cSrcweir 		}
215cdf0e10cSrcweir 	}
216cdf0e10cSrcweir }
217cdf0e10cSrcweir 
218cdf0e10cSrcweir 
219cdf0e10cSrcweir // -----------------------------------------------------------------------
220cdf0e10cSrcweir 
GetRefreshedSet()221cdf0e10cSrcweir const SfxItemSet* __EXPORT ScStyleDlg::GetRefreshedSet()
222cdf0e10cSrcweir {
223cdf0e10cSrcweir     SfxItemSet* pItemSet = GetInputSetImpl();
224cdf0e10cSrcweir     pItemSet->ClearItem();
225cdf0e10cSrcweir     pItemSet->SetParent( GetStyleSheet().GetItemSet().GetParent() );
226cdf0e10cSrcweir     return pItemSet;
227cdf0e10cSrcweir }
228cdf0e10cSrcweir 
229cdf0e10cSrcweir 
230cdf0e10cSrcweir 
231