LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/cui/source/tabpages - tparea.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 1487 0.0 %
Date: 2013-07-09 Functions: 0 64 0.0 %
Legend: Lines: hit not hit

          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: */

Generated by: LCOV version 1.10