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 0 : 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 :
80 0 : void SetNewColorList( XColorListRef pColTab )
81 0 : { mpNewColorList = pColTab; }
82 0 : XColorListRef GetNewColorList() const { return mpNewColorList; }
83 0 : const XColorListRef GetColorList() const { return mpColorList; }
84 :
85 0 : void SetNewGradientList( XGradientListRef pGrdLst)
86 0 : { mpNewGradientList = pGrdLst; }
87 0 : XGradientListRef GetNewGradientList() const
88 0 : { return mpNewGradientList; }
89 : const XGradientListRef GetGradientList() const { return mpGradientList; }
90 :
91 0 : void SetNewHatchingList( XHatchListRef pHtchLst)
92 0 : { mpNewHatchingList = pHtchLst; }
93 0 : XHatchListRef GetNewHatchingList() const
94 0 : { return mpNewHatchingList; }
95 : const XHatchListRef GetHatchingList() const { return mpHatchingList; }
96 :
97 0 : void SetNewBitmapList( XBitmapListRef pBmpLst)
98 0 : { mpNewBitmapList = pBmpLst; }
99 0 : XBitmapListRef GetNewBitmapList() const { return mpNewBitmapList; }
100 : const XBitmapListRef GetBitmapList() const { return mpBitmapList; }
101 : };
102 :
103 : /************************************************************************/
104 :
105 : class SvxTransparenceTabPage : public SvxTabPage
106 : {
107 : using TabPage::ActivatePage;
108 : using TabPage::DeactivatePage;
109 : static const sal_uInt16 pTransparenceRanges[];
110 :
111 : const SfxItemSet& rOutAttrs;
112 : RECT_POINT eRP;
113 :
114 : sal_uInt16 nPageType;
115 : sal_uInt16 nDlgType;
116 :
117 : // main selection
118 : VclPtr<RadioButton> m_pRbtTransOff;
119 : VclPtr<RadioButton> m_pRbtTransLinear;
120 : VclPtr<RadioButton> m_pRbtTransGradient;
121 :
122 : /// linear transparency
123 : VclPtr<MetricField> m_pMtrTransparent;
124 :
125 : // gradient transparency
126 : VclPtr<VclGrid> m_pGridGradient;
127 : VclPtr<ListBox> m_pLbTrgrGradientType;
128 : VclPtr<FixedText> m_pFtTrgrCenterX;
129 : VclPtr<MetricField> m_pMtrTrgrCenterX;
130 : VclPtr<FixedText> m_pFtTrgrCenterY;
131 : VclPtr<MetricField> m_pMtrTrgrCenterY;
132 : VclPtr<FixedText> m_pFtTrgrAngle;
133 : VclPtr<MetricField> m_pMtrTrgrAngle;
134 : VclPtr<MetricField> m_pMtrTrgrBorder;
135 : VclPtr<MetricField> m_pMtrTrgrStartValue;
136 : VclPtr<MetricField> m_pMtrTrgrEndValue;
137 :
138 : // preview
139 : VclPtr<SvxXRectPreview> m_pCtlBitmapPreview;
140 : VclPtr<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(ModifiedTrgrHdl_Impl, void*);
152 :
153 : void ActivateLinear(bool bActivate);
154 : void ActivateGradient(bool bActivate);
155 : void SetControlState_Impl(css::awt::GradientStyle eXGS);
156 :
157 : bool InitPreview ( const SfxItemSet& rSet );
158 : void InvalidatePreview (bool bEnable = true );
159 :
160 : public:
161 : SvxTransparenceTabPage(vcl::Window* pParent, const SfxItemSet& rInAttrs);
162 : virtual ~SvxTransparenceTabPage();
163 : virtual void dispose() SAL_OVERRIDE;
164 :
165 : static VclPtr<SfxTabPage> Create(vcl::Window*, const SfxItemSet*);
166 0 : static const sal_uInt16* GetRanges() { return pTransparenceRanges; }
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 sfxpg 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 : class SvxAreaTabPage : public SvxTabPage
182 : {
183 : using TabPage::ActivatePage;
184 : using TabPage::DeactivatePage;
185 : static const sal_uInt16 pAreaRanges[];
186 : private:
187 : VclPtr<ListBox> m_pTypeLB;
188 :
189 : VclPtr<VclBox> m_pFillLB;
190 : VclPtr<ColorLB> m_pLbColor;
191 : VclPtr<GradientLB> m_pLbGradient;
192 : VclPtr<HatchingLB> m_pLbHatching;
193 : VclPtr<BitmapLB> m_pLbBitmap;
194 : VclPtr<SvxXRectPreview> m_pCtlBitmapPreview;
195 :
196 : VclPtr<TriStateBox> m_pTsbStepCount;
197 : VclPtr<VclFrame> m_pFlStepCount;
198 : VclPtr<NumericField> m_pNumFldStepCount;
199 :
200 : VclPtr<VclFrame> m_pFlHatchBckgrd;
201 : VclPtr<CheckBox> m_pCbxHatchBckgrd;
202 : VclPtr<ColorLB> m_pLbHatchBckgrdColor;
203 :
204 : VclPtr<VclBox> m_pBxBitmap;
205 :
206 : VclPtr<VclFrame> m_pFlSize;
207 : VclPtr<TriStateBox> m_pTsbOriginal;
208 : VclPtr<TriStateBox> m_pTsbScale;
209 : VclPtr<VclGrid> m_pGridX_Y;
210 : VclPtr<FixedText> m_pFtXSize;
211 : VclPtr<MetricField> m_pMtrFldXSize;
212 : VclPtr<FixedText> m_pFtYSize;
213 : VclPtr<MetricField> m_pMtrFldYSize;
214 :
215 : VclPtr<VclFrame> m_pFlPosition;
216 : VclPtr<SvxRectCtl> m_pCtlPosition;
217 : VclPtr<VclGrid> m_pGridOffset;
218 : VclPtr<MetricField> m_pMtrFldXOffset;
219 : VclPtr<MetricField> m_pMtrFldYOffset;
220 : VclPtr<VclBox> m_pBxTile;
221 : VclPtr<TriStateBox> m_pTsbTile;
222 : VclPtr<TriStateBox> m_pTsbStretch;
223 : VclPtr<VclFrame> m_pFlOffset;
224 : VclPtr<RadioButton> m_pRbtRow;
225 : VclPtr<RadioButton> m_pRbtColumn;
226 : VclPtr<MetricField> m_pMtrFldOffset;
227 :
228 : VclPtr<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 : VclPtr<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 : virtual ~SvxAreaTabPage();
293 : virtual void dispose() SAL_OVERRIDE;
294 :
295 : void Construct();
296 :
297 : static VclPtr<SfxTabPage> Create( vcl::Window*, const SfxItemSet* );
298 0 : static const sal_uInt16* GetRanges() { return pAreaRanges; }
299 :
300 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
301 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
302 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
303 : virtual sfxpg DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
304 : virtual void PointChanged( vcl::Window* pWindow, RECT_POINT eRP ) SAL_OVERRIDE;
305 :
306 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
307 0 : void SetGradientList( XGradientListRef pGrdLst)
308 0 : { pGradientList = pGrdLst; }
309 0 : void SetHatchingList( XHatchListRef pHtchLst)
310 0 : { pHatchingList = pHtchLst; }
311 0 : void SetBitmapList( XBitmapListRef pBmpLst) { pBitmapList = pBmpLst; }
312 :
313 0 : void SetPageType( sal_uInt16 nInType ) { nPageType = nInType; }
314 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
315 0 : void SetPos( sal_uInt16 nInPos ) { nPos = nInPos; }
316 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
317 : virtual void PageCreated(const SfxAllItemSet& aSet) SAL_OVERRIDE;
318 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
319 0 : void SetGrdChgd( ChangeType* pIn ) { pnGradientListState = pIn; }
320 0 : void SetHtchChgd( ChangeType* pIn ) { pnHatchingListState = pIn; }
321 0 : void SetBmpChgd( ChangeType* pIn ) { pnBitmapListState = pIn; }
322 : };
323 :
324 :
325 : class SvxShadowTabPage : public SvxTabPage
326 : {
327 : using TabPage::ActivatePage;
328 : using TabPage::DeactivatePage;
329 : static const sal_uInt16 pShadowRanges[];
330 :
331 : private:
332 : VclPtr<TriStateBox> m_pTsbShowShadow;
333 : VclPtr<VclGrid> m_pGridShadow;
334 : VclPtr<SvxRectCtl> m_pCtlPosition;
335 : VclPtr<MetricField> m_pMtrDistance;
336 : VclPtr<ColorLB> m_pLbShadowColor;
337 : VclPtr<MetricField> m_pMtrTransparent;
338 : VclPtr<SvxXShadowPreview> m_pCtlXRectPreview;
339 :
340 : const SfxItemSet& rOutAttrs;
341 : RECT_POINT eRP;
342 :
343 : XColorListRef pColorList;
344 : ChangeType* pnColorListState;
345 : sal_uInt16 nPageType;
346 : sal_uInt16 nDlgType;
347 : bool* pbAreaTP;
348 :
349 : bool bDisable;
350 :
351 : XOutdevItemPool* pXPool;
352 : XFillAttrSetItem aXFillAttr;
353 : SfxItemSet& rXFSet;
354 : SfxMapUnit ePoolUnit;
355 :
356 : DECL_LINK( ClickShadowHdl_Impl, void * );
357 : DECL_LINK( ModifyShadowHdl_Impl, void * );
358 :
359 : public:
360 : SvxShadowTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
361 : virtual ~SvxShadowTabPage();
362 : virtual void dispose() SAL_OVERRIDE;
363 :
364 : void Construct();
365 : static VclPtr<SfxTabPage> Create( vcl::Window*, const SfxItemSet* );
366 0 : static const sal_uInt16* GetRanges() { return pShadowRanges; }
367 :
368 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
369 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
370 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
371 : virtual sfxpg DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
372 : virtual void PointChanged( vcl::Window* pWindow, RECT_POINT eRP ) SAL_OVERRIDE;
373 :
374 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
375 0 : void SetPageType( sal_uInt16 nInType ) { nPageType = nInType; }
376 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
377 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
378 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
379 : virtual void PageCreated(const SfxAllItemSet& aSet) SAL_OVERRIDE;
380 : void DisablePage( bool bIn ) { bDisable = bIn; }
381 : };
382 :
383 : /************************************************************************/
384 :
385 : class SvxGradientTabPage : public SfxTabPage
386 : {
387 : using TabPage::ActivatePage;
388 : using TabPage::DeactivatePage;
389 :
390 : private:
391 : VclPtr<ListBox> m_pLbGradientType;
392 : VclPtr<FixedText> m_pFtCenterX;
393 : VclPtr<MetricField> m_pMtrCenterX;
394 : VclPtr<FixedText> m_pFtCenterY;
395 : VclPtr<MetricField> m_pMtrCenterY;
396 : VclPtr<FixedText> m_pFtAngle;
397 : VclPtr<MetricField> m_pMtrAngle;
398 : VclPtr<MetricField> m_pMtrBorder;
399 : VclPtr<ColorLB> m_pLbColorFrom;
400 : VclPtr<MetricField> m_pMtrColorFrom;
401 : VclPtr<ColorLB> m_pLbColorTo;
402 : VclPtr<MetricField> m_pMtrColorTo;
403 : VclPtr<GradientLB> m_pLbGradients;
404 : VclPtr<SvxXRectPreview> m_pCtlPreview;
405 : VclPtr<PushButton> m_pBtnAdd;
406 : VclPtr<PushButton> m_pBtnModify;
407 : VclPtr<PushButton> m_pBtnDelete;
408 : VclPtr<PushButton> m_pBtnLoad;
409 : VclPtr<PushButton> m_pBtnSave;
410 :
411 : const SfxItemSet& rOutAttrs;
412 :
413 : XColorListRef pColorList;
414 : XGradientListRef pGradientList;
415 :
416 : ChangeType* pnGradientListState;
417 : ChangeType* pnColorListState;
418 : sal_uInt16* pPageType;
419 : sal_uInt16 nDlgType;
420 : sal_Int32* pPos;
421 : bool* pbAreaTP;
422 :
423 : XOutdevItemPool* pXPool;
424 : XFillStyleItem aXFStyleItem;
425 : XFillGradientItem aXGradientItem;
426 : XFillAttrSetItem aXFillAttr;
427 : SfxItemSet& rXFSet;
428 :
429 : DECL_LINK( ClickAddHdl_Impl, void * );
430 : DECL_LINK( ClickModifyHdl_Impl, void * );
431 : DECL_LINK( ClickDeleteHdl_Impl, void * );
432 : DECL_LINK( ChangeGradientHdl_Impl, void * );
433 : DECL_LINK( ModifiedHdl_Impl, void * );
434 : DECL_LINK( ClickLoadHdl_Impl, void * );
435 : DECL_LINK( ClickSaveHdl_Impl, void * );
436 :
437 : long CheckChanges_Impl();
438 : void SetControlState_Impl( css::awt::GradientStyle eXGS );
439 :
440 : public:
441 : SvxGradientTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
442 : virtual ~SvxGradientTabPage();
443 : virtual void dispose() SAL_OVERRIDE;
444 :
445 : void Construct();
446 :
447 : static VclPtr<SfxTabPage> Create( vcl::Window*, const SfxItemSet* );
448 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
449 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
450 :
451 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
452 : virtual sfxpg DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
453 :
454 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
455 0 : void SetGradientList( XGradientListRef pGrdLst)
456 0 : { pGradientList = pGrdLst; }
457 :
458 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
459 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
460 0 : void SetPos( sal_Int32* pInPos ) { pPos = pInPos; }
461 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
462 :
463 0 : void SetGrdChgd( ChangeType* pIn ) { pnGradientListState = pIn; }
464 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
465 : };
466 :
467 : /************************************************************************/
468 :
469 : class SvxHatchTabPage : public SvxTabPage
470 : {
471 : using TabPage::ActivatePage;
472 : using TabPage::DeactivatePage;
473 :
474 : private:
475 : VclPtr<MetricField> m_pMtrDistance;
476 : VclPtr<MetricField> m_pMtrAngle;
477 : VclPtr<SvxRectCtl> m_pCtlAngle;
478 : VclPtr<ListBox> m_pLbLineType;
479 : VclPtr<ColorLB> m_pLbLineColor;
480 : VclPtr<HatchingLB> m_pLbHatchings;
481 : VclPtr<SvxXRectPreview> m_pCtlPreview;
482 : VclPtr<PushButton> m_pBtnAdd;
483 : VclPtr<PushButton> m_pBtnModify;
484 : VclPtr<PushButton> m_pBtnDelete;
485 : VclPtr<PushButton> m_pBtnLoad;
486 : VclPtr<PushButton> m_pBtnSave;
487 :
488 : const SfxItemSet& rOutAttrs;
489 :
490 : XColorListRef pColorList;
491 : XHatchListRef pHatchingList;
492 :
493 : ChangeType* pnHatchingListState;
494 : ChangeType* pnColorListState;
495 : sal_uInt16* pPageType;
496 : sal_uInt16 nDlgType;
497 : sal_Int32* pPos;
498 : bool* pbAreaTP;
499 :
500 : XOutdevItemPool* pXPool;
501 : XFillStyleItem aXFStyleItem;
502 : XFillHatchItem aXHatchItem;
503 : XFillAttrSetItem aXFillAttr;
504 : SfxItemSet& rXFSet;
505 :
506 : SfxMapUnit ePoolUnit;
507 :
508 : DECL_LINK( ChangeHatchHdl_Impl, void * );
509 : DECL_LINK( ModifiedHdl_Impl, void * );
510 : DECL_LINK( ClickAddHdl_Impl, void * );
511 : DECL_LINK( ClickModifyHdl_Impl, void * );
512 : DECL_LINK( ClickDeleteHdl_Impl, void * );
513 : DECL_LINK( ClickLoadHdl_Impl, void * );
514 : DECL_LINK( ClickSaveHdl_Impl, void * );
515 :
516 : long CheckChanges_Impl();
517 :
518 : public:
519 : SvxHatchTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
520 : virtual ~SvxHatchTabPage();
521 : virtual void dispose() SAL_OVERRIDE;
522 :
523 : void Construct();
524 :
525 : static VclPtr<SfxTabPage> Create( vcl::Window*, const SfxItemSet* );
526 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
527 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
528 :
529 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
530 : virtual sfxpg DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
531 :
532 : virtual void PointChanged( vcl::Window* pWindow, RECT_POINT eRP ) SAL_OVERRIDE;
533 :
534 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
535 0 : void SetHatchingList( XHatchListRef pHtchLst)
536 0 : { pHatchingList = pHtchLst; }
537 :
538 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
539 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
540 0 : void SetPos( sal_Int32* pInPos ) { pPos = pInPos; }
541 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
542 :
543 0 : void SetHtchChgd( ChangeType* pIn ) { pnHatchingListState = pIn; }
544 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
545 :
546 : virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
547 : };
548 :
549 : /************************************************************************/
550 :
551 : class SvxBitmapTabPage : public SvxTabPage
552 : {
553 : using TabPage::ActivatePage;
554 : using TabPage::DeactivatePage;
555 :
556 : private:
557 : VclPtr<VclBox> m_pBxPixelEditor;
558 : VclPtr<SvxPixelCtl> m_pCtlPixel;
559 : VclPtr<ColorLB> m_pLbColor;
560 : VclPtr<ColorLB> m_pLbBackgroundColor;
561 : VclPtr<FixedText> m_pLbBitmapsHidden;
562 : VclPtr<BitmapLB> m_pLbBitmaps;
563 : VclPtr<SvxXRectPreview> m_pCtlPreview;
564 : VclPtr<PushButton> m_pBtnAdd;
565 : VclPtr<PushButton> m_pBtnModify;
566 : VclPtr<PushButton> m_pBtnImport;
567 : VclPtr<PushButton> m_pBtnDelete;
568 : VclPtr<PushButton> m_pBtnLoad;
569 : VclPtr<PushButton> m_pBtnSave;
570 :
571 : SvxBitmapCtl* m_pBitmapCtl;
572 :
573 : const SfxItemSet& rOutAttrs;
574 :
575 : XColorListRef pColorList;
576 : XBitmapListRef pBitmapList;
577 :
578 : ChangeType* pnBitmapListState;
579 : ChangeType* pnColorListState;
580 : sal_uInt16* pPageType;
581 : sal_uInt16 nDlgType;
582 : sal_Int32* pPos;
583 : bool* pbAreaTP;
584 :
585 : bool bBmpChanged;
586 :
587 : XOutdevItemPool* pXPool;
588 : XFillStyleItem aXFStyleItem;
589 : XFillBitmapItem aXBitmapItem;
590 : XFillAttrSetItem aXFillAttr;
591 : SfxItemSet& rXFSet;
592 :
593 : DECL_LINK( ClickAddHdl_Impl, void * );
594 : DECL_LINK( ClickImportHdl_Impl, void * );
595 : DECL_LINK( ClickModifyHdl_Impl, void * );
596 : DECL_LINK( ClickDeleteHdl_Impl, void * );
597 : DECL_LINK( ChangeBitmapHdl_Impl, void * );
598 : DECL_LINK( ChangePixelColorHdl_Impl, void * );
599 : DECL_LINK( ChangeBackgrndColorHdl_Impl, void * );
600 : DECL_LINK( ClickLoadHdl_Impl, void * );
601 : DECL_LINK( ClickSaveHdl_Impl, void * );
602 :
603 : long CheckChanges_Impl();
604 :
605 : public:
606 : SvxBitmapTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
607 : virtual ~SvxBitmapTabPage();
608 : virtual void dispose() SAL_OVERRIDE;
609 :
610 : void Construct();
611 :
612 : static VclPtr<SfxTabPage> Create( vcl::Window*, const SfxItemSet* );
613 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
614 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
615 :
616 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
617 : virtual sfxpg DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
618 :
619 : virtual void PointChanged( vcl::Window* pWindow, RECT_POINT eRP ) SAL_OVERRIDE;
620 :
621 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
622 0 : void SetBitmapList( XBitmapListRef pBmpLst) { pBitmapList = pBmpLst; }
623 :
624 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
625 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
626 0 : void SetPos( sal_Int32* pInPos ) { pPos = pInPos; }
627 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
628 :
629 0 : void SetBmpChgd( ChangeType* pIn ) { pnBitmapListState = pIn; }
630 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
631 :
632 : /** Return a label that is associated with the given control. This
633 : label is used to the determine the name for the control.
634 : @param pLabeled
635 : The control for which to return a label.
636 : @return
637 : Return a label control that provides a name for the specified
638 : control.
639 : */
640 : virtual vcl::Window* GetParentLabeledBy( const vcl::Window* pLabeled ) const SAL_OVERRIDE;
641 : };
642 :
643 : /************************************************************************/
644 :
645 : struct SvxColorTabPageShadow;
646 : class SvxColorTabPage : public SfxTabPage
647 : {
648 : using TabPage::ActivatePage;
649 : using TabPage::DeactivatePage;
650 :
651 : private:
652 : XPropertyListType meType;
653 :
654 : VclPtr<Window> mpTopDlg;
655 : VclPtr<CheckBox> m_pBoxEmbed;
656 : VclPtr<PushButton> m_pBtnLoad;
657 : VclPtr<PushButton> m_pBtnSave;
658 : VclPtr<FixedText> m_pTableName;
659 :
660 : DECL_LINK( EmbedToggleHdl_Impl, void * );
661 : DECL_LINK( ClickLoadHdl_Impl, void * );
662 : DECL_LINK( ClickSaveHdl_Impl, void * );
663 :
664 : XPropertyListRef GetList();
665 : bool GetEmbed();
666 : void SetEmbed( bool bEmbed );
667 : void UpdateTableName();
668 : void EnableSave( bool bCanSave );
669 :
670 : SvxColorTabPageShadow *pShadow;
671 : VclPtr<Edit> m_pEdtName;
672 : VclPtr<ColorLB> m_pLbColor;
673 :
674 : VclPtr<SvxColorValueSet> m_pValSetColorList;
675 :
676 : VclPtr<SvxXRectPreview> m_pCtlPreviewOld;
677 : VclPtr<SvxXRectPreview> m_pCtlPreviewNew;
678 :
679 : VclPtr<ListBox> m_pLbColorModel;
680 :
681 : VclPtr<VclContainer> m_pRGB;
682 : VclPtr<NumericField> m_pR;
683 : VclPtr<NumericField> m_pG;
684 : VclPtr<NumericField> m_pB;
685 :
686 : VclPtr<VclContainer> m_pCMYK;
687 : VclPtr<MetricField> m_pC;
688 : VclPtr<MetricField> m_pY;
689 : VclPtr<MetricField> m_pM;
690 : VclPtr<MetricField> m_pK;
691 :
692 : VclPtr<PushButton> m_pBtnAdd;
693 : VclPtr<PushButton> m_pBtnModify;
694 : VclPtr<PushButton> m_pBtnWorkOn;
695 : VclPtr<PushButton> m_pBtnDelete;
696 :
697 : const SfxItemSet& rOutAttrs;
698 :
699 : XColorListRef pColorList;
700 :
701 : ChangeType* pnColorListState;
702 : sal_uInt16* pPageType;
703 : sal_uInt16 nDlgType;
704 : sal_Int32* pPos;
705 : bool* pbAreaTP;
706 :
707 : XFillStyleItem aXFStyleItem;
708 : XFillColorItem aXFillColorItem;
709 : XFillAttrSetItem aXFillAttr;
710 : SfxItemSet& rXFSet;
711 :
712 : ColorModel eCM;
713 :
714 : Color aCurrentColor;
715 :
716 : static void ConvertColorValues (Color& rColor, ColorModel eModell);
717 : static void RgbToCmyk_Impl( Color& rColor, sal_uInt16& rK );
718 : static void CmykToRgb_Impl( Color& rColor, const sal_uInt16 nKey );
719 : sal_uInt16 ColorToPercent_Impl( sal_uInt16 nColor );
720 : sal_uInt16 PercentToColor_Impl( sal_uInt16 nPercent );
721 :
722 : void ImpColorCountChanged();
723 :
724 :
725 : DECL_LINK( ClickAddHdl_Impl, void * );
726 : DECL_LINK( ClickModifyHdl_Impl, void * );
727 : DECL_LINK( ClickDeleteHdl_Impl, void * );
728 : DECL_LINK( ClickWorkOnHdl_Impl, void * );
729 :
730 : DECL_LINK( SelectColorLBHdl_Impl, void * );
731 : DECL_LINK( SelectValSetHdl_Impl, void * );
732 : DECL_LINK( SelectColorModelHdl_Impl, void * );
733 : void ChangeColor(const Color &rNewColor);
734 : DECL_LINK( ModifiedHdl_Impl, void * );
735 :
736 : long CheckChanges_Impl();
737 :
738 : void UpdateModified();
739 : public:
740 : SvxColorTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
741 : virtual ~SvxColorTabPage();
742 : virtual void dispose() SAL_OVERRIDE;
743 :
744 : void Construct();
745 :
746 : static VclPtr<SfxTabPage> Create( vcl::Window*, const SfxItemSet* );
747 : virtual bool FillItemSet( SfxItemSet* ) SAL_OVERRIDE;
748 : virtual void Reset( const SfxItemSet * ) SAL_OVERRIDE;
749 :
750 : virtual void ActivatePage( const SfxItemSet& rSet ) SAL_OVERRIDE;
751 : virtual sfxpg DeactivatePage( SfxItemSet* pSet ) SAL_OVERRIDE;
752 :
753 : XPropertyListRef GetPropertyList( XPropertyListType t );
754 : void SetPropertyList( XPropertyListType t, const XPropertyListRef &xRef );
755 :
756 : void SetColorList( XColorListRef pColList );
757 0 : XColorListRef GetColorList() { return pColorList; }
758 : void SaveToViewFrame( SfxViewFrame *pViewFrame );
759 : void SetupForViewFrame( SfxViewFrame *pViewFrame );
760 :
761 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
762 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
763 0 : void SetPos( sal_Int32* pInPos ) { pPos = pInPos; }
764 0 : void SetAreaTP( bool* pIn ) { pbAreaTP = pIn; }
765 :
766 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
767 :
768 : virtual void FillUserData() SAL_OVERRIDE;
769 :
770 0 : bool IsModified()
771 : {
772 0 : return bool(*pnColorListState & ChangeType::MODIFIED);
773 : }
774 0 : void SetModified(bool bIsModified)
775 : {
776 0 : if (bIsModified)
777 0 : *pnColorListState |= ChangeType::MODIFIED;
778 : else
779 0 : *pnColorListState &= ~ChangeType::MODIFIED;
780 0 : }
781 0 : void AddState(ChangeType nState)
782 : {
783 0 : *pnColorListState |= nState;
784 0 : }
785 : void Update(bool bLoaded);
786 : };
787 :
788 : #endif // INCLUDED_CUI_SOURCE_INC_CUITABAREA_HXX
789 :
790 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|