xref: /AOO41X/main/sd/source/ui/dlg/tabtempl.cxx (revision 3ce09a58b0d6873449cda31e55c66dba2dbc8f7f)
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