1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sd.hxx"
26
27 #ifdef SD_DLLIMPLEMENTATION
28 #undef SD_DLLIMPLEMENTATION
29 #endif
30
31 #include <editeng/flstitem.hxx>
32
33 #include <svx/svxids.hrc>
34
35 #include <svx/drawitem.hxx>
36 #include <svl/intitem.hxx>
37 #include <svx/ofaitem.hxx>
38 #include <svx/svxgrahicitem.hxx>
39 #include <svx/svdmodel.hxx>
40 #include <svl/cjkoptions.hxx>
41
42
43 #include <svx/dialogs.hrc>
44
45 #include <svx/svxdlg.hxx>
46 #include <svx/tabline.hxx>
47 #include <svl/style.hxx>
48 #include <svx/xtable.hxx>
49
50 #include "DrawDocShell.hxx"
51 #include "tabtempl.hxx"
52 #include "tabtempl.hrc"
53 #include "sdresid.hxx"
54 #include "dlg_char.hxx"
55 #include "paragr.hxx"
56 #include <svx/flagsdef.hxx>
57
58 /*************************************************************************
59 |*
60 |* Konstruktor des Tab-Dialogs: Fuegt die Seiten zum Dialog hinzu
61 |*
62 \************************************************************************/
63
SdTabTemplateDlg(Window * pParent,const SfxObjectShell * pDocShell,SfxStyleSheetBase & rStyleBase,SdrModel * pModel,SdrView * pView)64 SdTabTemplateDlg::SdTabTemplateDlg( Window* pParent,
65 const SfxObjectShell* pDocShell,
66 SfxStyleSheetBase& rStyleBase,
67 SdrModel* pModel,
68 SdrView* pView ) :
69 SfxStyleDialog ( pParent, SdResId( TAB_TEMPLATE ), rStyleBase, sal_False ),
70 rDocShell ( *pDocShell ),
71 pSdrView ( pView ),
72 maColorTab ( pModel->GetColorTableFromSdrModel() ),
73 maGradientList ( pModel->GetGradientListFromSdrModel() ),
74 maHatchingList ( pModel->GetHatchListFromSdrModel() ),
75 maBitmapList ( pModel->GetBitmapListFromSdrModel() ),
76 maDashList ( pModel->GetDashListFromSdrModel() ),
77 maLineEndList ( pModel->GetLineEndListFromSdrModel() )
78 {
79 FreeResource();
80
81 // Listbox fuellen und Select-Handler ueberladen
82
83 AddTabPage( RID_SVXPAGE_LINE);
84 AddTabPage( RID_SVXPAGE_AREA);
85 AddTabPage( RID_SVXPAGE_SHADOW);
86 AddTabPage( RID_SVXPAGE_TRANSPARENCE);
87 AddTabPage( RID_SVXPAGE_CHAR_NAME );
88 AddTabPage( RID_SVXPAGE_CHAR_EFFECTS );
89 AddTabPage( RID_SVXPAGE_STD_PARAGRAPH );
90 AddTabPage( RID_SVXPAGE_TEXTATTR );
91 AddTabPage( RID_SVXPAGE_TEXTANIMATION );
92 AddTabPage( RID_SVXPAGE_MEASURE);
93 AddTabPage( RID_SVXPAGE_CONNECTION);
94 AddTabPage( RID_SVXPAGE_ALIGN_PARAGRAPH );
95 AddTabPage( RID_SVXPAGE_TABULATOR );
96 SvtCJKOptions aCJKOptions;
97 if( aCJKOptions.IsAsianTypographyEnabled() )
98 AddTabPage( RID_SVXPAGE_PARA_ASIAN );
99 else
100 RemoveTabPage( RID_SVXPAGE_PARA_ASIAN );
101
102 nDlgType = 1;
103 nPageType = 0;
104 nPos = 0;
105
106 nColorTableState = CT_NONE;
107 nBitmapListState = CT_NONE;
108 nGradientListState = CT_NONE;
109 nHatchingListState = CT_NONE;
110 }
111
112 // -----------------------------------------------------------------------
113
~SdTabTemplateDlg()114 SdTabTemplateDlg::~SdTabTemplateDlg()
115 {
116 }
117
118 // -----------------------------------------------------------------------
119
PageCreated(sal_uInt16 nId,SfxTabPage & rPage)120 void SdTabTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
121 {
122 SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
123 switch( nId )
124 {
125 case RID_SVXPAGE_LINE:
126 aSet.Put (SvxColorTableItem(maColorTab,SID_COLOR_TABLE));
127 aSet.Put (SvxDashListItem(maDashList,SID_DASH_LIST));
128 aSet.Put (SvxLineEndListItem(maLineEndList,SID_LINEEND_LIST));
129 aSet.Put (SfxUInt16Item(SID_DLG_TYPE,nDlgType));
130 rPage.PageCreated(aSet);
131 break;
132
133 case RID_SVXPAGE_AREA:
134 aSet.Put (SvxColorTableItem(maColorTab,SID_COLOR_TABLE));
135 aSet.Put (SvxGradientListItem(maGradientList,SID_GRADIENT_LIST));
136 aSet.Put (SvxHatchListItem(maHatchingList,SID_HATCH_LIST));
137 aSet.Put (SvxBitmapListItem(maBitmapList,SID_BITMAP_LIST));
138 aSet.Put (SfxUInt16Item(SID_PAGE_TYPE,nPageType));
139 aSet.Put (SfxUInt16Item(SID_DLG_TYPE,nDlgType));
140 aSet.Put (SfxUInt16Item(SID_TABPAGE_POS,nPos));
141 rPage.PageCreated(aSet);
142
143
144 break;
145
146 case RID_SVXPAGE_SHADOW:
147 aSet.Put (SvxColorTableItem(maColorTab,SID_COLOR_TABLE)); //add CHINA001
148 aSet.Put (SfxUInt16Item(SID_PAGE_TYPE,nPageType));
149 aSet.Put (SfxUInt16Item(SID_DLG_TYPE,nDlgType));
150 rPage.PageCreated(aSet);
151 break;
152
153 case RID_SVXPAGE_TRANSPARENCE:
154 aSet.Put (SfxUInt16Item(SID_PAGE_TYPE,nPageType));
155 aSet.Put (SfxUInt16Item(SID_DLG_TYPE,nDlgType));
156 rPage.PageCreated(aSet);
157 break;
158
159 case RID_SVXPAGE_CHAR_NAME:
160 {
161 SvxFontListItem aItem(*( (const SvxFontListItem*)
162 ( rDocShell.GetItem( SID_ATTR_CHAR_FONTLIST) ) ) );
163
164 aSet.Put (SvxFontListItem( aItem.GetFontList(), SID_ATTR_CHAR_FONTLIST));
165 rPage.PageCreated(aSet);
166 }
167 break;
168
169 case RID_SVXPAGE_CHAR_EFFECTS:
170 aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP));
171 rPage.PageCreated(aSet);
172 break;
173
174 case RID_SVXPAGE_STD_PARAGRAPH:
175 break;
176
177 case RID_SVXPAGE_TEXTATTR:
178 {
179 aSet.Put(OfaPtrItem(SID_SVXTEXTATTRPAGE_VIEW,pSdrView));
180 rPage.PageCreated(aSet);
181 }
182 break;
183
184 case RID_SVXPAGE_TEXTANIMATION:
185 break;
186
187 case RID_SVXPAGE_MEASURE:
188 aSet.Put (OfaPtrItem(SID_OBJECT_LIST,pSdrView));
189 rPage.PageCreated(aSet);
190 break;
191
192 case RID_SVXPAGE_CONNECTION:
193 {
194 aSet.Put (OfaPtrItem(SID_OBJECT_LIST,pSdrView));
195 rPage.PageCreated(aSet);
196 }
197 break;
198 }
199 }
200
201 // -----------------------------------------------------------------------
202
GetRefreshedSet()203 const SfxItemSet* SdTabTemplateDlg::GetRefreshedSet()
204 {
205 SfxItemSet* pRet = GetInputSetImpl();
206
207 if( pRet )
208 {
209 pRet->ClearItem();
210 pRet->SetParent( GetStyleSheet().GetItemSet().GetParent() );
211 }
212 else
213 pRet = new SfxItemSet( GetStyleSheet().GetItemSet() );
214
215 return pRet;
216 }
217
218
219
220