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