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 :
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>
25 :
26 : #if defined (UNX) || defined (ICC) || defined(WNT)
27 : #include <stdlib.h>
28 : #endif
29 :
30 : #include "svx/xattr.hxx"
31 : #include <svx/xpool.hxx>
32 : #include <cuires.hrc>
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"
46 :
47 : // static ----------------------------------------------------------------
48 :
49 : static sal_uInt16 pAreaRanges[] =
50 : {
51 : XATTR_GRADIENTSTEPCOUNT,
52 : XATTR_GRADIENTSTEPCOUNT,
53 : SID_ATTR_FILL_STYLE,
54 : SID_ATTR_FILL_BITMAP,
55 : 0
56 : };
57 :
58 : static sal_uInt16 pTransparenceRanges[] =
59 : {
60 : XATTR_FILLTRANSPARENCE,
61 : XATTR_FILLTRANSPARENCE,
62 : SDRATTR_SHADOWTRANSPARENCE,
63 : SDRATTR_SHADOWTRANSPARENCE,
64 : XATTR_FILLFLOATTRANSPARENCE,
65 : XATTR_FILLFLOATTRANSPARENCE,
66 : 0
67 : };
68 :
69 : /*************************************************************************
70 : |*
71 : |* Dialog for transparence
72 : |*
73 : \************************************************************************/
74 :
75 0 : IMPL_LINK_NOARG(SvxTransparenceTabPage, ClickTransOffHdl_Impl)
76 : {
77 : // disable all other controls
78 0 : ActivateLinear(sal_False);
79 0 : ActivateGradient(sal_False);
80 :
81 : // Preview
82 0 : rXFSet.ClearItem (XATTR_FILLTRANSPARENCE);
83 0 : rXFSet.ClearItem (XATTR_FILLFLOATTRANSPARENCE);
84 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
85 0 : aCtlBitmapPreview.SetAttributes( aXFillAttr.GetItemSet() );
86 :
87 0 : InvalidatePreview( sal_False );
88 :
89 0 : return( 0L );
90 : }
91 :
92 0 : IMPL_LINK_NOARG(SvxTransparenceTabPage, ClickTransLinearHdl_Impl)
93 : {
94 : // enable linear, disable other
95 0 : ActivateLinear(sal_True);
96 0 : ActivateGradient(sal_False);
97 :
98 : // preview
99 0 : rXFSet.ClearItem (XATTR_FILLFLOATTRANSPARENCE);
100 0 : ModifyTransparentHdl_Impl (NULL);
101 :
102 0 : return( 0L );
103 : }
104 :
105 0 : IMPL_LINK_NOARG(SvxTransparenceTabPage, ClickTransGradientHdl_Impl)
106 : {
107 : // enable gradient, disable other
108 0 : ActivateLinear(sal_False);
109 0 : ActivateGradient(sal_True);
110 :
111 : // preview
112 0 : rXFSet.ClearItem (XATTR_FILLTRANSPARENCE);
113 0 : ModifiedTrgrHdl_Impl (NULL);
114 :
115 0 : return( 0L );
116 : }
117 :
118 0 : void SvxTransparenceTabPage::ActivateLinear(sal_Bool bActivate)
119 : {
120 0 : aMtrTransparent.Enable(bActivate);
121 0 : }
122 :
123 0 : IMPL_LINK_NOARG(SvxTransparenceTabPage, ModifyTransparentHdl_Impl)
124 : {
125 0 : sal_uInt16 nPos = (sal_uInt16)aMtrTransparent.GetValue();
126 0 : XFillTransparenceItem aItem(nPos);
127 0 : rXFSet.Put(XFillTransparenceItem(aItem));
128 :
129 : // preview
130 0 : InvalidatePreview();
131 :
132 0 : return 0L;
133 : }
134 :
135 0 : IMPL_LINK(SvxTransparenceTabPage, ModifiedTrgrHdl_Impl, void *, pControl)
136 : {
137 0 : if(pControl == &aLbTrgrGradientType || pControl == this)
138 : {
139 0 : XGradientStyle eXGS = (XGradientStyle)aLbTrgrGradientType.GetSelectEntryPos();
140 0 : SetControlState_Impl( eXGS );
141 : }
142 :
143 : // preview
144 0 : sal_uInt8 nStartCol = (sal_uInt8)(((sal_uInt16)aMtrTrgrStartValue.GetValue() * 255) / 100);
145 0 : 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 0 : (XGradientStyle)aLbTrgrGradientType.GetSelectEntryPos(),
150 0 : (sal_uInt16)aMtrTrgrAngle.GetValue() * 10,
151 0 : (sal_uInt16)aMtrTrgrCenterX.GetValue(),
152 0 : (sal_uInt16)aMtrTrgrCenterY.GetValue(),
153 0 : (sal_uInt16)aMtrTrgrBorder.GetValue(),
154 0 : 100, 100);
155 :
156 0 : XFillFloatTransparenceItem aItem( rXFSet.GetPool()/*aString*/, aTmpGradient);
157 0 : rXFSet.Put ( aItem );
158 :
159 0 : InvalidatePreview();
160 :
161 0 : return( 0L );
162 : }
163 :
164 0 : void SvxTransparenceTabPage::ActivateGradient(sal_Bool bActivate)
165 : {
166 0 : aFtTrgrType.Enable(bActivate);
167 0 : aLbTrgrGradientType.Enable(bActivate);
168 0 : aFtTrgrCenterX.Enable(bActivate);
169 0 : aMtrTrgrCenterX.Enable(bActivate);
170 0 : aFtTrgrCenterY.Enable(bActivate);
171 0 : aMtrTrgrCenterY.Enable(bActivate);
172 0 : aFtTrgrAngle.Enable(bActivate);
173 0 : aMtrTrgrAngle.Enable(bActivate);
174 0 : aFtTrgrBorder.Enable(bActivate);
175 0 : aMtrTrgrBorder.Enable(bActivate);
176 0 : aFtTrgrStartValue.Enable(bActivate);
177 0 : aMtrTrgrStartValue.Enable(bActivate);
178 0 : aFtTrgrEndValue.Enable(bActivate);
179 0 : aMtrTrgrEndValue.Enable(bActivate);
180 :
181 0 : if(bActivate)
182 : {
183 0 : XGradientStyle eXGS = (XGradientStyle)aLbTrgrGradientType.GetSelectEntryPos();
184 0 : SetControlState_Impl( eXGS );
185 : }
186 0 : }
187 :
188 0 : IMPL_LINK_NOARG(SvxTransparenceTabPage, ChangeTrgrTypeHdl_Impl)
189 : {
190 0 : return( 0L );
191 : }
192 :
193 0 : void SvxTransparenceTabPage::SetControlState_Impl(XGradientStyle eXGS)
194 : {
195 0 : switch(eXGS)
196 : {
197 : case XGRAD_LINEAR:
198 : case XGRAD_AXIAL:
199 0 : aFtTrgrCenterX.Disable();
200 0 : aMtrTrgrCenterX.Disable();
201 0 : aFtTrgrCenterY.Disable();
202 0 : aMtrTrgrCenterY.Disable();
203 0 : aFtTrgrAngle.Enable();
204 0 : aMtrTrgrAngle.Enable();
205 0 : break;
206 :
207 : case XGRAD_RADIAL:
208 0 : aFtTrgrCenterX.Enable();
209 0 : aMtrTrgrCenterX.Enable();
210 0 : aFtTrgrCenterY.Enable();
211 0 : aMtrTrgrCenterY.Enable();
212 0 : aFtTrgrAngle.Disable();
213 0 : aMtrTrgrAngle.Disable();
214 0 : break;
215 :
216 : case XGRAD_ELLIPTICAL:
217 0 : aFtTrgrCenterX.Enable();
218 0 : aMtrTrgrCenterX.Enable();
219 0 : aFtTrgrCenterY.Enable();
220 0 : aMtrTrgrCenterY.Enable();
221 0 : aFtTrgrAngle.Enable();
222 0 : aMtrTrgrAngle.Enable();
223 0 : break;
224 :
225 : case XGRAD_SQUARE:
226 : case XGRAD_RECT:
227 0 : aFtTrgrCenterX.Enable();
228 0 : aMtrTrgrCenterX.Enable();
229 0 : aFtTrgrCenterY.Enable();
230 0 : aMtrTrgrCenterY.Enable();
231 0 : aFtTrgrAngle.Enable();
232 0 : aMtrTrgrAngle.Enable();
233 0 : break;
234 : }
235 0 : }
236 :
237 0 : SvxTransparenceTabPage::SvxTransparenceTabPage(Window* pParent, const SfxItemSet& rInAttrs)
238 0 : : SvxTabPage ( pParent, CUI_RES( RID_SVXPAGE_TRANSPARENCE ), rInAttrs),
239 : rOutAttrs ( rInAttrs ),
240 : eRP ( RP_LT ),
241 :
242 : nPageType(0),
243 : nDlgType(0),
244 :
245 0 : aFlProp ( this, CUI_RES( FL_PROP ) ),
246 0 : aRbtTransOff ( this, CUI_RES( RBT_TRANS_OFF ) ),
247 0 : aRbtTransLinear ( this, CUI_RES( RBT_TRANS_LINEAR ) ),
248 0 : aRbtTransGradient ( this, CUI_RES( RBT_TRANS_GRADIENT ) ),
249 :
250 0 : aMtrTransparent ( this, CUI_RES( MTR_TRANSPARENT ) ),
251 :
252 0 : aFtTrgrType ( this, CUI_RES( FT_TRGR_TYPE ) ),
253 0 : aLbTrgrGradientType ( this, CUI_RES( LB_TRGR_GRADIENT_TYPES ) ),
254 0 : aFtTrgrCenterX ( this, CUI_RES( FT_TRGR_CENTER_X ) ),
255 0 : aMtrTrgrCenterX ( this, CUI_RES( MTR_TRGR_CENTER_X ) ),
256 0 : aFtTrgrCenterY ( this, CUI_RES( FT_TRGR_CENTER_Y ) ),
257 0 : aMtrTrgrCenterY ( this, CUI_RES( MTR_TRGR_CENTER_Y ) ),
258 0 : aFtTrgrAngle ( this, CUI_RES( FT_TRGR_ANGLE ) ),
259 0 : aMtrTrgrAngle ( this, CUI_RES( MTR_TRGR_ANGLE ) ),
260 0 : aFtTrgrBorder ( this, CUI_RES( FT_TRGR_BORDER ) ),
261 0 : aMtrTrgrBorder ( this, CUI_RES( MTR_TRGR_BORDER ) ),
262 0 : aFtTrgrStartValue ( this, CUI_RES( FT_TRGR_START_VALUE ) ),
263 0 : aMtrTrgrStartValue ( this, CUI_RES( MTR_TRGR_START_VALUE ) ),
264 0 : aFtTrgrEndValue ( this, CUI_RES( FT_TRGR_END_VALUE ) ),
265 0 : aMtrTrgrEndValue ( this, CUI_RES( MTR_TRGR_END_VALUE ) ),
266 :
267 0 : aCtlBitmapPreview ( this, CUI_RES( CTL_BITMAP_PREVIEW ) ),
268 0 : aCtlXRectPreview ( this, CUI_RES( CTL_TRANS_PREVIEW ) ),
269 : bBitmap ( sal_False ),
270 0 : pXPool ( (XOutdevItemPool*) rInAttrs.GetPool() ),
271 : aXFillAttr ( pXPool ),
272 0 : rXFSet ( aXFillAttr.GetItemSet() )
273 : {
274 0 : FreeResource();
275 :
276 0 : String accName = String(CUI_RES(STR_EXAMPLE));
277 0 : aCtlBitmapPreview.SetAccessibleName(accName);
278 0 : aCtlXRectPreview.SetAccessibleName(accName);
279 0 : aMtrTransparent.SetAccessibleRelationLabeledBy( &aRbtTransLinear );
280 :
281 : // main selection
282 0 : aRbtTransOff.SetClickHdl(LINK(this, SvxTransparenceTabPage, ClickTransOffHdl_Impl));
283 0 : aRbtTransLinear.SetClickHdl(LINK(this, SvxTransparenceTabPage, ClickTransLinearHdl_Impl));
284 0 : aRbtTransGradient.SetClickHdl(LINK(this, SvxTransparenceTabPage, ClickTransGradientHdl_Impl));
285 :
286 : // linear transparency
287 0 : aMtrTransparent.SetValue( 50 );
288 0 : aMtrTransparent.SetModifyHdl(LINK(this, SvxTransparenceTabPage, ModifyTransparentHdl_Impl));
289 :
290 : // gradient transparency
291 0 : aMtrTrgrEndValue.SetValue( 100 );
292 0 : aMtrTrgrStartValue.SetValue( 0 );
293 0 : aLbTrgrGradientType.SetSelectHdl(LINK(this, SvxTransparenceTabPage, ChangeTrgrTypeHdl_Impl));
294 0 : Link aLink = LINK( this, SvxTransparenceTabPage, ModifiedTrgrHdl_Impl);
295 0 : aLbTrgrGradientType.SetSelectHdl( aLink );
296 0 : aMtrTrgrCenterX.SetModifyHdl( aLink );
297 0 : aMtrTrgrCenterY.SetModifyHdl( aLink );
298 0 : aMtrTrgrAngle.SetModifyHdl( aLink );
299 0 : aMtrTrgrBorder.SetModifyHdl( aLink );
300 0 : aMtrTrgrStartValue.SetModifyHdl( aLink );
301 0 : aMtrTrgrEndValue.SetModifyHdl( aLink );
302 :
303 : // this page needs ExchangeSupport
304 0 : SetExchangeSupport();
305 0 : }
306 :
307 0 : void SvxTransparenceTabPage::Construct()
308 : {
309 0 : }
310 :
311 0 : SfxTabPage* SvxTransparenceTabPage::Create(Window* pWindow, const SfxItemSet& rAttrs)
312 : {
313 0 : return(new SvxTransparenceTabPage(pWindow, rAttrs));
314 : }
315 :
316 0 : sal_uInt16* SvxTransparenceTabPage::GetRanges()
317 : {
318 0 : return(pTransparenceRanges);
319 : }
320 :
321 0 : sal_Bool SvxTransparenceTabPage::FillItemSet(SfxItemSet& rAttrs)
322 : {
323 0 : const SfxPoolItem* pGradientItem = NULL;
324 0 : const SfxPoolItem* pLinearItem = NULL;
325 0 : SfxItemState eStateGradient(rOutAttrs.GetItemState(XATTR_FILLFLOATTRANSPARENCE, sal_True, &pGradientItem));
326 0 : SfxItemState eStateLinear(rOutAttrs.GetItemState(XATTR_FILLTRANSPARENCE, sal_True, &pLinearItem));
327 0 : sal_Bool bGradActive = (eStateGradient == SFX_ITEM_SET && ((XFillFloatTransparenceItem*)pGradientItem)->IsEnabled());
328 0 : sal_Bool bLinearActive = (eStateLinear == SFX_ITEM_SET && ((XFillTransparenceItem*)pLinearItem)->GetValue() != 0);
329 :
330 : // #103765#
331 0 : sal_Bool bGradUsed = (eStateGradient == SFX_ITEM_DONTCARE);
332 0 : sal_Bool bLinearUsed = (eStateLinear == SFX_ITEM_DONTCARE);
333 :
334 0 : sal_Bool bModified(sal_False);
335 0 : sal_Bool bSwitchOffLinear(sal_False);
336 0 : sal_Bool bSwitchOffGradient(sal_False);
337 :
338 0 : if(aMtrTransparent.IsEnabled())
339 : {
340 : // linear transparence
341 0 : sal_uInt16 nPos = (sal_uInt16)aMtrTransparent.GetValue();
342 0 : if(nPos != (sal_uInt16)aMtrTransparent.GetSavedValue().toInt32() || !bLinearActive)
343 : {
344 0 : XFillTransparenceItem aItem(nPos);
345 0 : SdrShadowTransparenceItem aShadowItem(nPos);
346 0 : const SfxPoolItem* pOld = GetOldItem(rAttrs, XATTR_FILLTRANSPARENCE);
347 0 : if(!pOld || !(*(const XFillTransparenceItem*)pOld == aItem) || !bLinearActive)
348 : {
349 0 : rAttrs.Put(aItem);
350 0 : rAttrs.Put(aShadowItem);
351 0 : bModified = sal_True;
352 0 : bSwitchOffGradient = sal_True;
353 0 : }
354 : }
355 : }
356 0 : else if(aLbTrgrGradientType.IsEnabled())
357 : {
358 : // transparence gradient, fill ItemSet from values
359 0 : if(!bGradActive
360 0 : || (XGradientStyle)aLbTrgrGradientType.GetSelectEntryPos() != (XGradientStyle)aLbTrgrGradientType.GetSavedValue()
361 0 : || (sal_uInt16)aMtrTrgrAngle.GetValue() != (sal_uInt16)aMtrTrgrAngle.GetSavedValue().toInt32()
362 0 : || (sal_uInt16)aMtrTrgrCenterX.GetValue() != (sal_uInt16)aMtrTrgrCenterX.GetSavedValue().toInt32()
363 0 : || (sal_uInt16)aMtrTrgrCenterY.GetValue() != (sal_uInt16)aMtrTrgrCenterY.GetSavedValue().toInt32()
364 0 : || (sal_uInt16)aMtrTrgrBorder.GetValue() != (sal_uInt16)aMtrTrgrBorder.GetSavedValue().toInt32()
365 0 : || (sal_uInt16)aMtrTrgrStartValue.GetValue() != (sal_uInt16)aMtrTrgrStartValue.GetSavedValue().toInt32()
366 0 : || (sal_uInt16)aMtrTrgrEndValue.GetValue() != (sal_uInt16)aMtrTrgrEndValue.GetSavedValue().toInt32() )
367 : {
368 0 : sal_uInt8 nStartCol = (sal_uInt8)(((sal_uInt16)aMtrTrgrStartValue.GetValue() * 255) / 100);
369 0 : 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 0 : (XGradientStyle)aLbTrgrGradientType.GetSelectEntryPos(),
374 0 : (sal_uInt16)aMtrTrgrAngle.GetValue() * 10,
375 0 : (sal_uInt16)aMtrTrgrCenterX.GetValue(),
376 0 : (sal_uInt16)aMtrTrgrCenterY.GetValue(),
377 0 : (sal_uInt16)aMtrTrgrBorder.GetValue(),
378 0 : 100, 100);
379 :
380 0 : XFillFloatTransparenceItem aItem( rXFSet.GetPool()/*aString*/, aTmpGradient);
381 0 : const SfxPoolItem* pOld = GetOldItem(rAttrs, XATTR_FILLFLOATTRANSPARENCE);
382 :
383 0 : if(!pOld || !(*(const XFillFloatTransparenceItem*)pOld == aItem) || !bGradActive)
384 : {
385 0 : rAttrs.Put(aItem);
386 0 : bModified = sal_True;
387 0 : bSwitchOffLinear = sal_True;
388 0 : }
389 : }
390 : }
391 : else
392 : {
393 : // no transparence
394 0 : bSwitchOffGradient = sal_True;
395 0 : bSwitchOffLinear = sal_True;
396 : }
397 :
398 : // disable unused XFillFloatTransparenceItem
399 0 : if(bSwitchOffGradient && (bGradActive || bGradUsed))
400 : {
401 0 : Color aColor(COL_BLACK);
402 0 : XGradient aGrad(aColor, Color(COL_WHITE));
403 0 : aGrad.SetStartIntens(100);
404 0 : aGrad.SetEndIntens(100);
405 0 : XFillFloatTransparenceItem aItem( rXFSet.GetPool()/*aString*/, aGrad);
406 0 : aItem.SetEnabled(sal_False);
407 0 : rAttrs.Put(aItem);
408 0 : bModified = sal_True;
409 : }
410 :
411 : // disable unused XFillFloatTransparenceItem
412 0 : if(bSwitchOffLinear && (bLinearActive || bLinearUsed))
413 : {
414 0 : XFillTransparenceItem aItem(0);
415 0 : SdrShadowTransparenceItem aShadowItem(0);
416 0 : rAttrs.Put(aItem);
417 0 : rAttrs.Put(aShadowItem);
418 0 : bModified = sal_True;
419 : }
420 0 : rAttrs.Put (CntUInt16Item(SID_PAGE_TYPE,nPageType));
421 0 : return bModified;
422 : }
423 :
424 0 : void SvxTransparenceTabPage::Reset(const SfxItemSet& rAttrs)
425 : {
426 0 : const SfxPoolItem* pGradientItem = NULL;
427 0 : SfxItemState eStateGradient(rAttrs.GetItemState(XATTR_FILLFLOATTRANSPARENCE, sal_True, &pGradientItem));
428 0 : if(!pGradientItem)
429 0 : pGradientItem = &rAttrs.Get(XATTR_FILLFLOATTRANSPARENCE);
430 0 : sal_Bool bGradActive = (eStateGradient == SFX_ITEM_SET && ((XFillFloatTransparenceItem*)pGradientItem)->IsEnabled());
431 :
432 0 : const SfxPoolItem* pLinearItem = NULL;
433 0 : SfxItemState eStateLinear(rAttrs.GetItemState(XATTR_FILLTRANSPARENCE, sal_True, &pLinearItem));
434 0 : if(!pLinearItem)
435 0 : pLinearItem = &rAttrs.Get(XATTR_FILLTRANSPARENCE);
436 0 : sal_Bool bLinearActive = (eStateLinear == SFX_ITEM_SET && ((XFillTransparenceItem*)pLinearItem)->GetValue() != 0);
437 :
438 : // transparence gradient
439 0 : const XGradient& rGradient = ((XFillFloatTransparenceItem*)pGradientItem)->GetGradientValue();
440 0 : XGradientStyle eXGS(rGradient.GetGradientStyle());
441 0 : aLbTrgrGradientType.SelectEntryPos(sal::static_int_cast< sal_uInt16 >(eXGS));
442 0 : aMtrTrgrAngle.SetValue(rGradient.GetAngle() / 10);
443 0 : aMtrTrgrBorder.SetValue(rGradient.GetBorder());
444 0 : aMtrTrgrCenterX.SetValue(rGradient.GetXOffset());
445 0 : aMtrTrgrCenterY.SetValue(rGradient.GetYOffset());
446 0 : aMtrTrgrStartValue.SetValue((sal_uInt16)((((sal_uInt16)rGradient.GetStartColor().GetRed() + 1) * 100) / 255));
447 0 : aMtrTrgrEndValue.SetValue((sal_uInt16)((((sal_uInt16)rGradient.GetEndColor().GetRed() + 1) * 100) / 255));
448 :
449 : // linear transparence
450 0 : sal_uInt16 nTransp = ((XFillTransparenceItem*)pLinearItem)->GetValue();
451 0 : aMtrTransparent.SetValue(bLinearActive ? nTransp : 50);
452 0 : ModifyTransparentHdl_Impl(NULL);
453 :
454 : // select the correct radio button
455 0 : if(bGradActive)
456 : {
457 : // transparence gradient, set controls appropriate to item
458 0 : aRbtTransGradient.Check();
459 0 : ClickTransGradientHdl_Impl(NULL);
460 : }
461 0 : else if(bLinearActive)
462 : {
463 : // linear transparence
464 0 : aRbtTransLinear.Check();
465 0 : ClickTransLinearHdl_Impl(NULL);
466 : }
467 : else
468 : {
469 : // no transparence
470 0 : aRbtTransOff.Check();
471 0 : ClickTransOffHdl_Impl(NULL);
472 0 : ModifiedTrgrHdl_Impl(NULL);
473 : }
474 :
475 : // save values
476 0 : aMtrTransparent.SaveValue();
477 0 : aLbTrgrGradientType.SaveValue();
478 0 : aMtrTrgrCenterX.SaveValue();
479 0 : aMtrTrgrCenterY.SaveValue();
480 0 : aMtrTrgrAngle.SaveValue();
481 0 : aMtrTrgrBorder.SaveValue();
482 0 : aMtrTrgrStartValue.SaveValue();
483 0 : aMtrTrgrEndValue.SaveValue();
484 :
485 0 : sal_Bool bActive = InitPreview ( rAttrs );
486 0 : InvalidatePreview ( bActive );
487 0 : }
488 :
489 0 : void SvxTransparenceTabPage::ActivatePage(const SfxItemSet& rSet)
490 : {
491 0 : SFX_ITEMSET_ARG (&rSet,pPageTypeItem,CntUInt16Item,SID_PAGE_TYPE,sal_False);
492 0 : if (pPageTypeItem)
493 0 : SetPageType(pPageTypeItem->GetValue());
494 :
495 0 : if(nDlgType == 0) // area dialog
496 0 : nPageType = PT_TRANSPARENCE;
497 :
498 0 : InitPreview ( rSet );
499 0 : }
500 :
501 0 : int SvxTransparenceTabPage::DeactivatePage(SfxItemSet* _pSet)
502 : {
503 0 : if( _pSet )
504 0 : FillItemSet( *_pSet );
505 0 : return(LEAVE_PAGE);
506 : }
507 :
508 0 : void SvxTransparenceTabPage::PointChanged(Window* , RECT_POINT eRcPt)
509 : {
510 0 : eRP = eRcPt;
511 0 : }
512 :
513 : //
514 : // Preview-Methods
515 : //
516 0 : sal_Bool SvxTransparenceTabPage::InitPreview ( const SfxItemSet& rSet )
517 : {
518 : // set transparencetyp for preview
519 0 : if ( aRbtTransOff.IsChecked() )
520 : {
521 0 : ClickTransOffHdl_Impl(NULL);
522 0 : } else if ( aRbtTransLinear.IsChecked() )
523 : {
524 0 : ClickTransLinearHdl_Impl(NULL);
525 0 : } else if ( aRbtTransGradient.IsChecked() )
526 : {
527 0 : ClickTransGradientHdl_Impl(NULL);
528 : }
529 :
530 : // Get fillstyle for preview
531 0 : rXFSet.Put ( ( XFillStyleItem& ) rSet.Get(XATTR_FILLSTYLE) );
532 0 : rXFSet.Put ( ( XFillColorItem& ) rSet.Get(XATTR_FILLCOLOR) );
533 0 : rXFSet.Put ( ( XFillGradientItem& ) rSet.Get(XATTR_FILLGRADIENT) );
534 0 : rXFSet.Put ( ( XFillHatchItem& ) rSet.Get(XATTR_FILLHATCH) );
535 0 : rXFSet.Put ( ( XFillBackgroundItem&)rSet.Get(XATTR_FILLBACKGROUND) );
536 0 : rXFSet.Put ( ( XFillBitmapItem& ) rSet.Get(XATTR_FILLBITMAP) );
537 :
538 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
539 0 : aCtlBitmapPreview.SetAttributes( aXFillAttr.GetItemSet() );
540 :
541 0 : bBitmap = ( ( ( XFillStyleItem& )rSet.Get(XATTR_FILLSTYLE) ).GetValue() == XFILL_BITMAP );
542 :
543 : // show the right preview window
544 0 : if ( bBitmap )
545 : {
546 0 : aCtlBitmapPreview.Show();
547 0 : aCtlXRectPreview.Hide();
548 : }
549 : else
550 : {
551 0 : aCtlBitmapPreview.Hide();
552 0 : aCtlXRectPreview.Show();
553 : }
554 :
555 0 : return !aRbtTransOff.IsChecked();
556 : }
557 :
558 0 : void SvxTransparenceTabPage::InvalidatePreview (sal_Bool bEnable)
559 : {
560 0 : if ( bBitmap )
561 : {
562 0 : if ( bEnable )
563 : {
564 0 : aCtlBitmapPreview.Enable();
565 0 : aCtlBitmapPreview.SetAttributes( aXFillAttr.GetItemSet() );
566 : }
567 : else
568 0 : aCtlBitmapPreview.Disable();
569 0 : aCtlBitmapPreview.Invalidate();
570 : }
571 : else
572 : {
573 0 : if ( bEnable )
574 : {
575 0 : aCtlXRectPreview.Enable();
576 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
577 : }
578 : else
579 0 : aCtlXRectPreview.Disable();
580 0 : aCtlXRectPreview.Invalidate();
581 : }
582 0 : }
583 :
584 0 : void SvxTransparenceTabPage::PageCreated (SfxAllItemSet aSet)
585 : {
586 0 : SFX_ITEMSET_ARG (&aSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE,sal_False);
587 0 : SFX_ITEMSET_ARG (&aSet,pDlgTypeItem,SfxUInt16Item,SID_DLG_TYPE,sal_False);
588 :
589 0 : if (pPageTypeItem)
590 0 : SetPageType(pPageTypeItem->GetValue());
591 0 : if (pDlgTypeItem)
592 0 : SetDlgType(pDlgTypeItem->GetValue());
593 0 : Construct();
594 0 : }
595 : /*************************************************************************
596 : |*
597 : |* Dialog to modify fill-attributes
598 : |*
599 : \************************************************************************/
600 :
601 0 : SvxAreaTabPage::SvxAreaTabPage( Window* pParent, const SfxItemSet& rInAttrs ) :
602 :
603 0 : SvxTabPage ( pParent, CUI_RES( RID_SVXPAGE_AREA ), rInAttrs ),
604 :
605 0 : aFlProp ( this, CUI_RES( FL_PROP ) ),
606 0 : aTypeLB ( this, CUI_RES( LB_AREA_TYPE ) ),
607 :
608 0 : aLbColor ( this, CUI_RES( LB_COLOR ) ),
609 0 : aLbGradient ( this, CUI_RES( LB_GRADIENT ) ),
610 0 : aLbHatching ( this, CUI_RES( LB_HATCHING ) ),
611 0 : aLbBitmap ( this, CUI_RES( LB_BITMAP ) ),
612 0 : aCtlBitmapPreview ( this, CUI_RES( CTL_BITMAP_PREVIEW ) ),
613 :
614 0 : aTsbStepCount ( this, CUI_RES( TSB_STEPCOUNT ) ),
615 0 : aFlStepCount ( this, CUI_RES( FL_STEPCOUNT ) ),
616 0 : aNumFldStepCount ( this, CUI_RES( NUM_FLD_STEPCOUNT ) ),
617 :
618 0 : aCbxHatchBckgrd ( this, CUI_RES( CB_HATCHBCKGRD ) ),
619 0 : aLbHatchBckgrdColor ( this, CUI_RES( LB_HATCHBCKGRDCOLOR ) ),
620 :
621 0 : aFlSize ( this, CUI_RES( FL_SIZE ) ),
622 0 : aTsbOriginal ( this, CUI_RES( TSB_ORIGINAL ) ),
623 0 : aTsbScale ( this, CUI_RES( TSB_SCALE ) ),
624 0 : aFtXSize ( this, CUI_RES( FT_X_SIZE ) ),
625 0 : aMtrFldXSize ( this, CUI_RES( MTR_FLD_X_SIZE ) ),
626 0 : aFtYSize ( this, CUI_RES( FT_Y_SIZE ) ),
627 0 : aMtrFldYSize ( this, CUI_RES( MTR_FLD_Y_SIZE ) ),
628 0 : aFlPosition ( this, CUI_RES( FL_POSITION ) ),
629 0 : aCtlPosition ( this, CUI_RES( CTL_POSITION ), RP_RM, 110, 80, CS_RECT ),
630 0 : aFtXOffset ( this, CUI_RES( FT_X_OFFSET ) ),
631 0 : aMtrFldXOffset ( this, CUI_RES( MTR_FLD_X_OFFSET ) ),
632 0 : aFtYOffset ( this, CUI_RES( FT_Y_OFFSET ) ),
633 0 : aMtrFldYOffset ( this, CUI_RES( MTR_FLD_Y_OFFSET ) ),
634 0 : aTsbTile ( this, CUI_RES( TSB_TILE ) ),
635 0 : aTsbStretch ( this, CUI_RES( TSB_STRETCH ) ),
636 0 : aFlOffset ( this, CUI_RES( FL_OFFSET ) ),
637 0 : aRbtRow ( this, CUI_RES( RBT_ROW ) ),
638 0 : aRbtColumn ( this, CUI_RES( RBT_COLUMN ) ),
639 0 : aMtrFldOffset ( this, CUI_RES( MTR_FLD_OFFSET ) ),
640 :
641 0 : aCtlXRectPreview ( this, CUI_RES( CTL_COLOR_PREVIEW ) ),
642 :
643 : rOutAttrs ( rInAttrs ),
644 : eRP( RP_LT ),
645 :
646 : pColorList( NULL ),
647 : pGradientList( NULL ),
648 : pHatchingList( NULL ),
649 : pBitmapList( NULL ),
650 :
651 : pnColorListState( 0 ),
652 : pnBitmapListState( 0 ),
653 : pnGradientListState( 0 ),
654 : pnHatchingListState( 0 ),
655 :
656 : nPageType( 0 ),
657 : nDlgType( 0 ),
658 : nPos( LISTBOX_ENTRY_NOTFOUND ),
659 :
660 : pbAreaTP( 0 ),
661 :
662 0 : pXPool ( (XOutdevItemPool*) rInAttrs.GetPool() ),
663 : aXFillAttr ( pXPool ),
664 0 : rXFSet ( aXFillAttr.GetItemSet() )
665 : {
666 0 : FreeResource();
667 :
668 0 : String accName = String(CUI_RES(STR_EXAMPLE));
669 0 : aCtlXRectPreview.SetAccessibleName(accName);
670 0 : aCtlBitmapPreview.SetAccessibleName(accName);
671 :
672 : // groups that overlay each other
673 0 : aLbBitmap.Hide();
674 0 : aCtlBitmapPreview.Hide();
675 :
676 0 : aFlStepCount.Hide();
677 0 : aTsbStepCount.Hide();
678 0 : aNumFldStepCount.Hide();
679 :
680 0 : aTsbTile.Hide();
681 0 : aTsbStretch.Hide();
682 0 : aTsbScale.Hide();
683 0 : aTsbOriginal.Hide();
684 0 : aFtXSize.Hide();
685 0 : aMtrFldXSize.Hide();
686 0 : aFtYSize.Hide();
687 0 : aMtrFldYSize.Hide();
688 0 : aFlSize.Hide();
689 0 : aRbtRow.Hide();
690 0 : aRbtColumn.Hide();
691 0 : aMtrFldOffset.Hide();
692 0 : aFlOffset.Hide();
693 0 : aCtlPosition.Hide();
694 0 : aFtXOffset.Hide();
695 0 : aMtrFldXOffset.Hide();
696 0 : aFtYOffset.Hide();
697 0 : aMtrFldYOffset.Hide();
698 0 : aFlPosition.Hide();
699 : // Controls for Hatch-Background
700 0 : aCbxHatchBckgrd.Hide();
701 0 : aLbHatchBckgrdColor.Hide();
702 :
703 :
704 0 : aTsbOriginal.EnableTriState( sal_False );
705 :
706 :
707 : // this page needs ExchangeSupport
708 0 : SetExchangeSupport();
709 :
710 : // set Metrics
711 0 : eFUnit = GetModuleFieldUnit( rInAttrs );
712 :
713 0 : switch ( eFUnit )
714 : {
715 : case FUNIT_M:
716 : case FUNIT_KM:
717 0 : eFUnit = FUNIT_MM;
718 0 : break;
719 : default: ;//prevent warning
720 : }
721 0 : SetFieldUnit( aMtrFldXSize, eFUnit, sal_True );
722 0 : SetFieldUnit( aMtrFldYSize, eFUnit, sal_True );
723 :
724 : // get PoolUnit
725 0 : SfxItemPool* pPool = rOutAttrs.GetPool();
726 : DBG_ASSERT( pPool, "Wo ist der Pool?" );
727 0 : ePoolUnit = pPool->GetMetric( XATTR_FILLBMP_SIZEX );
728 :
729 : // setting the output device
730 0 : rXFSet.Put( XFillStyleItem( XFILL_SOLID ) );
731 0 : rXFSet.Put( XFillColorItem( String(), COL_BLACK ) );
732 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
733 0 : aCtlBitmapPreview.SetAttributes( aXFillAttr.GetItemSet() );
734 :
735 0 : aLbColor.SetSelectHdl( LINK( this, SvxAreaTabPage, ModifyColorHdl_Impl ) );
736 0 : aLbHatchBckgrdColor.SetSelectHdl( LINK( this, SvxAreaTabPage, ModifyHatchBckgrdColorHdl_Impl ) );
737 0 : aCbxHatchBckgrd.SetToggleHdl( LINK( this, SvxAreaTabPage, ToggleHatchBckgrdColorHdl_Impl ) );
738 :
739 : aLbGradient.SetSelectHdl(
740 0 : LINK( this, SvxAreaTabPage, ModifyGradientHdl_Impl ) );
741 : aLbHatching.SetSelectHdl(
742 0 : LINK( this, SvxAreaTabPage, ModifyHatchingHdl_Impl ) );
743 : aLbBitmap.SetSelectHdl(
744 0 : LINK( this, SvxAreaTabPage, ModifyBitmapHdl_Impl ) );
745 :
746 : aTsbStepCount.SetClickHdl(
747 0 : LINK( this, SvxAreaTabPage, ModifyStepCountHdl_Impl ) );
748 : aNumFldStepCount.SetModifyHdl(
749 0 : LINK( this, SvxAreaTabPage, ModifyStepCountHdl_Impl ) );
750 :
751 0 : Link aLink( LINK( this, SvxAreaTabPage, ModifyTileHdl_Impl ) );
752 0 : aTsbTile.SetClickHdl( aLink );
753 0 : aTsbStretch.SetClickHdl( aLink );
754 0 : aTsbOriginal.SetClickHdl( aLink );
755 0 : aMtrFldXSize.SetModifyHdl( aLink );
756 0 : aMtrFldYSize.SetModifyHdl( aLink );
757 0 : aRbtRow.SetClickHdl( aLink );
758 0 : aRbtColumn.SetClickHdl( aLink );
759 0 : aMtrFldOffset.SetModifyHdl( aLink );
760 0 : aMtrFldXOffset.SetModifyHdl( aLink );
761 0 : aMtrFldYOffset.SetModifyHdl( aLink );
762 0 : aTsbScale.SetClickHdl( LINK( this, SvxAreaTabPage, ClickScaleHdl_Impl ) );
763 :
764 0 : aTypeLB.SetSelectHdl( LINK( this, SvxAreaTabPage, SelectDialogTypeHdl_Impl ) );
765 :
766 : // #i76307# always paint the preview in LTR, because this is what the document does
767 0 : aCtlXRectPreview.EnableRTL(sal_False);
768 :
769 0 : aNumFldStepCount.SetAccessibleRelationLabeledBy( &aTsbStepCount );
770 0 : aCtlPosition.SetAccessibleRelationMemberOf( &aFlPosition );
771 0 : aLbHatchBckgrdColor.SetAccessibleRelationLabeledBy( &aCbxHatchBckgrd );
772 0 : aLbHatchBckgrdColor.SetAccessibleName(aCbxHatchBckgrd.GetText());
773 :
774 0 : aLbColor.SetAccessibleRelationMemberOf( &aFlProp );
775 0 : aMtrFldOffset.SetAccessibleRelationLabeledBy(&aFlOffset);
776 0 : aMtrFldOffset.SetAccessibleName(aFlOffset.GetText());
777 :
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 0 : Size aSize(GetSizePixel());
782 0 : set_width_request(aSize.Width());
783 0 : set_height_request(aSize.Height());
784 0 : }
785 :
786 : // -----------------------------------------------------------------------
787 :
788 0 : void SvxAreaTabPage::Construct()
789 : {
790 : // fill colortables / lists
791 0 : aLbColor.Fill( pColorList );
792 0 : aLbHatchBckgrdColor.Fill ( pColorList );
793 :
794 0 : aLbGradient.Fill( pGradientList );
795 0 : aLbHatching.Fill( pHatchingList );
796 0 : aLbBitmap.Fill( pBitmapList );
797 0 : }
798 :
799 : // -----------------------------------------------------------------------
800 :
801 0 : void SvxAreaTabPage::ActivatePage( const SfxItemSet& rSet )
802 : {
803 : sal_uInt16 nCount;
804 0 : SFX_ITEMSET_ARG (&rSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE,sal_False);
805 0 : SFX_ITEMSET_ARG (&rSet,pPosItem,SfxUInt16Item,SID_TABPAGE_POS,sal_False);
806 0 : if (pPageTypeItem)
807 0 : SetPageType(pPageTypeItem->GetValue());
808 0 : if (pPosItem)
809 0 : SetPos(pPosItem->GetValue());
810 0 : if( nDlgType == 0 ) // area dialog
811 : {
812 0 : *pbAreaTP = sal_True;
813 :
814 0 : if( pColorList.is() )
815 : {
816 0 : sal_uInt16 _nPos = 0;
817 :
818 0 : if( *pnBitmapListState )
819 : {
820 0 : if( *pnBitmapListState & CT_CHANGED )
821 0 : pBitmapList = ( (SvxAreaTabDialog*) GetParentDialog() )->
822 0 : GetNewBitmapList();
823 :
824 0 : _nPos = aLbBitmap.GetSelectEntryPos();
825 :
826 0 : aLbBitmap.Clear();
827 0 : aLbBitmap.Fill( pBitmapList );
828 0 : nCount = aLbBitmap.GetEntryCount();
829 0 : if( nCount == 0 )
830 : ; // This case should never occur
831 0 : else if( nCount <= _nPos )
832 0 : aLbBitmap.SelectEntryPos( 0 );
833 : else
834 0 : aLbBitmap.SelectEntryPos( _nPos );
835 0 : ModifyBitmapHdl_Impl( this );
836 : }
837 :
838 0 : if( *pnHatchingListState )
839 : {
840 0 : if( *pnHatchingListState & CT_CHANGED )
841 0 : pHatchingList = ( (SvxAreaTabDialog*) GetParentDialog() )->
842 0 : GetNewHatchingList();
843 :
844 0 : _nPos = aLbHatching.GetSelectEntryPos();
845 :
846 0 : aLbHatching.Clear();
847 0 : aLbHatching.Fill( pHatchingList );
848 0 : nCount = aLbHatching.GetEntryCount();
849 0 : if( nCount == 0 )
850 : ; // This case should never occur
851 0 : else if( nCount <= _nPos )
852 0 : aLbHatching.SelectEntryPos( 0 );
853 : else
854 0 : aLbHatching.SelectEntryPos( _nPos );
855 0 : ModifyHatchingHdl_Impl( this );
856 :
857 0 : ModifyHatchBckgrdColorHdl_Impl( this );
858 : }
859 :
860 0 : if( *pnGradientListState )
861 : {
862 0 : if( *pnGradientListState & CT_CHANGED )
863 0 : pGradientList = ( (SvxAreaTabDialog*) GetParentDialog() )->
864 0 : GetNewGradientList();
865 :
866 0 : _nPos = aLbGradient.GetSelectEntryPos();
867 :
868 0 : aLbGradient.Clear();
869 0 : aLbGradient.Fill( pGradientList );
870 0 : nCount = aLbGradient.GetEntryCount();
871 0 : if( nCount == 0 )
872 : ; // This case should never occur
873 0 : else if( nCount <= _nPos )
874 0 : aLbGradient.SelectEntryPos( 0 );
875 : else
876 0 : aLbGradient.SelectEntryPos( _nPos );
877 0 : ModifyGradientHdl_Impl( this );
878 : }
879 :
880 0 : if( *pnColorListState )
881 : {
882 0 : if( *pnColorListState & CT_CHANGED )
883 0 : pColorList = ( (SvxAreaTabDialog*) GetParentDialog() )->
884 0 : GetNewColorList();
885 : // aLbColor
886 0 : _nPos = aLbColor.GetSelectEntryPos();
887 0 : aLbColor.Clear();
888 0 : aLbColor.Fill( pColorList );
889 0 : nCount = aLbColor.GetEntryCount();
890 0 : if( nCount == 0 )
891 : ; // This case should never occur
892 0 : else if( nCount <= _nPos )
893 0 : aLbColor.SelectEntryPos( 0 );
894 : else
895 0 : aLbColor.SelectEntryPos( _nPos );
896 :
897 0 : ModifyColorHdl_Impl( this );
898 :
899 : // Backgroundcolor of hatch
900 0 : _nPos = aLbHatchBckgrdColor.GetSelectEntryPos();
901 0 : aLbHatchBckgrdColor.Clear();
902 0 : aLbHatchBckgrdColor.Fill( pColorList );
903 0 : nCount = aLbHatchBckgrdColor.GetEntryCount();
904 0 : if( nCount == 0 )
905 : ; // This case should never occur
906 0 : else if( nCount <= _nPos )
907 0 : aLbHatchBckgrdColor.SelectEntryPos( 0 );
908 : else
909 0 : aLbHatchBckgrdColor.SelectEntryPos( _nPos );
910 :
911 0 : ModifyHatchBckgrdColorHdl_Impl( this );
912 : }
913 :
914 : // evaluate if any other Tabpage set another filltype
915 0 : if( aTypeLB.GetSelectEntryPos() > XFILL_NONE)
916 : {
917 0 : switch( nPageType )
918 : {
919 : case PT_GRADIENT:
920 0 : aTypeLB.SelectEntryPos( XFILL_GRADIENT );
921 0 : aLbGradient.SelectEntryPos( _nPos );
922 0 : ClickGradientHdl_Impl();
923 0 : break;
924 :
925 : case PT_HATCH:
926 0 : aTypeLB.SelectEntryPos( XFILL_HATCH );
927 0 : aLbHatching.SelectEntryPos( _nPos );
928 0 : ClickHatchingHdl_Impl();
929 0 : break;
930 :
931 : case PT_BITMAP:
932 0 : aTypeLB.SelectEntryPos( XFILL_BITMAP );
933 0 : aLbBitmap.SelectEntryPos( _nPos );
934 0 : ClickBitmapHdl_Impl();
935 0 : break;
936 :
937 : case PT_COLOR:
938 0 : aTypeLB.SelectEntryPos( XFILL_SOLID );
939 0 : aLbColor.SelectEntryPos( _nPos );
940 0 : aLbHatchBckgrdColor.SelectEntryPos( _nPos );
941 0 : ClickColorHdl_Impl();
942 0 : break;
943 : }
944 : }
945 0 : nPageType = PT_AREA;
946 : }
947 : }
948 0 : }
949 :
950 : // -----------------------------------------------------------------------
951 :
952 0 : int SvxAreaTabPage::DeactivatePage( SfxItemSet* _pSet )
953 : {
954 0 : if( nDlgType == 0 ) // area dialog
955 : {
956 0 : sal_uInt16 nPosOrig = nPos;
957 0 : XFillStyle eStyle = (XFillStyle) aTypeLB.GetSelectEntryPos();
958 0 : switch( eStyle )
959 : {
960 : case XFILL_GRADIENT:
961 : {
962 0 : nPageType = PT_GRADIENT;
963 0 : nPos = aLbGradient.GetSelectEntryPos();
964 0 : if( nPosOrig != nPos )
965 0 : *pnGradientListState |= CT_MODIFIED;
966 : }
967 0 : break;
968 : case XFILL_HATCH:
969 : {
970 0 : nPageType = PT_HATCH;
971 0 : nPos = aLbHatching.GetSelectEntryPos();
972 0 : if( nPosOrig != nPos )
973 0 : *pnHatchingListState |= CT_MODIFIED;
974 : }
975 0 : break;
976 : case XFILL_BITMAP:
977 : {
978 0 : nPageType = PT_BITMAP;
979 0 : nPos = aLbBitmap.GetSelectEntryPos();
980 0 : if( nPosOrig != nPos )
981 0 : *pnBitmapListState |= CT_MODIFIED;
982 : }
983 0 : break;
984 : case XFILL_SOLID:
985 : {
986 0 : nPageType = PT_COLOR;
987 0 : nPos = aLbColor.GetSelectEntryPos();
988 0 : if( nPosOrig != nPos )
989 0 : *pnColorListState |= CT_MODIFIED;
990 : }
991 0 : break;
992 : default: ;//prevent warning
993 : }
994 : }
995 :
996 0 : if( _pSet )
997 0 : FillItemSet( *_pSet );
998 :
999 0 : return( LEAVE_PAGE );
1000 : }
1001 :
1002 : // -----------------------------------------------------------------------
1003 :
1004 0 : sal_Bool SvxAreaTabPage::FillItemSet( SfxItemSet& rAttrs )
1005 : {
1006 : sal_uInt16 _nPos;
1007 0 : sal_Bool bModified = sal_False;
1008 :
1009 0 : if( nDlgType != 0 || *pbAreaTP )
1010 : {
1011 0 : const SfxPoolItem* pOld = NULL;
1012 0 : XFillStyle eStyle = (XFillStyle) aTypeLB.GetSelectEntryPos();
1013 0 : XFillStyle eSavedStyle = (XFillStyle) aTypeLB.GetSavedValue();
1014 0 : switch( eStyle )
1015 : {
1016 : case XFILL_NONE:
1017 : {
1018 0 : if( eSavedStyle != eStyle )
1019 : {
1020 0 : XFillStyleItem aStyleItem( XFILL_NONE );
1021 0 : pOld = GetOldItem( rAttrs, XATTR_FILLSTYLE );
1022 0 : if ( !pOld || !( *(const XFillStyleItem*)pOld == aStyleItem ) )
1023 : {
1024 0 : rAttrs.Put( aStyleItem );
1025 0 : bModified = sal_True;
1026 0 : }
1027 : }
1028 : }
1029 0 : break;
1030 : case XFILL_SOLID:
1031 : {
1032 0 : _nPos = aLbColor.GetSelectEntryPos();
1033 0 : if( _nPos != LISTBOX_ENTRY_NOTFOUND &&
1034 0 : _nPos != aLbColor.GetSavedValue() )
1035 : {
1036 0 : XFillColorItem aItem( aLbColor.GetSelectEntry(),
1037 0 : aLbColor.GetSelectEntryColor() );
1038 0 : pOld = GetOldItem( rAttrs, XATTR_FILLCOLOR );
1039 0 : if ( !pOld || !( *(const XFillColorItem*)pOld == aItem ) )
1040 : {
1041 0 : rAttrs.Put( aItem );
1042 0 : bModified = sal_True;
1043 0 : }
1044 : }
1045 : // NEW
1046 0 : if( (eSavedStyle != eStyle) &&
1047 0 : ( bModified ||
1048 0 : SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLCOLOR ), sal_True ) ) )
1049 : {
1050 0 : XFillStyleItem aStyleItem( XFILL_SOLID );
1051 0 : pOld = GetOldItem( rAttrs, XATTR_FILLSTYLE );
1052 0 : if ( !pOld || !( *(const XFillStyleItem*)pOld == aStyleItem ) )
1053 : {
1054 0 : rAttrs.Put( aStyleItem );
1055 0 : bModified = sal_True;
1056 0 : }
1057 : }
1058 : }
1059 0 : break;
1060 : case XFILL_GRADIENT:
1061 : {
1062 0 : _nPos = aLbGradient.GetSelectEntryPos();
1063 0 : if( _nPos != LISTBOX_ENTRY_NOTFOUND &&
1064 0 : _nPos != aLbGradient.GetSavedValue() )
1065 : {
1066 0 : XGradient aGradient = pGradientList->GetGradient( _nPos )->GetGradient();
1067 0 : String aString = aLbGradient.GetSelectEntry();
1068 0 : XFillGradientItem aItem( aString, aGradient );
1069 0 : pOld = GetOldItem( rAttrs, XATTR_FILLGRADIENT );
1070 0 : if ( !pOld || !( *(const XFillGradientItem*)pOld == aItem ) )
1071 : {
1072 0 : rAttrs.Put( aItem );
1073 0 : bModified = sal_True;
1074 0 : }
1075 : }
1076 : // NEW
1077 0 : if( (eSavedStyle != eStyle) &&
1078 0 : ( bModified ||
1079 0 : SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLGRADIENT ), sal_True ) ) )
1080 : {
1081 0 : XFillStyleItem aStyleItem( XFILL_GRADIENT );
1082 0 : pOld = GetOldItem( rAttrs, XATTR_FILLSTYLE );
1083 0 : if ( !pOld || !( *(const XFillStyleItem*)pOld == aStyleItem ) )
1084 : {
1085 0 : rAttrs.Put( aStyleItem );
1086 0 : bModified = sal_True;
1087 0 : }
1088 : }
1089 : }
1090 0 : break;
1091 : case XFILL_HATCH:
1092 : {
1093 0 : _nPos = aLbHatching.GetSelectEntryPos();
1094 0 : if( _nPos != LISTBOX_ENTRY_NOTFOUND &&
1095 0 : _nPos != aLbHatching.GetSavedValue() )
1096 : {
1097 0 : XHatch aHatching = pHatchingList->GetHatch( _nPos )->GetHatch();
1098 0 : String aString = aLbHatching.GetSelectEntry();
1099 0 : XFillHatchItem aItem( aString, aHatching );
1100 0 : pOld = GetOldItem( rAttrs, XATTR_FILLHATCH );
1101 0 : if ( !pOld || !( *(const XFillHatchItem*)pOld == aItem ) )
1102 : {
1103 0 : rAttrs.Put( aItem );
1104 0 : bModified = sal_True;
1105 0 : }
1106 : }
1107 0 : XFillBackgroundItem aItem ( aCbxHatchBckgrd.IsChecked() );
1108 0 : rAttrs.Put( aItem );
1109 0 : nPos = aLbHatchBckgrdColor.GetSelectEntryPos();
1110 0 : if( nPos != LISTBOX_ENTRY_NOTFOUND &&
1111 0 : nPos != aLbHatchBckgrdColor.GetSavedValue() )
1112 : {
1113 0 : XFillColorItem aFillColorItem( aLbHatchBckgrdColor.GetSelectEntry(),
1114 0 : aLbHatchBckgrdColor.GetSelectEntryColor() );
1115 0 : pOld = GetOldItem( rAttrs, XATTR_FILLCOLOR );
1116 0 : if ( !pOld || !( *(const XFillColorItem*)pOld == aFillColorItem ) )
1117 : {
1118 0 : rAttrs.Put( aFillColorItem );
1119 0 : bModified = sal_True;
1120 0 : }
1121 : }
1122 : // NEW
1123 0 : if( (eSavedStyle != eStyle) &&
1124 0 : ( bModified ||
1125 0 : SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLHATCH ), sal_True ) ) )
1126 : {
1127 0 : XFillStyleItem aStyleItem( XFILL_HATCH );
1128 0 : pOld = GetOldItem( rAttrs, XATTR_FILLSTYLE );
1129 0 : if ( !pOld || !( *(const XFillStyleItem*)pOld == aStyleItem ) )
1130 : {
1131 0 : rAttrs.Put( aStyleItem );
1132 0 : bModified = sal_True;
1133 0 : }
1134 0 : }
1135 : }
1136 0 : break;
1137 : case XFILL_BITMAP:
1138 : {
1139 0 : nPos = aLbBitmap.GetSelectEntryPos();
1140 0 : if( nPos != LISTBOX_ENTRY_NOTFOUND &&
1141 0 : nPos != aLbBitmap.GetSavedValue() )
1142 : {
1143 0 : const XBitmapEntry* pXBitmapEntry = pBitmapList->GetBitmap(nPos);
1144 0 : const String aString(aLbBitmap.GetSelectEntry());
1145 0 : const XFillBitmapItem aFillBitmapItem(aString, pXBitmapEntry->GetGraphicObject());
1146 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBITMAP );
1147 0 : if ( !pOld || !( *(const XFillBitmapItem*)pOld == aFillBitmapItem ) )
1148 : {
1149 0 : rAttrs.Put( aFillBitmapItem );
1150 0 : bModified = sal_True;
1151 0 : }
1152 : }
1153 : // NEW
1154 0 : if( (eSavedStyle != eStyle) &&
1155 0 : ( bModified ||
1156 0 : SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLBITMAP ), sal_True ) ) )
1157 : {
1158 0 : XFillStyleItem aStyleItem( XFILL_BITMAP );
1159 0 : pOld = GetOldItem( rAttrs, XATTR_FILLSTYLE );
1160 0 : if ( !pOld || !( *(const XFillStyleItem*)pOld == aStyleItem ) )
1161 : {
1162 0 : rAttrs.Put( aStyleItem );
1163 0 : bModified = sal_True;
1164 0 : }
1165 : }
1166 : }
1167 0 : break;
1168 : }
1169 :
1170 : // step size
1171 0 : if( aTsbStepCount.IsEnabled() )
1172 : {
1173 0 : sal_uInt16 nValue = 0;
1174 0 : sal_Bool bValueModified = sal_False;
1175 0 : TriState eState = aTsbStepCount.GetState();
1176 0 : if( eState == STATE_CHECK )
1177 : {
1178 0 : if( eState != aTsbStepCount.GetSavedValue() )
1179 0 : bValueModified = sal_True;
1180 : }
1181 : else
1182 : {
1183 : // condition != Disabled ?
1184 0 : if( !aNumFldStepCount.GetText().isEmpty() )
1185 : {
1186 0 : nValue = (sal_uInt16) aNumFldStepCount.GetValue();
1187 0 : if( nValue != (sal_uInt16) aNumFldStepCount.GetSavedValue().toInt32() )
1188 0 : bValueModified = sal_True;
1189 : }
1190 : }
1191 0 : if( bValueModified )
1192 : {
1193 0 : XGradientStepCountItem aFillBitmapItem( nValue );
1194 0 : pOld = GetOldItem( rAttrs, XATTR_GRADIENTSTEPCOUNT );
1195 0 : if ( !pOld || !( *(const XGradientStepCountItem*)pOld == aFillBitmapItem ) )
1196 : {
1197 0 : rAttrs.Put( aFillBitmapItem );
1198 0 : bModified = sal_True;
1199 0 : }
1200 : }
1201 : }
1202 :
1203 0 : if( aTsbTile.IsEnabled() )
1204 : {
1205 0 : TriState eState = aTsbTile.GetState();
1206 0 : if( eState != aTsbTile.GetSavedValue() )
1207 : {
1208 : XFillBmpTileItem aFillBmpTileItem(
1209 0 : sal::static_int_cast< sal_Bool >( eState ) );
1210 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_TILE );
1211 0 : if ( !pOld || !( *(const XFillBmpTileItem*)pOld == aFillBmpTileItem ) )
1212 : {
1213 0 : rAttrs.Put( aFillBmpTileItem );
1214 0 : bModified = sal_True;
1215 0 : }
1216 : }
1217 : }
1218 :
1219 0 : if( aTsbStretch.IsEnabled() )
1220 : {
1221 0 : TriState eState = aTsbStretch.GetState();
1222 0 : if( eState != aTsbStretch.GetSavedValue() )
1223 : {
1224 : XFillBmpStretchItem aFillBmpStretchItem(
1225 0 : sal::static_int_cast< sal_Bool >( eState ) );
1226 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_STRETCH );
1227 0 : if ( !pOld || !( *(const XFillBmpStretchItem*)pOld == aFillBmpStretchItem ) )
1228 : {
1229 0 : rAttrs.Put( aFillBmpStretchItem );
1230 0 : bModified = sal_True;
1231 0 : }
1232 : }
1233 : }
1234 :
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
1238 :
1239 : //aTsbScale
1240 0 : TriState eState = aTsbScale.GetState();
1241 0 : if( eState != aTsbScale.GetSavedValue() ||
1242 0 : ( !aTsbScale.IsEnabled() &&
1243 0 : aTsbOriginal.IsEnabled() &&
1244 0 : aTsbScale.GetSavedValue() != STATE_CHECK ) )
1245 : {
1246 0 : XFillBmpSizeLogItem* pItem = NULL;
1247 0 : if( aTsbScale.IsEnabled() )
1248 0 : pItem = new XFillBmpSizeLogItem( eState == STATE_NOCHECK );
1249 0 : else if( aTsbOriginal.IsEnabled() && aTsbOriginal.GetState() == STATE_CHECK )
1250 0 : pItem = new XFillBmpSizeLogItem( sal_True );
1251 :
1252 0 : if( pItem )
1253 : {
1254 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_SIZELOG );
1255 0 : if ( !pOld || !( *(const XFillBmpSizeLogItem*)pOld == *pItem ) )
1256 : {
1257 0 : rAttrs.Put( *pItem );
1258 0 : bModified = sal_True;
1259 : }
1260 0 : delete pItem;
1261 : }
1262 : }
1263 :
1264 : //aMtrFldXSize
1265 0 : String aStr = aMtrFldXSize.GetText();
1266 : {
1267 0 : XFillBmpSizeXItem* pItem = NULL;
1268 0 : TriState eScaleState = aTsbScale.GetState();
1269 :
1270 0 : if( aMtrFldXSize.IsEnabled() &&
1271 0 : aStr.Len() > 0 &&
1272 0 : aStr != aMtrFldXSize.GetSavedValue() )
1273 : {
1274 0 : if( eScaleState == STATE_NOCHECK )
1275 0 : pItem = new XFillBmpSizeXItem( GetCoreValue( aMtrFldXSize, ePoolUnit ) );
1276 : else
1277 : {
1278 : // Percentage values are set negatively, so that
1279 : // they aren't scaled; this is considered in the item.
1280 0 : pItem = new XFillBmpSizeXItem( -labs( static_cast<long>(aMtrFldXSize.GetValue()) ) );
1281 : }
1282 : }
1283 0 : else if( aTsbOriginal.IsEnabled() &&
1284 0 : aTsbOriginal.GetState() == STATE_CHECK &&
1285 0 : !aMtrFldXSize.GetSavedValue().isEmpty() )
1286 0 : pItem = new XFillBmpSizeXItem( 0 );
1287 :
1288 0 : if( pItem )
1289 : {
1290 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_SIZEX );
1291 0 : if ( !pOld || !( *(const XFillBmpSizeXItem*)pOld == *pItem ) )
1292 : {
1293 0 : rAttrs.Put( *pItem );
1294 0 : bModified = sal_True;
1295 : }
1296 0 : delete pItem;
1297 : }
1298 : }
1299 :
1300 : //aMtrFldYSize
1301 0 : aStr = aMtrFldYSize.GetText();
1302 : {
1303 0 : XFillBmpSizeYItem* pItem = NULL;
1304 0 : TriState eScaleState = aTsbScale.GetState();
1305 :
1306 0 : if( aMtrFldYSize.IsEnabled() &&
1307 0 : aStr.Len() > 0 &&
1308 0 : aStr != aMtrFldYSize.GetSavedValue() )
1309 : {
1310 0 : if( eScaleState == STATE_NOCHECK )
1311 0 : pItem = new XFillBmpSizeYItem( GetCoreValue( aMtrFldYSize, ePoolUnit ) );
1312 : else
1313 : {
1314 : // Percentage values are set negatively, so that
1315 : // they aren't scaled by the MetricItem;
1316 : // this is considered in the item.
1317 0 : pItem = new XFillBmpSizeYItem( -labs( static_cast<long>(aMtrFldYSize.GetValue()) ) );
1318 : }
1319 : }
1320 0 : else if( aTsbOriginal.IsEnabled() &&
1321 0 : aTsbOriginal.GetState() == STATE_CHECK &&
1322 0 : !aMtrFldYSize.GetSavedValue().isEmpty() )
1323 0 : pItem = new XFillBmpSizeYItem( 0 );
1324 :
1325 0 : if( pItem )
1326 : {
1327 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_SIZEY );
1328 0 : if ( !pOld || !( *(const XFillBmpSizeYItem*)pOld == *pItem ) )
1329 : {
1330 0 : rAttrs.Put( *pItem );
1331 0 : bModified = sal_True;
1332 : }
1333 0 : delete pItem;
1334 : }
1335 : }
1336 :
1337 : //aRbtRow
1338 : //aRbtColumn
1339 : //aMtrFldOffset
1340 0 : if( aMtrFldOffset.IsEnabled() )
1341 : {
1342 0 : String aMtrString = aMtrFldOffset.GetText();
1343 0 : if( ( aMtrString.Len() > 0 &&
1344 0 : aMtrString != aMtrFldOffset.GetSavedValue() ) ||
1345 0 : aRbtRow.GetSavedValue() != aRbtRow.IsChecked() ||
1346 0 : aRbtColumn.GetSavedValue() != aRbtColumn.IsChecked() )
1347 : {
1348 0 : if( aRbtRow.IsChecked() )
1349 : {
1350 0 : XFillBmpTileOffsetXItem aFillBmpTileOffsetXItem( (sal_uInt16) aMtrFldOffset.GetValue() );
1351 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_TILEOFFSETX );
1352 0 : if ( !pOld || !( *(const XFillBmpTileOffsetXItem*)pOld == aFillBmpTileOffsetXItem ) )
1353 : {
1354 0 : rAttrs.Put( aFillBmpTileOffsetXItem );
1355 0 : rAttrs.Put( XFillBmpTileOffsetYItem( 0 ) );
1356 0 : bModified = sal_True;
1357 0 : }
1358 : }
1359 0 : else if( aRbtColumn.IsChecked() )
1360 : {
1361 0 : XFillBmpTileOffsetYItem aFillBmpTileOffsetYItem( (sal_uInt16) aMtrFldOffset.GetValue() );
1362 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_TILEOFFSETY );
1363 0 : if ( !pOld || !( *(const XFillBmpTileOffsetYItem*)pOld == aFillBmpTileOffsetYItem ) )
1364 : {
1365 0 : rAttrs.Put( aFillBmpTileOffsetYItem );
1366 0 : rAttrs.Put( XFillBmpTileOffsetXItem( 0 ) );
1367 0 : bModified = sal_True;
1368 0 : }
1369 : }
1370 0 : }
1371 : }
1372 :
1373 : //aCtlPosition
1374 0 : if( aCtlPosition.IsEnabled() )
1375 : {
1376 0 : sal_Bool bPut = sal_False;
1377 0 : RECT_POINT _eRP = aCtlPosition.GetActualRP();
1378 :
1379 0 : if( SFX_ITEM_DONTCARE == rOutAttrs.GetItemState( XATTR_FILLBMP_POS ) )
1380 0 : bPut = sal_True;
1381 : else
1382 : {
1383 0 : RECT_POINT eValue = ( ( const XFillBmpPosItem& ) rOutAttrs.Get( XATTR_FILLBMP_POS ) ).GetValue();
1384 0 : if( eValue != _eRP )
1385 0 : bPut = sal_True;
1386 : }
1387 0 : if( bPut )
1388 : {
1389 0 : XFillBmpPosItem aFillBmpPosItem( _eRP );
1390 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_POS );
1391 0 : if ( !pOld || !( *(const XFillBmpPosItem*)pOld == aFillBmpPosItem ) )
1392 : {
1393 0 : rAttrs.Put( aFillBmpPosItem );
1394 0 : bModified = sal_True;
1395 0 : }
1396 : }
1397 : }
1398 :
1399 : //aMtrFldXOffset
1400 0 : if( aMtrFldXOffset.IsEnabled() )
1401 : {
1402 0 : String sMtrXOffset = aMtrFldXOffset.GetText();
1403 0 : if( sMtrXOffset.Len() > 0 &&
1404 0 : sMtrXOffset != aMtrFldXOffset.GetSavedValue() )
1405 : {
1406 0 : XFillBmpPosOffsetXItem aFillBmpPosOffsetXItem( (sal_uInt16) aMtrFldXOffset.GetValue() );
1407 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_POSOFFSETX );
1408 0 : if ( !pOld || !( *(const XFillBmpPosOffsetXItem*)pOld == aFillBmpPosOffsetXItem ) )
1409 : {
1410 0 : rAttrs.Put( aFillBmpPosOffsetXItem );
1411 0 : bModified = sal_True;
1412 0 : }
1413 0 : }
1414 : }
1415 :
1416 : //aMtrFldYOffset
1417 0 : if( aMtrFldYOffset.IsEnabled() )
1418 : {
1419 0 : String sMtrYOffset = aMtrFldYOffset.GetText();
1420 0 : if( sMtrYOffset.Len() > 0 &&
1421 0 : sMtrYOffset != aMtrFldYOffset.GetSavedValue() )
1422 : {
1423 0 : XFillBmpPosOffsetYItem aFillBmpPosOffsetYItem( (sal_uInt16) aMtrFldYOffset.GetValue() );
1424 0 : pOld = GetOldItem( rAttrs, XATTR_FILLBMP_POSOFFSETY );
1425 0 : if ( !pOld || !( *(const XFillBmpPosOffsetYItem*)pOld == aFillBmpPosOffsetYItem ) )
1426 : {
1427 0 : rAttrs.Put( aFillBmpPosOffsetYItem );
1428 0 : bModified = sal_True;
1429 0 : }
1430 0 : }
1431 : }
1432 0 : rAttrs.Put (SfxUInt16Item(SID_PAGE_TYPE,nPageType));
1433 0 : rAttrs.Put (SfxUInt16Item(SID_TABPAGE_POS,nPos));
1434 : }
1435 :
1436 0 : return( bModified );
1437 : }
1438 :
1439 : // -----------------------------------------------------------------------
1440 :
1441 0 : void SvxAreaTabPage::Reset( const SfxItemSet& rAttrs )
1442 : {
1443 : XFillStyle eXFS;
1444 0 : if( rAttrs.GetItemState( XATTR_FILLSTYLE ) != SFX_ITEM_DONTCARE )
1445 : {
1446 : eXFS = (XFillStyle) ( ( ( const XFillStyleItem& ) rAttrs.
1447 0 : Get( GetWhich( XATTR_FILLSTYLE ) ) ).GetValue() );
1448 0 : aTypeLB.SelectEntryPos( sal::static_int_cast< sal_uInt16 >( eXFS ) );
1449 0 : switch( eXFS )
1450 : {
1451 : case XFILL_NONE:
1452 0 : ClickInvisibleHdl_Impl();
1453 0 : break;
1454 :
1455 : case XFILL_SOLID:
1456 0 : if( SFX_ITEM_DONTCARE != rAttrs.GetItemState( XATTR_FILLCOLOR ) )
1457 : {
1458 : XFillColorItem aColorItem( ( const XFillColorItem& )
1459 0 : rAttrs.Get( XATTR_FILLCOLOR ) );
1460 :
1461 0 : aLbColor.SelectEntry( aColorItem.GetColorValue() );
1462 0 : aLbHatchBckgrdColor.SelectEntry( aColorItem.GetColorValue() );
1463 : }
1464 0 : ClickColorHdl_Impl();
1465 :
1466 0 : break;
1467 :
1468 : case XFILL_GRADIENT:
1469 0 : if( SFX_ITEM_DONTCARE != rAttrs.GetItemState( XATTR_FILLGRADIENT ) )
1470 : {
1471 : XFillGradientItem aGradientItem( ( ( const XFillGradientItem& )
1472 0 : rAttrs.Get( XATTR_FILLGRADIENT ) ) );
1473 0 : String aString( aGradientItem.GetName() );
1474 0 : XGradient aGradient( aGradientItem.GetGradientValue() );
1475 :
1476 0 : aLbGradient.SelectEntryByList( pGradientList, aString, aGradient );
1477 : }
1478 0 : ClickGradientHdl_Impl();
1479 0 : break;
1480 :
1481 : case XFILL_HATCH:
1482 0 : if( SFX_ITEM_DONTCARE != rAttrs.GetItemState( XATTR_FILLHATCH ) )
1483 : {
1484 : aLbHatching.SelectEntry( ( ( const XFillHatchItem& )
1485 0 : rAttrs.Get( XATTR_FILLHATCH ) ).GetName() );
1486 : }
1487 0 : ClickHatchingHdl_Impl();
1488 :
1489 0 : if ( SFX_ITEM_DONTCARE != rAttrs.GetItemState ( XATTR_FILLBACKGROUND ) )
1490 : {
1491 0 : aCbxHatchBckgrd.Check ( ( ( const XFillBackgroundItem& ) rAttrs.Get ( XATTR_FILLBACKGROUND ) ).GetValue() );
1492 : }
1493 0 : ToggleHatchBckgrdColorHdl_Impl( this );
1494 0 : if( SFX_ITEM_DONTCARE != rAttrs.GetItemState( XATTR_FILLCOLOR ) )
1495 : {
1496 : XFillColorItem aColorItem( ( const XFillColorItem& )
1497 0 : rAttrs.Get( XATTR_FILLCOLOR ) );
1498 :
1499 0 : aLbColor.SelectEntry( aColorItem.GetColorValue() );
1500 0 : aLbHatchBckgrdColor.SelectEntry( aColorItem.GetColorValue() );
1501 : }
1502 0 : break;
1503 :
1504 : case XFILL_BITMAP:
1505 : {
1506 0 : if( SFX_ITEM_DONTCARE != rAttrs.GetItemState( XATTR_FILLBITMAP ) )
1507 : {
1508 : XFillBitmapItem aBitmapItem( ( const XFillBitmapItem& )
1509 0 : rAttrs.Get( XATTR_FILLBITMAP ) );
1510 :
1511 0 : String aString( aBitmapItem.GetName() );
1512 0 : aLbBitmap.SelectEntry( aString );
1513 : }
1514 0 : ClickBitmapHdl_Impl();
1515 : }
1516 0 : break;
1517 :
1518 : default:
1519 0 : break;
1520 : }
1521 : }
1522 : else
1523 : {
1524 : // make all LBs not accessible
1525 0 : aLbColor.Hide();
1526 0 : aLbGradient.Hide();
1527 0 : aLbHatching.Hide();
1528 0 : aLbBitmap.Hide();
1529 0 : aCtlBitmapPreview.Hide();
1530 0 : aLbColor.Disable();
1531 0 : aLbColor.Show();
1532 :
1533 : // so that Reset() also works correctly with Back
1534 0 : aTypeLB.SetNoSelection();
1535 : }
1536 :
1537 : // step size
1538 0 : if( ( rAttrs.GetItemState( XATTR_GRADIENTSTEPCOUNT ) != SFX_ITEM_DONTCARE ) ||
1539 0 : ( rAttrs.GetItemState( XATTR_FILLSTYLE ) != SFX_ITEM_DONTCARE ) )
1540 : {
1541 0 : aTsbStepCount.EnableTriState( sal_False );
1542 0 : sal_uInt16 nValue = ( ( const XGradientStepCountItem& ) rAttrs.Get( XATTR_GRADIENTSTEPCOUNT ) ).GetValue();
1543 0 : if( nValue == 0 )
1544 : {
1545 0 : aTsbStepCount.SetState( STATE_CHECK );
1546 0 : aNumFldStepCount.SetText( String() );
1547 : }
1548 : else
1549 : {
1550 0 : aTsbStepCount.SetState( STATE_NOCHECK );
1551 0 : aNumFldStepCount.SetValue( nValue );
1552 : }
1553 0 : ModifyStepCountHdl_Impl( &aTsbStepCount );
1554 : }
1555 : else
1556 : {
1557 0 : aTsbStepCount.SetState( STATE_DONTKNOW );
1558 0 : aNumFldStepCount.SetText( String() );
1559 : }
1560 :
1561 : // attributes for the bitmap filling
1562 :
1563 0 : if( rAttrs.GetItemState( XATTR_FILLBMP_TILE ) != SFX_ITEM_DONTCARE )
1564 : {
1565 0 : aTsbTile.EnableTriState( sal_False );
1566 :
1567 0 : if( ( ( const XFillBmpTileItem& ) rAttrs.Get( XATTR_FILLBMP_TILE ) ).GetValue() )
1568 0 : aTsbTile.SetState( STATE_CHECK );
1569 : else
1570 0 : aTsbTile.SetState( STATE_NOCHECK );
1571 : }
1572 : else
1573 0 : aTsbTile.SetState( STATE_DONTKNOW );
1574 :
1575 0 : if( rAttrs.GetItemState( XATTR_FILLBMP_STRETCH ) != SFX_ITEM_DONTCARE )
1576 : {
1577 0 : aTsbStretch.EnableTriState( sal_False );
1578 :
1579 0 : if( ( ( const XFillBmpStretchItem& ) rAttrs.Get( XATTR_FILLBMP_STRETCH ) ).GetValue() )
1580 0 : aTsbStretch.SetState( STATE_CHECK );
1581 : else
1582 0 : aTsbStretch.SetState( STATE_NOCHECK );
1583 : }
1584 : else
1585 0 : aTsbStretch.SetState( STATE_DONTKNOW );
1586 :
1587 :
1588 : //aTsbScale
1589 0 : if( rAttrs.GetItemState( XATTR_FILLBMP_SIZELOG ) != SFX_ITEM_DONTCARE )
1590 : {
1591 0 : aTsbScale.EnableTriState( sal_False );
1592 :
1593 0 : if( ( ( const XFillBmpSizeLogItem& ) rAttrs.Get( XATTR_FILLBMP_SIZELOG ) ).GetValue() )
1594 0 : aTsbScale.SetState( STATE_NOCHECK );
1595 : else
1596 0 : aTsbScale.SetState( STATE_CHECK );
1597 :
1598 0 : ClickScaleHdl_Impl( NULL );
1599 : }
1600 : else
1601 0 : aTsbScale.SetState( STATE_DONTKNOW );
1602 :
1603 :
1604 : // determine status for the original size
1605 0 : TriState eOriginal = STATE_NOCHECK;
1606 :
1607 : //aMtrFldXSize
1608 0 : if( rAttrs.GetItemState( XATTR_FILLBMP_SIZEX ) != SFX_ITEM_DONTCARE )
1609 : {
1610 0 : sal_Int32 nValue = ( ( const XFillBmpSizeXItem& ) rAttrs.Get( XATTR_FILLBMP_SIZEX ) ).GetValue();
1611 0 : if( aTsbScale.GetState() == STATE_CHECK )
1612 : {
1613 : // If there's a percentage value in the item,
1614 : // it is negative because of the MetricItems.
1615 0 : aMtrFldXSize.SetValue( labs( nValue ) );
1616 : }
1617 : else
1618 0 : SetMetricValue( aMtrFldXSize, nValue, ePoolUnit );
1619 0 : aMtrFldXSize.SaveValue();
1620 :
1621 0 : if( nValue == 0 )
1622 : {
1623 0 : eOriginal = STATE_CHECK;
1624 : // value would be too small otherwise when turning off the original size
1625 : // (performance problem)
1626 0 : aMtrFldXSize.SetValue( 100 );
1627 : }
1628 : }
1629 : else
1630 : {
1631 0 : aMtrFldXSize.SetText( String() );
1632 0 : aMtrFldXSize.SaveValue();
1633 : }
1634 :
1635 : //aMtrFldYSize
1636 0 : if( rAttrs.GetItemState( XATTR_FILLBMP_SIZEY ) != SFX_ITEM_DONTCARE )
1637 : {
1638 0 : sal_Int32 nValue = ( ( const XFillBmpSizeYItem& ) rAttrs.Get( XATTR_FILLBMP_SIZEY ) ).GetValue();
1639 0 : if( aTsbScale.GetState() == STATE_CHECK )
1640 : {
1641 : // If there's a percentage value in the item,
1642 : // it is negative because of the MetricItems.
1643 0 : aMtrFldYSize.SetValue( labs( nValue ) );
1644 : }
1645 : else
1646 0 : SetMetricValue( aMtrFldYSize, nValue, ePoolUnit );
1647 0 : aMtrFldYSize.SaveValue();
1648 :
1649 0 : if( nValue == 0 )
1650 0 : aMtrFldYSize.SetValue( 100 ); //s.o.
1651 : else
1652 0 : eOriginal = STATE_NOCHECK;
1653 : }
1654 : else
1655 : {
1656 0 : aMtrFldYSize.SetText( String() );
1657 0 : aMtrFldYSize.SaveValue();
1658 0 : eOriginal = STATE_NOCHECK;
1659 : }
1660 :
1661 : // aTsbOriginal
1662 0 : aTsbOriginal.SetState( eOriginal );
1663 :
1664 : // #93372# Setting proper state after changing button
1665 0 : ModifyTileHdl_Impl( NULL );
1666 :
1667 : //aRbtRow
1668 : //aRbtColumn
1669 : //aMtrFldOffset
1670 0 : if( rAttrs.GetItemState( XATTR_FILLBMP_TILEOFFSETX ) != SFX_ITEM_DONTCARE )
1671 : {
1672 0 : sal_uInt16 nValue = ( ( const XFillBmpTileOffsetXItem& ) rAttrs.Get( XATTR_FILLBMP_TILEOFFSETX ) ).GetValue();
1673 0 : if( nValue > 0 )
1674 : {
1675 0 : aMtrFldOffset.SetValue( nValue );
1676 0 : aRbtRow.Check();
1677 : }
1678 0 : else if( rAttrs.GetItemState( XATTR_FILLBMP_TILEOFFSETY ) != SFX_ITEM_DONTCARE )
1679 : {
1680 0 : nValue = ( ( const XFillBmpTileOffsetYItem& ) rAttrs.Get( XATTR_FILLBMP_TILEOFFSETY ) ).GetValue();
1681 0 : if( nValue > 0 )
1682 : {
1683 0 : aMtrFldOffset.SetValue( nValue );
1684 0 : aRbtColumn.Check();
1685 : }
1686 : }
1687 : else
1688 0 : aMtrFldOffset.SetValue( 0 );
1689 : }
1690 : else
1691 0 : aMtrFldOffset.SetText( String() );
1692 :
1693 :
1694 : //aCtlPosition
1695 0 : if( rAttrs.GetItemState( XATTR_FILLBMP_POS ) != SFX_ITEM_DONTCARE )
1696 : {
1697 0 : RECT_POINT eValue = ( ( const XFillBmpPosItem& ) rAttrs.Get( XATTR_FILLBMP_POS ) ).GetValue();
1698 0 : aCtlPosition.SetActualRP( eValue );
1699 : }
1700 : else
1701 0 : aCtlPosition.Reset();
1702 :
1703 : //aMtrFldXOffset
1704 0 : if( rAttrs.GetItemState( XATTR_FILLBMP_POSOFFSETX ) != SFX_ITEM_DONTCARE )
1705 : {
1706 0 : sal_Int32 nValue = ( ( const XFillBmpPosOffsetXItem& ) rAttrs.Get( XATTR_FILLBMP_POSOFFSETX ) ).GetValue();
1707 0 : aMtrFldXOffset.SetValue( nValue );
1708 : }
1709 : else
1710 0 : aMtrFldXOffset.SetText( String() );
1711 :
1712 : //aMtrFldYOffset
1713 0 : if( rAttrs.GetItemState( XATTR_FILLBMP_POSOFFSETY ) != SFX_ITEM_DONTCARE )
1714 : {
1715 0 : sal_Int32 nValue = ( ( const XFillBmpPosOffsetYItem& ) rAttrs.Get( XATTR_FILLBMP_POSOFFSETY ) ).GetValue();
1716 0 : aMtrFldYOffset.SetValue( nValue );
1717 : }
1718 : else
1719 0 : aMtrFldYOffset.SetText( String() );
1720 :
1721 : // not earlier so that tile and stretch are considered
1722 0 : if( aTypeLB.GetSelectEntryPos() == XFILL_BITMAP )
1723 0 : ClickBitmapHdl_Impl();
1724 :
1725 0 : aTypeLB.SaveValue();
1726 0 : aLbColor.SaveValue();
1727 0 : aLbGradient.SaveValue();
1728 0 : aLbHatching.SaveValue();
1729 0 : aLbHatchBckgrdColor.SaveValue();
1730 0 : aLbBitmap.SaveValue();
1731 0 : aTsbStepCount.SaveValue();
1732 0 : aNumFldStepCount.SaveValue();
1733 0 : aTsbTile.SaveValue();
1734 0 : aTsbStretch.SaveValue();
1735 0 : aTsbScale.SaveValue();
1736 0 : aRbtRow.SaveValue();
1737 0 : aRbtColumn.SaveValue();
1738 0 : aMtrFldOffset.SaveValue();
1739 0 : aMtrFldXOffset.SaveValue();
1740 0 : aMtrFldYOffset.SaveValue();
1741 0 : }
1742 :
1743 : // -----------------------------------------------------------------------
1744 :
1745 0 : SfxTabPage* SvxAreaTabPage::Create( Window* pWindow,
1746 : const SfxItemSet& rAttrs )
1747 : {
1748 0 : return( new SvxAreaTabPage( pWindow, rAttrs ) );
1749 : }
1750 :
1751 : //------------------------------------------------------------------------
1752 :
1753 0 : sal_uInt16* SvxAreaTabPage::GetRanges()
1754 : {
1755 0 : return( pAreaRanges );
1756 : }
1757 :
1758 : //------------------------------------------------------------------------
1759 0 : IMPL_LINK_NOARG(SvxAreaTabPage, SelectDialogTypeHdl_Impl)
1760 : {
1761 0 : switch( (XFillStyle)aTypeLB.GetSelectEntryPos() )
1762 : {
1763 0 : case XFILL_NONE: ClickInvisibleHdl_Impl(); break;
1764 0 : case XFILL_SOLID: ClickColorHdl_Impl(); break;
1765 0 : case XFILL_GRADIENT: ClickGradientHdl_Impl(); break;
1766 0 : case XFILL_HATCH: ClickHatchingHdl_Impl(); break;
1767 0 : case XFILL_BITMAP: ClickBitmapHdl_Impl(); break;
1768 : }
1769 :
1770 0 : return 0;
1771 : }
1772 :
1773 0 : void SvxAreaTabPage::ClickInvisibleHdl_Impl()
1774 : {
1775 0 : aTsbTile.Hide();
1776 0 : aTsbStretch.Hide();
1777 0 : aTsbScale.Hide();
1778 0 : aTsbOriginal.Hide();
1779 0 : aFtXSize.Hide();
1780 0 : aMtrFldXSize.Hide();
1781 0 : aFtYSize.Hide();
1782 0 : aMtrFldYSize.Hide();
1783 0 : aFlSize.Hide();
1784 0 : aRbtRow.Hide();
1785 0 : aRbtColumn.Hide();
1786 0 : aMtrFldOffset.Hide();
1787 0 : aFlOffset.Hide();
1788 0 : aCtlPosition.Hide();
1789 0 : aFtXOffset.Hide();
1790 0 : aMtrFldXOffset.Hide();
1791 0 : aFtYOffset.Hide();
1792 0 : aMtrFldYOffset.Hide();
1793 0 : aFlPosition.Hide();
1794 :
1795 0 : aLbColor.Hide();
1796 0 : aLbGradient.Hide();
1797 0 : aLbHatching.Hide();
1798 0 : aLbBitmap.Hide();
1799 0 : aCtlXRectPreview.Hide();
1800 0 : aCtlBitmapPreview.Hide();
1801 :
1802 0 : aFlStepCount.Hide();
1803 0 : aTsbStepCount.Hide();
1804 0 : aNumFldStepCount.Hide();
1805 :
1806 : // Controls for Hatch-Background
1807 0 : aCbxHatchBckgrd.Hide();
1808 0 : aLbHatchBckgrdColor.Hide();
1809 :
1810 0 : rXFSet.Put( XFillStyleItem( XFILL_NONE ) );
1811 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
1812 0 : aCtlBitmapPreview.SetAttributes( aXFillAttr.GetItemSet() );
1813 :
1814 0 : aCtlXRectPreview.Invalidate();
1815 0 : aCtlBitmapPreview.Invalidate();
1816 0 : }
1817 :
1818 : //------------------------------------------------------------------------
1819 :
1820 0 : void SvxAreaTabPage::ClickColorHdl_Impl()
1821 : {
1822 0 : aTsbTile.Hide();
1823 0 : aTsbStretch.Hide();
1824 0 : aTsbScale.Hide();
1825 0 : aTsbOriginal.Hide();
1826 0 : aFtXSize.Hide();
1827 0 : aMtrFldXSize.Hide();
1828 0 : aFtYSize.Hide();
1829 0 : aMtrFldYSize.Hide();
1830 0 : aFlSize.Hide();
1831 0 : aRbtRow.Hide();
1832 0 : aRbtColumn.Hide();
1833 0 : aMtrFldOffset.Hide();
1834 0 : aFlOffset.Hide();
1835 0 : aCtlPosition.Hide();
1836 0 : aFtXOffset.Hide();
1837 0 : aMtrFldXOffset.Hide();
1838 0 : aFtYOffset.Hide();
1839 0 : aMtrFldYOffset.Hide();
1840 0 : aFlPosition.Hide();
1841 :
1842 0 : aLbColor.Enable();
1843 0 : aLbColor.Show();
1844 0 : aLbGradient.Hide();
1845 0 : aLbHatching.Hide();
1846 0 : aLbBitmap.Hide();
1847 0 : aCtlXRectPreview.Enable();
1848 0 : aCtlXRectPreview.Show();
1849 0 : aCtlBitmapPreview.Hide();
1850 :
1851 0 : aFlStepCount.Hide();
1852 0 : aTsbStepCount.Hide();
1853 0 : aNumFldStepCount.Hide();
1854 :
1855 : // Controls for Hatch-Background
1856 0 : aCbxHatchBckgrd.Hide();
1857 0 : aLbHatchBckgrdColor.Hide();
1858 :
1859 : // set table text
1860 0 : OUString aString( CUI_RES( RID_SVXSTR_TABLE ) ); aString += ": ";
1861 0 : INetURLObject aURL( pColorList->GetPath() );
1862 :
1863 0 : aURL.Append( pColorList->GetName() );
1864 : DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
1865 :
1866 0 : if( aURL.getBase().getLength() > 18 )
1867 : {
1868 0 : aString += aURL.getBase().copy( 0, 15 );
1869 0 : aString += "...";
1870 : }
1871 : else
1872 0 : aString += aURL.getBase();
1873 :
1874 0 : ModifyColorHdl_Impl( this );
1875 0 : }
1876 :
1877 : //------------------------------------------------------------------------
1878 :
1879 0 : IMPL_LINK_NOARG(SvxAreaTabPage, ModifyColorHdl_Impl)
1880 : {
1881 0 : const SfxPoolItem* pPoolItem = NULL;
1882 0 : sal_uInt16 _nPos = aLbColor.GetSelectEntryPos();
1883 0 : aLbHatchBckgrdColor.SelectEntryPos( _nPos );
1884 0 : if( _nPos != LISTBOX_ENTRY_NOTFOUND )
1885 : {
1886 0 : rXFSet.Put( XFillStyleItem( XFILL_SOLID ) );
1887 : rXFSet.Put( XFillColorItem( String(),
1888 0 : aLbColor.GetSelectEntryColor() ) );
1889 : }
1890 : // NEW
1891 0 : else if( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLCOLOR ), sal_True, &pPoolItem ) )
1892 : {
1893 0 : rXFSet.Put( XFillStyleItem( XFILL_SOLID ) );
1894 0 : Color aColor( ( ( const XFillColorItem* ) pPoolItem )->GetColorValue() );
1895 0 : rXFSet.Put( XFillColorItem( String(), aColor ) );
1896 : }
1897 : else
1898 0 : rXFSet.Put( XFillStyleItem( XFILL_NONE ) );
1899 :
1900 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
1901 0 : aCtlXRectPreview.Invalidate();
1902 :
1903 0 : return( 0L );
1904 : }
1905 : //------------------------------------------------------------------------
1906 :
1907 0 : void SvxAreaTabPage::ClickGradientHdl_Impl()
1908 : {
1909 0 : aTsbTile.Hide();
1910 0 : aTsbStretch.Hide();
1911 0 : aTsbScale.Hide();
1912 0 : aTsbOriginal.Hide();
1913 0 : aFtXSize.Hide();
1914 0 : aMtrFldXSize.Hide();
1915 0 : aFtYSize.Hide();
1916 0 : aMtrFldYSize.Hide();
1917 0 : aFlSize.Hide();
1918 0 : aRbtRow.Hide();
1919 0 : aRbtColumn.Hide();
1920 0 : aMtrFldOffset.Hide();
1921 0 : aFlOffset.Hide();
1922 0 : aCtlPosition.Hide();
1923 0 : aFtXOffset.Hide();
1924 0 : aMtrFldXOffset.Hide();
1925 0 : aFtYOffset.Hide();
1926 0 : aMtrFldYOffset.Hide();
1927 0 : aFlPosition.Hide();
1928 :
1929 0 : aLbColor.Hide();
1930 0 : aLbGradient.Enable();
1931 0 : aLbGradient.Show();
1932 0 : aLbHatching.Hide();
1933 0 : aLbBitmap.Hide();
1934 0 : aCtlXRectPreview.Enable();
1935 0 : aCtlXRectPreview.Show();
1936 0 : aCtlBitmapPreview.Hide();
1937 :
1938 0 : aFlStepCount.Enable();
1939 0 : aFlStepCount.Show();
1940 0 : aTsbStepCount.Enable();
1941 0 : aTsbStepCount.Show();
1942 0 : aNumFldStepCount.Show();
1943 :
1944 : // Controls for Hatch-Background
1945 0 : aCbxHatchBckgrd.Hide();
1946 0 : aLbHatchBckgrdColor.Hide();
1947 :
1948 : // set table text
1949 0 : OUString aString( CUI_RES( RID_SVXSTR_TABLE ) ); aString += ": ";
1950 0 : INetURLObject aURL( pGradientList->GetPath() );
1951 :
1952 0 : aURL.Append( pGradientList->GetName() );
1953 : DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
1954 :
1955 0 : if( aURL.getBase().getLength() > 18 )
1956 : {
1957 0 : aString += aURL.getBase().copy( 0, 15 );
1958 0 : aString += "...";
1959 : }
1960 : else
1961 0 : aString += aURL.getBase();
1962 :
1963 0 : ModifyGradientHdl_Impl( this );
1964 0 : ModifyStepCountHdl_Impl( &aTsbStepCount );
1965 0 : }
1966 :
1967 : //------------------------------------------------------------------------
1968 :
1969 0 : IMPL_LINK_NOARG(SvxAreaTabPage, ModifyGradientHdl_Impl)
1970 : {
1971 0 : const SfxPoolItem* pPoolItem = NULL;
1972 0 : sal_uInt16 _nPos = aLbGradient.GetSelectEntryPos();
1973 0 : if( _nPos != LISTBOX_ENTRY_NOTFOUND )
1974 : {
1975 : // fill ItemSet and pass it on to aCtlXRectPreview
1976 0 : XGradientEntry* pEntry = pGradientList->GetGradient( _nPos );
1977 :
1978 0 : rXFSet.Put( XFillStyleItem( XFILL_GRADIENT ) );
1979 : rXFSet.Put( XFillGradientItem( String(),
1980 0 : pEntry->GetGradient() ) );
1981 : }
1982 0 : else if( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLGRADIENT ), sal_True, &pPoolItem ) )
1983 : {
1984 0 : rXFSet.Put( XFillStyleItem( XFILL_GRADIENT ) );
1985 0 : rXFSet.Put( XFillGradientItem( String(), ( ( const XFillGradientItem* ) pPoolItem )->GetGradientValue() ) );
1986 : }
1987 : else
1988 0 : rXFSet.Put( XFillStyleItem( XFILL_NONE ) );
1989 :
1990 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
1991 0 : aCtlXRectPreview.Invalidate();
1992 :
1993 0 : return( 0L );
1994 : }
1995 :
1996 : //------------------------------------------------------------------------
1997 :
1998 0 : void SvxAreaTabPage::ClickHatchingHdl_Impl()
1999 : {
2000 0 : aLbColor.Hide();
2001 0 : aLbGradient.Hide();
2002 0 : aLbHatching.Enable();
2003 0 : aLbHatching.Show();
2004 0 : aLbBitmap.Hide();
2005 0 : aCtlXRectPreview.Enable();
2006 0 : aCtlXRectPreview.Show();
2007 0 : aCtlBitmapPreview.Hide();
2008 :
2009 0 : aFlStepCount.Hide();
2010 0 : aTsbStepCount.Hide();
2011 0 : aNumFldStepCount.Hide();
2012 :
2013 0 : aTsbTile.Hide();
2014 0 : aTsbStretch.Hide();
2015 0 : aTsbScale.Hide();
2016 0 : aTsbOriginal.Hide();
2017 0 : aFtXSize.Hide();
2018 0 : aMtrFldXSize.Hide();
2019 0 : aFtYSize.Hide();
2020 0 : aMtrFldYSize.Hide();
2021 0 : aFlSize.Hide();
2022 0 : aRbtRow.Hide();
2023 0 : aRbtColumn.Hide();
2024 0 : aMtrFldOffset.Hide();
2025 0 : aFlOffset.Hide();
2026 0 : aCtlPosition.Hide();
2027 0 : aFtXOffset.Hide();
2028 0 : aMtrFldXOffset.Hide();
2029 0 : aFtYOffset.Hide();
2030 0 : aMtrFldYOffset.Hide();
2031 0 : aFlPosition.Hide();
2032 :
2033 : // Controls for Hatch-Background
2034 0 : aCbxHatchBckgrd.Show();
2035 0 : aLbHatchBckgrdColor.Show();
2036 0 : aCbxHatchBckgrd.Enable();
2037 0 : aLbHatchBckgrdColor.Enable();
2038 :
2039 : // set table text
2040 0 : OUString aString( CUI_RES( RID_SVXSTR_TABLE ) ); aString += ": ";
2041 0 : INetURLObject aURL( pHatchingList->GetPath() );
2042 :
2043 0 : aURL.Append( pHatchingList->GetName() );
2044 : DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
2045 :
2046 0 : if( aURL.getBase().getLength() > 18 )
2047 : {
2048 0 : aString += aURL.getBase().copy( 0, 15 );
2049 0 : aString += "...";
2050 : }
2051 : else
2052 0 : aString += aURL.getBase();
2053 :
2054 0 : ModifyHatchingHdl_Impl( this );
2055 0 : ModifyHatchBckgrdColorHdl_Impl( this );
2056 0 : ToggleHatchBckgrdColorHdl_Impl( this );
2057 0 : }
2058 :
2059 : //------------------------------------------------------------------------
2060 :
2061 0 : IMPL_LINK_NOARG(SvxAreaTabPage, ModifyHatchingHdl_Impl)
2062 : {
2063 0 : const SfxPoolItem* pPoolItem = NULL;
2064 0 : sal_uInt16 _nPos = aLbHatching.GetSelectEntryPos();
2065 0 : if( _nPos != LISTBOX_ENTRY_NOTFOUND )
2066 : {
2067 : // fill ItemSet and pass it on to aCtlXRectPreview
2068 0 : XHatchEntry* pEntry = pHatchingList->GetHatch( _nPos );
2069 :
2070 0 : rXFSet.Put( XFillStyleItem( XFILL_HATCH ) );
2071 0 : rXFSet.Put( XFillHatchItem( String(), pEntry->GetHatch() ) );
2072 : }
2073 0 : else if( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLHATCH ), sal_True, &pPoolItem ) )
2074 : {
2075 0 : rXFSet.Put( XFillStyleItem( XFILL_HATCH ) );
2076 0 : rXFSet.Put( XFillHatchItem( String(), ( ( const XFillHatchItem* ) pPoolItem )->GetHatchValue() ) );
2077 : }
2078 : else
2079 0 : rXFSet.Put( XFillStyleItem( XFILL_NONE ) );
2080 :
2081 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
2082 0 : aCtlXRectPreview.Invalidate();
2083 :
2084 0 : return( 0L );
2085 : }
2086 :
2087 : //------------------------------------------------------------------------
2088 :
2089 0 : IMPL_LINK_NOARG(SvxAreaTabPage, ModifyHatchBckgrdColorHdl_Impl)
2090 : {
2091 0 : const SfxPoolItem* pPoolItem = NULL;
2092 0 : sal_uInt16 _nPos = aLbHatchBckgrdColor.GetSelectEntryPos();
2093 0 : aLbColor.SelectEntryPos( _nPos );
2094 0 : if( _nPos != LISTBOX_ENTRY_NOTFOUND )
2095 : {
2096 : rXFSet.Put( XFillColorItem( String(),
2097 0 : aLbHatchBckgrdColor.GetSelectEntryColor() ) );
2098 : }
2099 0 : else if( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLCOLOR ), sal_True, &pPoolItem ) )
2100 : {
2101 0 : Color aColor( ( ( const XFillColorItem* ) pPoolItem )->GetColorValue() );
2102 0 : rXFSet.Put( XFillColorItem( String(), aColor ) );
2103 : }
2104 : else
2105 0 : rXFSet.Put( XFillStyleItem( XFILL_NONE ) );
2106 :
2107 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
2108 0 : aCtlXRectPreview.Invalidate();
2109 :
2110 0 : return( 0L );
2111 : }
2112 :
2113 : //------------------------------------------------------------------------
2114 :
2115 0 : IMPL_LINK_NOARG(SvxAreaTabPage, ToggleHatchBckgrdColorHdl_Impl)
2116 : {
2117 : // switch on/off backgroundcolor for hatches
2118 0 : aLbHatchBckgrdColor.Enable( aCbxHatchBckgrd.IsChecked() );
2119 :
2120 0 : XFillBackgroundItem aItem( aCbxHatchBckgrd.IsChecked() );
2121 0 : rXFSet.Put ( aItem, XATTR_FILLBACKGROUND );
2122 :
2123 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
2124 0 : aCtlXRectPreview.Invalidate();
2125 :
2126 0 : if( aLbHatchBckgrdColor.GetSelectEntryPos() == LISTBOX_ENTRY_NOTFOUND )
2127 : {
2128 0 : if ( SFX_ITEM_SET == rOutAttrs.GetItemState( XATTR_FILLCOLOR ) )//>= SFX_ITEM_DEFAULT )
2129 : {
2130 0 : XFillColorItem aColorItem( (const XFillColorItem&)rOutAttrs.Get( XATTR_FILLCOLOR ) );
2131 0 : aLbHatchBckgrdColor.SelectEntry( aColorItem.GetColorValue() );
2132 : }
2133 : }
2134 :
2135 0 : return( 0L );
2136 : }
2137 :
2138 : //------------------------------------------------------------------------
2139 :
2140 0 : void SvxAreaTabPage::ClickBitmapHdl_Impl()
2141 : {
2142 0 : aLbColor.Hide();
2143 0 : aLbGradient.Hide();
2144 0 : aLbHatching.Hide();
2145 0 : aLbBitmap.Enable();
2146 0 : aLbBitmap.Show();
2147 0 : aCtlBitmapPreview.Enable();
2148 0 : aCtlBitmapPreview.Show();
2149 0 : aCtlXRectPreview.Hide();
2150 0 : aFlStepCount.Hide();
2151 0 : aTsbStepCount.Hide();
2152 0 : aNumFldStepCount.Hide();
2153 :
2154 0 : aTsbTile.Enable();
2155 0 : aTsbStretch.Enable();
2156 0 : aTsbScale.Enable();
2157 0 : aTsbOriginal.Enable();
2158 0 : aFtXSize.Enable();
2159 0 : aMtrFldXSize.Enable();
2160 0 : aFtYSize.Enable();
2161 0 : aMtrFldYSize.Enable();
2162 0 : aFlSize.Enable();
2163 0 : aCtlPosition.Enable();
2164 0 : aFtXOffset.Enable();
2165 0 : aMtrFldXOffset.Enable();
2166 0 : aFtYOffset.Enable();
2167 0 : aMtrFldYOffset.Enable();
2168 0 : aFlPosition.Enable();
2169 0 : aRbtRow.Enable();
2170 0 : aRbtColumn.Enable();
2171 0 : aMtrFldOffset.Enable();
2172 0 : aFlOffset.Enable();
2173 :
2174 : // Controls for Hatch-Background
2175 0 : aCbxHatchBckgrd.Hide();
2176 0 : aLbHatchBckgrdColor.Hide();
2177 :
2178 0 : aTsbTile.Show();
2179 0 : aTsbStretch.Show();
2180 0 : aTsbScale.Show();
2181 0 : aTsbOriginal.Show();
2182 0 : aFtXSize.Show();
2183 0 : aMtrFldXSize.Show();
2184 0 : aFtYSize.Show();
2185 0 : aMtrFldYSize.Show();
2186 0 : aFlSize.Show();
2187 0 : aCtlPosition.Show();
2188 0 : aFtXOffset.Show();
2189 0 : aMtrFldXOffset.Show();
2190 0 : aFtYOffset.Show();
2191 0 : aMtrFldYOffset.Show();
2192 0 : aFlPosition.Show();
2193 0 : aRbtRow.Show();
2194 0 : aRbtColumn.Show();
2195 0 : aMtrFldOffset.Show();
2196 0 : aFlOffset.Show();
2197 :
2198 : // set table text
2199 0 : OUString aString( CUI_RES( RID_SVXSTR_TABLE ) ); aString += ": ";
2200 0 : INetURLObject aURL( pBitmapList->GetPath() );
2201 :
2202 0 : aURL.Append( pBitmapList->GetName() );
2203 : DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
2204 :
2205 0 : if( aURL.getBase().getLength() > 18 )
2206 : {
2207 0 : aString += aURL.getBase().copy( 0, 15 );
2208 0 : aString += "...";
2209 : }
2210 : else
2211 0 : aString += aURL.getBase();
2212 :
2213 0 : ModifyBitmapHdl_Impl( this );
2214 0 : ModifyTileHdl_Impl( &aTsbOriginal );
2215 0 : }
2216 :
2217 : //------------------------------------------------------------------------
2218 :
2219 0 : IMPL_LINK_NOARG(SvxAreaTabPage, ModifyBitmapHdl_Impl)
2220 : {
2221 0 : const SfxPoolItem* pPoolItem = NULL;
2222 0 : sal_uInt16 _nPos = aLbBitmap.GetSelectEntryPos();
2223 0 : if( _nPos != LISTBOX_ENTRY_NOTFOUND )
2224 : {
2225 : // fill ItemSet and pass it on to aCtlXRectPreview
2226 0 : const XBitmapEntry* pEntry = pBitmapList->GetBitmap(_nPos);
2227 :
2228 0 : rXFSet.Put(XFillStyleItem(XFILL_BITMAP));
2229 0 : rXFSet.Put(XFillBitmapItem(String(), pEntry->GetGraphicObject()));
2230 : }
2231 0 : else if( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLBITMAP ), sal_True, &pPoolItem ) )
2232 : {
2233 0 : rXFSet.Put(XFillStyleItem(XFILL_BITMAP));
2234 0 : rXFSet.Put(XFillBitmapItem(String(), ((const XFillBitmapItem*)pPoolItem)->GetGraphicObject()));
2235 : }
2236 : else
2237 0 : rXFSet.Put( XFillStyleItem( XFILL_NONE ) );
2238 :
2239 0 : aCtlBitmapPreview.SetAttributes( aXFillAttr.GetItemSet() );
2240 0 : aCtlBitmapPreview.Invalidate();
2241 :
2242 0 : return( 0L );
2243 : }
2244 :
2245 : //------------------------------------------------------------------------
2246 :
2247 0 : IMPL_LINK( SvxAreaTabPage, ModifyStepCountHdl_Impl, void *, p )
2248 : {
2249 0 : if( p == &aTsbStepCount )
2250 : {
2251 0 : if( aTsbStepCount.GetState() == STATE_NOCHECK )
2252 : {
2253 0 : if( aNumFldStepCount.GetText().isEmpty() )
2254 0 : aNumFldStepCount.SetText(OUString("64"));
2255 :
2256 0 : aNumFldStepCount.Enable();
2257 : }
2258 : else
2259 0 : aNumFldStepCount.Disable();
2260 : }
2261 :
2262 0 : sal_uInt16 nValue = 0;
2263 0 : if( aTsbStepCount.GetState() != STATE_CHECK )
2264 : {
2265 : // condition != Disabled ?
2266 0 : if( !aNumFldStepCount.GetText().isEmpty() )
2267 0 : nValue = (sal_uInt16) aNumFldStepCount.GetValue();
2268 : }
2269 0 : rXFSet.Put( XGradientStepCountItem( nValue ) );
2270 0 : aCtlXRectPreview.SetAttributes( aXFillAttr.GetItemSet() );
2271 0 : aCtlXRectPreview.Invalidate();
2272 :
2273 0 : return( 0L );
2274 : }
2275 :
2276 : //------------------------------------------------------------------------
2277 :
2278 0 : IMPL_LINK_NOARG(SvxAreaTabPage, ModifyTileHdl_Impl)
2279 : {
2280 0 : TriState eState = aTsbTile.GetState();
2281 0 : if( eState == STATE_CHECK )
2282 : {
2283 0 : aTsbStretch.Disable();
2284 0 : aRbtRow.Enable();
2285 0 : aRbtColumn.Enable();
2286 0 : aMtrFldOffset.Enable();
2287 0 : aFlOffset.Enable();
2288 :
2289 0 : aCtlPosition.Enable();
2290 0 : aCtlPosition.Invalidate();
2291 0 : aFtXOffset.Enable();
2292 0 : aMtrFldXOffset.Enable();
2293 0 : aFtYOffset.Enable();
2294 0 : aMtrFldYOffset.Enable();
2295 0 : aFlPosition.Enable();
2296 :
2297 0 : aTsbScale.Enable();
2298 0 : aTsbOriginal.Enable();
2299 0 : aFtXSize.Enable();
2300 0 : aMtrFldXSize.Enable();
2301 0 : aFtYSize.Enable();
2302 0 : aMtrFldYSize.Enable();
2303 0 : aFlSize.Enable();
2304 : }
2305 0 : else if( eState == STATE_NOCHECK )
2306 : {
2307 0 : aTsbStretch.Enable();
2308 0 : aRbtRow.Disable();
2309 0 : aRbtColumn.Disable();
2310 0 : aMtrFldOffset.Disable();
2311 0 : aFlOffset.Disable();
2312 :
2313 0 : aCtlPosition.Disable();
2314 0 : aCtlPosition.Invalidate();
2315 0 : aFtXOffset.Disable();
2316 0 : aMtrFldXOffset.Disable();
2317 0 : aFtYOffset.Disable();
2318 0 : aMtrFldYOffset.Disable();
2319 0 : aFlPosition.Disable();
2320 :
2321 0 : if( aTsbStretch.GetState() != STATE_NOCHECK )
2322 : {
2323 0 : aTsbScale.Disable();
2324 0 : aTsbOriginal.Disable();
2325 0 : aFtXSize.Disable();
2326 0 : aMtrFldXSize.Disable();
2327 0 : aFtYSize.Disable();
2328 0 : aMtrFldYSize.Disable();
2329 0 : aFlSize.Disable();
2330 : }
2331 : else
2332 : {
2333 0 : aTsbScale.Enable();
2334 0 : aTsbOriginal.Enable();
2335 0 : aFtXSize.Enable();
2336 0 : aMtrFldXSize.Enable();
2337 0 : aFtYSize.Enable();
2338 0 : aMtrFldYSize.Enable();
2339 0 : aFlSize.Enable();
2340 : }
2341 : }
2342 : else
2343 : {
2344 0 : aTsbStretch.Disable();
2345 0 : aRbtRow.Disable();
2346 0 : aRbtColumn.Disable();
2347 0 : aMtrFldOffset.Disable();
2348 0 : aFlOffset.Disable();
2349 :
2350 0 : aCtlPosition.Disable();
2351 0 : aCtlPosition.Invalidate();
2352 0 : aFtXOffset.Disable();
2353 0 : aMtrFldXOffset.Disable();
2354 0 : aFtYOffset.Disable();
2355 0 : aMtrFldYOffset.Disable();
2356 0 : aFlPosition.Disable();
2357 :
2358 0 : aTsbScale.Disable();
2359 0 : aTsbOriginal.Disable();
2360 0 : aFtXSize.Disable();
2361 0 : aMtrFldXSize.Disable();
2362 0 : aFtYSize.Disable();
2363 0 : aMtrFldYSize.Disable();
2364 0 : aFlSize.Disable();
2365 : }
2366 :
2367 0 : if( aTsbOriginal.GetState() == STATE_CHECK )
2368 : {
2369 0 : aMtrFldXSize.SetText( String() );
2370 0 : aMtrFldYSize.SetText( String() );
2371 0 : aFtXSize.Disable();
2372 0 : aFtYSize.Disable();
2373 0 : aMtrFldXSize.Disable();
2374 0 : aMtrFldYSize.Disable();
2375 0 : aTsbScale.Disable();
2376 : }
2377 : else
2378 : {
2379 0 : aMtrFldXSize.SetValue( aMtrFldXSize.GetValue() );
2380 0 : aMtrFldYSize.SetValue( aMtrFldYSize.GetValue() );
2381 : }
2382 :
2383 0 : rXFSet.Put( XFillBmpTileItem( sal::static_int_cast< sal_Bool >( eState ) ) );
2384 :
2385 0 : if( aTsbStretch.IsEnabled() )
2386 : rXFSet.Put(
2387 : XFillBmpStretchItem(
2388 0 : sal::static_int_cast< sal_Bool >( aTsbStretch.GetState() ) ) );
2389 :
2390 0 : if( aTsbScale.IsEnabled() )
2391 0 : rXFSet.Put( XFillBmpSizeLogItem( aTsbScale.GetState() == STATE_NOCHECK ) );
2392 :
2393 0 : if( aMtrFldXSize.IsEnabled() )
2394 : {
2395 0 : XFillBmpSizeXItem* pItem = NULL;
2396 0 : TriState eScaleState = aTsbScale.GetState();
2397 :
2398 0 : if( eScaleState == STATE_NOCHECK )
2399 0 : pItem = new XFillBmpSizeXItem( GetCoreValue( aMtrFldXSize, ePoolUnit ) );
2400 : else
2401 0 : pItem = new XFillBmpSizeXItem( -labs( static_cast<long>(aMtrFldXSize.GetValue()) ) );
2402 :
2403 0 : rXFSet.Put( *pItem );
2404 :
2405 0 : delete pItem;
2406 : }
2407 0 : else if( aTsbOriginal.IsEnabled() && aTsbOriginal.GetState() == STATE_CHECK )
2408 : {
2409 : // original size -> size == 0
2410 0 : rXFSet.Put( XFillBmpSizeXItem( 0 ) );
2411 0 : rXFSet.Put( XFillBmpSizeLogItem( sal_True ) );
2412 : }
2413 :
2414 0 : if( aMtrFldYSize.IsEnabled() )
2415 : {
2416 0 : XFillBmpSizeYItem* pItem = NULL;
2417 0 : TriState eScaleState = aTsbScale.GetState();
2418 :
2419 0 : if( eScaleState == STATE_NOCHECK )
2420 0 : pItem = new XFillBmpSizeYItem( GetCoreValue( aMtrFldYSize, ePoolUnit ) );
2421 : else
2422 0 : pItem = new XFillBmpSizeYItem( -labs( static_cast<long>(aMtrFldYSize.GetValue()) ) );
2423 :
2424 0 : rXFSet.Put( *pItem );
2425 :
2426 0 : delete pItem;
2427 : }
2428 0 : else if( aTsbOriginal.IsEnabled() && aTsbOriginal.GetState() == STATE_CHECK )
2429 : {
2430 : // original size -> size == 0
2431 0 : rXFSet.Put( XFillBmpSizeYItem( 0 ) );
2432 0 : rXFSet.Put( XFillBmpSizeLogItem( sal_True ) );
2433 : }
2434 :
2435 0 : if( aMtrFldOffset.IsEnabled() )
2436 : {
2437 0 : if( aRbtRow.IsChecked() )
2438 : {
2439 0 : rXFSet.Put( XFillBmpTileOffsetXItem( (sal_uInt16) aMtrFldOffset.GetValue() ) );
2440 0 : rXFSet.Put( XFillBmpTileOffsetYItem( (sal_uInt16) 0 ) );
2441 : }
2442 0 : else if( aRbtColumn.IsChecked() )
2443 : {
2444 0 : rXFSet.Put( XFillBmpTileOffsetXItem( (sal_uInt16) 0 ) );
2445 0 : rXFSet.Put( XFillBmpTileOffsetYItem( (sal_uInt16) aMtrFldOffset.GetValue() ) );
2446 : }
2447 : }
2448 :
2449 0 : if( aCtlPosition.IsEnabled() )
2450 0 : rXFSet.Put( XFillBmpPosItem( aCtlPosition.GetActualRP() ) );
2451 :
2452 0 : if( aMtrFldXOffset.IsEnabled() )
2453 0 : rXFSet.Put( XFillBmpPosOffsetXItem( (sal_uInt16) aMtrFldXOffset.GetValue() ) );
2454 :
2455 0 : if( aMtrFldYOffset.IsEnabled() )
2456 0 : rXFSet.Put( XFillBmpPosOffsetYItem( (sal_uInt16) aMtrFldYOffset.GetValue() ) );
2457 :
2458 :
2459 0 : aCtlBitmapPreview.SetAttributes( aXFillAttr.GetItemSet() );
2460 0 : aCtlBitmapPreview.Invalidate();
2461 :
2462 0 : return( 0L );
2463 : }
2464 :
2465 : //------------------------------------------------------------------------
2466 :
2467 0 : IMPL_LINK_NOARG(SvxAreaTabPage, ClickScaleHdl_Impl)
2468 : {
2469 0 : if( aTsbScale.GetState() == STATE_CHECK )
2470 : {
2471 0 : aMtrFldXSize.SetDecimalDigits( 0 );
2472 0 : aMtrFldXSize.SetUnit( FUNIT_CUSTOM );
2473 0 : aMtrFldXSize.SetValue( 100 );
2474 0 : aMtrFldXSize.SetMax( 100 );
2475 0 : aMtrFldXSize.SetLast( 100 );
2476 :
2477 0 : aMtrFldYSize.SetDecimalDigits( 0 );
2478 0 : aMtrFldYSize.SetUnit( FUNIT_CUSTOM );
2479 0 : aMtrFldYSize.SetValue( 100 );
2480 0 : aMtrFldYSize.SetMax( 100 );
2481 0 : aMtrFldYSize.SetLast( 100 );
2482 : }
2483 : else
2484 : {
2485 0 : aMtrFldXSize.SetDecimalDigits( 2 );
2486 0 : aMtrFldXSize.SetUnit( eFUnit );
2487 0 : aMtrFldXSize.SetValue( 100 );
2488 0 : aMtrFldXSize.SetMax( 999900 );
2489 0 : aMtrFldXSize.SetLast( 100000 );
2490 :
2491 0 : aMtrFldYSize.SetDecimalDigits( 2 );
2492 0 : aMtrFldYSize.SetUnit( eFUnit );
2493 0 : aMtrFldYSize.SetValue( 100 );
2494 0 : aMtrFldYSize.SetMax( 999900 );
2495 0 : aMtrFldYSize.SetLast( 100000 );
2496 : }
2497 :
2498 0 : ModifyTileHdl_Impl( NULL );
2499 :
2500 0 : return( 0L );
2501 : }
2502 :
2503 : //------------------------------------------------------------------------
2504 :
2505 0 : void SvxAreaTabPage::PointChanged( Window* pWindow, RECT_POINT eRcPt )
2506 : {
2507 0 : eRP = eRcPt;
2508 :
2509 : // alignment of the bitmap fill
2510 0 : ModifyTileHdl_Impl( pWindow );
2511 0 : }
2512 :
2513 0 : void SvxAreaTabPage::PageCreated (SfxAllItemSet aSet)
2514 : {
2515 0 : SFX_ITEMSET_ARG (&aSet,pColorListItem,SvxColorListItem,SID_COLOR_TABLE,sal_False);
2516 0 : SFX_ITEMSET_ARG (&aSet,pGradientListItem,SvxGradientListItem,SID_GRADIENT_LIST,sal_False);
2517 0 : SFX_ITEMSET_ARG (&aSet,pHatchingListItem,SvxHatchListItem,SID_HATCH_LIST,sal_False);
2518 0 : SFX_ITEMSET_ARG (&aSet,pBitmapListItem,SvxBitmapListItem,SID_BITMAP_LIST,sal_False);
2519 0 : SFX_ITEMSET_ARG (&aSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE,sal_False);
2520 0 : SFX_ITEMSET_ARG (&aSet,pDlgTypeItem,SfxUInt16Item,SID_DLG_TYPE,sal_False);
2521 0 : SFX_ITEMSET_ARG (&aSet,pPosItem,SfxUInt16Item,SID_TABPAGE_POS,sal_False);
2522 :
2523 0 : if (pColorListItem)
2524 0 : SetColorList(pColorListItem->GetColorList());
2525 0 : if (pGradientListItem)
2526 0 : SetGradientList(pGradientListItem->GetGradientList());
2527 0 : if (pHatchingListItem)
2528 0 : SetHatchingList(pHatchingListItem->GetHatchList());
2529 0 : if (pBitmapListItem)
2530 0 : SetBitmapList(pBitmapListItem->GetBitmapList());
2531 0 : if (pPageTypeItem)
2532 0 : SetPageType(pPageTypeItem->GetValue());
2533 0 : if (pDlgTypeItem)
2534 0 : SetDlgType(pDlgTypeItem->GetValue());
2535 0 : if (pPosItem)
2536 0 : SetPos(pPosItem->GetValue());
2537 0 : Construct();
2538 0 : }
2539 :
2540 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|