xref: /trunk/main/cui/source/inc/cuitabline.hxx (revision b5da552ccefc4034e06a43bfae43fb8a8b64a7ad)
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 #ifndef _CUI_TAB_LINE_HXX
24 #define _CUI_TAB_LINE_HXX
25 
26 // include ---------------------------------------------------------------
27 #include <svx/tabline.hxx>
28 /*************************************************************************
29 |*
30 |* Transform-Tab-Dialog
31 |*
32 \************************************************************************/
33 
34 class SvxLineTabDialog : public SfxTabDialog
35 {
36 private:
37     SdrModel*           pDrawModel;
38     const SdrObject*    pObj;
39 
40     const SfxItemSet&   rOutAttrs;
41 
42     XColorTable*        pColorTab;
43     XColorTable*        mpNewColorTab;
44     XDashList*          pDashList;
45     XDashList*          pNewDashList;
46     XLineEndList*       pLineEndList;
47     XLineEndList*       pNewLineEndList;
48     sal_Bool                bObjSelected;
49 
50     ChangeType          nLineEndListState;
51     ChangeType          nDashListState;
52     ChangeType          mnColorTableState;
53 
54     sal_uInt16              nPageType;
55     sal_uInt16              nDlgType;
56     sal_uInt16              nPosDashLb;
57     sal_uInt16              nPosLineEndLb;
58     sal_uInt16              mnPos;
59     sal_Bool                mbAreaTP;
60     sal_Bool                mbDeleteColorTable;
61 
62     virtual void        PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
63 
64 protected:
65     virtual short       Ok();
66 #ifdef _SVX_TABLINE_CXX
67     DECL_LINK( CancelHdlImpl, void * );
68     void                SavePalettes();
69 #endif
70 
71 public:
72     SvxLineTabDialog( Window* pParent, const SfxItemSet* pAttr,
73                       SdrModel* pModel, const SdrObject* pObj = NULL,
74                       sal_Bool bHasObj = sal_True );
75     ~SvxLineTabDialog();
76 
77     void             SetNewDashList( XDashList* pInLst)
78                         { pNewDashList = pInLst; }
79     XDashList*       GetNewDashList() const { return pNewDashList; }
80     const XDashList* GetDashList() const { return pDashList; }
81 
82     void                SetNewLineEndList( XLineEndList* pInLst)
83                             { pNewLineEndList = pInLst; }
84     XLineEndList*       GetNewLineEndList() const { return pNewLineEndList; }
85     const XLineEndList* GetLineEndList() const { return pLineEndList; }
86 
87     void                SetNewColorTable( XColorTable* pColTab ) { mpNewColorTab = pColTab; }
88     XColorTable*        GetNewColorTable() const { return mpNewColorTab; }
89     const XColorTable*  GetColorTable() const { return pColorTab; }
90 };
91 
92 /*************************************************************************
93 |*
94 |* Linien-Tab-Page
95 |*
96 \************************************************************************/
97 
98 class SvxLineTabPage : public SvxTabPage
99 {
100     using TabPage::ActivatePage;
101     using TabPage::DeactivatePage;
102 private:
103     FixedLine           aFlLine;
104     FixedText           aFtLineStyle;
105     LineLB              aLbLineStyle;
106     FixedText           aFtColor;
107     ColorLB             aLbColor;
108     FixedText           aFtLineWidth;
109     MetricField         aMtrLineWidth;
110     FixedText           aFtTransparent;
111     MetricField         aMtrTransparent;
112     FixedLine           aFlLineEnds;
113     LineEndLB           aLbStartStyle;
114     MetricField         aMtrStartWidth;
115     TriStateBox         aTsbCenterStart;
116     FixedText           aFtLineEndsStyle;
117     LineEndLB           aLbEndStyle;
118     FixedText           aFtLineEndsWidth;
119     MetricField         aMtrEndWidth;
120     TriStateBox         aTsbCenterEnd;
121     CheckBox            aCbxSynchronize;
122     FixedLine           aFLSeparator;
123     SvxXLinePreview     aCtlPreview;
124 
125     // #116827#
126     FixedLine           maFLEdgeStyle;
127     FixedText           maFTEdgeStyle;
128     LineEndLB           maLBEdgeStyle;
129 
130     //#58425# Symbole auf einer Linie (z.B. StarChart) ->
131     SdrObjList*         pSymbolList; //a list of symbols to be shown in menu. Symbol at position SID_ATTR_SYMBOLTYPE is to be shown in preview. The list position is to be used cyclic.
132     bool                bNewSize;
133     Graphic             aAutoSymbolGraphic; //a graphic to be displayed in the preview in case that an automatic symbol is choosen
134     long                nNumMenuGalleryItems;
135     long                nSymbolType;
136     SfxItemSet*         pSymbolAttr; //attributes for the shown symbols; only necessary if not equal to line properties
137     FixedLine           aFlSymbol;
138     MenuButton          aSymbolMB;
139     FixedText           aSymbolWidthFT;
140     MetricField         aSymbolWidthMF;
141     FixedText           aSymbolHeightFT;
142     MetricField         aSymbolHeightMF;
143     CheckBox            aSymbolRatioCB;
144     List                aGrfNames;
145     List                aGrfBrushItems;
146     String              sNumCharFmtName;
147     sal_Bool                bLastWidthModified;
148     Size                aSymbolLastSize;
149     Graphic             aSymbolGraphic;
150     Size                aSymbolSize;
151     sal_Bool                bSymbols;
152 
153     const SfxItemSet&   rOutAttrs;
154     RECT_POINT          eRP;
155     sal_Bool                bObjSelected;
156 
157     XOutdevItemPool*    pXPool;
158     XLineStyleItem      aXLStyle;
159     XLineWidthItem      aXWidth;
160     XLineDashItem       aXDash;
161     XLineColorItem      aXColor;
162     XLineAttrSetItem    aXLineAttr;
163     SfxItemSet&         rXLSet;
164 
165     XColorTable*        pColorTab;
166     XDashList*          pDashList;
167     XLineEndList*       pLineEndList;
168 
169     ChangeType*         pnLineEndListState;
170     ChangeType*         pnDashListState;
171     ChangeType*         pnColorTableState;
172     sal_uInt16             nPageType; //add CHINA001
173     sal_uInt16             nDlgType; //add CHINA001
174     sal_uInt16*             pPosDashLb;
175     sal_uInt16*             pPosLineEndLb;
176 
177     SfxMapUnit          ePoolUnit;
178 
179     // #63083#
180     sal_Int32               nActLineWidth;
181 
182     //Handler f�r Gallery-Popup-Menue-Button + Size
183     DECL_LINK( GraphicHdl_Impl, MenuButton * );
184     DECL_LINK( MenuCreateHdl_Impl, MenuButton * );
185     DECL_STATIC_LINK( SvxLineTabPage, GraphicArrivedHdl_Impl, SvxBrushItem* );
186     DECL_LINK( SizeHdl_Impl, MetricField * );
187     DECL_LINK( RatioHdl_Impl, CheckBox * );
188     // <- Symbole
189 
190 #ifdef _SVX_TPLINE_CXX
191     DECL_LINK( ClickInvisibleHdl_Impl, void * );
192     DECL_LINK( ChangeStartHdl_Impl, void * );
193     DECL_LINK( ChangeEndHdl_Impl, void * );
194     DECL_LINK( ChangePreviewHdl_Impl, void * );
195     DECL_LINK( ChangeTransparentHdl_Impl, void * );
196 
197     // #116827#
198     DECL_LINK( ChangeEdgeStyleHdl_Impl, void * );
199 
200     sal_Bool FillXLSet_Impl();
201 #endif
202 
203     void FillListboxes();
204 public:
205 
206     void ShowSymbolControls(sal_Bool bOn);
207 
208     SvxLineTabPage( Window* pParent, const SfxItemSet& rInAttrs );
209     virtual ~SvxLineTabPage();
210 
211     void    Construct();
212 
213 
214     static  SfxTabPage* Create( Window*, const SfxItemSet& );
215     static  sal_uInt16*    GetRanges();
216 
217     virtual sal_Bool FillItemSet( SfxItemSet& );
218     virtual void Reset( const SfxItemSet& );
219 
220     virtual void ActivatePage( const SfxItemSet& rSet );
221     virtual int  DeactivatePage( SfxItemSet* pSet );
222 
223     virtual void PointChanged( Window* pWindow, RECT_POINT eRP );
224 
225     virtual void FillUserData();
226 
227     void    SetColorTable( XColorTable* pColTab ) { pColorTab = pColTab; }
228     void    SetDashList( XDashList* pDshLst ) { pDashList = pDshLst; }
229     void    SetLineEndList( XLineEndList* pLneEndLst) { pLineEndList = pLneEndLst; }
230     void    SetObjSelected( sal_Bool bHasObj ) { bObjSelected = bHasObj; }
231 
232     void    SetPageType( sal_uInt16 nInType ) { nPageType = nInType; }//CHINA001 void    SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
233     void    SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }    //CHINA001 void    SetDlgType( sal_uInt16* pInType ) { pDlgType = pInType; }
234     void    SetPosDashLb( sal_uInt16* pInPos ) { pPosDashLb = pInPos; }
235     void    SetPosLineEndLb( sal_uInt16* pInPos ) { pPosLineEndLb = pInPos; }
236 
237     void    SetLineEndChgd( ChangeType* pIn ) { pnLineEndListState = pIn; }
238     void    SetDashChgd( ChangeType* pIn ) { pnDashListState = pIn; }
239     void    SetColorChgd( ChangeType* pIn ) { pnColorTableState = pIn; }
240 
241     virtual void PageCreated (SfxAllItemSet aSet); //add CHINA001
242     virtual void    DataChanged( const DataChangedEvent& rDCEvt );
243 };
244 
245 /*************************************************************************
246 |*
247 |* Linien-Definitions-Tab-Page
248 |*
249 \************************************************************************/
250 
251 class SvxLineDefTabPage : public SfxTabPage
252 {
253     using TabPage::ActivatePage;
254     using TabPage::DeactivatePage;
255 private:
256     FixedLine           aFlDefinition;
257     FixedText           aFTLinestyle;
258     LineLB              aLbLineStyles;
259     FixedText           aFtType;
260     ListBox             aLbType1;
261     ListBox             aLbType2;
262     FixedText           aFtNumber;
263     NumericField        aNumFldNumber1;
264     NumericField        aNumFldNumber2;
265     FixedText           aFtLength;
266     MetricField         aMtrLength1;
267     MetricField         aMtrLength2;
268     FixedText           aFtDistance;
269     MetricField         aMtrDistance;
270     CheckBox            aCbxSynchronize;
271     PushButton          aBtnAdd;
272     PushButton          aBtnModify;
273     PushButton          aBtnDelete;
274     ImageButton         aBtnLoad;
275     ImageButton         aBtnSave;
276     SvxXLinePreview     aCtlPreview;
277 
278     const SfxItemSet&   rOutAttrs;
279     XDash               aDash;
280     sal_Bool                bObjSelected;
281 
282     XOutdevItemPool*    pXPool;
283     XLineStyleItem      aXLStyle;
284     XLineWidthItem      aXWidth;
285     XLineDashItem       aXDash;
286     XLineColorItem      aXColor;
287     XLineAttrSetItem    aXLineAttr;
288     SfxItemSet&         rXLSet;
289 
290     XDashList*          pDashList;
291 
292     ChangeType*         pnDashListState;
293     sal_uInt16*             pPageType;
294     sal_uInt16*             pDlgType;
295     sal_uInt16*             pPosDashLb;
296 
297     SfxMapUnit          ePoolUnit;
298     FieldUnit           eFUnit;
299 
300 #ifdef _SVX_TPLNEDEF_CXX
301     void FillDash_Impl();
302     void FillDialog_Impl();
303 
304     DECL_LINK( ClickAddHdl_Impl, void * );
305     DECL_LINK( ClickModifyHdl_Impl, void * );
306     DECL_LINK( ClickDeleteHdl_Impl, void * );
307     DECL_LINK( SelectLinestyleHdl_Impl, void * );
308     DECL_LINK( ChangePreviewHdl_Impl, void * );
309     DECL_LINK( ChangeNumber1Hdl_Impl, void * );
310     DECL_LINK( ChangeNumber2Hdl_Impl, void * );
311     DECL_LINK( ClickLoadHdl_Impl, void * );
312     DECL_LINK( ClickSaveHdl_Impl, void * );
313     DECL_LINK( ChangeMetricHdl_Impl, void * );
314     DECL_LINK( SelectTypeHdl_Impl, void * );
315 
316     void CheckChanges_Impl();
317 #endif
318 
319 public:
320     SvxLineDefTabPage( Window* pParent, const SfxItemSet& rInAttrs  );
321 
322     void    Construct();
323 
324     static  SfxTabPage* Create( Window*, const SfxItemSet& );
325     virtual sal_Bool FillItemSet( SfxItemSet& );
326     virtual void Reset( const SfxItemSet & );
327 
328     virtual void ActivatePage( const SfxItemSet& rSet );
329     virtual int  DeactivatePage( SfxItemSet* pSet );
330 
331     void    SetDashList( XDashList* pDshLst ) { pDashList = pDshLst; }
332     void    SetObjSelected( sal_Bool bHasObj ) { bObjSelected = bHasObj; }
333 
334     void    SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
335     void    SetDlgType( sal_uInt16* pInType ) { pDlgType = pInType; }
336     void    SetPosDashLb( sal_uInt16* pInPos ) { pPosDashLb = pInPos; }
337 
338     void    SetDashChgd( ChangeType* pIn ) { pnDashListState = pIn; }
339 
340     virtual void    DataChanged( const DataChangedEvent& rDCEvt );
341 };
342 
343 /*************************************************************************
344 |*
345 |* Linienenden-Definitions-Tab-Page
346 |*
347 \************************************************************************/
348 
349 class SvxLineEndDefTabPage : public SfxTabPage
350 {
351     using TabPage::ActivatePage;
352     using TabPage::DeactivatePage;
353 
354 private:
355     FixedLine           aFlTip;
356     FixedText           aFTTitle;
357     Edit                aEdtName;
358     FixedText           aFTLineEndStyle;
359     LineEndLB           aLbLineEnds;
360     PushButton          aBtnAdd;
361     PushButton          aBtnModify;
362     PushButton          aBtnDelete;
363     ImageButton         aBtnLoad;
364     ImageButton         aBtnSave;
365     FixedInfo           aFiTip;
366     SvxXLinePreview     aCtlPreview;
367 
368     const SfxItemSet&   rOutAttrs;
369     const SdrObject*    pPolyObj;
370     sal_Bool                bObjSelected;
371 
372     XOutdevItemPool*    pXPool;
373     XLineStyleItem      aXLStyle;
374     XLineWidthItem      aXWidth;
375     XLineColorItem      aXColor;
376     XLineAttrSetItem    aXLineAttr;
377     SfxItemSet&         rXLSet;
378 
379     XLineEndList*       pLineEndList;
380 
381     ChangeType*         pnLineEndListState;
382     sal_uInt16*             pPageType;
383     sal_uInt16*             pDlgType;
384     sal_uInt16*             pPosLineEndLb;
385 
386 #ifdef _SVX_TPLNEEND_CXX
387     DECL_LINK( ClickAddHdl_Impl, void * );
388     DECL_LINK( ClickModifyHdl_Impl, void * );
389     DECL_LINK( ClickDeleteHdl_Impl, void * );
390     DECL_LINK( ClickLoadHdl_Impl, void * );
391     DECL_LINK( ClickSaveHdl_Impl, void * );
392     DECL_LINK( SelectLineEndHdl_Impl, void * );
393     long ChangePreviewHdl_Impl( void* p );
394 
395     void CheckChanges_Impl();
396 #endif
397 
398 public:
399     SvxLineEndDefTabPage( Window* pParent, const SfxItemSet& rInAttrs );
400     ~SvxLineEndDefTabPage();
401 
402     void    Construct();
403 
404     static  SfxTabPage* Create( Window*, const SfxItemSet& );
405     virtual sal_Bool FillItemSet( SfxItemSet& );
406     virtual void Reset( const SfxItemSet & );
407 
408     virtual void ActivatePage( const SfxItemSet& rSet );
409     virtual int  DeactivatePage( SfxItemSet* pSet );
410 
411     void    SetLineEndList( XLineEndList* pInList ) { pLineEndList = pInList; }
412     void    SetPolyObj( const SdrObject* pObj ) { pPolyObj = pObj; }
413     void    SetObjSelected( sal_Bool bHasObj ) { bObjSelected = bHasObj; }
414 
415     void    SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
416     void    SetDlgType( sal_uInt16* pInType ) { pDlgType = pInType; }
417     void    SetPosLineEndLb( sal_uInt16* pInPos ) { pPosLineEndLb = pInPos; }
418 
419     void    SetLineEndChgd( ChangeType* pIn ) { pnLineEndListState = pIn; }
420 
421     virtual void    DataChanged( const DataChangedEvent& rDCEvt );
422 };
423 
424 
425 #endif // _CUI_TAB_LINE_HXX
426 
427