1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #include <tools/shl.hxx>
21 #include <tools/urlobj.hxx>
22 #include <sfx2/app.hxx>
23 #include <sfx2/module.hxx>
24 #include <svx/dialogs.hrc>
26 #if defined (UNX) || defined (ICC) || defined(WNT)
30 #include "svx/xattr.hxx"
31 #include <svx/xpool.hxx>
33 #include "tabarea.hrc"
34 #include <svx/xflbckit.hxx>
35 #include <svx/svdattr.hxx>
36 #include <svx/xtable.hxx>
37 #include <svx/xlineit0.hxx>
38 #include "svx/drawitem.hxx"
39 #include "cuitabarea.hxx"
40 #include "dlgname.hxx"
41 #include <dialmgr.hxx>
42 #include "svx/dlgutil.hxx"
43 #include <svl/intitem.hxx>
44 #include <sfx2/request.hxx>
45 #include "paragrph.hrc"
47 // static ----------------------------------------------------------------
49 static sal_uInt16 pAreaRanges
[] =
51 XATTR_GRADIENTSTEPCOUNT
,
52 XATTR_GRADIENTSTEPCOUNT
,
58 static sal_uInt16 pTransparenceRanges
[] =
60 XATTR_FILLTRANSPARENCE
,
61 XATTR_FILLTRANSPARENCE
,
62 SDRATTR_SHADOWTRANSPARENCE
,
63 SDRATTR_SHADOWTRANSPARENCE
,
64 XATTR_FILLFLOATTRANSPARENCE
,
65 XATTR_FILLFLOATTRANSPARENCE
,
69 /*************************************************************************
71 |* Dialog for transparence
73 \************************************************************************/
75 IMPL_LINK_NOARG(SvxTransparenceTabPage
, ClickTransOffHdl_Impl
)
77 // disable all other controls
78 ActivateLinear(sal_False
);
79 ActivateGradient(sal_False
);
82 rXFSet
.ClearItem (XATTR_FILLTRANSPARENCE
);
83 rXFSet
.ClearItem (XATTR_FILLFLOATTRANSPARENCE
);
84 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
85 aCtlBitmapPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
87 InvalidatePreview( sal_False
);
92 IMPL_LINK_NOARG(SvxTransparenceTabPage
, ClickTransLinearHdl_Impl
)
94 // enable linear, disable other
95 ActivateLinear(sal_True
);
96 ActivateGradient(sal_False
);
99 rXFSet
.ClearItem (XATTR_FILLFLOATTRANSPARENCE
);
100 ModifyTransparentHdl_Impl (NULL
);
105 IMPL_LINK_NOARG(SvxTransparenceTabPage
, ClickTransGradientHdl_Impl
)
107 // enable gradient, disable other
108 ActivateLinear(sal_False
);
109 ActivateGradient(sal_True
);
112 rXFSet
.ClearItem (XATTR_FILLTRANSPARENCE
);
113 ModifiedTrgrHdl_Impl (NULL
);
118 void SvxTransparenceTabPage::ActivateLinear(sal_Bool bActivate
)
120 aMtrTransparent
.Enable(bActivate
);
123 IMPL_LINK_NOARG(SvxTransparenceTabPage
, ModifyTransparentHdl_Impl
)
125 sal_uInt16 nPos
= (sal_uInt16
)aMtrTransparent
.GetValue();
126 XFillTransparenceItem
aItem(nPos
);
127 rXFSet
.Put(XFillTransparenceItem(aItem
));
135 IMPL_LINK(SvxTransparenceTabPage
, ModifiedTrgrHdl_Impl
, void *, pControl
)
137 if(pControl
== &aLbTrgrGradientType
|| pControl
== this)
139 XGradientStyle eXGS
= (XGradientStyle
)aLbTrgrGradientType
.GetSelectEntryPos();
140 SetControlState_Impl( eXGS
);
144 sal_uInt8 nStartCol
= (sal_uInt8
)(((sal_uInt16
)aMtrTrgrStartValue
.GetValue() * 255) / 100);
145 sal_uInt8 nEndCol
= (sal_uInt8
)(((sal_uInt16
)aMtrTrgrEndValue
.GetValue() * 255) / 100);
146 XGradient
aTmpGradient(
147 Color(nStartCol
, nStartCol
, nStartCol
),
148 Color(nEndCol
, nEndCol
, nEndCol
),
149 (XGradientStyle
)aLbTrgrGradientType
.GetSelectEntryPos(),
150 (sal_uInt16
)aMtrTrgrAngle
.GetValue() * 10,
151 (sal_uInt16
)aMtrTrgrCenterX
.GetValue(),
152 (sal_uInt16
)aMtrTrgrCenterY
.GetValue(),
153 (sal_uInt16
)aMtrTrgrBorder
.GetValue(),
156 XFillFloatTransparenceItem
aItem( rXFSet
.GetPool()/*aString*/, aTmpGradient
);
157 rXFSet
.Put ( aItem
);
164 void SvxTransparenceTabPage::ActivateGradient(sal_Bool bActivate
)
166 aFtTrgrType
.Enable(bActivate
);
167 aLbTrgrGradientType
.Enable(bActivate
);
168 aFtTrgrCenterX
.Enable(bActivate
);
169 aMtrTrgrCenterX
.Enable(bActivate
);
170 aFtTrgrCenterY
.Enable(bActivate
);
171 aMtrTrgrCenterY
.Enable(bActivate
);
172 aFtTrgrAngle
.Enable(bActivate
);
173 aMtrTrgrAngle
.Enable(bActivate
);
174 aFtTrgrBorder
.Enable(bActivate
);
175 aMtrTrgrBorder
.Enable(bActivate
);
176 aFtTrgrStartValue
.Enable(bActivate
);
177 aMtrTrgrStartValue
.Enable(bActivate
);
178 aFtTrgrEndValue
.Enable(bActivate
);
179 aMtrTrgrEndValue
.Enable(bActivate
);
183 XGradientStyle eXGS
= (XGradientStyle
)aLbTrgrGradientType
.GetSelectEntryPos();
184 SetControlState_Impl( eXGS
);
188 IMPL_LINK_NOARG(SvxTransparenceTabPage
, ChangeTrgrTypeHdl_Impl
)
193 void SvxTransparenceTabPage::SetControlState_Impl(XGradientStyle eXGS
)
199 aFtTrgrCenterX
.Disable();
200 aMtrTrgrCenterX
.Disable();
201 aFtTrgrCenterY
.Disable();
202 aMtrTrgrCenterY
.Disable();
203 aFtTrgrAngle
.Enable();
204 aMtrTrgrAngle
.Enable();
208 aFtTrgrCenterX
.Enable();
209 aMtrTrgrCenterX
.Enable();
210 aFtTrgrCenterY
.Enable();
211 aMtrTrgrCenterY
.Enable();
212 aFtTrgrAngle
.Disable();
213 aMtrTrgrAngle
.Disable();
216 case XGRAD_ELLIPTICAL
:
217 aFtTrgrCenterX
.Enable();
218 aMtrTrgrCenterX
.Enable();
219 aFtTrgrCenterY
.Enable();
220 aMtrTrgrCenterY
.Enable();
221 aFtTrgrAngle
.Enable();
222 aMtrTrgrAngle
.Enable();
227 aFtTrgrCenterX
.Enable();
228 aMtrTrgrCenterX
.Enable();
229 aFtTrgrCenterY
.Enable();
230 aMtrTrgrCenterY
.Enable();
231 aFtTrgrAngle
.Enable();
232 aMtrTrgrAngle
.Enable();
237 SvxTransparenceTabPage::SvxTransparenceTabPage(Window
* pParent
, const SfxItemSet
& rInAttrs
)
238 : SvxTabPage ( pParent
, CUI_RES( RID_SVXPAGE_TRANSPARENCE
), rInAttrs
),
239 rOutAttrs ( rInAttrs
),
245 aFlProp ( this, CUI_RES( FL_PROP
) ),
246 aRbtTransOff ( this, CUI_RES( RBT_TRANS_OFF
) ),
247 aRbtTransLinear ( this, CUI_RES( RBT_TRANS_LINEAR
) ),
248 aRbtTransGradient ( this, CUI_RES( RBT_TRANS_GRADIENT
) ),
250 aMtrTransparent ( this, CUI_RES( MTR_TRANSPARENT
) ),
252 aFtTrgrType ( this, CUI_RES( FT_TRGR_TYPE
) ),
253 aLbTrgrGradientType ( this, CUI_RES( LB_TRGR_GRADIENT_TYPES
) ),
254 aFtTrgrCenterX ( this, CUI_RES( FT_TRGR_CENTER_X
) ),
255 aMtrTrgrCenterX ( this, CUI_RES( MTR_TRGR_CENTER_X
) ),
256 aFtTrgrCenterY ( this, CUI_RES( FT_TRGR_CENTER_Y
) ),
257 aMtrTrgrCenterY ( this, CUI_RES( MTR_TRGR_CENTER_Y
) ),
258 aFtTrgrAngle ( this, CUI_RES( FT_TRGR_ANGLE
) ),
259 aMtrTrgrAngle ( this, CUI_RES( MTR_TRGR_ANGLE
) ),
260 aFtTrgrBorder ( this, CUI_RES( FT_TRGR_BORDER
) ),
261 aMtrTrgrBorder ( this, CUI_RES( MTR_TRGR_BORDER
) ),
262 aFtTrgrStartValue ( this, CUI_RES( FT_TRGR_START_VALUE
) ),
263 aMtrTrgrStartValue ( this, CUI_RES( MTR_TRGR_START_VALUE
) ),
264 aFtTrgrEndValue ( this, CUI_RES( FT_TRGR_END_VALUE
) ),
265 aMtrTrgrEndValue ( this, CUI_RES( MTR_TRGR_END_VALUE
) ),
267 aCtlBitmapPreview ( this, CUI_RES( CTL_BITMAP_PREVIEW
) ),
268 aCtlXRectPreview ( this, CUI_RES( CTL_TRANS_PREVIEW
) ),
269 bBitmap ( sal_False
),
270 pXPool ( (XOutdevItemPool
*) rInAttrs
.GetPool() ),
271 aXFillAttr ( pXPool
),
272 rXFSet ( aXFillAttr
.GetItemSet() )
276 String accName
= String(CUI_RES(STR_EXAMPLE
));
277 aCtlBitmapPreview
.SetAccessibleName(accName
);
278 aCtlXRectPreview
.SetAccessibleName(accName
);
279 aMtrTransparent
.SetAccessibleRelationLabeledBy( &aRbtTransLinear
);
282 aRbtTransOff
.SetClickHdl(LINK(this, SvxTransparenceTabPage
, ClickTransOffHdl_Impl
));
283 aRbtTransLinear
.SetClickHdl(LINK(this, SvxTransparenceTabPage
, ClickTransLinearHdl_Impl
));
284 aRbtTransGradient
.SetClickHdl(LINK(this, SvxTransparenceTabPage
, ClickTransGradientHdl_Impl
));
286 // linear transparency
287 aMtrTransparent
.SetValue( 50 );
288 aMtrTransparent
.SetModifyHdl(LINK(this, SvxTransparenceTabPage
, ModifyTransparentHdl_Impl
));
290 // gradient transparency
291 aMtrTrgrEndValue
.SetValue( 100 );
292 aMtrTrgrStartValue
.SetValue( 0 );
293 aLbTrgrGradientType
.SetSelectHdl(LINK(this, SvxTransparenceTabPage
, ChangeTrgrTypeHdl_Impl
));
294 Link aLink
= LINK( this, SvxTransparenceTabPage
, ModifiedTrgrHdl_Impl
);
295 aLbTrgrGradientType
.SetSelectHdl( aLink
);
296 aMtrTrgrCenterX
.SetModifyHdl( aLink
);
297 aMtrTrgrCenterY
.SetModifyHdl( aLink
);
298 aMtrTrgrAngle
.SetModifyHdl( aLink
);
299 aMtrTrgrBorder
.SetModifyHdl( aLink
);
300 aMtrTrgrStartValue
.SetModifyHdl( aLink
);
301 aMtrTrgrEndValue
.SetModifyHdl( aLink
);
303 // this page needs ExchangeSupport
304 SetExchangeSupport();
307 void SvxTransparenceTabPage::Construct()
311 SfxTabPage
* SvxTransparenceTabPage::Create(Window
* pWindow
, const SfxItemSet
& rAttrs
)
313 return(new SvxTransparenceTabPage(pWindow
, rAttrs
));
316 sal_uInt16
* SvxTransparenceTabPage::GetRanges()
318 return(pTransparenceRanges
);
321 sal_Bool
SvxTransparenceTabPage::FillItemSet(SfxItemSet
& rAttrs
)
323 const SfxPoolItem
* pGradientItem
= NULL
;
324 const SfxPoolItem
* pLinearItem
= NULL
;
325 SfxItemState
eStateGradient(rOutAttrs
.GetItemState(XATTR_FILLFLOATTRANSPARENCE
, sal_True
, &pGradientItem
));
326 SfxItemState
eStateLinear(rOutAttrs
.GetItemState(XATTR_FILLTRANSPARENCE
, sal_True
, &pLinearItem
));
327 sal_Bool bGradActive
= (eStateGradient
== SFX_ITEM_SET
&& ((XFillFloatTransparenceItem
*)pGradientItem
)->IsEnabled());
328 sal_Bool bLinearActive
= (eStateLinear
== SFX_ITEM_SET
&& ((XFillTransparenceItem
*)pLinearItem
)->GetValue() != 0);
331 sal_Bool bGradUsed
= (eStateGradient
== SFX_ITEM_DONTCARE
);
332 sal_Bool bLinearUsed
= (eStateLinear
== SFX_ITEM_DONTCARE
);
334 sal_Bool
bModified(sal_False
);
335 sal_Bool
bSwitchOffLinear(sal_False
);
336 sal_Bool
bSwitchOffGradient(sal_False
);
338 if(aMtrTransparent
.IsEnabled())
340 // linear transparence
341 sal_uInt16 nPos
= (sal_uInt16
)aMtrTransparent
.GetValue();
342 if(nPos
!= (sal_uInt16
)aMtrTransparent
.GetSavedValue().toInt32() || !bLinearActive
)
344 XFillTransparenceItem
aItem(nPos
);
345 SdrShadowTransparenceItem
aShadowItem(nPos
);
346 const SfxPoolItem
* pOld
= GetOldItem(rAttrs
, XATTR_FILLTRANSPARENCE
);
347 if(!pOld
|| !(*(const XFillTransparenceItem
*)pOld
== aItem
) || !bLinearActive
)
350 rAttrs
.Put(aShadowItem
);
351 bModified
= sal_True
;
352 bSwitchOffGradient
= sal_True
;
356 else if(aLbTrgrGradientType
.IsEnabled())
358 // transparence gradient, fill ItemSet from values
360 || (XGradientStyle
)aLbTrgrGradientType
.GetSelectEntryPos() != (XGradientStyle
)aLbTrgrGradientType
.GetSavedValue()
361 || (sal_uInt16
)aMtrTrgrAngle
.GetValue() != (sal_uInt16
)aMtrTrgrAngle
.GetSavedValue().toInt32()
362 || (sal_uInt16
)aMtrTrgrCenterX
.GetValue() != (sal_uInt16
)aMtrTrgrCenterX
.GetSavedValue().toInt32()
363 || (sal_uInt16
)aMtrTrgrCenterY
.GetValue() != (sal_uInt16
)aMtrTrgrCenterY
.GetSavedValue().toInt32()
364 || (sal_uInt16
)aMtrTrgrBorder
.GetValue() != (sal_uInt16
)aMtrTrgrBorder
.GetSavedValue().toInt32()
365 || (sal_uInt16
)aMtrTrgrStartValue
.GetValue() != (sal_uInt16
)aMtrTrgrStartValue
.GetSavedValue().toInt32()
366 || (sal_uInt16
)aMtrTrgrEndValue
.GetValue() != (sal_uInt16
)aMtrTrgrEndValue
.GetSavedValue().toInt32() )
368 sal_uInt8 nStartCol
= (sal_uInt8
)(((sal_uInt16
)aMtrTrgrStartValue
.GetValue() * 255) / 100);
369 sal_uInt8 nEndCol
= (sal_uInt8
)(((sal_uInt16
)aMtrTrgrEndValue
.GetValue() * 255) / 100);
370 XGradient
aTmpGradient(
371 Color(nStartCol
, nStartCol
, nStartCol
),
372 Color(nEndCol
, nEndCol
, nEndCol
),
373 (XGradientStyle
)aLbTrgrGradientType
.GetSelectEntryPos(),
374 (sal_uInt16
)aMtrTrgrAngle
.GetValue() * 10,
375 (sal_uInt16
)aMtrTrgrCenterX
.GetValue(),
376 (sal_uInt16
)aMtrTrgrCenterY
.GetValue(),
377 (sal_uInt16
)aMtrTrgrBorder
.GetValue(),
380 XFillFloatTransparenceItem
aItem( rXFSet
.GetPool()/*aString*/, aTmpGradient
);
381 const SfxPoolItem
* pOld
= GetOldItem(rAttrs
, XATTR_FILLFLOATTRANSPARENCE
);
383 if(!pOld
|| !(*(const XFillFloatTransparenceItem
*)pOld
== aItem
) || !bGradActive
)
386 bModified
= sal_True
;
387 bSwitchOffLinear
= sal_True
;
394 bSwitchOffGradient
= sal_True
;
395 bSwitchOffLinear
= sal_True
;
398 // disable unused XFillFloatTransparenceItem
399 if(bSwitchOffGradient
&& (bGradActive
|| bGradUsed
))
401 Color
aColor(COL_BLACK
);
402 XGradient
aGrad(aColor
, Color(COL_WHITE
));
403 aGrad
.SetStartIntens(100);
404 aGrad
.SetEndIntens(100);
405 XFillFloatTransparenceItem
aItem( rXFSet
.GetPool()/*aString*/, aGrad
);
406 aItem
.SetEnabled(sal_False
);
408 bModified
= sal_True
;
411 // disable unused XFillFloatTransparenceItem
412 if(bSwitchOffLinear
&& (bLinearActive
|| bLinearUsed
))
414 XFillTransparenceItem
aItem(0);
415 SdrShadowTransparenceItem
aShadowItem(0);
417 rAttrs
.Put(aShadowItem
);
418 bModified
= sal_True
;
420 rAttrs
.Put (CntUInt16Item(SID_PAGE_TYPE
,nPageType
));
424 void SvxTransparenceTabPage::Reset(const SfxItemSet
& rAttrs
)
426 const SfxPoolItem
* pGradientItem
= NULL
;
427 SfxItemState
eStateGradient(rAttrs
.GetItemState(XATTR_FILLFLOATTRANSPARENCE
, sal_True
, &pGradientItem
));
429 pGradientItem
= &rAttrs
.Get(XATTR_FILLFLOATTRANSPARENCE
);
430 sal_Bool bGradActive
= (eStateGradient
== SFX_ITEM_SET
&& ((XFillFloatTransparenceItem
*)pGradientItem
)->IsEnabled());
432 const SfxPoolItem
* pLinearItem
= NULL
;
433 SfxItemState
eStateLinear(rAttrs
.GetItemState(XATTR_FILLTRANSPARENCE
, sal_True
, &pLinearItem
));
435 pLinearItem
= &rAttrs
.Get(XATTR_FILLTRANSPARENCE
);
436 sal_Bool bLinearActive
= (eStateLinear
== SFX_ITEM_SET
&& ((XFillTransparenceItem
*)pLinearItem
)->GetValue() != 0);
438 // transparence gradient
439 const XGradient
& rGradient
= ((XFillFloatTransparenceItem
*)pGradientItem
)->GetGradientValue();
440 XGradientStyle
eXGS(rGradient
.GetGradientStyle());
441 aLbTrgrGradientType
.SelectEntryPos(sal::static_int_cast
< sal_uInt16
>(eXGS
));
442 aMtrTrgrAngle
.SetValue(rGradient
.GetAngle() / 10);
443 aMtrTrgrBorder
.SetValue(rGradient
.GetBorder());
444 aMtrTrgrCenterX
.SetValue(rGradient
.GetXOffset());
445 aMtrTrgrCenterY
.SetValue(rGradient
.GetYOffset());
446 aMtrTrgrStartValue
.SetValue((sal_uInt16
)((((sal_uInt16
)rGradient
.GetStartColor().GetRed() + 1) * 100) / 255));
447 aMtrTrgrEndValue
.SetValue((sal_uInt16
)((((sal_uInt16
)rGradient
.GetEndColor().GetRed() + 1) * 100) / 255));
449 // linear transparence
450 sal_uInt16 nTransp
= ((XFillTransparenceItem
*)pLinearItem
)->GetValue();
451 aMtrTransparent
.SetValue(bLinearActive
? nTransp
: 50);
452 ModifyTransparentHdl_Impl(NULL
);
454 // select the correct radio button
457 // transparence gradient, set controls appropriate to item
458 aRbtTransGradient
.Check();
459 ClickTransGradientHdl_Impl(NULL
);
461 else if(bLinearActive
)
463 // linear transparence
464 aRbtTransLinear
.Check();
465 ClickTransLinearHdl_Impl(NULL
);
470 aRbtTransOff
.Check();
471 ClickTransOffHdl_Impl(NULL
);
472 ModifiedTrgrHdl_Impl(NULL
);
476 aMtrTransparent
.SaveValue();
477 aLbTrgrGradientType
.SaveValue();
478 aMtrTrgrCenterX
.SaveValue();
479 aMtrTrgrCenterY
.SaveValue();
480 aMtrTrgrAngle
.SaveValue();
481 aMtrTrgrBorder
.SaveValue();
482 aMtrTrgrStartValue
.SaveValue();
483 aMtrTrgrEndValue
.SaveValue();
485 sal_Bool bActive
= InitPreview ( rAttrs
);
486 InvalidatePreview ( bActive
);
489 void SvxTransparenceTabPage::ActivatePage(const SfxItemSet
& rSet
)
491 SFX_ITEMSET_ARG (&rSet
,pPageTypeItem
,CntUInt16Item
,SID_PAGE_TYPE
,sal_False
);
493 SetPageType(pPageTypeItem
->GetValue());
495 if(nDlgType
== 0) // area dialog
496 nPageType
= PT_TRANSPARENCE
;
498 InitPreview ( rSet
);
501 int SvxTransparenceTabPage::DeactivatePage(SfxItemSet
* _pSet
)
504 FillItemSet( *_pSet
);
508 void SvxTransparenceTabPage::PointChanged(Window
* , RECT_POINT eRcPt
)
516 sal_Bool
SvxTransparenceTabPage::InitPreview ( const SfxItemSet
& rSet
)
518 // set transparencetyp for preview
519 if ( aRbtTransOff
.IsChecked() )
521 ClickTransOffHdl_Impl(NULL
);
522 } else if ( aRbtTransLinear
.IsChecked() )
524 ClickTransLinearHdl_Impl(NULL
);
525 } else if ( aRbtTransGradient
.IsChecked() )
527 ClickTransGradientHdl_Impl(NULL
);
530 // Get fillstyle for preview
531 rXFSet
.Put ( ( XFillStyleItem
& ) rSet
.Get(XATTR_FILLSTYLE
) );
532 rXFSet
.Put ( ( XFillColorItem
& ) rSet
.Get(XATTR_FILLCOLOR
) );
533 rXFSet
.Put ( ( XFillGradientItem
& ) rSet
.Get(XATTR_FILLGRADIENT
) );
534 rXFSet
.Put ( ( XFillHatchItem
& ) rSet
.Get(XATTR_FILLHATCH
) );
535 rXFSet
.Put ( ( XFillBackgroundItem
&)rSet
.Get(XATTR_FILLBACKGROUND
) );
536 rXFSet
.Put ( ( XFillBitmapItem
& ) rSet
.Get(XATTR_FILLBITMAP
) );
538 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
539 aCtlBitmapPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
541 bBitmap
= ( ( ( XFillStyleItem
& )rSet
.Get(XATTR_FILLSTYLE
) ).GetValue() == XFILL_BITMAP
);
543 // show the right preview window
546 aCtlBitmapPreview
.Show();
547 aCtlXRectPreview
.Hide();
551 aCtlBitmapPreview
.Hide();
552 aCtlXRectPreview
.Show();
555 return !aRbtTransOff
.IsChecked();
558 void SvxTransparenceTabPage::InvalidatePreview (sal_Bool bEnable
)
564 aCtlBitmapPreview
.Enable();
565 aCtlBitmapPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
568 aCtlBitmapPreview
.Disable();
569 aCtlBitmapPreview
.Invalidate();
575 aCtlXRectPreview
.Enable();
576 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
579 aCtlXRectPreview
.Disable();
580 aCtlXRectPreview
.Invalidate();
584 void SvxTransparenceTabPage::PageCreated (SfxAllItemSet aSet
)
586 SFX_ITEMSET_ARG (&aSet
,pPageTypeItem
,SfxUInt16Item
,SID_PAGE_TYPE
,sal_False
);
587 SFX_ITEMSET_ARG (&aSet
,pDlgTypeItem
,SfxUInt16Item
,SID_DLG_TYPE
,sal_False
);
590 SetPageType(pPageTypeItem
->GetValue());
592 SetDlgType(pDlgTypeItem
->GetValue());
595 /*************************************************************************
597 |* Dialog to modify fill-attributes
599 \************************************************************************/
601 SvxAreaTabPage::SvxAreaTabPage( Window
* pParent
, const SfxItemSet
& rInAttrs
) :
603 SvxTabPage ( pParent
, CUI_RES( RID_SVXPAGE_AREA
), rInAttrs
),
605 aFlProp ( this, CUI_RES( FL_PROP
) ),
606 aTypeLB ( this, CUI_RES( LB_AREA_TYPE
) ),
608 aLbColor ( this, CUI_RES( LB_COLOR
) ),
609 aLbGradient ( this, CUI_RES( LB_GRADIENT
) ),
610 aLbHatching ( this, CUI_RES( LB_HATCHING
) ),
611 aLbBitmap ( this, CUI_RES( LB_BITMAP
) ),
612 aCtlBitmapPreview ( this, CUI_RES( CTL_BITMAP_PREVIEW
) ),
614 aTsbStepCount ( this, CUI_RES( TSB_STEPCOUNT
) ),
615 aFlStepCount ( this, CUI_RES( FL_STEPCOUNT
) ),
616 aNumFldStepCount ( this, CUI_RES( NUM_FLD_STEPCOUNT
) ),
618 aCbxHatchBckgrd ( this, CUI_RES( CB_HATCHBCKGRD
) ),
619 aLbHatchBckgrdColor ( this, CUI_RES( LB_HATCHBCKGRDCOLOR
) ),
621 aFlSize ( this, CUI_RES( FL_SIZE
) ),
622 aTsbOriginal ( this, CUI_RES( TSB_ORIGINAL
) ),
623 aTsbScale ( this, CUI_RES( TSB_SCALE
) ),
624 aFtXSize ( this, CUI_RES( FT_X_SIZE
) ),
625 aMtrFldXSize ( this, CUI_RES( MTR_FLD_X_SIZE
) ),
626 aFtYSize ( this, CUI_RES( FT_Y_SIZE
) ),
627 aMtrFldYSize ( this, CUI_RES( MTR_FLD_Y_SIZE
) ),
628 aFlPosition ( this, CUI_RES( FL_POSITION
) ),
629 aCtlPosition ( this, CUI_RES( CTL_POSITION
), RP_RM
, 110, 80, CS_RECT
),
630 aFtXOffset ( this, CUI_RES( FT_X_OFFSET
) ),
631 aMtrFldXOffset ( this, CUI_RES( MTR_FLD_X_OFFSET
) ),
632 aFtYOffset ( this, CUI_RES( FT_Y_OFFSET
) ),
633 aMtrFldYOffset ( this, CUI_RES( MTR_FLD_Y_OFFSET
) ),
634 aTsbTile ( this, CUI_RES( TSB_TILE
) ),
635 aTsbStretch ( this, CUI_RES( TSB_STRETCH
) ),
636 aFlOffset ( this, CUI_RES( FL_OFFSET
) ),
637 aRbtRow ( this, CUI_RES( RBT_ROW
) ),
638 aRbtColumn ( this, CUI_RES( RBT_COLUMN
) ),
639 aMtrFldOffset ( this, CUI_RES( MTR_FLD_OFFSET
) ),
641 aCtlXRectPreview ( this, CUI_RES( CTL_COLOR_PREVIEW
) ),
643 rOutAttrs ( rInAttrs
),
647 pGradientList( NULL
),
648 pHatchingList( NULL
),
651 pnColorListState( 0 ),
652 pnBitmapListState( 0 ),
653 pnGradientListState( 0 ),
654 pnHatchingListState( 0 ),
658 nPos( LISTBOX_ENTRY_NOTFOUND
),
662 pXPool ( (XOutdevItemPool
*) rInAttrs
.GetPool() ),
663 aXFillAttr ( pXPool
),
664 rXFSet ( aXFillAttr
.GetItemSet() )
668 String accName
= String(CUI_RES(STR_EXAMPLE
));
669 aCtlXRectPreview
.SetAccessibleName(accName
);
670 aCtlBitmapPreview
.SetAccessibleName(accName
);
672 // groups that overlay each other
674 aCtlBitmapPreview
.Hide();
677 aTsbStepCount
.Hide();
678 aNumFldStepCount
.Hide();
691 aMtrFldOffset
.Hide();
695 aMtrFldXOffset
.Hide();
697 aMtrFldYOffset
.Hide();
699 // Controls for Hatch-Background
700 aCbxHatchBckgrd
.Hide();
701 aLbHatchBckgrdColor
.Hide();
704 aTsbOriginal
.EnableTriState( sal_False
);
707 // this page needs ExchangeSupport
708 SetExchangeSupport();
711 eFUnit
= GetModuleFieldUnit( rInAttrs
);
719 default: ;//prevent warning
721 SetFieldUnit( aMtrFldXSize
, eFUnit
, sal_True
);
722 SetFieldUnit( aMtrFldYSize
, eFUnit
, sal_True
);
725 SfxItemPool
* pPool
= rOutAttrs
.GetPool();
726 DBG_ASSERT( pPool
, "Wo ist der Pool?" );
727 ePoolUnit
= pPool
->GetMetric( XATTR_FILLBMP_SIZEX
);
729 // setting the output device
730 rXFSet
.Put( XFillStyleItem( XFILL_SOLID
) );
731 rXFSet
.Put( XFillColorItem( String(), COL_BLACK
) );
732 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
733 aCtlBitmapPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
735 aLbColor
.SetSelectHdl( LINK( this, SvxAreaTabPage
, ModifyColorHdl_Impl
) );
736 aLbHatchBckgrdColor
.SetSelectHdl( LINK( this, SvxAreaTabPage
, ModifyHatchBckgrdColorHdl_Impl
) );
737 aCbxHatchBckgrd
.SetToggleHdl( LINK( this, SvxAreaTabPage
, ToggleHatchBckgrdColorHdl_Impl
) );
739 aLbGradient
.SetSelectHdl(
740 LINK( this, SvxAreaTabPage
, ModifyGradientHdl_Impl
) );
741 aLbHatching
.SetSelectHdl(
742 LINK( this, SvxAreaTabPage
, ModifyHatchingHdl_Impl
) );
743 aLbBitmap
.SetSelectHdl(
744 LINK( this, SvxAreaTabPage
, ModifyBitmapHdl_Impl
) );
746 aTsbStepCount
.SetClickHdl(
747 LINK( this, SvxAreaTabPage
, ModifyStepCountHdl_Impl
) );
748 aNumFldStepCount
.SetModifyHdl(
749 LINK( this, SvxAreaTabPage
, ModifyStepCountHdl_Impl
) );
751 Link
aLink( LINK( this, SvxAreaTabPage
, ModifyTileHdl_Impl
) );
752 aTsbTile
.SetClickHdl( aLink
);
753 aTsbStretch
.SetClickHdl( aLink
);
754 aTsbOriginal
.SetClickHdl( aLink
);
755 aMtrFldXSize
.SetModifyHdl( aLink
);
756 aMtrFldYSize
.SetModifyHdl( aLink
);
757 aRbtRow
.SetClickHdl( aLink
);
758 aRbtColumn
.SetClickHdl( aLink
);
759 aMtrFldOffset
.SetModifyHdl( aLink
);
760 aMtrFldXOffset
.SetModifyHdl( aLink
);
761 aMtrFldYOffset
.SetModifyHdl( aLink
);
762 aTsbScale
.SetClickHdl( LINK( this, SvxAreaTabPage
, ClickScaleHdl_Impl
) );
764 aTypeLB
.SetSelectHdl( LINK( this, SvxAreaTabPage
, SelectDialogTypeHdl_Impl
) );
766 // #i76307# always paint the preview in LTR, because this is what the document does
767 aCtlXRectPreview
.EnableRTL(sal_False
);
769 aNumFldStepCount
.SetAccessibleRelationLabeledBy( &aTsbStepCount
);
770 aCtlPosition
.SetAccessibleRelationMemberOf( &aFlPosition
);
771 aLbHatchBckgrdColor
.SetAccessibleRelationLabeledBy( &aCbxHatchBckgrd
);
772 aLbHatchBckgrdColor
.SetAccessibleName(aCbxHatchBckgrd
.GetText());
774 aLbColor
.SetAccessibleRelationMemberOf( &aFlProp
);
775 aMtrFldOffset
.SetAccessibleRelationLabeledBy(&aFlOffset
);
776 aMtrFldOffset
.SetAccessibleName(aFlOffset
.GetText());
778 //fdo#61241 lock down size of this tab page until it's
779 //converted to .ui (remember to use some sizegroups
780 //that take into account hidden frames)
781 Size
aSize(GetSizePixel());
782 set_width_request(aSize
.Width());
783 set_height_request(aSize
.Height());
786 // -----------------------------------------------------------------------
788 void SvxAreaTabPage::Construct()
790 // fill colortables / lists
791 aLbColor
.Fill( pColorList
);
792 aLbHatchBckgrdColor
.Fill ( pColorList
);
794 aLbGradient
.Fill( pGradientList
);
795 aLbHatching
.Fill( pHatchingList
);
796 aLbBitmap
.Fill( pBitmapList
);
799 // -----------------------------------------------------------------------
801 void SvxAreaTabPage::ActivatePage( const SfxItemSet
& rSet
)
804 SFX_ITEMSET_ARG (&rSet
,pPageTypeItem
,SfxUInt16Item
,SID_PAGE_TYPE
,sal_False
);
805 SFX_ITEMSET_ARG (&rSet
,pPosItem
,SfxUInt16Item
,SID_TABPAGE_POS
,sal_False
);
807 SetPageType(pPageTypeItem
->GetValue());
809 SetPos(pPosItem
->GetValue());
810 if( nDlgType
== 0 ) // area dialog
812 *pbAreaTP
= sal_True
;
814 if( pColorList
.is() )
816 sal_uInt16 _nPos
= 0;
818 if( *pnBitmapListState
)
820 if( *pnBitmapListState
& CT_CHANGED
)
821 pBitmapList
= ( (SvxAreaTabDialog
*) GetParentDialog() )->
824 _nPos
= aLbBitmap
.GetSelectEntryPos();
827 aLbBitmap
.Fill( pBitmapList
);
828 nCount
= aLbBitmap
.GetEntryCount();
830 ; // This case should never occur
831 else if( nCount
<= _nPos
)
832 aLbBitmap
.SelectEntryPos( 0 );
834 aLbBitmap
.SelectEntryPos( _nPos
);
835 ModifyBitmapHdl_Impl( this );
838 if( *pnHatchingListState
)
840 if( *pnHatchingListState
& CT_CHANGED
)
841 pHatchingList
= ( (SvxAreaTabDialog
*) GetParentDialog() )->
842 GetNewHatchingList();
844 _nPos
= aLbHatching
.GetSelectEntryPos();
847 aLbHatching
.Fill( pHatchingList
);
848 nCount
= aLbHatching
.GetEntryCount();
850 ; // This case should never occur
851 else if( nCount
<= _nPos
)
852 aLbHatching
.SelectEntryPos( 0 );
854 aLbHatching
.SelectEntryPos( _nPos
);
855 ModifyHatchingHdl_Impl( this );
857 ModifyHatchBckgrdColorHdl_Impl( this );
860 if( *pnGradientListState
)
862 if( *pnGradientListState
& CT_CHANGED
)
863 pGradientList
= ( (SvxAreaTabDialog
*) GetParentDialog() )->
864 GetNewGradientList();
866 _nPos
= aLbGradient
.GetSelectEntryPos();
869 aLbGradient
.Fill( pGradientList
);
870 nCount
= aLbGradient
.GetEntryCount();
872 ; // This case should never occur
873 else if( nCount
<= _nPos
)
874 aLbGradient
.SelectEntryPos( 0 );
876 aLbGradient
.SelectEntryPos( _nPos
);
877 ModifyGradientHdl_Impl( this );
880 if( *pnColorListState
)
882 if( *pnColorListState
& CT_CHANGED
)
883 pColorList
= ( (SvxAreaTabDialog
*) GetParentDialog() )->
886 _nPos
= aLbColor
.GetSelectEntryPos();
888 aLbColor
.Fill( pColorList
);
889 nCount
= aLbColor
.GetEntryCount();
891 ; // This case should never occur
892 else if( nCount
<= _nPos
)
893 aLbColor
.SelectEntryPos( 0 );
895 aLbColor
.SelectEntryPos( _nPos
);
897 ModifyColorHdl_Impl( this );
899 // Backgroundcolor of hatch
900 _nPos
= aLbHatchBckgrdColor
.GetSelectEntryPos();
901 aLbHatchBckgrdColor
.Clear();
902 aLbHatchBckgrdColor
.Fill( pColorList
);
903 nCount
= aLbHatchBckgrdColor
.GetEntryCount();
905 ; // This case should never occur
906 else if( nCount
<= _nPos
)
907 aLbHatchBckgrdColor
.SelectEntryPos( 0 );
909 aLbHatchBckgrdColor
.SelectEntryPos( _nPos
);
911 ModifyHatchBckgrdColorHdl_Impl( this );
914 // evaluate if any other Tabpage set another filltype
915 if( aTypeLB
.GetSelectEntryPos() > XFILL_NONE
)
920 aTypeLB
.SelectEntryPos( XFILL_GRADIENT
);
921 aLbGradient
.SelectEntryPos( _nPos
);
922 ClickGradientHdl_Impl();
926 aTypeLB
.SelectEntryPos( XFILL_HATCH
);
927 aLbHatching
.SelectEntryPos( _nPos
);
928 ClickHatchingHdl_Impl();
932 aTypeLB
.SelectEntryPos( XFILL_BITMAP
);
933 aLbBitmap
.SelectEntryPos( _nPos
);
934 ClickBitmapHdl_Impl();
938 aTypeLB
.SelectEntryPos( XFILL_SOLID
);
939 aLbColor
.SelectEntryPos( _nPos
);
940 aLbHatchBckgrdColor
.SelectEntryPos( _nPos
);
941 ClickColorHdl_Impl();
950 // -----------------------------------------------------------------------
952 int SvxAreaTabPage::DeactivatePage( SfxItemSet
* _pSet
)
954 if( nDlgType
== 0 ) // area dialog
956 sal_uInt16 nPosOrig
= nPos
;
957 XFillStyle eStyle
= (XFillStyle
) aTypeLB
.GetSelectEntryPos();
962 nPageType
= PT_GRADIENT
;
963 nPos
= aLbGradient
.GetSelectEntryPos();
964 if( nPosOrig
!= nPos
)
965 *pnGradientListState
|= CT_MODIFIED
;
970 nPageType
= PT_HATCH
;
971 nPos
= aLbHatching
.GetSelectEntryPos();
972 if( nPosOrig
!= nPos
)
973 *pnHatchingListState
|= CT_MODIFIED
;
978 nPageType
= PT_BITMAP
;
979 nPos
= aLbBitmap
.GetSelectEntryPos();
980 if( nPosOrig
!= nPos
)
981 *pnBitmapListState
|= CT_MODIFIED
;
986 nPageType
= PT_COLOR
;
987 nPos
= aLbColor
.GetSelectEntryPos();
988 if( nPosOrig
!= nPos
)
989 *pnColorListState
|= CT_MODIFIED
;
992 default: ;//prevent warning
997 FillItemSet( *_pSet
);
999 return( LEAVE_PAGE
);
1002 // -----------------------------------------------------------------------
1004 sal_Bool
SvxAreaTabPage::FillItemSet( SfxItemSet
& rAttrs
)
1007 sal_Bool bModified
= sal_False
;
1009 if( nDlgType
!= 0 || *pbAreaTP
)
1011 const SfxPoolItem
* pOld
= NULL
;
1012 XFillStyle eStyle
= (XFillStyle
) aTypeLB
.GetSelectEntryPos();
1013 XFillStyle eSavedStyle
= (XFillStyle
) aTypeLB
.GetSavedValue();
1018 if( eSavedStyle
!= eStyle
)
1020 XFillStyleItem
aStyleItem( XFILL_NONE
);
1021 pOld
= GetOldItem( rAttrs
, XATTR_FILLSTYLE
);
1022 if ( !pOld
|| !( *(const XFillStyleItem
*)pOld
== aStyleItem
) )
1024 rAttrs
.Put( aStyleItem
);
1025 bModified
= sal_True
;
1032 _nPos
= aLbColor
.GetSelectEntryPos();
1033 if( _nPos
!= LISTBOX_ENTRY_NOTFOUND
&&
1034 _nPos
!= aLbColor
.GetSavedValue() )
1036 XFillColorItem
aItem( aLbColor
.GetSelectEntry(),
1037 aLbColor
.GetSelectEntryColor() );
1038 pOld
= GetOldItem( rAttrs
, XATTR_FILLCOLOR
);
1039 if ( !pOld
|| !( *(const XFillColorItem
*)pOld
== aItem
) )
1041 rAttrs
.Put( aItem
);
1042 bModified
= sal_True
;
1046 if( (eSavedStyle
!= eStyle
) &&
1048 SFX_ITEM_SET
== rOutAttrs
.GetItemState( GetWhich( XATTR_FILLCOLOR
), sal_True
) ) )
1050 XFillStyleItem
aStyleItem( XFILL_SOLID
);
1051 pOld
= GetOldItem( rAttrs
, XATTR_FILLSTYLE
);
1052 if ( !pOld
|| !( *(const XFillStyleItem
*)pOld
== aStyleItem
) )
1054 rAttrs
.Put( aStyleItem
);
1055 bModified
= sal_True
;
1060 case XFILL_GRADIENT
:
1062 _nPos
= aLbGradient
.GetSelectEntryPos();
1063 if( _nPos
!= LISTBOX_ENTRY_NOTFOUND
&&
1064 _nPos
!= aLbGradient
.GetSavedValue() )
1066 XGradient aGradient
= pGradientList
->GetGradient( _nPos
)->GetGradient();
1067 String aString
= aLbGradient
.GetSelectEntry();
1068 XFillGradientItem
aItem( aString
, aGradient
);
1069 pOld
= GetOldItem( rAttrs
, XATTR_FILLGRADIENT
);
1070 if ( !pOld
|| !( *(const XFillGradientItem
*)pOld
== aItem
) )
1072 rAttrs
.Put( aItem
);
1073 bModified
= sal_True
;
1077 if( (eSavedStyle
!= eStyle
) &&
1079 SFX_ITEM_SET
== rOutAttrs
.GetItemState( GetWhich( XATTR_FILLGRADIENT
), sal_True
) ) )
1081 XFillStyleItem
aStyleItem( XFILL_GRADIENT
);
1082 pOld
= GetOldItem( rAttrs
, XATTR_FILLSTYLE
);
1083 if ( !pOld
|| !( *(const XFillStyleItem
*)pOld
== aStyleItem
) )
1085 rAttrs
.Put( aStyleItem
);
1086 bModified
= sal_True
;
1093 _nPos
= aLbHatching
.GetSelectEntryPos();
1094 if( _nPos
!= LISTBOX_ENTRY_NOTFOUND
&&
1095 _nPos
!= aLbHatching
.GetSavedValue() )
1097 XHatch aHatching
= pHatchingList
->GetHatch( _nPos
)->GetHatch();
1098 String aString
= aLbHatching
.GetSelectEntry();
1099 XFillHatchItem
aItem( aString
, aHatching
);
1100 pOld
= GetOldItem( rAttrs
, XATTR_FILLHATCH
);
1101 if ( !pOld
|| !( *(const XFillHatchItem
*)pOld
== aItem
) )
1103 rAttrs
.Put( aItem
);
1104 bModified
= sal_True
;
1107 XFillBackgroundItem
aItem ( aCbxHatchBckgrd
.IsChecked() );
1108 rAttrs
.Put( aItem
);
1109 nPos
= aLbHatchBckgrdColor
.GetSelectEntryPos();
1110 if( nPos
!= LISTBOX_ENTRY_NOTFOUND
&&
1111 nPos
!= aLbHatchBckgrdColor
.GetSavedValue() )
1113 XFillColorItem
aFillColorItem( aLbHatchBckgrdColor
.GetSelectEntry(),
1114 aLbHatchBckgrdColor
.GetSelectEntryColor() );
1115 pOld
= GetOldItem( rAttrs
, XATTR_FILLCOLOR
);
1116 if ( !pOld
|| !( *(const XFillColorItem
*)pOld
== aFillColorItem
) )
1118 rAttrs
.Put( aFillColorItem
);
1119 bModified
= sal_True
;
1123 if( (eSavedStyle
!= eStyle
) &&
1125 SFX_ITEM_SET
== rOutAttrs
.GetItemState( GetWhich( XATTR_FILLHATCH
), sal_True
) ) )
1127 XFillStyleItem
aStyleItem( XFILL_HATCH
);
1128 pOld
= GetOldItem( rAttrs
, XATTR_FILLSTYLE
);
1129 if ( !pOld
|| !( *(const XFillStyleItem
*)pOld
== aStyleItem
) )
1131 rAttrs
.Put( aStyleItem
);
1132 bModified
= sal_True
;
1139 nPos
= aLbBitmap
.GetSelectEntryPos();
1140 if( nPos
!= LISTBOX_ENTRY_NOTFOUND
&&
1141 nPos
!= aLbBitmap
.GetSavedValue() )
1143 const XBitmapEntry
* pXBitmapEntry
= pBitmapList
->GetBitmap(nPos
);
1144 const String
aString(aLbBitmap
.GetSelectEntry());
1145 const XFillBitmapItem
aFillBitmapItem(aString
, pXBitmapEntry
->GetGraphicObject());
1146 pOld
= GetOldItem( rAttrs
, XATTR_FILLBITMAP
);
1147 if ( !pOld
|| !( *(const XFillBitmapItem
*)pOld
== aFillBitmapItem
) )
1149 rAttrs
.Put( aFillBitmapItem
);
1150 bModified
= sal_True
;
1154 if( (eSavedStyle
!= eStyle
) &&
1156 SFX_ITEM_SET
== rOutAttrs
.GetItemState( GetWhich( XATTR_FILLBITMAP
), sal_True
) ) )
1158 XFillStyleItem
aStyleItem( XFILL_BITMAP
);
1159 pOld
= GetOldItem( rAttrs
, XATTR_FILLSTYLE
);
1160 if ( !pOld
|| !( *(const XFillStyleItem
*)pOld
== aStyleItem
) )
1162 rAttrs
.Put( aStyleItem
);
1163 bModified
= sal_True
;
1171 if( aTsbStepCount
.IsEnabled() )
1173 sal_uInt16 nValue
= 0;
1174 sal_Bool bValueModified
= sal_False
;
1175 TriState eState
= aTsbStepCount
.GetState();
1176 if( eState
== STATE_CHECK
)
1178 if( eState
!= aTsbStepCount
.GetSavedValue() )
1179 bValueModified
= sal_True
;
1183 // condition != Disabled ?
1184 if( !aNumFldStepCount
.GetText().isEmpty() )
1186 nValue
= (sal_uInt16
) aNumFldStepCount
.GetValue();
1187 if( nValue
!= (sal_uInt16
) aNumFldStepCount
.GetSavedValue().toInt32() )
1188 bValueModified
= sal_True
;
1191 if( bValueModified
)
1193 XGradientStepCountItem
aFillBitmapItem( nValue
);
1194 pOld
= GetOldItem( rAttrs
, XATTR_GRADIENTSTEPCOUNT
);
1195 if ( !pOld
|| !( *(const XGradientStepCountItem
*)pOld
== aFillBitmapItem
) )
1197 rAttrs
.Put( aFillBitmapItem
);
1198 bModified
= sal_True
;
1203 if( aTsbTile
.IsEnabled() )
1205 TriState eState
= aTsbTile
.GetState();
1206 if( eState
!= aTsbTile
.GetSavedValue() )
1208 XFillBmpTileItem
aFillBmpTileItem(
1209 sal::static_int_cast
< sal_Bool
>( eState
) );
1210 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_TILE
);
1211 if ( !pOld
|| !( *(const XFillBmpTileItem
*)pOld
== aFillBmpTileItem
) )
1213 rAttrs
.Put( aFillBmpTileItem
);
1214 bModified
= sal_True
;
1219 if( aTsbStretch
.IsEnabled() )
1221 TriState eState
= aTsbStretch
.GetState();
1222 if( eState
!= aTsbStretch
.GetSavedValue() )
1224 XFillBmpStretchItem
aFillBmpStretchItem(
1225 sal::static_int_cast
< sal_Bool
>( eState
) );
1226 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_STRETCH
);
1227 if ( !pOld
|| !( *(const XFillBmpStretchItem
*)pOld
== aFillBmpStretchItem
) )
1229 rAttrs
.Put( aFillBmpStretchItem
);
1230 bModified
= sal_True
;
1235 // Original size (in the UI) is used as follows:
1236 // Controls are disabled, but have to be set.
1237 // SizeX = 0; SizeY = 0; Log = sal_True
1240 TriState eState
= aTsbScale
.GetState();
1241 if( eState
!= aTsbScale
.GetSavedValue() ||
1242 ( !aTsbScale
.IsEnabled() &&
1243 aTsbOriginal
.IsEnabled() &&
1244 aTsbScale
.GetSavedValue() != STATE_CHECK
) )
1246 XFillBmpSizeLogItem
* pItem
= NULL
;
1247 if( aTsbScale
.IsEnabled() )
1248 pItem
= new XFillBmpSizeLogItem( eState
== STATE_NOCHECK
);
1249 else if( aTsbOriginal
.IsEnabled() && aTsbOriginal
.GetState() == STATE_CHECK
)
1250 pItem
= new XFillBmpSizeLogItem( sal_True
);
1254 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_SIZELOG
);
1255 if ( !pOld
|| !( *(const XFillBmpSizeLogItem
*)pOld
== *pItem
) )
1257 rAttrs
.Put( *pItem
);
1258 bModified
= sal_True
;
1265 String aStr
= aMtrFldXSize
.GetText();
1267 XFillBmpSizeXItem
* pItem
= NULL
;
1268 TriState eScaleState
= aTsbScale
.GetState();
1270 if( aMtrFldXSize
.IsEnabled() &&
1272 aStr
!= aMtrFldXSize
.GetSavedValue() )
1274 if( eScaleState
== STATE_NOCHECK
)
1275 pItem
= new XFillBmpSizeXItem( GetCoreValue( aMtrFldXSize
, ePoolUnit
) );
1278 // Percentage values are set negatively, so that
1279 // they aren't scaled; this is considered in the item.
1280 pItem
= new XFillBmpSizeXItem( -labs( static_cast<long>(aMtrFldXSize
.GetValue()) ) );
1283 else if( aTsbOriginal
.IsEnabled() &&
1284 aTsbOriginal
.GetState() == STATE_CHECK
&&
1285 !aMtrFldXSize
.GetSavedValue().isEmpty() )
1286 pItem
= new XFillBmpSizeXItem( 0 );
1290 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_SIZEX
);
1291 if ( !pOld
|| !( *(const XFillBmpSizeXItem
*)pOld
== *pItem
) )
1293 rAttrs
.Put( *pItem
);
1294 bModified
= sal_True
;
1301 aStr
= aMtrFldYSize
.GetText();
1303 XFillBmpSizeYItem
* pItem
= NULL
;
1304 TriState eScaleState
= aTsbScale
.GetState();
1306 if( aMtrFldYSize
.IsEnabled() &&
1308 aStr
!= aMtrFldYSize
.GetSavedValue() )
1310 if( eScaleState
== STATE_NOCHECK
)
1311 pItem
= new XFillBmpSizeYItem( GetCoreValue( aMtrFldYSize
, ePoolUnit
) );
1314 // Percentage values are set negatively, so that
1315 // they aren't scaled by the MetricItem;
1316 // this is considered in the item.
1317 pItem
= new XFillBmpSizeYItem( -labs( static_cast<long>(aMtrFldYSize
.GetValue()) ) );
1320 else if( aTsbOriginal
.IsEnabled() &&
1321 aTsbOriginal
.GetState() == STATE_CHECK
&&
1322 !aMtrFldYSize
.GetSavedValue().isEmpty() )
1323 pItem
= new XFillBmpSizeYItem( 0 );
1327 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_SIZEY
);
1328 if ( !pOld
|| !( *(const XFillBmpSizeYItem
*)pOld
== *pItem
) )
1330 rAttrs
.Put( *pItem
);
1331 bModified
= sal_True
;
1340 if( aMtrFldOffset
.IsEnabled() )
1342 String aMtrString
= aMtrFldOffset
.GetText();
1343 if( ( aMtrString
.Len() > 0 &&
1344 aMtrString
!= aMtrFldOffset
.GetSavedValue() ) ||
1345 aRbtRow
.GetSavedValue() != aRbtRow
.IsChecked() ||
1346 aRbtColumn
.GetSavedValue() != aRbtColumn
.IsChecked() )
1348 if( aRbtRow
.IsChecked() )
1350 XFillBmpTileOffsetXItem
aFillBmpTileOffsetXItem( (sal_uInt16
) aMtrFldOffset
.GetValue() );
1351 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_TILEOFFSETX
);
1352 if ( !pOld
|| !( *(const XFillBmpTileOffsetXItem
*)pOld
== aFillBmpTileOffsetXItem
) )
1354 rAttrs
.Put( aFillBmpTileOffsetXItem
);
1355 rAttrs
.Put( XFillBmpTileOffsetYItem( 0 ) );
1356 bModified
= sal_True
;
1359 else if( aRbtColumn
.IsChecked() )
1361 XFillBmpTileOffsetYItem
aFillBmpTileOffsetYItem( (sal_uInt16
) aMtrFldOffset
.GetValue() );
1362 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_TILEOFFSETY
);
1363 if ( !pOld
|| !( *(const XFillBmpTileOffsetYItem
*)pOld
== aFillBmpTileOffsetYItem
) )
1365 rAttrs
.Put( aFillBmpTileOffsetYItem
);
1366 rAttrs
.Put( XFillBmpTileOffsetXItem( 0 ) );
1367 bModified
= sal_True
;
1374 if( aCtlPosition
.IsEnabled() )
1376 sal_Bool bPut
= sal_False
;
1377 RECT_POINT _eRP
= aCtlPosition
.GetActualRP();
1379 if( SFX_ITEM_DONTCARE
== rOutAttrs
.GetItemState( XATTR_FILLBMP_POS
) )
1383 RECT_POINT eValue
= ( ( const XFillBmpPosItem
& ) rOutAttrs
.Get( XATTR_FILLBMP_POS
) ).GetValue();
1384 if( eValue
!= _eRP
)
1389 XFillBmpPosItem
aFillBmpPosItem( _eRP
);
1390 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_POS
);
1391 if ( !pOld
|| !( *(const XFillBmpPosItem
*)pOld
== aFillBmpPosItem
) )
1393 rAttrs
.Put( aFillBmpPosItem
);
1394 bModified
= sal_True
;
1400 if( aMtrFldXOffset
.IsEnabled() )
1402 String sMtrXOffset
= aMtrFldXOffset
.GetText();
1403 if( sMtrXOffset
.Len() > 0 &&
1404 sMtrXOffset
!= aMtrFldXOffset
.GetSavedValue() )
1406 XFillBmpPosOffsetXItem
aFillBmpPosOffsetXItem( (sal_uInt16
) aMtrFldXOffset
.GetValue() );
1407 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_POSOFFSETX
);
1408 if ( !pOld
|| !( *(const XFillBmpPosOffsetXItem
*)pOld
== aFillBmpPosOffsetXItem
) )
1410 rAttrs
.Put( aFillBmpPosOffsetXItem
);
1411 bModified
= sal_True
;
1417 if( aMtrFldYOffset
.IsEnabled() )
1419 String sMtrYOffset
= aMtrFldYOffset
.GetText();
1420 if( sMtrYOffset
.Len() > 0 &&
1421 sMtrYOffset
!= aMtrFldYOffset
.GetSavedValue() )
1423 XFillBmpPosOffsetYItem
aFillBmpPosOffsetYItem( (sal_uInt16
) aMtrFldYOffset
.GetValue() );
1424 pOld
= GetOldItem( rAttrs
, XATTR_FILLBMP_POSOFFSETY
);
1425 if ( !pOld
|| !( *(const XFillBmpPosOffsetYItem
*)pOld
== aFillBmpPosOffsetYItem
) )
1427 rAttrs
.Put( aFillBmpPosOffsetYItem
);
1428 bModified
= sal_True
;
1432 rAttrs
.Put (SfxUInt16Item(SID_PAGE_TYPE
,nPageType
));
1433 rAttrs
.Put (SfxUInt16Item(SID_TABPAGE_POS
,nPos
));
1436 return( bModified
);
1439 // -----------------------------------------------------------------------
1441 void SvxAreaTabPage::Reset( const SfxItemSet
& rAttrs
)
1444 if( rAttrs
.GetItemState( XATTR_FILLSTYLE
) != SFX_ITEM_DONTCARE
)
1446 eXFS
= (XFillStyle
) ( ( ( const XFillStyleItem
& ) rAttrs
.
1447 Get( GetWhich( XATTR_FILLSTYLE
) ) ).GetValue() );
1448 aTypeLB
.SelectEntryPos( sal::static_int_cast
< sal_uInt16
>( eXFS
) );
1452 ClickInvisibleHdl_Impl();
1456 if( SFX_ITEM_DONTCARE
!= rAttrs
.GetItemState( XATTR_FILLCOLOR
) )
1458 XFillColorItem
aColorItem( ( const XFillColorItem
& )
1459 rAttrs
.Get( XATTR_FILLCOLOR
) );
1461 aLbColor
.SelectEntry( aColorItem
.GetColorValue() );
1462 aLbHatchBckgrdColor
.SelectEntry( aColorItem
.GetColorValue() );
1464 ClickColorHdl_Impl();
1468 case XFILL_GRADIENT
:
1469 if( SFX_ITEM_DONTCARE
!= rAttrs
.GetItemState( XATTR_FILLGRADIENT
) )
1471 XFillGradientItem
aGradientItem( ( ( const XFillGradientItem
& )
1472 rAttrs
.Get( XATTR_FILLGRADIENT
) ) );
1473 String
aString( aGradientItem
.GetName() );
1474 XGradient
aGradient( aGradientItem
.GetGradientValue() );
1476 aLbGradient
.SelectEntryByList( pGradientList
, aString
, aGradient
);
1478 ClickGradientHdl_Impl();
1482 if( SFX_ITEM_DONTCARE
!= rAttrs
.GetItemState( XATTR_FILLHATCH
) )
1484 aLbHatching
.SelectEntry( ( ( const XFillHatchItem
& )
1485 rAttrs
.Get( XATTR_FILLHATCH
) ).GetName() );
1487 ClickHatchingHdl_Impl();
1489 if ( SFX_ITEM_DONTCARE
!= rAttrs
.GetItemState ( XATTR_FILLBACKGROUND
) )
1491 aCbxHatchBckgrd
.Check ( ( ( const XFillBackgroundItem
& ) rAttrs
.Get ( XATTR_FILLBACKGROUND
) ).GetValue() );
1493 ToggleHatchBckgrdColorHdl_Impl( this );
1494 if( SFX_ITEM_DONTCARE
!= rAttrs
.GetItemState( XATTR_FILLCOLOR
) )
1496 XFillColorItem
aColorItem( ( const XFillColorItem
& )
1497 rAttrs
.Get( XATTR_FILLCOLOR
) );
1499 aLbColor
.SelectEntry( aColorItem
.GetColorValue() );
1500 aLbHatchBckgrdColor
.SelectEntry( aColorItem
.GetColorValue() );
1506 if( SFX_ITEM_DONTCARE
!= rAttrs
.GetItemState( XATTR_FILLBITMAP
) )
1508 XFillBitmapItem
aBitmapItem( ( const XFillBitmapItem
& )
1509 rAttrs
.Get( XATTR_FILLBITMAP
) );
1511 String
aString( aBitmapItem
.GetName() );
1512 aLbBitmap
.SelectEntry( aString
);
1514 ClickBitmapHdl_Impl();
1524 // make all LBs not accessible
1529 aCtlBitmapPreview
.Hide();
1533 // so that Reset() also works correctly with Back
1534 aTypeLB
.SetNoSelection();
1538 if( ( rAttrs
.GetItemState( XATTR_GRADIENTSTEPCOUNT
) != SFX_ITEM_DONTCARE
) ||
1539 ( rAttrs
.GetItemState( XATTR_FILLSTYLE
) != SFX_ITEM_DONTCARE
) )
1541 aTsbStepCount
.EnableTriState( sal_False
);
1542 sal_uInt16 nValue
= ( ( const XGradientStepCountItem
& ) rAttrs
.Get( XATTR_GRADIENTSTEPCOUNT
) ).GetValue();
1545 aTsbStepCount
.SetState( STATE_CHECK
);
1546 aNumFldStepCount
.SetText( String() );
1550 aTsbStepCount
.SetState( STATE_NOCHECK
);
1551 aNumFldStepCount
.SetValue( nValue
);
1553 ModifyStepCountHdl_Impl( &aTsbStepCount
);
1557 aTsbStepCount
.SetState( STATE_DONTKNOW
);
1558 aNumFldStepCount
.SetText( String() );
1561 // attributes for the bitmap filling
1563 if( rAttrs
.GetItemState( XATTR_FILLBMP_TILE
) != SFX_ITEM_DONTCARE
)
1565 aTsbTile
.EnableTriState( sal_False
);
1567 if( ( ( const XFillBmpTileItem
& ) rAttrs
.Get( XATTR_FILLBMP_TILE
) ).GetValue() )
1568 aTsbTile
.SetState( STATE_CHECK
);
1570 aTsbTile
.SetState( STATE_NOCHECK
);
1573 aTsbTile
.SetState( STATE_DONTKNOW
);
1575 if( rAttrs
.GetItemState( XATTR_FILLBMP_STRETCH
) != SFX_ITEM_DONTCARE
)
1577 aTsbStretch
.EnableTriState( sal_False
);
1579 if( ( ( const XFillBmpStretchItem
& ) rAttrs
.Get( XATTR_FILLBMP_STRETCH
) ).GetValue() )
1580 aTsbStretch
.SetState( STATE_CHECK
);
1582 aTsbStretch
.SetState( STATE_NOCHECK
);
1585 aTsbStretch
.SetState( STATE_DONTKNOW
);
1589 if( rAttrs
.GetItemState( XATTR_FILLBMP_SIZELOG
) != SFX_ITEM_DONTCARE
)
1591 aTsbScale
.EnableTriState( sal_False
);
1593 if( ( ( const XFillBmpSizeLogItem
& ) rAttrs
.Get( XATTR_FILLBMP_SIZELOG
) ).GetValue() )
1594 aTsbScale
.SetState( STATE_NOCHECK
);
1596 aTsbScale
.SetState( STATE_CHECK
);
1598 ClickScaleHdl_Impl( NULL
);
1601 aTsbScale
.SetState( STATE_DONTKNOW
);
1604 // determine status for the original size
1605 TriState eOriginal
= STATE_NOCHECK
;
1608 if( rAttrs
.GetItemState( XATTR_FILLBMP_SIZEX
) != SFX_ITEM_DONTCARE
)
1610 sal_Int32 nValue
= ( ( const XFillBmpSizeXItem
& ) rAttrs
.Get( XATTR_FILLBMP_SIZEX
) ).GetValue();
1611 if( aTsbScale
.GetState() == STATE_CHECK
)
1613 // If there's a percentage value in the item,
1614 // it is negative because of the MetricItems.
1615 aMtrFldXSize
.SetValue( labs( nValue
) );
1618 SetMetricValue( aMtrFldXSize
, nValue
, ePoolUnit
);
1619 aMtrFldXSize
.SaveValue();
1623 eOriginal
= STATE_CHECK
;
1624 // value would be too small otherwise when turning off the original size
1625 // (performance problem)
1626 aMtrFldXSize
.SetValue( 100 );
1631 aMtrFldXSize
.SetText( String() );
1632 aMtrFldXSize
.SaveValue();
1636 if( rAttrs
.GetItemState( XATTR_FILLBMP_SIZEY
) != SFX_ITEM_DONTCARE
)
1638 sal_Int32 nValue
= ( ( const XFillBmpSizeYItem
& ) rAttrs
.Get( XATTR_FILLBMP_SIZEY
) ).GetValue();
1639 if( aTsbScale
.GetState() == STATE_CHECK
)
1641 // If there's a percentage value in the item,
1642 // it is negative because of the MetricItems.
1643 aMtrFldYSize
.SetValue( labs( nValue
) );
1646 SetMetricValue( aMtrFldYSize
, nValue
, ePoolUnit
);
1647 aMtrFldYSize
.SaveValue();
1650 aMtrFldYSize
.SetValue( 100 ); //s.o.
1652 eOriginal
= STATE_NOCHECK
;
1656 aMtrFldYSize
.SetText( String() );
1657 aMtrFldYSize
.SaveValue();
1658 eOriginal
= STATE_NOCHECK
;
1662 aTsbOriginal
.SetState( eOriginal
);
1664 // #93372# Setting proper state after changing button
1665 ModifyTileHdl_Impl( NULL
);
1670 if( rAttrs
.GetItemState( XATTR_FILLBMP_TILEOFFSETX
) != SFX_ITEM_DONTCARE
)
1672 sal_uInt16 nValue
= ( ( const XFillBmpTileOffsetXItem
& ) rAttrs
.Get( XATTR_FILLBMP_TILEOFFSETX
) ).GetValue();
1675 aMtrFldOffset
.SetValue( nValue
);
1678 else if( rAttrs
.GetItemState( XATTR_FILLBMP_TILEOFFSETY
) != SFX_ITEM_DONTCARE
)
1680 nValue
= ( ( const XFillBmpTileOffsetYItem
& ) rAttrs
.Get( XATTR_FILLBMP_TILEOFFSETY
) ).GetValue();
1683 aMtrFldOffset
.SetValue( nValue
);
1688 aMtrFldOffset
.SetValue( 0 );
1691 aMtrFldOffset
.SetText( String() );
1695 if( rAttrs
.GetItemState( XATTR_FILLBMP_POS
) != SFX_ITEM_DONTCARE
)
1697 RECT_POINT eValue
= ( ( const XFillBmpPosItem
& ) rAttrs
.Get( XATTR_FILLBMP_POS
) ).GetValue();
1698 aCtlPosition
.SetActualRP( eValue
);
1701 aCtlPosition
.Reset();
1704 if( rAttrs
.GetItemState( XATTR_FILLBMP_POSOFFSETX
) != SFX_ITEM_DONTCARE
)
1706 sal_Int32 nValue
= ( ( const XFillBmpPosOffsetXItem
& ) rAttrs
.Get( XATTR_FILLBMP_POSOFFSETX
) ).GetValue();
1707 aMtrFldXOffset
.SetValue( nValue
);
1710 aMtrFldXOffset
.SetText( String() );
1713 if( rAttrs
.GetItemState( XATTR_FILLBMP_POSOFFSETY
) != SFX_ITEM_DONTCARE
)
1715 sal_Int32 nValue
= ( ( const XFillBmpPosOffsetYItem
& ) rAttrs
.Get( XATTR_FILLBMP_POSOFFSETY
) ).GetValue();
1716 aMtrFldYOffset
.SetValue( nValue
);
1719 aMtrFldYOffset
.SetText( String() );
1721 // not earlier so that tile and stretch are considered
1722 if( aTypeLB
.GetSelectEntryPos() == XFILL_BITMAP
)
1723 ClickBitmapHdl_Impl();
1725 aTypeLB
.SaveValue();
1726 aLbColor
.SaveValue();
1727 aLbGradient
.SaveValue();
1728 aLbHatching
.SaveValue();
1729 aLbHatchBckgrdColor
.SaveValue();
1730 aLbBitmap
.SaveValue();
1731 aTsbStepCount
.SaveValue();
1732 aNumFldStepCount
.SaveValue();
1733 aTsbTile
.SaveValue();
1734 aTsbStretch
.SaveValue();
1735 aTsbScale
.SaveValue();
1736 aRbtRow
.SaveValue();
1737 aRbtColumn
.SaveValue();
1738 aMtrFldOffset
.SaveValue();
1739 aMtrFldXOffset
.SaveValue();
1740 aMtrFldYOffset
.SaveValue();
1743 // -----------------------------------------------------------------------
1745 SfxTabPage
* SvxAreaTabPage::Create( Window
* pWindow
,
1746 const SfxItemSet
& rAttrs
)
1748 return( new SvxAreaTabPage( pWindow
, rAttrs
) );
1751 //------------------------------------------------------------------------
1753 sal_uInt16
* SvxAreaTabPage::GetRanges()
1755 return( pAreaRanges
);
1758 //------------------------------------------------------------------------
1759 IMPL_LINK_NOARG(SvxAreaTabPage
, SelectDialogTypeHdl_Impl
)
1761 switch( (XFillStyle
)aTypeLB
.GetSelectEntryPos() )
1763 case XFILL_NONE
: ClickInvisibleHdl_Impl(); break;
1764 case XFILL_SOLID
: ClickColorHdl_Impl(); break;
1765 case XFILL_GRADIENT
: ClickGradientHdl_Impl(); break;
1766 case XFILL_HATCH
: ClickHatchingHdl_Impl(); break;
1767 case XFILL_BITMAP
: ClickBitmapHdl_Impl(); break;
1773 void SvxAreaTabPage::ClickInvisibleHdl_Impl()
1778 aTsbOriginal
.Hide();
1780 aMtrFldXSize
.Hide();
1782 aMtrFldYSize
.Hide();
1786 aMtrFldOffset
.Hide();
1788 aCtlPosition
.Hide();
1790 aMtrFldXOffset
.Hide();
1792 aMtrFldYOffset
.Hide();
1799 aCtlXRectPreview
.Hide();
1800 aCtlBitmapPreview
.Hide();
1802 aFlStepCount
.Hide();
1803 aTsbStepCount
.Hide();
1804 aNumFldStepCount
.Hide();
1806 // Controls for Hatch-Background
1807 aCbxHatchBckgrd
.Hide();
1808 aLbHatchBckgrdColor
.Hide();
1810 rXFSet
.Put( XFillStyleItem( XFILL_NONE
) );
1811 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
1812 aCtlBitmapPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
1814 aCtlXRectPreview
.Invalidate();
1815 aCtlBitmapPreview
.Invalidate();
1818 //------------------------------------------------------------------------
1820 void SvxAreaTabPage::ClickColorHdl_Impl()
1825 aTsbOriginal
.Hide();
1827 aMtrFldXSize
.Hide();
1829 aMtrFldYSize
.Hide();
1833 aMtrFldOffset
.Hide();
1835 aCtlPosition
.Hide();
1837 aMtrFldXOffset
.Hide();
1839 aMtrFldYOffset
.Hide();
1847 aCtlXRectPreview
.Enable();
1848 aCtlXRectPreview
.Show();
1849 aCtlBitmapPreview
.Hide();
1851 aFlStepCount
.Hide();
1852 aTsbStepCount
.Hide();
1853 aNumFldStepCount
.Hide();
1855 // Controls for Hatch-Background
1856 aCbxHatchBckgrd
.Hide();
1857 aLbHatchBckgrdColor
.Hide();
1860 OUString
aString( CUI_RES( RID_SVXSTR_TABLE
) ); aString
+= ": ";
1861 INetURLObject
aURL( pColorList
->GetPath() );
1863 aURL
.Append( pColorList
->GetName() );
1864 DBG_ASSERT( aURL
.GetProtocol() != INET_PROT_NOT_VALID
, "invalid URL" );
1866 if( aURL
.getBase().getLength() > 18 )
1868 aString
+= aURL
.getBase().copy( 0, 15 );
1872 aString
+= aURL
.getBase();
1874 ModifyColorHdl_Impl( this );
1877 //------------------------------------------------------------------------
1879 IMPL_LINK_NOARG(SvxAreaTabPage
, ModifyColorHdl_Impl
)
1881 const SfxPoolItem
* pPoolItem
= NULL
;
1882 sal_uInt16 _nPos
= aLbColor
.GetSelectEntryPos();
1883 aLbHatchBckgrdColor
.SelectEntryPos( _nPos
);
1884 if( _nPos
!= LISTBOX_ENTRY_NOTFOUND
)
1886 rXFSet
.Put( XFillStyleItem( XFILL_SOLID
) );
1887 rXFSet
.Put( XFillColorItem( String(),
1888 aLbColor
.GetSelectEntryColor() ) );
1891 else if( SFX_ITEM_SET
== rOutAttrs
.GetItemState( GetWhich( XATTR_FILLCOLOR
), sal_True
, &pPoolItem
) )
1893 rXFSet
.Put( XFillStyleItem( XFILL_SOLID
) );
1894 Color
aColor( ( ( const XFillColorItem
* ) pPoolItem
)->GetColorValue() );
1895 rXFSet
.Put( XFillColorItem( String(), aColor
) );
1898 rXFSet
.Put( XFillStyleItem( XFILL_NONE
) );
1900 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
1901 aCtlXRectPreview
.Invalidate();
1905 //------------------------------------------------------------------------
1907 void SvxAreaTabPage::ClickGradientHdl_Impl()
1912 aTsbOriginal
.Hide();
1914 aMtrFldXSize
.Hide();
1916 aMtrFldYSize
.Hide();
1920 aMtrFldOffset
.Hide();
1922 aCtlPosition
.Hide();
1924 aMtrFldXOffset
.Hide();
1926 aMtrFldYOffset
.Hide();
1930 aLbGradient
.Enable();
1934 aCtlXRectPreview
.Enable();
1935 aCtlXRectPreview
.Show();
1936 aCtlBitmapPreview
.Hide();
1938 aFlStepCount
.Enable();
1939 aFlStepCount
.Show();
1940 aTsbStepCount
.Enable();
1941 aTsbStepCount
.Show();
1942 aNumFldStepCount
.Show();
1944 // Controls for Hatch-Background
1945 aCbxHatchBckgrd
.Hide();
1946 aLbHatchBckgrdColor
.Hide();
1949 OUString
aString( CUI_RES( RID_SVXSTR_TABLE
) ); aString
+= ": ";
1950 INetURLObject
aURL( pGradientList
->GetPath() );
1952 aURL
.Append( pGradientList
->GetName() );
1953 DBG_ASSERT( aURL
.GetProtocol() != INET_PROT_NOT_VALID
, "invalid URL" );
1955 if( aURL
.getBase().getLength() > 18 )
1957 aString
+= aURL
.getBase().copy( 0, 15 );
1961 aString
+= aURL
.getBase();
1963 ModifyGradientHdl_Impl( this );
1964 ModifyStepCountHdl_Impl( &aTsbStepCount
);
1967 //------------------------------------------------------------------------
1969 IMPL_LINK_NOARG(SvxAreaTabPage
, ModifyGradientHdl_Impl
)
1971 const SfxPoolItem
* pPoolItem
= NULL
;
1972 sal_uInt16 _nPos
= aLbGradient
.GetSelectEntryPos();
1973 if( _nPos
!= LISTBOX_ENTRY_NOTFOUND
)
1975 // fill ItemSet and pass it on to aCtlXRectPreview
1976 XGradientEntry
* pEntry
= pGradientList
->GetGradient( _nPos
);
1978 rXFSet
.Put( XFillStyleItem( XFILL_GRADIENT
) );
1979 rXFSet
.Put( XFillGradientItem( String(),
1980 pEntry
->GetGradient() ) );
1982 else if( SFX_ITEM_SET
== rOutAttrs
.GetItemState( GetWhich( XATTR_FILLGRADIENT
), sal_True
, &pPoolItem
) )
1984 rXFSet
.Put( XFillStyleItem( XFILL_GRADIENT
) );
1985 rXFSet
.Put( XFillGradientItem( String(), ( ( const XFillGradientItem
* ) pPoolItem
)->GetGradientValue() ) );
1988 rXFSet
.Put( XFillStyleItem( XFILL_NONE
) );
1990 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
1991 aCtlXRectPreview
.Invalidate();
1996 //------------------------------------------------------------------------
1998 void SvxAreaTabPage::ClickHatchingHdl_Impl()
2002 aLbHatching
.Enable();
2005 aCtlXRectPreview
.Enable();
2006 aCtlXRectPreview
.Show();
2007 aCtlBitmapPreview
.Hide();
2009 aFlStepCount
.Hide();
2010 aTsbStepCount
.Hide();
2011 aNumFldStepCount
.Hide();
2016 aTsbOriginal
.Hide();
2018 aMtrFldXSize
.Hide();
2020 aMtrFldYSize
.Hide();
2024 aMtrFldOffset
.Hide();
2026 aCtlPosition
.Hide();
2028 aMtrFldXOffset
.Hide();
2030 aMtrFldYOffset
.Hide();
2033 // Controls for Hatch-Background
2034 aCbxHatchBckgrd
.Show();
2035 aLbHatchBckgrdColor
.Show();
2036 aCbxHatchBckgrd
.Enable();
2037 aLbHatchBckgrdColor
.Enable();
2040 OUString
aString( CUI_RES( RID_SVXSTR_TABLE
) ); aString
+= ": ";
2041 INetURLObject
aURL( pHatchingList
->GetPath() );
2043 aURL
.Append( pHatchingList
->GetName() );
2044 DBG_ASSERT( aURL
.GetProtocol() != INET_PROT_NOT_VALID
, "invalid URL" );
2046 if( aURL
.getBase().getLength() > 18 )
2048 aString
+= aURL
.getBase().copy( 0, 15 );
2052 aString
+= aURL
.getBase();
2054 ModifyHatchingHdl_Impl( this );
2055 ModifyHatchBckgrdColorHdl_Impl( this );
2056 ToggleHatchBckgrdColorHdl_Impl( this );
2059 //------------------------------------------------------------------------
2061 IMPL_LINK_NOARG(SvxAreaTabPage
, ModifyHatchingHdl_Impl
)
2063 const SfxPoolItem
* pPoolItem
= NULL
;
2064 sal_uInt16 _nPos
= aLbHatching
.GetSelectEntryPos();
2065 if( _nPos
!= LISTBOX_ENTRY_NOTFOUND
)
2067 // fill ItemSet and pass it on to aCtlXRectPreview
2068 XHatchEntry
* pEntry
= pHatchingList
->GetHatch( _nPos
);
2070 rXFSet
.Put( XFillStyleItem( XFILL_HATCH
) );
2071 rXFSet
.Put( XFillHatchItem( String(), pEntry
->GetHatch() ) );
2073 else if( SFX_ITEM_SET
== rOutAttrs
.GetItemState( GetWhich( XATTR_FILLHATCH
), sal_True
, &pPoolItem
) )
2075 rXFSet
.Put( XFillStyleItem( XFILL_HATCH
) );
2076 rXFSet
.Put( XFillHatchItem( String(), ( ( const XFillHatchItem
* ) pPoolItem
)->GetHatchValue() ) );
2079 rXFSet
.Put( XFillStyleItem( XFILL_NONE
) );
2081 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
2082 aCtlXRectPreview
.Invalidate();
2087 //------------------------------------------------------------------------
2089 IMPL_LINK_NOARG(SvxAreaTabPage
, ModifyHatchBckgrdColorHdl_Impl
)
2091 const SfxPoolItem
* pPoolItem
= NULL
;
2092 sal_uInt16 _nPos
= aLbHatchBckgrdColor
.GetSelectEntryPos();
2093 aLbColor
.SelectEntryPos( _nPos
);
2094 if( _nPos
!= LISTBOX_ENTRY_NOTFOUND
)
2096 rXFSet
.Put( XFillColorItem( String(),
2097 aLbHatchBckgrdColor
.GetSelectEntryColor() ) );
2099 else if( SFX_ITEM_SET
== rOutAttrs
.GetItemState( GetWhich( XATTR_FILLCOLOR
), sal_True
, &pPoolItem
) )
2101 Color
aColor( ( ( const XFillColorItem
* ) pPoolItem
)->GetColorValue() );
2102 rXFSet
.Put( XFillColorItem( String(), aColor
) );
2105 rXFSet
.Put( XFillStyleItem( XFILL_NONE
) );
2107 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
2108 aCtlXRectPreview
.Invalidate();
2113 //------------------------------------------------------------------------
2115 IMPL_LINK_NOARG(SvxAreaTabPage
, ToggleHatchBckgrdColorHdl_Impl
)
2117 // switch on/off backgroundcolor for hatches
2118 aLbHatchBckgrdColor
.Enable( aCbxHatchBckgrd
.IsChecked() );
2120 XFillBackgroundItem
aItem( aCbxHatchBckgrd
.IsChecked() );
2121 rXFSet
.Put ( aItem
, XATTR_FILLBACKGROUND
);
2123 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
2124 aCtlXRectPreview
.Invalidate();
2126 if( aLbHatchBckgrdColor
.GetSelectEntryPos() == LISTBOX_ENTRY_NOTFOUND
)
2128 if ( SFX_ITEM_SET
== rOutAttrs
.GetItemState( XATTR_FILLCOLOR
) )//>= SFX_ITEM_DEFAULT )
2130 XFillColorItem
aColorItem( (const XFillColorItem
&)rOutAttrs
.Get( XATTR_FILLCOLOR
) );
2131 aLbHatchBckgrdColor
.SelectEntry( aColorItem
.GetColorValue() );
2138 //------------------------------------------------------------------------
2140 void SvxAreaTabPage::ClickBitmapHdl_Impl()
2147 aCtlBitmapPreview
.Enable();
2148 aCtlBitmapPreview
.Show();
2149 aCtlXRectPreview
.Hide();
2150 aFlStepCount
.Hide();
2151 aTsbStepCount
.Hide();
2152 aNumFldStepCount
.Hide();
2155 aTsbStretch
.Enable();
2157 aTsbOriginal
.Enable();
2159 aMtrFldXSize
.Enable();
2161 aMtrFldYSize
.Enable();
2163 aCtlPosition
.Enable();
2164 aFtXOffset
.Enable();
2165 aMtrFldXOffset
.Enable();
2166 aFtYOffset
.Enable();
2167 aMtrFldYOffset
.Enable();
2168 aFlPosition
.Enable();
2170 aRbtColumn
.Enable();
2171 aMtrFldOffset
.Enable();
2174 // Controls for Hatch-Background
2175 aCbxHatchBckgrd
.Hide();
2176 aLbHatchBckgrdColor
.Hide();
2181 aTsbOriginal
.Show();
2183 aMtrFldXSize
.Show();
2185 aMtrFldYSize
.Show();
2187 aCtlPosition
.Show();
2189 aMtrFldXOffset
.Show();
2191 aMtrFldYOffset
.Show();
2195 aMtrFldOffset
.Show();
2199 OUString
aString( CUI_RES( RID_SVXSTR_TABLE
) ); aString
+= ": ";
2200 INetURLObject
aURL( pBitmapList
->GetPath() );
2202 aURL
.Append( pBitmapList
->GetName() );
2203 DBG_ASSERT( aURL
.GetProtocol() != INET_PROT_NOT_VALID
, "invalid URL" );
2205 if( aURL
.getBase().getLength() > 18 )
2207 aString
+= aURL
.getBase().copy( 0, 15 );
2211 aString
+= aURL
.getBase();
2213 ModifyBitmapHdl_Impl( this );
2214 ModifyTileHdl_Impl( &aTsbOriginal
);
2217 //------------------------------------------------------------------------
2219 IMPL_LINK_NOARG(SvxAreaTabPage
, ModifyBitmapHdl_Impl
)
2221 const SfxPoolItem
* pPoolItem
= NULL
;
2222 sal_uInt16 _nPos
= aLbBitmap
.GetSelectEntryPos();
2223 if( _nPos
!= LISTBOX_ENTRY_NOTFOUND
)
2225 // fill ItemSet and pass it on to aCtlXRectPreview
2226 const XBitmapEntry
* pEntry
= pBitmapList
->GetBitmap(_nPos
);
2228 rXFSet
.Put(XFillStyleItem(XFILL_BITMAP
));
2229 rXFSet
.Put(XFillBitmapItem(String(), pEntry
->GetGraphicObject()));
2231 else if( SFX_ITEM_SET
== rOutAttrs
.GetItemState( GetWhich( XATTR_FILLBITMAP
), sal_True
, &pPoolItem
) )
2233 rXFSet
.Put(XFillStyleItem(XFILL_BITMAP
));
2234 rXFSet
.Put(XFillBitmapItem(String(), ((const XFillBitmapItem
*)pPoolItem
)->GetGraphicObject()));
2237 rXFSet
.Put( XFillStyleItem( XFILL_NONE
) );
2239 aCtlBitmapPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
2240 aCtlBitmapPreview
.Invalidate();
2245 //------------------------------------------------------------------------
2247 IMPL_LINK( SvxAreaTabPage
, ModifyStepCountHdl_Impl
, void *, p
)
2249 if( p
== &aTsbStepCount
)
2251 if( aTsbStepCount
.GetState() == STATE_NOCHECK
)
2253 if( aNumFldStepCount
.GetText().isEmpty() )
2254 aNumFldStepCount
.SetText(OUString("64"));
2256 aNumFldStepCount
.Enable();
2259 aNumFldStepCount
.Disable();
2262 sal_uInt16 nValue
= 0;
2263 if( aTsbStepCount
.GetState() != STATE_CHECK
)
2265 // condition != Disabled ?
2266 if( !aNumFldStepCount
.GetText().isEmpty() )
2267 nValue
= (sal_uInt16
) aNumFldStepCount
.GetValue();
2269 rXFSet
.Put( XGradientStepCountItem( nValue
) );
2270 aCtlXRectPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
2271 aCtlXRectPreview
.Invalidate();
2276 //------------------------------------------------------------------------
2278 IMPL_LINK_NOARG(SvxAreaTabPage
, ModifyTileHdl_Impl
)
2280 TriState eState
= aTsbTile
.GetState();
2281 if( eState
== STATE_CHECK
)
2283 aTsbStretch
.Disable();
2285 aRbtColumn
.Enable();
2286 aMtrFldOffset
.Enable();
2289 aCtlPosition
.Enable();
2290 aCtlPosition
.Invalidate();
2291 aFtXOffset
.Enable();
2292 aMtrFldXOffset
.Enable();
2293 aFtYOffset
.Enable();
2294 aMtrFldYOffset
.Enable();
2295 aFlPosition
.Enable();
2298 aTsbOriginal
.Enable();
2300 aMtrFldXSize
.Enable();
2302 aMtrFldYSize
.Enable();
2305 else if( eState
== STATE_NOCHECK
)
2307 aTsbStretch
.Enable();
2309 aRbtColumn
.Disable();
2310 aMtrFldOffset
.Disable();
2311 aFlOffset
.Disable();
2313 aCtlPosition
.Disable();
2314 aCtlPosition
.Invalidate();
2315 aFtXOffset
.Disable();
2316 aMtrFldXOffset
.Disable();
2317 aFtYOffset
.Disable();
2318 aMtrFldYOffset
.Disable();
2319 aFlPosition
.Disable();
2321 if( aTsbStretch
.GetState() != STATE_NOCHECK
)
2323 aTsbScale
.Disable();
2324 aTsbOriginal
.Disable();
2326 aMtrFldXSize
.Disable();
2328 aMtrFldYSize
.Disable();
2334 aTsbOriginal
.Enable();
2336 aMtrFldXSize
.Enable();
2338 aMtrFldYSize
.Enable();
2344 aTsbStretch
.Disable();
2346 aRbtColumn
.Disable();
2347 aMtrFldOffset
.Disable();
2348 aFlOffset
.Disable();
2350 aCtlPosition
.Disable();
2351 aCtlPosition
.Invalidate();
2352 aFtXOffset
.Disable();
2353 aMtrFldXOffset
.Disable();
2354 aFtYOffset
.Disable();
2355 aMtrFldYOffset
.Disable();
2356 aFlPosition
.Disable();
2358 aTsbScale
.Disable();
2359 aTsbOriginal
.Disable();
2361 aMtrFldXSize
.Disable();
2363 aMtrFldYSize
.Disable();
2367 if( aTsbOriginal
.GetState() == STATE_CHECK
)
2369 aMtrFldXSize
.SetText( String() );
2370 aMtrFldYSize
.SetText( String() );
2373 aMtrFldXSize
.Disable();
2374 aMtrFldYSize
.Disable();
2375 aTsbScale
.Disable();
2379 aMtrFldXSize
.SetValue( aMtrFldXSize
.GetValue() );
2380 aMtrFldYSize
.SetValue( aMtrFldYSize
.GetValue() );
2383 rXFSet
.Put( XFillBmpTileItem( sal::static_int_cast
< sal_Bool
>( eState
) ) );
2385 if( aTsbStretch
.IsEnabled() )
2387 XFillBmpStretchItem(
2388 sal::static_int_cast
< sal_Bool
>( aTsbStretch
.GetState() ) ) );
2390 if( aTsbScale
.IsEnabled() )
2391 rXFSet
.Put( XFillBmpSizeLogItem( aTsbScale
.GetState() == STATE_NOCHECK
) );
2393 if( aMtrFldXSize
.IsEnabled() )
2395 XFillBmpSizeXItem
* pItem
= NULL
;
2396 TriState eScaleState
= aTsbScale
.GetState();
2398 if( eScaleState
== STATE_NOCHECK
)
2399 pItem
= new XFillBmpSizeXItem( GetCoreValue( aMtrFldXSize
, ePoolUnit
) );
2401 pItem
= new XFillBmpSizeXItem( -labs( static_cast<long>(aMtrFldXSize
.GetValue()) ) );
2403 rXFSet
.Put( *pItem
);
2407 else if( aTsbOriginal
.IsEnabled() && aTsbOriginal
.GetState() == STATE_CHECK
)
2409 // original size -> size == 0
2410 rXFSet
.Put( XFillBmpSizeXItem( 0 ) );
2411 rXFSet
.Put( XFillBmpSizeLogItem( sal_True
) );
2414 if( aMtrFldYSize
.IsEnabled() )
2416 XFillBmpSizeYItem
* pItem
= NULL
;
2417 TriState eScaleState
= aTsbScale
.GetState();
2419 if( eScaleState
== STATE_NOCHECK
)
2420 pItem
= new XFillBmpSizeYItem( GetCoreValue( aMtrFldYSize
, ePoolUnit
) );
2422 pItem
= new XFillBmpSizeYItem( -labs( static_cast<long>(aMtrFldYSize
.GetValue()) ) );
2424 rXFSet
.Put( *pItem
);
2428 else if( aTsbOriginal
.IsEnabled() && aTsbOriginal
.GetState() == STATE_CHECK
)
2430 // original size -> size == 0
2431 rXFSet
.Put( XFillBmpSizeYItem( 0 ) );
2432 rXFSet
.Put( XFillBmpSizeLogItem( sal_True
) );
2435 if( aMtrFldOffset
.IsEnabled() )
2437 if( aRbtRow
.IsChecked() )
2439 rXFSet
.Put( XFillBmpTileOffsetXItem( (sal_uInt16
) aMtrFldOffset
.GetValue() ) );
2440 rXFSet
.Put( XFillBmpTileOffsetYItem( (sal_uInt16
) 0 ) );
2442 else if( aRbtColumn
.IsChecked() )
2444 rXFSet
.Put( XFillBmpTileOffsetXItem( (sal_uInt16
) 0 ) );
2445 rXFSet
.Put( XFillBmpTileOffsetYItem( (sal_uInt16
) aMtrFldOffset
.GetValue() ) );
2449 if( aCtlPosition
.IsEnabled() )
2450 rXFSet
.Put( XFillBmpPosItem( aCtlPosition
.GetActualRP() ) );
2452 if( aMtrFldXOffset
.IsEnabled() )
2453 rXFSet
.Put( XFillBmpPosOffsetXItem( (sal_uInt16
) aMtrFldXOffset
.GetValue() ) );
2455 if( aMtrFldYOffset
.IsEnabled() )
2456 rXFSet
.Put( XFillBmpPosOffsetYItem( (sal_uInt16
) aMtrFldYOffset
.GetValue() ) );
2459 aCtlBitmapPreview
.SetAttributes( aXFillAttr
.GetItemSet() );
2460 aCtlBitmapPreview
.Invalidate();
2465 //------------------------------------------------------------------------
2467 IMPL_LINK_NOARG(SvxAreaTabPage
, ClickScaleHdl_Impl
)
2469 if( aTsbScale
.GetState() == STATE_CHECK
)
2471 aMtrFldXSize
.SetDecimalDigits( 0 );
2472 aMtrFldXSize
.SetUnit( FUNIT_CUSTOM
);
2473 aMtrFldXSize
.SetValue( 100 );
2474 aMtrFldXSize
.SetMax( 100 );
2475 aMtrFldXSize
.SetLast( 100 );
2477 aMtrFldYSize
.SetDecimalDigits( 0 );
2478 aMtrFldYSize
.SetUnit( FUNIT_CUSTOM
);
2479 aMtrFldYSize
.SetValue( 100 );
2480 aMtrFldYSize
.SetMax( 100 );
2481 aMtrFldYSize
.SetLast( 100 );
2485 aMtrFldXSize
.SetDecimalDigits( 2 );
2486 aMtrFldXSize
.SetUnit( eFUnit
);
2487 aMtrFldXSize
.SetValue( 100 );
2488 aMtrFldXSize
.SetMax( 999900 );
2489 aMtrFldXSize
.SetLast( 100000 );
2491 aMtrFldYSize
.SetDecimalDigits( 2 );
2492 aMtrFldYSize
.SetUnit( eFUnit
);
2493 aMtrFldYSize
.SetValue( 100 );
2494 aMtrFldYSize
.SetMax( 999900 );
2495 aMtrFldYSize
.SetLast( 100000 );
2498 ModifyTileHdl_Impl( NULL
);
2503 //------------------------------------------------------------------------
2505 void SvxAreaTabPage::PointChanged( Window
* pWindow
, RECT_POINT eRcPt
)
2509 // alignment of the bitmap fill
2510 ModifyTileHdl_Impl( pWindow
);
2513 void SvxAreaTabPage::PageCreated (SfxAllItemSet aSet
)
2515 SFX_ITEMSET_ARG (&aSet
,pColorListItem
,SvxColorListItem
,SID_COLOR_TABLE
,sal_False
);
2516 SFX_ITEMSET_ARG (&aSet
,pGradientListItem
,SvxGradientListItem
,SID_GRADIENT_LIST
,sal_False
);
2517 SFX_ITEMSET_ARG (&aSet
,pHatchingListItem
,SvxHatchListItem
,SID_HATCH_LIST
,sal_False
);
2518 SFX_ITEMSET_ARG (&aSet
,pBitmapListItem
,SvxBitmapListItem
,SID_BITMAP_LIST
,sal_False
);
2519 SFX_ITEMSET_ARG (&aSet
,pPageTypeItem
,SfxUInt16Item
,SID_PAGE_TYPE
,sal_False
);
2520 SFX_ITEMSET_ARG (&aSet
,pDlgTypeItem
,SfxUInt16Item
,SID_DLG_TYPE
,sal_False
);
2521 SFX_ITEMSET_ARG (&aSet
,pPosItem
,SfxUInt16Item
,SID_TABPAGE_POS
,sal_False
);
2524 SetColorList(pColorListItem
->GetColorList());
2525 if (pGradientListItem
)
2526 SetGradientList(pGradientListItem
->GetGradientList());
2527 if (pHatchingListItem
)
2528 SetHatchingList(pHatchingListItem
->GetHatchList());
2529 if (pBitmapListItem
)
2530 SetBitmapList(pBitmapListItem
->GetBitmapList());
2532 SetPageType(pPageTypeItem
->GetValue());
2534 SetDlgType(pDlgTypeItem
->GetValue());
2536 SetPos(pPosItem
->GetValue());
2540 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */