Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 : #ifndef INCLUDED_CUI_SOURCE_INC_CUITABAREA_HXX
20 : #define INCLUDED_CUI_SOURCE_INC_CUITABAREA_HXX
21 :
22 : #include <svtools/valueset.hxx>
23 : #include <vcl/button.hxx>
24 : #include <vcl/fixed.hxx>
25 : #include <svx/dlgctrl.hxx>
26 : #include <svx/xsetit.hxx>
27 : #include <svx/xfillit0.hxx>
28 : #include <svx/xfillit.hxx>
29 : #include <svx/tabarea.hxx>
30 : #include <svx/SvxColorValueSet.hxx>
31 :
32 : class SdrModel;
33 : class SdrView;
34 :
35 : /************************************************************************/
36 :
37 : class SvxAreaTabDialog : public SfxTabDialog
38 : {
39 : sal_uInt16 m_nAreaTabPage;
40 : sal_uInt16 m_nShadowTabPage;
41 : sal_uInt16 m_nTransparenceTabPage;
42 : sal_uInt16 m_nColorTabPage;
43 : sal_uInt16 m_nGradientTabPage;
44 : sal_uInt16 m_nHatchTabPage;
45 : sal_uInt16 m_nBitmapTabPage;
46 :
47 : private:
48 : SdrModel* mpDrawModel;
49 :
50 : XColorListRef mpColorList;
51 : XColorListRef mpNewColorList;
52 : XGradientListRef mpGradientList;
53 : XGradientListRef mpNewGradientList;
54 : XHatchListRef mpHatchingList;
55 : XHatchListRef mpNewHatchingList;
56 : XBitmapListRef mpBitmapList;
57 : XBitmapListRef mpNewBitmapList;
58 :
59 : const SfxItemSet& mrOutAttrs;
60 :
61 : ChangeType mnColorListState;
62 : ChangeType mnBitmapListState;
63 : ChangeType mnGradientListState;
64 : ChangeType mnHatchingListState;
65 :
66 : sal_uInt16 mnPageType;
67 : sal_Int32 mnPos;
68 : bool mbAreaTP;
69 :
70 : virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) SAL_OVERRIDE;
71 :
72 : protected:
73 : virtual short Ok() SAL_OVERRIDE;
74 : DECL_LINK( CancelHdlImpl, void * );
75 : void SavePalettes();
76 :
77 : public:
78 : SvxAreaTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr, SdrModel* pModel, bool bShadow );
79 : virtual ~SvxAreaTabDialog();
80 :
81 0 : void SetNewColorList( XColorListRef pColTab )
82 0 : { mpNewColorList = pColTab; }
83 0 : XColorListRef GetNewColorList() const { return mpNewColorList; }
84 0 : const XColorListRef GetColorList() const { return mpColorList; }
85 :
86 0 : void SetNewGradientList( XGradientListRef pGrdLst)
87 0 : { mpNewGradientList = pGrdLst; }
88 0 : XGradientListRef GetNewGradientList() const
89 0 : { return mpNewGradientList; }
90 : const XGradientListRef GetGradientList() const { return mpGradientList; }
91 :
92 0 : void SetNewHatchingList( XHatchListRef pHtchLst)
93 0 : { mpNewHatchingList = pHtchLst; }
94 0 : XHatchListRef GetNewHatchingList() const
95 0 : { return mpNewHatchingList; }
96 : const XHatchListRef GetHatchingList() const { return mpHatchingList; }
97 :
98 0 : void SetNewBitmapList( XBitmapListRef pBmpLst)
99 0 : { mpNewBitmapList = pBmpLst; }
100 0 : XBitmapListRef GetNewBitmapList() const { return mpNewBitmapList; }
101 : const XBitmapListRef GetBitmapList() const { return mpBitmapList; }
102 : };
103 :
104 : /************************************************************************/
105 :
106 0 : class SvxTransparenceTabPage : public SvxTabPage
107 : {
108 : using TabPage::ActivatePage;
109 : using TabPage::DeactivatePage;
110 :
111 : const SfxItemSet& rOutAttrs;
112 : RECT_POINT eRP;
113 :
114 : sal_uInt16 nPageType;
115 : sal_uInt16 nDlgType;
116 :
117 : // main selection
118 : RadioButton* m_pRbtTransOff;
119 : RadioButton* m_pRbtTransLinear;
120 : RadioButton* m_pRbtTransGradient;
121 :
122 : /// linear transparency
123 : MetricField* m_pMtrTransparent;
124 :
125 : // gradient transparency
126 : VclGrid* m_pGridGradient;
127 : ListBox* m_pLbTrgrGradientType;
128 : FixedText* m_pFtTrgrCenterX;
129 : MetricField* m_pMtrTrgrCenterX;
130 : FixedText* m_pFtTrgrCenterY;
131 : MetricField* m_pMtrTrgrCenterY;
132 : FixedText* m_pFtTrgrAngle;
133 : MetricField* m_pMtrTrgrAngle;
134 : MetricField* m_pMtrTrgrBorder;
135 : MetricField* m_pMtrTrgrStartValue;
136 : MetricField* m_pMtrTrgrEndValue;
137 :
138 : // preview
139 : SvxXRectPreview* m_pCtlBitmapPreview;
140 : SvxXRectPreview* m_pCtlXRectPreview;
141 : bool bBitmap;
142 :
143 : XOutdevItemPool* pXPool;
144 : XFillAttrSetItem aXFillAttr;
145 : SfxItemSet& rXFSet;
146 :
147 : DECL_LINK(ClickTransOffHdl_Impl, void * );
148 : DECL_LINK(ClickTransLinearHdl_Impl, void * );
149 : DECL_LINK(ClickTransGradientHdl_Impl, void * );
150 : DECL_LINK(ModifyTransparentHdl_Impl, void*);
151 : DECL_LINK(ChangeTrgrTypeHdl_Impl, void*);
152 : DECL_LINK(ModifiedTrgrHdl_Impl, void*);
153 :
154 : void ActivateLinear(bool bActivate);
155 : void ActivateGradient(bool bActivate);
156 : void SetControlState_Impl(XGradientStyle eXGS);
157 :
158 : bool InitPreview ( const SfxItemSet& rSet );
159 : void InvalidatePreview (bool bEnable = true );
160 :
161 : public:
162 : SvxTransparenceTabPage(vcl::Window* pParent, const SfxItemSet& rInAttrs);
163 : void Construct();
164 :
165 : static SfxTabPage* Create(vcl::Window*, const SfxItemSet*);
166 : static const sal_uInt16* GetRanges();
167 :
168 : virtual bool FillItemSet(SfxItemSet*) SAL_OVERRIDE;
169 : virtual void Reset(const SfxItemSet*) SAL_OVERRIDE;
170 : virtual void ActivatePage(const SfxItemSet& rSet) SAL_OVERRIDE;
171 : virtual int DeactivatePage(SfxItemSet* pSet) SAL_OVERRIDE;
172 : virtual void PointChanged(vcl::Window* pWindow, RECT_POINT eRP) SAL_OVERRIDE;
173 :
174 0 : void SetPageType(sal_uInt16 nInType) { nPageType = nInType; }
175 0 : void SetDlgType(sal_uInt16 nInType) { nDlgType = nInType; }
176 : virtual void PageCreated(const SfxAllItemSet& aSet) SAL_OVERRIDE;
177 : };
178 :
179 : /************************************************************************/
180 :
181 0 : class SvxAreaTabPage : public SvxTabPage
182 : {
183 : using TabPage::ActivatePage;
184 : using TabPage::DeactivatePage;
185 :
186 : private:
187 : ListBox* m_pTypeLB;
188 :
189 : VclBox* m_pFillLB;
190 : ColorLB* m_pLbColor;
191 : GradientLB* m_pLbGradient;
192 : HatchingLB* m_pLbHatching;
193 : BitmapLB* m_pLbBitmap;
194 : SvxXRectPreview* m_pCtlBitmapPreview;
195 :
196 : TriStateBox* m_pTsbStepCount;
197 : VclFrame* m_pFlStepCount;
198 : NumericField* m_pNumFldStepCount;
199 :
200 : VclFrame* m_pFlHatchBckgrd;
201 : CheckBox* m_pCbxHatchBckgrd;
202 : ColorLB* m_pLbHatchBckgrdColor;
203 :
204 : VclBox* m_pBxBitmap;
205 :
206 : VclFrame* m_pFlSize;
207 : TriStateBox* m_pTsbOriginal;
208 : TriStateBox* m_pTsbScale;
209 : VclGrid* m_pGridX_Y;
210 : FixedText* m_pFtXSize;
211 : MetricField* m_pMtrFldXSize;
212 : FixedText* m_pFtYSize;
213 : MetricField* m_pMtrFldYSize;
214 :
215 : VclFrame* m_pFlPosition;
216 : SvxRectCtl* m_pCtlPosition;
217 : VclGrid* m_pGridOffset;
218 : MetricField* m_pMtrFldXOffset;
219 : MetricField* m_pMtrFldYOffset;
220 : VclBox* m_pBxTile;
221 : TriStateBox* m_pTsbTile;
222 : TriStateBox* m_pTsbStretch;
223 : VclFrame* m_pFlOffset;
224 : RadioButton* m_pRbtRow;
225 : RadioButton* m_pRbtColumn;
226 : MetricField* m_pMtrFldOffset;
227 :
228 : SvxXRectPreview* m_pCtlXRectPreview;
229 :
230 : const SfxItemSet& rOutAttrs;
231 : RECT_POINT eRP;
232 :
233 : XColorListRef pColorList;
234 : XGradientListRef pGradientList;
235 : XHatchListRef pHatchingList;
236 : XBitmapListRef pBitmapList;
237 :
238 : // Placeholders for pointer-based entries; these will be inited
239 : // to point to these so that the page is usable without that
240 : // SvxAreaTabDialog has to call the setter methods (e.g. SetColorChgd).
241 : // Without that the pages used in SvxAreaTabDialog are not usable
242 : ChangeType maFixed_ChangeType;
243 : bool maFixed_sal_Bool;
244 :
245 : ChangeType* pnColorListState;
246 : ChangeType* pnBitmapListState;
247 : ChangeType* pnGradientListState;
248 : ChangeType* pnHatchingListState;
249 :
250 : sal_uInt16 nPageType;
251 : sal_uInt16 nDlgType;
252 : sal_Int32 nPos;
253 :
254 : bool* pbAreaTP;
255 :
256 : XOutdevItemPool* pXPool;
257 : XFillAttrSetItem aXFillAttr;
258 : SfxItemSet& rXFSet;
259 :
260 : SfxMapUnit ePoolUnit;
261 : FieldUnit eFUnit;
262 :
263 : //UUUU
264 : bool mbOfferImportButton;
265 : bool mbDirectGraphicSet;
266 : Graphic maDirectGraphic;
267 : OUString maDirectName;
268 : PushButton* m_pBtnImport;
269 :
270 : DECL_LINK(SelectDialogTypeHdl_Impl, void *);
271 : DECL_LINK( ModifyColorHdl_Impl, void * );
272 : DECL_LINK( ModifyHatchBckgrdColorHdl_Impl, void * );
273 : DECL_LINK( ModifyGradientHdl_Impl, void * );
274 : DECL_LINK( ModifyHatchingHdl_Impl, void * );
275 : DECL_LINK( ToggleHatchBckgrdColorHdl_Impl, void * );
276 : DECL_LINK( ModifyBitmapHdl_Impl, void * );
277 : DECL_LINK( ModifyStepCountHdl_Impl, void * );
278 :
279 : //UUUU
280 : DECL_LINK( ClickImportHdl_Impl, void * );
281 :
282 : DECL_LINK( ModifyTileHdl_Impl, void * );
283 : DECL_LINK( ClickScaleHdl_Impl, void * );
284 : void ClickInvisibleHdl_Impl();
285 : void ClickHatchingHdl_Impl();
286 : void ClickGradientHdl_Impl();
287 : void ClickColorHdl_Impl();
288 : void ClickBitmapHdl_Impl();
289 :
290 : public:
291 : SvxAreaTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
292 :
293 : void Construct();
294 :
295 : static SfxTabPage* Create( vcl::Window*, const SfxItemSet* );
296 : static const sal_uInt16* GetRanges();
297 :
298 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
299 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
300 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
301 : virtual int DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
302 : virtual void PointChanged( vcl::Window* pWindow, RECT_POINT eRP ) SAL_OVERRIDE;
303 :
304 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
305 0 : void SetGradientList( XGradientListRef pGrdLst)
306 0 : { pGradientList = pGrdLst; }
307 0 : void SetHatchingList( XHatchListRef pHtchLst)
308 0 : { pHatchingList = pHtchLst; }
309 0 : void SetBitmapList( XBitmapListRef pBmpLst) { pBitmapList = pBmpLst; }
310 :
311 0 : void SetPageType( sal_uInt16 nInType ) { nPageType = nInType; }
312 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
313 0 : void SetPos( sal_uInt16 nInPos ) { nPos = nInPos; }
314 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
315 : virtual void PageCreated(const SfxAllItemSet& aSet) SAL_OVERRIDE;
316 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
317 0 : void SetGrdChgd( ChangeType* pIn ) { pnGradientListState = pIn; }
318 0 : void SetHtchChgd( ChangeType* pIn ) { pnHatchingListState = pIn; }
319 0 : void SetBmpChgd( ChangeType* pIn ) { pnBitmapListState = pIn; }
320 : };
321 :
322 :
323 0 : class SvxShadowTabPage : public SvxTabPage
324 : {
325 : using TabPage::ActivatePage;
326 : using TabPage::DeactivatePage;
327 :
328 : private:
329 : TriStateBox* m_pTsbShowShadow;
330 : VclGrid* m_pGridShadow;
331 : SvxRectCtl* m_pCtlPosition;
332 : MetricField* m_pMtrDistance;
333 : ColorLB* m_pLbShadowColor;
334 : MetricField* m_pMtrTransparent;
335 : SvxXShadowPreview* m_pCtlXRectPreview;
336 :
337 : const SfxItemSet& rOutAttrs;
338 : RECT_POINT eRP;
339 :
340 : XColorListRef pColorList;
341 : ChangeType* pnColorListState;
342 : sal_uInt16 nPageType;
343 : sal_uInt16 nDlgType;
344 : bool* pbAreaTP;
345 :
346 : bool bDisable;
347 :
348 : XOutdevItemPool* pXPool;
349 : XFillAttrSetItem aXFillAttr;
350 : SfxItemSet& rXFSet;
351 : SfxMapUnit ePoolUnit;
352 :
353 : DECL_LINK( ClickShadowHdl_Impl, void * );
354 : DECL_LINK( ModifyShadowHdl_Impl, void * );
355 :
356 : public:
357 : SvxShadowTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
358 :
359 : void Construct();
360 : static SfxTabPage* Create( vcl::Window*, const SfxItemSet* );
361 : static const sal_uInt16* GetRanges();
362 :
363 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
364 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
365 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
366 : virtual int DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
367 : virtual void PointChanged( vcl::Window* pWindow, RECT_POINT eRP ) SAL_OVERRIDE;
368 :
369 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
370 0 : void SetPageType( sal_uInt16 nInType ) { nPageType = nInType; }
371 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
372 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
373 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
374 : virtual void PageCreated(const SfxAllItemSet& aSet) SAL_OVERRIDE;
375 : void DisablePage( bool bIn ) { bDisable = bIn; }
376 : };
377 :
378 : /************************************************************************/
379 :
380 0 : class SvxGradientTabPage : public SfxTabPage
381 : {
382 : using TabPage::ActivatePage;
383 : using TabPage::DeactivatePage;
384 :
385 : private:
386 : ListBox* m_pLbGradientType;
387 : FixedText* m_pFtCenterX;
388 : MetricField* m_pMtrCenterX;
389 : FixedText* m_pFtCenterY;
390 : MetricField* m_pMtrCenterY;
391 : FixedText* m_pFtAngle;
392 : MetricField* m_pMtrAngle;
393 : MetricField* m_pMtrBorder;
394 : ColorLB* m_pLbColorFrom;
395 : MetricField* m_pMtrColorFrom;
396 : ColorLB* m_pLbColorTo;
397 : MetricField* m_pMtrColorTo;
398 : GradientLB* m_pLbGradients;
399 : SvxXRectPreview* m_pCtlPreview;
400 : PushButton* m_pBtnAdd;
401 : PushButton* m_pBtnModify;
402 : PushButton* m_pBtnDelete;
403 : PushButton* m_pBtnLoad;
404 : PushButton* m_pBtnSave;
405 :
406 : const SfxItemSet& rOutAttrs;
407 :
408 : XColorListRef pColorList;
409 : XGradientListRef pGradientList;
410 :
411 : ChangeType* pnGradientListState;
412 : ChangeType* pnColorListState;
413 : sal_uInt16* pPageType;
414 : sal_uInt16 nDlgType;
415 : sal_Int32* pPos;
416 : bool* pbAreaTP;
417 :
418 : XOutdevItemPool* pXPool;
419 : XFillStyleItem aXFStyleItem;
420 : XFillGradientItem aXGradientItem;
421 : XFillAttrSetItem aXFillAttr;
422 : SfxItemSet& rXFSet;
423 :
424 : DECL_LINK( ClickAddHdl_Impl, void * );
425 : DECL_LINK( ClickModifyHdl_Impl, void * );
426 : DECL_LINK( ClickDeleteHdl_Impl, void * );
427 : DECL_LINK( ChangeGradientHdl_Impl, void * );
428 : DECL_LINK( ModifiedHdl_Impl, void * );
429 : DECL_LINK( ClickLoadHdl_Impl, void * );
430 : DECL_LINK( ClickSaveHdl_Impl, void * );
431 :
432 : long CheckChanges_Impl();
433 : void SetControlState_Impl( XGradientStyle eXGS );
434 :
435 : public:
436 : SvxGradientTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
437 :
438 : void Construct();
439 :
440 : static SfxTabPage* Create( vcl::Window*, const SfxItemSet* );
441 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
442 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
443 :
444 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
445 : virtual int DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
446 :
447 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
448 0 : void SetGradientList( XGradientListRef pGrdLst)
449 0 : { pGradientList = pGrdLst; }
450 :
451 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
452 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
453 0 : void SetPos( sal_Int32* pInPos ) { pPos = pInPos; }
454 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
455 :
456 0 : void SetGrdChgd( ChangeType* pIn ) { pnGradientListState = pIn; }
457 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
458 : };
459 :
460 : /************************************************************************/
461 :
462 0 : class SvxHatchTabPage : public SvxTabPage
463 : {
464 : using TabPage::ActivatePage;
465 : using TabPage::DeactivatePage;
466 :
467 : private:
468 : MetricField* m_pMtrDistance;
469 : MetricField* m_pMtrAngle;
470 : SvxRectCtl* m_pCtlAngle;
471 : ListBox* m_pLbLineType;
472 : ColorLB* m_pLbLineColor;
473 : HatchingLB* m_pLbHatchings;
474 : SvxXRectPreview* m_pCtlPreview;
475 : PushButton* m_pBtnAdd;
476 : PushButton* m_pBtnModify;
477 : PushButton* m_pBtnDelete;
478 : PushButton* m_pBtnLoad;
479 : PushButton* m_pBtnSave;
480 :
481 : const SfxItemSet& rOutAttrs;
482 :
483 : XColorListRef pColorList;
484 : XHatchListRef pHatchingList;
485 :
486 : ChangeType* pnHatchingListState;
487 : ChangeType* pnColorListState;
488 : sal_uInt16* pPageType;
489 : sal_uInt16 nDlgType;
490 : sal_Int32* pPos;
491 : bool* pbAreaTP;
492 :
493 : XOutdevItemPool* pXPool;
494 : XFillStyleItem aXFStyleItem;
495 : XFillHatchItem aXHatchItem;
496 : XFillAttrSetItem aXFillAttr;
497 : SfxItemSet& rXFSet;
498 :
499 : SfxMapUnit ePoolUnit;
500 :
501 : DECL_LINK( ChangeHatchHdl_Impl, void * );
502 : DECL_LINK( ModifiedHdl_Impl, void * );
503 : DECL_LINK( ClickAddHdl_Impl, void * );
504 : DECL_LINK( ClickModifyHdl_Impl, void * );
505 : DECL_LINK( ClickDeleteHdl_Impl, void * );
506 : DECL_LINK( ClickLoadHdl_Impl, void * );
507 : DECL_LINK( ClickSaveHdl_Impl, void * );
508 :
509 : long CheckChanges_Impl();
510 :
511 : public:
512 : SvxHatchTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
513 :
514 : void Construct();
515 :
516 : static SfxTabPage* Create( vcl::Window*, const SfxItemSet* );
517 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
518 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
519 :
520 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
521 : virtual int DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
522 :
523 : virtual void PointChanged( vcl::Window* pWindow, RECT_POINT eRP ) SAL_OVERRIDE;
524 :
525 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
526 0 : void SetHatchingList( XHatchListRef pHtchLst)
527 0 : { pHatchingList = pHtchLst; }
528 :
529 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
530 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
531 0 : void SetPos( sal_Int32* pInPos ) { pPos = pInPos; }
532 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
533 :
534 0 : void SetHtchChgd( ChangeType* pIn ) { pnHatchingListState = pIn; }
535 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
536 :
537 : virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
538 : };
539 :
540 : /************************************************************************/
541 :
542 : class SvxBitmapTabPage : public SvxTabPage
543 : {
544 : using TabPage::ActivatePage;
545 : using TabPage::DeactivatePage;
546 :
547 : private:
548 : VclBox* m_pBxPixelEditor;
549 : SvxPixelCtl* m_pCtlPixel;
550 : ColorLB* m_pLbColor;
551 : ColorLB* m_pLbBackgroundColor;
552 : FixedText* m_pLbBitmapsHidden;
553 : BitmapLB* m_pLbBitmaps;
554 : SvxXRectPreview* m_pCtlPreview;
555 : PushButton* m_pBtnAdd;
556 : PushButton* m_pBtnModify;
557 : PushButton* m_pBtnImport;
558 : PushButton* m_pBtnDelete;
559 : PushButton* m_pBtnLoad;
560 : PushButton* m_pBtnSave;
561 :
562 : SvxBitmapCtl* m_pBitmapCtl;
563 :
564 : const SfxItemSet& rOutAttrs;
565 :
566 : XColorListRef pColorList;
567 : XBitmapListRef pBitmapList;
568 :
569 : ChangeType* pnBitmapListState;
570 : ChangeType* pnColorListState;
571 : sal_uInt16* pPageType;
572 : sal_uInt16 nDlgType;
573 : sal_Int32* pPos;
574 : bool* pbAreaTP;
575 :
576 : bool bBmpChanged;
577 :
578 : XOutdevItemPool* pXPool;
579 : XFillStyleItem aXFStyleItem;
580 : XFillBitmapItem aXBitmapItem;
581 : XFillAttrSetItem aXFillAttr;
582 : SfxItemSet& rXFSet;
583 :
584 : DECL_LINK( ClickAddHdl_Impl, void * );
585 : DECL_LINK( ClickImportHdl_Impl, void * );
586 : DECL_LINK( ClickModifyHdl_Impl, void * );
587 : DECL_LINK( ClickDeleteHdl_Impl, void * );
588 : DECL_LINK( ChangeBitmapHdl_Impl, void * );
589 : DECL_LINK( ChangePixelColorHdl_Impl, void * );
590 : DECL_LINK( ChangeBackgrndColorHdl_Impl, void * );
591 : DECL_LINK( ClickLoadHdl_Impl, void * );
592 : DECL_LINK( ClickSaveHdl_Impl, void * );
593 :
594 : long CheckChanges_Impl();
595 :
596 : public:
597 : SvxBitmapTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
598 : virtual ~SvxBitmapTabPage();
599 :
600 : void Construct();
601 :
602 : static SfxTabPage* Create( vcl::Window*, const SfxItemSet* );
603 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
604 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
605 :
606 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
607 : virtual int DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
608 :
609 : virtual void PointChanged( vcl::Window* pWindow, RECT_POINT eRP ) SAL_OVERRIDE;
610 :
611 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
612 0 : void SetBitmapList( XBitmapListRef pBmpLst) { pBitmapList = pBmpLst; }
613 :
614 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
615 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
616 0 : void SetPos( sal_Int32* pInPos ) { pPos = pInPos; }
617 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
618 :
619 0 : void SetBmpChgd( ChangeType* pIn ) { pnBitmapListState = pIn; }
620 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
621 :
622 : /** Return a label that is associated with the given control. This
623 : label is used to the determine the name for the control.
624 : @param pLabeled
625 : The control for which to return a label.
626 : @return
627 : Return a label control that provides a name for the specified
628 : control.
629 : */
630 : virtual vcl::Window* GetParentLabeledBy( const vcl::Window* pLabeled ) const SAL_OVERRIDE;
631 : };
632 :
633 : /************************************************************************/
634 :
635 : struct SvxColorTabPageShadow;
636 : class SvxColorTabPage : public SfxTabPage
637 : {
638 : using TabPage::ActivatePage;
639 : using TabPage::DeactivatePage;
640 :
641 : private:
642 : XPropertyListType meType;
643 :
644 : Window *mpTopDlg;
645 : CheckBox *m_pBoxEmbed;
646 : PushButton *m_pBtnLoad;
647 : PushButton *m_pBtnSave;
648 : FixedText *m_pTableName;
649 :
650 : DECL_LINK( EmbedToggleHdl_Impl, void * );
651 : DECL_LINK( ClickLoadHdl_Impl, void * );
652 : DECL_LINK( ClickSaveHdl_Impl, void * );
653 :
654 : XPropertyListRef GetList();
655 : void HideLoadSaveEmbed();
656 : bool GetEmbed();
657 : void SetEmbed( bool bEmbed );
658 : void UpdateTableName();
659 : void EnableSave( bool bCanSave );
660 :
661 : SvxColorTabPageShadow *pShadow;
662 : Edit* m_pEdtName;
663 : ColorLB* m_pLbColor;
664 :
665 : SvxColorValueSet* m_pValSetColorList;
666 :
667 : SvxXRectPreview* m_pCtlPreviewOld;
668 : SvxXRectPreview* m_pCtlPreviewNew;
669 :
670 : ListBox* m_pLbColorModel;
671 :
672 : VclContainer* m_pRGB;
673 : NumericField* m_pR;
674 : NumericField* m_pG;
675 : NumericField* m_pB;
676 :
677 : VclContainer* m_pCMYK;
678 : MetricField* m_pC;
679 : MetricField* m_pY;
680 : MetricField* m_pM;
681 : MetricField* m_pK;
682 :
683 : PushButton* m_pBtnAdd;
684 : PushButton* m_pBtnModify;
685 : PushButton* m_pBtnWorkOn;
686 : PushButton* m_pBtnDelete;
687 :
688 : const SfxItemSet& rOutAttrs;
689 :
690 : XColorListRef pColorList;
691 :
692 : ChangeType* pnColorListState;
693 : sal_uInt16* pPageType;
694 : sal_uInt16 nDlgType;
695 : sal_Int32* pPos;
696 : bool* pbAreaTP;
697 :
698 : XFillStyleItem aXFStyleItem;
699 : XFillColorItem aXFillColorItem;
700 : XFillAttrSetItem aXFillAttr;
701 : SfxItemSet& rXFSet;
702 :
703 : ColorModel eCM;
704 :
705 : Color aCurrentColor;
706 :
707 : void ConvertColorValues (Color& rColor, ColorModel eModell);
708 : void RgbToCmyk_Impl( Color& rColor, sal_uInt16& rK );
709 : void CmykToRgb_Impl( Color& rColor, const sal_uInt16 nKey );
710 : sal_uInt16 ColorToPercent_Impl( sal_uInt16 nColor );
711 : sal_uInt16 PercentToColor_Impl( sal_uInt16 nPercent );
712 :
713 : void ImpColorCountChanged();
714 :
715 :
716 : DECL_LINK( ClickAddHdl_Impl, void * );
717 : DECL_LINK( ClickModifyHdl_Impl, void * );
718 : DECL_LINK( ClickDeleteHdl_Impl, void * );
719 : DECL_LINK( ClickWorkOnHdl_Impl, void * );
720 :
721 : DECL_LINK( SelectColorLBHdl_Impl, void * );
722 : DECL_LINK( SelectValSetHdl_Impl, void * );
723 : DECL_LINK( SelectColorModelHdl_Impl, void * );
724 : void ChangeColor(const Color &rNewColor);
725 : DECL_LINK( ModifiedHdl_Impl, void * );
726 :
727 : long CheckChanges_Impl();
728 :
729 : void UpdateModified();
730 : public:
731 : SvxColorTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
732 : virtual ~SvxColorTabPage();
733 :
734 : void Construct();
735 :
736 : static SfxTabPage* Create( vcl::Window*, const SfxItemSet* );
737 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
738 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
739 :
740 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
741 : virtual int DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
742 :
743 : virtual XPropertyListRef GetPropertyList( XPropertyListType t );
744 : virtual void SetPropertyList( XPropertyListType t, const XPropertyListRef &xRef );
745 :
746 : void SetColorList( XColorListRef pColList );
747 0 : XColorListRef GetColorList() { return pColorList; }
748 : void SaveToViewFrame( SfxViewFrame *pViewFrame );
749 : void SetupForViewFrame( SfxViewFrame *pViewFrame );
750 :
751 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
752 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
753 0 : void SetPos( sal_Int32* pInPos ) { pPos = pInPos; }
754 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
755 :
756 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
757 :
758 : virtual void FillUserData() SAL_OVERRIDE;
759 :
760 0 : virtual bool IsModified()
761 : {
762 0 : return *pnColorListState & CT_MODIFIED;
763 : }
764 0 : virtual void SetModified(bool bIsModified)
765 : {
766 0 : if (bIsModified)
767 0 : *pnColorListState |= CT_MODIFIED;
768 : else
769 0 : *pnColorListState &= ~CT_MODIFIED;
770 0 : }
771 0 : virtual void AddState(ChangeType nState)
772 : {
773 0 : *pnColorListState |= nState;
774 0 : }
775 : virtual void Update(bool bLoaded);
776 : };
777 :
778 : #endif // INCLUDED_CUI_SOURCE_INC_CUITABAREA_HXX
779 :
780 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|