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 _CUI_TAB_AREA_HXX
20 : #define _CUI_TAB_AREA_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 : private:
40 : SdrModel* mpDrawModel;
41 :
42 : XColorListRef mpColorList;
43 : XColorListRef mpNewColorList;
44 : XGradientListRef mpGradientList;
45 : XGradientListRef mpNewGradientList;
46 : XHatchListRef mpHatchingList;
47 : XHatchListRef mpNewHatchingList;
48 : XBitmapListRef mpBitmapList;
49 : XBitmapListRef mpNewBitmapList;
50 :
51 : const SfxItemSet& mrOutAttrs;
52 :
53 : ChangeType mnColorListState;
54 : ChangeType mnBitmapListState;
55 : ChangeType mnGradientListState;
56 : ChangeType mnHatchingListState;
57 :
58 : sal_uInt16 mnPageType;
59 : sal_uInt16 mnDlgType;
60 : sal_uInt16 mnPos;
61 : sal_Bool mbAreaTP;
62 :
63 : virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
64 :
65 : protected:
66 : virtual short Ok();
67 : DECL_LINK( CancelHdlImpl, void * );
68 : void SavePalettes();
69 :
70 : public:
71 : SvxAreaTabDialog( Window* pParent,
72 : const SfxItemSet* pAttr, SdrModel* pModel,
73 : const SdrView* pSdrView = NULL );
74 : ~SvxAreaTabDialog();
75 :
76 0 : void SetNewColorList( XColorListRef pColTab )
77 0 : { mpNewColorList = pColTab; }
78 0 : XColorListRef GetNewColorList() const { return mpNewColorList; }
79 0 : const XColorListRef GetColorList() const { return mpColorList; }
80 :
81 0 : void SetNewGradientList( XGradientListRef pGrdLst)
82 0 : { mpNewGradientList = pGrdLst; }
83 0 : XGradientListRef GetNewGradientList() const
84 0 : { return mpNewGradientList; }
85 : const XGradientListRef GetGradientList() const { return mpGradientList; }
86 :
87 0 : void SetNewHatchingList( XHatchListRef pHtchLst)
88 0 : { mpNewHatchingList = pHtchLst; }
89 0 : XHatchListRef GetNewHatchingList() const
90 0 : { return mpNewHatchingList; }
91 : const XHatchListRef GetHatchingList() const { return mpHatchingList; }
92 :
93 0 : void SetNewBitmapList( XBitmapListRef pBmpLst)
94 0 : { mpNewBitmapList = pBmpLst; }
95 0 : XBitmapListRef GetNewBitmapList() const { return mpNewBitmapList; }
96 : const XBitmapListRef GetBitmapList() const { return mpBitmapList; }
97 : };
98 :
99 : /************************************************************************/
100 :
101 0 : class SvxTransparenceTabPage : public SvxTabPage
102 : {
103 : using TabPage::ActivatePage;
104 : using TabPage::DeactivatePage;
105 :
106 : const SfxItemSet& rOutAttrs;
107 : RECT_POINT eRP;
108 :
109 : sal_uInt16 nPageType;
110 : sal_uInt16 nDlgType;
111 :
112 : // main selection
113 : FixedLine aFlProp;
114 : RadioButton aRbtTransOff;
115 : RadioButton aRbtTransLinear;
116 : RadioButton aRbtTransGradient;
117 :
118 : /// linear transparency
119 : MetricField aMtrTransparent;
120 :
121 : // gradient transparency
122 : FixedText aFtTrgrType;
123 : ListBox aLbTrgrGradientType;
124 : FixedText aFtTrgrCenterX;
125 : MetricField aMtrTrgrCenterX;
126 : FixedText aFtTrgrCenterY;
127 : MetricField aMtrTrgrCenterY;
128 : FixedText aFtTrgrAngle;
129 : MetricField aMtrTrgrAngle;
130 : FixedText aFtTrgrBorder;
131 : MetricField aMtrTrgrBorder;
132 : FixedText aFtTrgrStartValue;
133 : MetricField aMtrTrgrStartValue;
134 : FixedText aFtTrgrEndValue;
135 : MetricField aMtrTrgrEndValue;
136 :
137 : // preview
138 : SvxXRectPreview aCtlBitmapPreview;
139 : SvxXRectPreview aCtlXRectPreview;
140 : sal_Bool bBitmap;
141 :
142 : XOutdevItemPool* pXPool;
143 : XFillAttrSetItem aXFillAttr;
144 : SfxItemSet& rXFSet;
145 :
146 : DECL_LINK(ClickTransOffHdl_Impl, void * );
147 : DECL_LINK(ClickTransLinearHdl_Impl, void * );
148 : DECL_LINK(ClickTransGradientHdl_Impl, void * );
149 : DECL_LINK(ModifyTransparentHdl_Impl, void*);
150 : DECL_LINK(ChangeTrgrTypeHdl_Impl, void*);
151 : DECL_LINK(ModifiedTrgrHdl_Impl, void*);
152 :
153 : void ActivateLinear(sal_Bool bActivate);
154 : void ActivateGradient(sal_Bool bActivate);
155 : void SetControlState_Impl(XGradientStyle eXGS);
156 :
157 : sal_Bool InitPreview ( const SfxItemSet& rSet );
158 : void InvalidatePreview (sal_Bool bEnable = sal_True );
159 :
160 : public:
161 : SvxTransparenceTabPage(Window* pParent, const SfxItemSet& rInAttrs);
162 : void Construct();
163 :
164 : static SfxTabPage* Create(Window*, const SfxItemSet&);
165 : static sal_uInt16* GetRanges();
166 :
167 : virtual sal_Bool FillItemSet(SfxItemSet&);
168 : virtual void Reset(const SfxItemSet&);
169 : virtual void ActivatePage(const SfxItemSet& rSet);
170 : virtual int DeactivatePage(SfxItemSet* pSet);
171 : virtual void PointChanged(Window* pWindow, RECT_POINT eRP);
172 :
173 0 : void SetPageType(sal_uInt16 nInType) { nPageType = nInType; }
174 0 : void SetDlgType(sal_uInt16 nInType) { nDlgType = nInType; }
175 : virtual void PageCreated (SfxAllItemSet aSet);
176 : };
177 :
178 : /************************************************************************/
179 :
180 0 : class SvxAreaTabPage : public SvxTabPage
181 : {
182 : using TabPage::ActivatePage;
183 : using TabPage::DeactivatePage;
184 :
185 : private:
186 : FixedLine aFlProp;
187 : ListBox aTypeLB;
188 :
189 : ColorLB aLbColor;
190 : GradientLB aLbGradient;
191 : HatchingLB aLbHatching;
192 : BitmapLB aLbBitmap;
193 : SvxXRectPreview aCtlBitmapPreview;
194 :
195 : TriStateBox aTsbStepCount;
196 : FixedLine aFlStepCount;
197 : NumericField aNumFldStepCount;
198 :
199 : CheckBox aCbxHatchBckgrd;
200 : ColorLB aLbHatchBckgrdColor;
201 :
202 : FixedLine aFlSize;
203 : TriStateBox aTsbOriginal;
204 : TriStateBox aTsbScale;
205 : FixedText aFtXSize;
206 : MetricField aMtrFldXSize;
207 : FixedText aFtYSize;
208 : MetricField aMtrFldYSize;
209 : FixedLine aFlPosition;
210 : SvxRectCtl aCtlPosition;
211 : FixedText aFtXOffset;
212 : MetricField aMtrFldXOffset;
213 : FixedText aFtYOffset;
214 : MetricField aMtrFldYOffset;
215 : TriStateBox aTsbTile;
216 : TriStateBox aTsbStretch;
217 : FixedLine aFlOffset;
218 : RadioButton aRbtRow;
219 : RadioButton aRbtColumn;
220 : MetricField aMtrFldOffset;
221 :
222 : SvxXRectPreview aCtlXRectPreview;
223 :
224 : const SfxItemSet& rOutAttrs;
225 : RECT_POINT eRP;
226 :
227 : XColorListRef pColorList;
228 : XGradientListRef pGradientList;
229 : XHatchListRef pHatchingList;
230 : XBitmapListRef pBitmapList;
231 :
232 : ChangeType* pnColorListState;
233 : ChangeType* pnBitmapListState;
234 : ChangeType* pnGradientListState;
235 : ChangeType* pnHatchingListState;
236 :
237 : sal_uInt16 nPageType;
238 : sal_uInt16 nDlgType;
239 : sal_uInt16 nPos;
240 :
241 : sal_Bool* pbAreaTP;
242 :
243 : XOutdevItemPool* pXPool;
244 : XFillAttrSetItem aXFillAttr;
245 : SfxItemSet& rXFSet;
246 :
247 : SfxMapUnit ePoolUnit;
248 : FieldUnit eFUnit;
249 :
250 : DECL_LINK(SelectDialogTypeHdl_Impl, void *);
251 : DECL_LINK( ModifyColorHdl_Impl, void * );
252 : DECL_LINK( ModifyHatchBckgrdColorHdl_Impl, void * );
253 : DECL_LINK( ModifyGradientHdl_Impl, void * );
254 : DECL_LINK( ModifyHatchingHdl_Impl, void * );
255 : DECL_LINK( ToggleHatchBckgrdColorHdl_Impl, void * );
256 : DECL_LINK( ModifyBitmapHdl_Impl, void * );
257 : DECL_LINK( ModifyStepCountHdl_Impl, void * );
258 : DECL_LINK( ModifyTileHdl_Impl, void * );
259 : DECL_LINK( ClickScaleHdl_Impl, void * );
260 : void ClickInvisibleHdl_Impl();
261 : void ClickHatchingHdl_Impl();
262 : void ClickGradientHdl_Impl();
263 : void ClickColorHdl_Impl();
264 : void ClickBitmapHdl_Impl();
265 :
266 : public:
267 : SvxAreaTabPage( Window* pParent, const SfxItemSet& rInAttrs );
268 :
269 : void Construct();
270 :
271 : static SfxTabPage* Create( Window*, const SfxItemSet& );
272 : static sal_uInt16* GetRanges();
273 :
274 : virtual sal_Bool FillItemSet( SfxItemSet& );
275 : virtual void Reset( const SfxItemSet & );
276 : virtual void ActivatePage( const SfxItemSet& rSet );
277 : virtual int DeactivatePage( SfxItemSet* pSet );
278 : virtual void PointChanged( Window* pWindow, RECT_POINT eRP );
279 :
280 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
281 0 : void SetGradientList( XGradientListRef pGrdLst)
282 0 : { pGradientList = pGrdLst; }
283 0 : void SetHatchingList( XHatchListRef pHtchLst)
284 0 : { pHatchingList = pHtchLst; }
285 0 : void SetBitmapList( XBitmapListRef pBmpLst) { pBitmapList = pBmpLst; }
286 :
287 0 : void SetPageType( sal_uInt16 nInType ) { nPageType = nInType; }
288 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
289 0 : void SetPos( sal_uInt16 nInPos ) { nPos = nInPos; }
290 0 : void SetAreaTP( sal_Bool* pIn ) { pbAreaTP = pIn; }
291 : virtual void PageCreated (SfxAllItemSet aSet);
292 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
293 0 : void SetGrdChgd( ChangeType* pIn ) { pnGradientListState = pIn; }
294 0 : void SetHtchChgd( ChangeType* pIn ) { pnHatchingListState = pIn; }
295 0 : void SetBmpChgd( ChangeType* pIn ) { pnBitmapListState = pIn; }
296 : };
297 :
298 :
299 0 : class SvxShadowTabPage : public SvxTabPage
300 : {
301 : using TabPage::ActivatePage;
302 : using TabPage::DeactivatePage;
303 :
304 : private:
305 : FixedLine aFlProp;
306 : TriStateBox aTsbShowShadow;
307 : FixedText aFtPosition;
308 : SvxRectCtl aCtlPosition;
309 : FixedText aFtDistance;
310 : MetricField aMtrDistance;
311 : FixedText aFtShadowColor;
312 : ColorLB aLbShadowColor;
313 : FixedText aFtTransparent;
314 : MetricField aMtrTransparent;
315 : SvxXShadowPreview aCtlXRectPreview;
316 :
317 : const SfxItemSet& rOutAttrs;
318 : RECT_POINT eRP;
319 :
320 : XColorListRef pColorList;
321 : ChangeType* pnColorListState;
322 : sal_uInt16 nPageType;
323 : sal_uInt16 nDlgType;
324 : sal_Bool* pbAreaTP;
325 :
326 : sal_Bool bDisable;
327 :
328 : XOutdevItemPool* pXPool;
329 : XFillAttrSetItem aXFillAttr;
330 : SfxItemSet& rXFSet;
331 : SfxMapUnit ePoolUnit;
332 :
333 : DECL_LINK( ClickShadowHdl_Impl, void * );
334 : DECL_LINK( ModifyShadowHdl_Impl, void * );
335 :
336 : public:
337 : SvxShadowTabPage( Window* pParent, const SfxItemSet& rInAttrs );
338 :
339 : void Construct();
340 : static SfxTabPage* Create( Window*, const SfxItemSet& );
341 : static sal_uInt16* GetRanges();
342 :
343 : virtual sal_Bool FillItemSet( SfxItemSet& );
344 : virtual void Reset( const SfxItemSet & );
345 : virtual void ActivatePage( const SfxItemSet& rSet );
346 : virtual int DeactivatePage( SfxItemSet* pSet );
347 : virtual void PointChanged( Window* pWindow, RECT_POINT eRP );
348 :
349 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
350 0 : void SetPageType( sal_uInt16 nInType ) { nPageType = nInType; }
351 0 : void SetDlgType( sal_uInt16 nInType ) { nDlgType = nInType; }
352 0 : void SetAreaTP( sal_Bool* pIn ) { pbAreaTP = pIn; }
353 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
354 : virtual void PageCreated (SfxAllItemSet aSet);
355 : void DisablePage( sal_Bool bIn ) { bDisable = bIn; }
356 : };
357 :
358 : /************************************************************************/
359 :
360 0 : class SvxGradientTabPage : public SfxTabPage
361 : {
362 : using TabPage::ActivatePage;
363 : using TabPage::DeactivatePage;
364 :
365 : private:
366 : ListBox* m_pLbGradientType;
367 : FixedText* m_pFtCenterX;
368 : MetricField* m_pMtrCenterX;
369 : FixedText* m_pFtCenterY;
370 : MetricField* m_pMtrCenterY;
371 : FixedText* m_pFtAngle;
372 : MetricField* m_pMtrAngle;
373 : FixedText* m_pFtAngleDegrees;
374 : MetricField* m_pMtrBorder;
375 : ColorLB* m_pLbColorFrom;
376 : MetricField* m_pMtrColorFrom;
377 : ColorLB* m_pLbColorTo;
378 : MetricField* m_pMtrColorTo;
379 : GradientLB* m_pLbGradients;
380 : SvxXRectPreview* m_pCtlPreview;
381 : PushButton* m_pBtnAdd;
382 : PushButton* m_pBtnModify;
383 : PushButton* m_pBtnDelete;
384 : PushButton* m_pBtnLoad;
385 : PushButton* m_pBtnSave;
386 :
387 : const SfxItemSet& rOutAttrs;
388 :
389 : XColorListRef pColorList;
390 : XGradientListRef pGradientList;
391 :
392 : ChangeType* pnGradientListState;
393 : ChangeType* pnColorListState;
394 : sal_uInt16* pPageType;
395 : sal_uInt16* pDlgType;
396 : sal_uInt16* pPos;
397 : sal_Bool* pbAreaTP;
398 :
399 : XOutdevItemPool* pXPool;
400 : XFillStyleItem aXFStyleItem;
401 : XFillGradientItem aXGradientItem;
402 : XFillAttrSetItem aXFillAttr;
403 : SfxItemSet& rXFSet;
404 :
405 : DECL_LINK( ClickAddHdl_Impl, void * );
406 : DECL_LINK( ClickModifyHdl_Impl, void * );
407 : DECL_LINK( ClickDeleteHdl_Impl, void * );
408 : DECL_LINK( ChangeGradientHdl_Impl, void * );
409 : DECL_LINK( ModifiedHdl_Impl, void * );
410 : DECL_LINK( ClickLoadHdl_Impl, void * );
411 : DECL_LINK( ClickSaveHdl_Impl, void * );
412 :
413 : long CheckChanges_Impl();
414 : void SetControlState_Impl( XGradientStyle eXGS );
415 :
416 : public:
417 : SvxGradientTabPage( Window* pParent, const SfxItemSet& rInAttrs );
418 :
419 : void Construct();
420 :
421 : static SfxTabPage* Create( Window*, const SfxItemSet& );
422 : virtual sal_Bool FillItemSet( SfxItemSet& );
423 : virtual void Reset( const SfxItemSet & );
424 :
425 : virtual void ActivatePage( const SfxItemSet& rSet );
426 : virtual int DeactivatePage( SfxItemSet* pSet );
427 :
428 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
429 0 : void SetGradientList( XGradientListRef pGrdLst)
430 0 : { pGradientList = pGrdLst; }
431 :
432 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
433 0 : void SetDlgType( sal_uInt16* pInType ) { pDlgType = pInType; }
434 0 : void SetPos( sal_uInt16* pInPos ) { pPos = pInPos; }
435 0 : void SetAreaTP( sal_Bool* pIn ) { pbAreaTP = pIn; }
436 :
437 0 : void SetGrdChgd( ChangeType* pIn ) { pnGradientListState = pIn; }
438 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
439 : };
440 :
441 : /************************************************************************/
442 :
443 0 : class SvxHatchTabPage : public SvxTabPage
444 : {
445 : using TabPage::ActivatePage;
446 : using TabPage::DeactivatePage;
447 :
448 : private:
449 : MetricField* m_pMtrDistance;
450 : MetricField* m_pMtrAngle;
451 : FixedText* m_pFtAngleDegrees;
452 : SvxRectCtl* m_pCtlAngle;
453 : ListBox* m_pLbLineType;
454 : ColorLB* m_pLbLineColor;
455 : HatchingLB* m_pLbHatchings;
456 : SvxXRectPreview* m_pCtlPreview;
457 : PushButton* m_pBtnAdd;
458 : PushButton* m_pBtnModify;
459 : PushButton* m_pBtnDelete;
460 : PushButton* m_pBtnLoad;
461 : PushButton* m_pBtnSave;
462 :
463 : const SfxItemSet& rOutAttrs;
464 :
465 : XColorListRef pColorList;
466 : XHatchListRef pHatchingList;
467 :
468 : ChangeType* pnHatchingListState;
469 : ChangeType* pnColorListState;
470 : sal_uInt16* pPageType;
471 : sal_uInt16* pDlgType;
472 : sal_uInt16* pPos;
473 : sal_Bool* pbAreaTP;
474 :
475 : XOutdevItemPool* pXPool;
476 : XFillStyleItem aXFStyleItem;
477 : XFillHatchItem aXHatchItem;
478 : XFillAttrSetItem aXFillAttr;
479 : SfxItemSet& rXFSet;
480 :
481 : SfxMapUnit ePoolUnit;
482 :
483 : DECL_LINK( ChangeHatchHdl_Impl, void * );
484 : DECL_LINK( ModifiedHdl_Impl, void * );
485 : DECL_LINK( ClickAddHdl_Impl, void * );
486 : DECL_LINK( ClickModifyHdl_Impl, void * );
487 : DECL_LINK( ClickDeleteHdl_Impl, void * );
488 : DECL_LINK( ClickLoadHdl_Impl, void * );
489 : DECL_LINK( ClickSaveHdl_Impl, void * );
490 :
491 : long CheckChanges_Impl();
492 :
493 : public:
494 : SvxHatchTabPage( Window* pParent, const SfxItemSet& rInAttrs );
495 :
496 : void Construct();
497 :
498 : static SfxTabPage* Create( Window*, const SfxItemSet& );
499 : virtual sal_Bool FillItemSet( SfxItemSet& );
500 : virtual void Reset( const SfxItemSet & );
501 :
502 : virtual void ActivatePage( const SfxItemSet& rSet );
503 : virtual int DeactivatePage( SfxItemSet* pSet );
504 :
505 : virtual void PointChanged( Window* pWindow, RECT_POINT eRP );
506 :
507 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
508 0 : void SetHatchingList( XHatchListRef pHtchLst)
509 0 : { pHatchingList = pHtchLst; }
510 :
511 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
512 0 : void SetDlgType( sal_uInt16* pInType ) { pDlgType = pInType; }
513 0 : void SetPos( sal_uInt16* pInPos ) { pPos = pInPos; }
514 0 : void SetAreaTP( sal_Bool* pIn ) { pbAreaTP = pIn; }
515 :
516 0 : void SetHtchChgd( ChangeType* pIn ) { pnHatchingListState = pIn; }
517 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
518 :
519 : virtual void DataChanged( const DataChangedEvent& rDCEvt );
520 : };
521 :
522 : /************************************************************************/
523 :
524 0 : class SvxBitmapTabPage : public SvxTabPage
525 : {
526 : using TabPage::ActivatePage;
527 : using TabPage::DeactivatePage;
528 :
529 : private:
530 : SvxPixelCtl aCtlPixel;
531 : FixedText aFtPixelEdit;
532 : FixedText aFtColor;
533 : ColorLB aLbColor;
534 : FixedText aFtBackgroundColor;
535 : ColorLB aLbBackgroundColor;
536 : FixedText aLbBitmapsHidden;
537 : BitmapLB aLbBitmaps;
538 : FixedLine aFlProp;
539 : SvxXRectPreview aCtlPreview;
540 : PushButton aBtnAdd;
541 : PushButton aBtnModify;
542 : PushButton aBtnImport;
543 : PushButton aBtnDelete;
544 : ImageButton aBtnLoad;
545 : ImageButton aBtnSave;
546 :
547 : SvxBitmapCtl aBitmapCtl;
548 :
549 : const SfxItemSet& rOutAttrs;
550 :
551 : XColorListRef pColorList;
552 : XBitmapListRef pBitmapList;
553 :
554 : ChangeType* pnBitmapListState;
555 : ChangeType* pnColorListState;
556 : sal_uInt16* pPageType;
557 : sal_uInt16* pDlgType;
558 : sal_uInt16* pPos;
559 : sal_Bool* pbAreaTP;
560 :
561 : sal_Bool bBmpChanged;
562 :
563 : XOutdevItemPool* pXPool;
564 : XFillStyleItem aXFStyleItem;
565 : XFillBitmapItem aXBitmapItem;
566 : XFillAttrSetItem aXFillAttr;
567 : SfxItemSet& rXFSet;
568 :
569 : DECL_LINK( ClickAddHdl_Impl, void * );
570 : DECL_LINK( ClickImportHdl_Impl, void * );
571 : DECL_LINK( ClickModifyHdl_Impl, void * );
572 : DECL_LINK( ClickDeleteHdl_Impl, void * );
573 : DECL_LINK( ChangeBitmapHdl_Impl, void * );
574 : DECL_LINK( ChangePixelColorHdl_Impl, void * );
575 : DECL_LINK( ChangeBackgrndColorHdl_Impl, void * );
576 : DECL_LINK( ClickLoadHdl_Impl, void * );
577 : DECL_LINK( ClickSaveHdl_Impl, void * );
578 :
579 : long CheckChanges_Impl();
580 :
581 : public:
582 : SvxBitmapTabPage( Window* pParent, const SfxItemSet& rInAttrs );
583 :
584 : void Construct();
585 :
586 : static SfxTabPage* Create( Window*, const SfxItemSet& );
587 : virtual sal_Bool FillItemSet( SfxItemSet& );
588 : virtual void Reset( const SfxItemSet & );
589 :
590 : virtual void ActivatePage( const SfxItemSet& rSet );
591 : virtual int DeactivatePage( SfxItemSet* pSet );
592 :
593 : virtual void PointChanged( Window* pWindow, RECT_POINT eRP );
594 :
595 0 : void SetColorList( XColorListRef pColTab ) { pColorList = pColTab; }
596 0 : void SetBitmapList( XBitmapListRef pBmpLst) { pBitmapList = pBmpLst; }
597 :
598 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
599 0 : void SetDlgType( sal_uInt16* pInType ) { pDlgType = pInType; }
600 0 : void SetPos( sal_uInt16* pInPos ) { pPos = pInPos; }
601 0 : void SetAreaTP( sal_Bool* pIn ) { pbAreaTP = pIn; }
602 :
603 0 : void SetBmpChgd( ChangeType* pIn ) { pnBitmapListState = pIn; }
604 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
605 :
606 : /** Return a label that is associated with the given control. This
607 : label is used to the determine the name for the control.
608 : @param pLabeled
609 : The control for which to return a label.
610 : @return
611 : Return a label control that provides a name for the specified
612 : control.
613 : */
614 : virtual Window* GetParentLabeledBy( const Window* pLabeled ) const;
615 : };
616 :
617 : /************************************************************************/
618 :
619 : struct SvxColorTabPageShadow;
620 : class SvxColorTabPage : public SfxTabPage
621 : {
622 : using TabPage::ActivatePage;
623 : using TabPage::DeactivatePage;
624 :
625 : private:
626 : XPropertyListType meType;
627 : XOutdevItemPool* mpXPool;
628 :
629 : Window *mpTopDlg;
630 : CheckBox *m_pBoxEmbed;
631 : PushButton *m_pBtnLoad;
632 : PushButton *m_pBtnSave;
633 : FixedText *m_pTableName;
634 :
635 : DECL_LINK( EmbedToggleHdl_Impl, void * );
636 : DECL_LINK( ClickLoadHdl_Impl, void * );
637 : DECL_LINK( ClickSaveHdl_Impl, void * );
638 :
639 : XPropertyListRef GetList();
640 : void HideLoadSaveEmbed();
641 : bool GetEmbed();
642 : void SetEmbed( bool bEmbed );
643 : void UpdateTableName();
644 : void EnableSave( bool bCanSave );
645 :
646 : SvxColorTabPageShadow *pShadow;
647 : Edit* m_pEdtName;
648 : ColorLB* m_pLbColor;
649 :
650 : SvxColorValueSet* m_pValSetColorList;
651 :
652 : SvxXRectPreview* m_pCtlPreviewOld;
653 : SvxXRectPreview* m_pCtlPreviewNew;
654 :
655 : ListBox* m_pLbColorModel;
656 :
657 : VclContainer* m_pRGB;
658 : NumericField* m_pR;
659 : NumericField* m_pG;
660 : NumericField* m_pB;
661 :
662 : VclContainer* m_pCYMK;
663 : MetricField* m_pC;
664 : MetricField* m_pY;
665 : MetricField* m_pM;
666 : MetricField* m_pK;
667 :
668 : PushButton* m_pBtnAdd;
669 : PushButton* m_pBtnModify;
670 : PushButton* m_pBtnWorkOn;
671 : PushButton* m_pBtnDelete;
672 :
673 : const SfxItemSet& rOutAttrs;
674 :
675 : XColorListRef pColorList;
676 :
677 : ChangeType* pnColorListState;
678 : sal_uInt16* pPageType;
679 : sal_uInt16* pDlgType;
680 : sal_uInt16* pPos;
681 : sal_Bool* pbAreaTP;
682 :
683 : XFillStyleItem aXFStyleItem;
684 : XFillColorItem aXFillColorItem;
685 : XFillAttrSetItem aXFillAttr;
686 : SfxItemSet& rXFSet;
687 :
688 : ColorModel eCM;
689 :
690 : Color aAktuellColor;
691 :
692 : void ConvertColorValues (Color& rColor, ColorModel eModell);
693 : void RgbToCmyk_Impl( Color& rColor, sal_uInt16& rK );
694 : void CmykToRgb_Impl( Color& rColor, const sal_uInt16 nKey );
695 : sal_uInt16 ColorToPercent_Impl( sal_uInt16 nColor );
696 : sal_uInt16 PercentToColor_Impl( sal_uInt16 nPercent );
697 :
698 : void ImpColorCountChanged();
699 :
700 : //-----------------------------------------------------------------------------------------------------
701 : DECL_LINK( ClickAddHdl_Impl, void * );
702 : DECL_LINK( ClickModifyHdl_Impl, void * );
703 : DECL_LINK( ClickDeleteHdl_Impl, void * );
704 : DECL_LINK( ClickWorkOnHdl_Impl, void * );
705 :
706 : DECL_LINK( SelectColorLBHdl_Impl, void * );
707 : DECL_LINK( SelectValSetHdl_Impl, void * );
708 : DECL_LINK( SelectColorModelHdl_Impl, void * );
709 : long ChangeColorHdl_Impl( void* p );
710 : DECL_LINK( ModifiedHdl_Impl, void * );
711 :
712 : long CheckChanges_Impl();
713 :
714 : void UpdateModified();
715 : public:
716 : SvxColorTabPage( Window* pParent, const SfxItemSet& rInAttrs );
717 : ~SvxColorTabPage();
718 :
719 : void Construct();
720 :
721 : static SfxTabPage* Create( Window*, const SfxItemSet& );
722 : virtual sal_Bool FillItemSet( SfxItemSet& );
723 : virtual void Reset( const SfxItemSet & );
724 :
725 : virtual void ActivatePage( const SfxItemSet& rSet );
726 : virtual int DeactivatePage( SfxItemSet* pSet );
727 :
728 : virtual XPropertyListRef GetPropertyList( XPropertyListType t );
729 : virtual void SetPropertyList( XPropertyListType t, const XPropertyListRef &xRef );
730 :
731 : void SetColorList( XColorListRef pColList );
732 0 : XColorListRef GetColorList() { return pColorList; }
733 : void SaveToViewFrame( SfxViewFrame *pViewFrame );
734 : void SetupForViewFrame( SfxViewFrame *pViewFrame );
735 :
736 0 : void SetPageType( sal_uInt16* pInType ) { pPageType = pInType; }
737 0 : void SetDlgType( sal_uInt16* pInType ) { pDlgType = pInType; }
738 0 : void SetPos( sal_uInt16* pInPos ) { pPos = pInPos; }
739 0 : void SetAreaTP( sal_Bool* pIn ) { pbAreaTP = pIn; }
740 :
741 0 : void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
742 :
743 : virtual void FillUserData();
744 :
745 0 : virtual bool IsModified()
746 : {
747 0 : return *pnColorListState & CT_MODIFIED;
748 : }
749 0 : virtual void SetModified(bool bIsModified)
750 : {
751 0 : if (bIsModified)
752 0 : *pnColorListState |= CT_MODIFIED;
753 : else
754 0 : *pnColorListState &= ~CT_MODIFIED;
755 0 : }
756 0 : virtual void AddState(ChangeType nState)
757 : {
758 0 : *pnColorListState |= nState;
759 0 : }
760 : virtual void Update(bool bLoaded);
761 : };
762 :
763 : #endif // _CUI_TAB_AREA_HXX
764 :
765 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|