| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_cui.hxx" |
| |
| // include --------------------------------------------------------------- |
| #include <tools/shl.hxx> |
| #include <sfx2/app.hxx> |
| #include <sfx2/module.hxx> |
| #include <svx/dialogs.hrc> |
| |
| #define _SVX_TPSHADOW_CXX |
| |
| #include "svx/xattr.hxx" |
| #include <svx/xpool.hxx> |
| #include <cuires.hrc> |
| #include "tabarea.hrc" |
| #include <svx/svdattr.hxx> |
| #include "svx/drawitem.hxx" |
| #include "cuitabarea.hxx" |
| #include <dialmgr.hxx> |
| #include "svx/dlgutil.hxx" |
| #include <cuitabline.hxx> |
| #include "paragrph.hrc" |
| #include <svx/xlineit0.hxx> |
| #include <sfx2/request.hxx> //add CHINA001 |
| |
| #define DLGWIN this->GetParent()->GetParent() |
| |
| // static ---------------------------------------------------------------- |
| |
| static sal_uInt16 pShadowRanges[] = |
| { |
| SDRATTR_SHADOWCOLOR, |
| SDRATTR_SHADOWTRANSPARENCE, |
| SID_ATTR_FILL_SHADOW, |
| SID_ATTR_FILL_SHADOW, |
| 0 |
| }; |
| |
| /************************************************************************* |
| |* |
| |* Dialog zum Aendern des Schattens |
| |* |
| \************************************************************************/ |
| |
| SvxShadowTabPage::SvxShadowTabPage( Window* pParent, const SfxItemSet& rInAttrs ) : |
| |
| SvxTabPage ( pParent, CUI_RES( RID_SVXPAGE_SHADOW ), rInAttrs ), |
| |
| aFlProp ( this, CUI_RES( FL_PROP ) ), |
| aTsbShowShadow ( this, CUI_RES( TSB_SHOW_SHADOW ) ), |
| aFtPosition ( this, CUI_RES( FT_POSITION ) ), |
| aCtlPosition ( this, CUI_RES( CTL_POSITION ) ), |
| aFtDistance ( this, CUI_RES( FT_DISTANCE ) ), |
| aMtrDistance ( this, CUI_RES( MTR_FLD_DISTANCE ) ), |
| aFtShadowColor ( this, CUI_RES( FT_SHADOW_COLOR ) ), |
| aLbShadowColor ( this, CUI_RES( LB_SHADOW_COLOR ) ), |
| aFtTransparent ( this, CUI_RES( FT_TRANSPARENT ) ), |
| aMtrTransparent ( this, CUI_RES( MTR_SHADOW_TRANSPARENT ) ), |
| aCtlXRectPreview ( this, CUI_RES( CTL_COLOR_PREVIEW ) ), |
| rOutAttrs ( rInAttrs ), |
| maColorTab(), |
| bDisable ( sal_False ), |
| pXPool ( (XOutdevItemPool*) rInAttrs.GetPool() ), |
| aXFillAttr ( pXPool ), |
| rXFSet ( aXFillAttr.GetItemSet() ) |
| { |
| FreeResource(); |
| |
| // diese Page braucht ExchangeSupport |
| SetExchangeSupport(); |
| |
| // Metrik einstellen |
| FieldUnit eFUnit = GetModuleFieldUnit( rInAttrs ); |
| |
| switch ( eFUnit ) |
| { |
| case FUNIT_M: |
| case FUNIT_KM: |
| eFUnit = FUNIT_MM; |
| break; |
| default: ;//prevent warning |
| } |
| SetFieldUnit( aMtrDistance, eFUnit ); |
| |
| // PoolUnit ermitteln |
| SfxItemPool* pPool = rOutAttrs.GetPool(); |
| DBG_ASSERT( pPool, "Wo ist der Pool?" ); |
| ePoolUnit = pPool->GetMetric( SDRATTR_SHADOWXDIST ); |
| |
| // Setzen des Output-Devices |
| XFillStyle eXFS = XFILL_SOLID; |
| if( rOutAttrs.GetItemState( XATTR_FILLSTYLE ) != SFX_ITEM_DONTCARE ) |
| { |
| eXFS = (XFillStyle) ( ( ( const XFillStyleItem& ) rOutAttrs. |
| Get( GetWhich( XATTR_FILLSTYLE ) ) ).GetValue() ); |
| switch( eXFS ) |
| { |
| //case XFILL_NONE: --> NICHTS |
| |
| case XFILL_SOLID: |
| if( SFX_ITEM_DONTCARE != rOutAttrs.GetItemState( XATTR_FILLCOLOR ) ) |
| { |
| XFillColorItem aColorItem( ( const XFillColorItem& ) |
| rOutAttrs.Get( XATTR_FILLCOLOR ) ); |
| rXFSet.Put( aColorItem ); |
| } |
| break; |
| |
| case XFILL_GRADIENT: |
| if( SFX_ITEM_DONTCARE != rOutAttrs.GetItemState( XATTR_FILLGRADIENT ) ) |
| { |
| XFillGradientItem aGradientItem( ( ( const XFillGradientItem& ) |
| rOutAttrs.Get( XATTR_FILLGRADIENT ) ) ); |
| rXFSet.Put( aGradientItem ); |
| } |
| break; |
| |
| case XFILL_HATCH: |
| if( SFX_ITEM_DONTCARE != rOutAttrs.GetItemState( XATTR_FILLHATCH ) ) |
| { |
| XFillHatchItem aHatchItem( ( ( const XFillHatchItem& ) |
| rOutAttrs.Get( XATTR_FILLHATCH ) ) ); |
| rXFSet.Put( aHatchItem ); |
| } |
| break; |
| |
| case XFILL_BITMAP: |
| { |
| if( SFX_ITEM_DONTCARE != rOutAttrs.GetItemState( XATTR_FILLBITMAP ) ) |
| { |
| XFillBitmapItem aBitmapItem( ( const XFillBitmapItem& ) |
| rOutAttrs.Get( XATTR_FILLBITMAP ) ); |
| rXFSet.Put( aBitmapItem ); |
| } |
| } |
| break; |
| case XFILL_NONE : break; |
| } |
| } |
| else |
| { |
| rXFSet.Put( XFillColorItem( String(), COL_LIGHTRED ) ); |
| } |
| |
| if(XFILL_NONE == eXFS) |
| { |
| // #i96350# |
| // fallback to solid fillmode when no fill mode is provided to have |
| // a reasonable shadow preview. The used color will be a set one or |
| // the default (currently blue8) |
| eXFS = XFILL_SOLID; |
| } |
| |
| rXFSet.Put( XFillStyleItem( eXFS ) ); |
| aCtlXRectPreview.SetRectangleAttributes(aXFillAttr.GetItemSet()); |
| //aCtlXRectPreview.SetFillAttr( aXFillAttr ); |
| |
| aTsbShowShadow.SetClickHdl( LINK( this, SvxShadowTabPage, ClickShadowHdl_Impl ) ); |
| Link aLink = LINK( this, SvxShadowTabPage, ModifyShadowHdl_Impl ); |
| aLbShadowColor.SetSelectHdl( aLink ); |
| aMtrTransparent.SetModifyHdl( aLink ); |
| aMtrDistance.SetModifyHdl( aLink ); |
| |
| aCtlXRectPreview.SetAccessibleName(String(CUI_RES(STR_EXAMPLE))); |
| aCtlPosition.SetAccessibleRelationMemberOf( &aFlProp ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvxShadowTabPage::Construct() |
| { |
| // Farbtabelle fuellen |
| aLbShadowColor.Fill( maColorTab ); |
| |
| if( bDisable ) |
| { |
| aTsbShowShadow.Disable(); |
| aFtPosition.Disable(); |
| aCtlPosition.Disable(); |
| aFtDistance.Disable(); |
| aMtrDistance.Disable(); |
| aFtShadowColor.Disable(); |
| aLbShadowColor.Disable(); |
| aFtTransparent.Disable(); |
| aMtrTransparent.Disable(); |
| } |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvxShadowTabPage::ActivatePage( const SfxItemSet& rSet ) |
| { |
| sal_uInt16 nPos; |
| sal_uInt16 nCount; |
| //add CHINA001 Begin |
| SFX_ITEMSET_ARG (&rSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE,sal_False); |
| if (pPageTypeItem) |
| SetPageType(pPageTypeItem->GetValue()); |
| //add CHINA001 end |
| if( nDlgType == 0 ) //CHINA001 // Flaechen-Dialogif( *pDlgType == 0 ) // Flaechen-Dialog |
| { |
| if( maColorTab.get() ) |
| { |
| // ColorTable |
| if( *pnColorTableState & CT_CHANGED || |
| *pnColorTableState & CT_MODIFIED ) |
| { |
| if( *pnColorTableState & CT_CHANGED ) |
| { |
| SvxAreaTabDialog* pArea = dynamic_cast< SvxAreaTabDialog* >( DLGWIN ); |
| if( pArea ) |
| { |
| maColorTab = pArea->GetNewColorTable(); |
| } |
| else |
| { |
| SvxLineTabDialog* pLine = dynamic_cast< SvxLineTabDialog* >( DLGWIN ); |
| if( pLine ) |
| maColorTab = pLine->GetNewColorTable(); |
| } |
| } |
| |
| // aLbShadowColor |
| nPos = aLbShadowColor.GetSelectEntryPos(); |
| aLbShadowColor.Clear(); |
| aLbShadowColor.Fill( maColorTab ); |
| nCount = aLbShadowColor.GetEntryCount(); |
| if( nCount == 0 ) |
| ; // Dieser Fall sollte nicht auftreten |
| else if( nCount <= nPos ) |
| aLbShadowColor.SelectEntryPos( 0 ); |
| else |
| aLbShadowColor.SelectEntryPos( nPos ); |
| |
| ModifyShadowHdl_Impl( this ); |
| } |
| nPageType = PT_SHADOW;//CHINA001 *pPageType = PT_SHADOW; |
| } |
| } |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| int SvxShadowTabPage::DeactivatePage( SfxItemSet* _pSet ) |
| { |
| if( _pSet ) |
| FillItemSet( *_pSet ); |
| |
| return( LEAVE_PAGE ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| sal_Bool SvxShadowTabPage::FillItemSet( SfxItemSet& rAttrs ) |
| { |
| const SfxPoolItem* pOld = NULL; |
| sal_Bool bModified = sal_False; |
| |
| if( !bDisable ) |
| { |
| // Schatten |
| TriState eState = aTsbShowShadow.GetState(); |
| if( eState != aTsbShowShadow.GetSavedValue() ) |
| { |
| SdrShadowItem aItem( sal::static_int_cast< sal_Bool >( eState ) ); |
| pOld = GetOldItem( rAttrs, SDRATTR_SHADOW ); |
| if ( !pOld || !( *(const SdrShadowItem*)pOld == aItem ) ) |
| { |
| rAttrs.Put( aItem ); |
| bModified = sal_True; |
| } |
| } |
| |
| // Schatten-Entfernung |
| // Etwas umstaendliche Abfrage, ob etwas geaendert wurde, |
| // da Items nicht direkt auf Controls abbildbar sind |
| sal_Int32 nX = 0L, nY = 0L; |
| sal_Int32 nXY = GetCoreValue( aMtrDistance, ePoolUnit ); |
| |
| switch( aCtlPosition.GetActualRP() ) |
| { |
| case RP_LT: nX = nY = -nXY; break; |
| case RP_MT: nY = -nXY; break; |
| case RP_RT: nX = nXY; nY = -nXY; break; |
| case RP_LM: nX = -nXY; break; |
| case RP_RM: nX = nXY; break; |
| case RP_LB: nX = -nXY; nY = nXY; break; |
| case RP_MB: nY = nXY; break; |
| case RP_RB: nX = nY = nXY; break; |
| case RP_MM: break; |
| } |
| |
| // Wenn die Werte des Schattenabstanden==SFX_ITEM_DONTCARE und der angezeigte |
| // String im entspr. MetricField=="", dann w�rde der Vergleich zw. alten und |
| // neuen Distance-Werte ein falsches Ergebnis liefern, da in so einem Fall die |
| // neuen Distance-Werte den Default-Werten des MetricField entspr�chen !!!! |
| if ( !aMtrDistance.IsEmptyFieldValue() || |
| rOutAttrs.GetItemState( SDRATTR_SHADOWXDIST ) != SFX_ITEM_DONTCARE || |
| rOutAttrs.GetItemState( SDRATTR_SHADOWYDIST ) != SFX_ITEM_DONTCARE ) |
| { |
| sal_Int32 nOldX = 9876543; // Unmoeglicher Wert, entspr. DontCare |
| sal_Int32 nOldY = 9876543; |
| if( rOutAttrs.GetItemState( SDRATTR_SHADOWXDIST ) != SFX_ITEM_DONTCARE && |
| rOutAttrs.GetItemState( SDRATTR_SHADOWYDIST ) != SFX_ITEM_DONTCARE ) |
| { |
| nOldX = ( ( const SdrShadowXDistItem& ) rOutAttrs. |
| Get( SDRATTR_SHADOWXDIST ) ).GetValue(); |
| nOldY = ( ( const SdrShadowYDistItem& ) rOutAttrs. |
| Get( SDRATTR_SHADOWYDIST ) ).GetValue(); |
| } |
| SdrShadowXDistItem aXItem( nX ); |
| pOld = GetOldItem( rAttrs, SDRATTR_SHADOWXDIST ); |
| if ( nX != nOldX && |
| ( !pOld || !( *(const SdrShadowXDistItem*)pOld == aXItem ) ) ) |
| { |
| rAttrs.Put( aXItem ); |
| bModified = sal_True; |
| } |
| SdrShadowYDistItem aYItem( nY ); |
| pOld = GetOldItem( rAttrs, SDRATTR_SHADOWYDIST ); |
| if ( nY != nOldY && |
| ( !pOld || !( *(const SdrShadowYDistItem*)pOld == aYItem ) ) ) |
| { |
| rAttrs.Put( aYItem ); |
| bModified = sal_True; |
| } |
| } |
| |
| // ShadowColor |
| sal_uInt16 nPos = aLbShadowColor.GetSelectEntryPos(); |
| if( nPos != LISTBOX_ENTRY_NOTFOUND && |
| nPos != aLbShadowColor.GetSavedValue() ) |
| { |
| SdrShadowColorItem aItem( aLbShadowColor.GetSelectEntry(), |
| aLbShadowColor.GetSelectEntryColor() ); |
| pOld = GetOldItem( rAttrs, SDRATTR_SHADOWCOLOR ); |
| if ( !pOld || !( *(const SdrShadowColorItem*)pOld == aItem ) ) |
| { |
| rAttrs.Put( aItem ); |
| bModified = sal_True; |
| } |
| } |
| |
| // Transparenz |
| sal_uInt16 nVal = (sal_uInt16)aMtrTransparent.GetValue(); |
| if( nVal != (sal_uInt16)aMtrTransparent.GetSavedValue().ToInt32() ) |
| { |
| SdrShadowTransparenceItem aItem( nVal ); |
| pOld = GetOldItem( rAttrs, SDRATTR_SHADOWTRANSPARENCE ); |
| if ( !pOld || !( *(const SdrShadowTransparenceItem*)pOld == aItem ) ) |
| { |
| rAttrs.Put( aItem ); |
| bModified = sal_True; |
| } |
| } |
| } |
| //add CHINA001 begin |
| rAttrs.Put (CntUInt16Item(SID_PAGE_TYPE,nPageType)); |
| //add CHINA001 end |
| return( bModified ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvxShadowTabPage::Reset( const SfxItemSet& rAttrs ) |
| { |
| if( !bDisable ) |
| { |
| // Alle Objekte koennen einen Schatten besitzen |
| // z.Z. gibt es nur 8 m�gliche Positionen den Schatten zu setzen |
| |
| // Ist Schatten gesetzt? |
| if( rAttrs.GetItemState( SDRATTR_SHADOW ) != SFX_ITEM_DONTCARE ) |
| { |
| aTsbShowShadow.EnableTriState( sal_False ); |
| |
| if( ( ( const SdrShadowItem& ) rAttrs.Get( SDRATTR_SHADOW ) ).GetValue() ) |
| aTsbShowShadow.SetState( STATE_CHECK ); |
| else |
| { |
| aTsbShowShadow.SetState( STATE_NOCHECK ); |
| } |
| } |
| else |
| aTsbShowShadow.SetState( STATE_DONTKNOW ); |
| |
| // Entfernung (nur 8 moegliche Positionen), deshalb |
| // wird nur ein Item ausgewertet |
| |
| if( rAttrs.GetItemState( SDRATTR_SHADOWXDIST ) != SFX_ITEM_DONTCARE && |
| rAttrs.GetItemState( SDRATTR_SHADOWYDIST ) != SFX_ITEM_DONTCARE ) |
| { |
| sal_Int32 nX = ( ( const SdrShadowXDistItem& ) rAttrs.Get( SDRATTR_SHADOWXDIST ) ).GetValue(); |
| sal_Int32 nY = ( ( const SdrShadowYDistItem& ) rAttrs.Get( SDRATTR_SHADOWYDIST ) ).GetValue(); |
| |
| if( nX != 0 ) |
| SetMetricValue( aMtrDistance, nX < 0L ? -nX : nX, ePoolUnit ); |
| else |
| SetMetricValue( aMtrDistance, nY < 0L ? -nY : nY, ePoolUnit ); |
| |
| // Setzen des Schatten-Controls |
| if ( nX < 0L && nY < 0L ) aCtlPosition.SetActualRP( RP_LT ); |
| else if( nX == 0L && nY < 0L ) aCtlPosition.SetActualRP( RP_MT ); |
| else if( nX > 0L && nY < 0L ) aCtlPosition.SetActualRP( RP_RT ); |
| else if( nX < 0L && nY == 0L ) aCtlPosition.SetActualRP( RP_LM ); |
| // Mittelpunkt gibt es nicht mehr |
| else if( nX == 0L && nY == 0L ) aCtlPosition.SetActualRP( RP_RB ); |
| else if( nX > 0L && nY == 0L ) aCtlPosition.SetActualRP( RP_RM ); |
| else if( nX < 0L && nY > 0L ) aCtlPosition.SetActualRP( RP_LB ); |
| else if( nX == 0L && nY > 0L ) aCtlPosition.SetActualRP( RP_MB ); |
| else if( nX > 0L && nY > 0L ) aCtlPosition.SetActualRP( RP_RB ); |
| } |
| else |
| { |
| // determine default-distance |
| SfxItemPool* pPool = rOutAttrs.GetPool(); |
| SdrShadowXDistItem* pXDistItem = (SdrShadowXDistItem*)&pPool->GetDefaultItem (SDRATTR_SHADOWXDIST); |
| SdrShadowYDistItem* pYDistItem = (SdrShadowYDistItem*)&pPool->GetDefaultItem (SDRATTR_SHADOWYDIST); |
| if (pXDistItem && pYDistItem) |
| { |
| sal_Int32 nX = pXDistItem->GetValue(); |
| sal_Int32 nY = pYDistItem->GetValue(); |
| if( nX != 0 ) |
| SetMetricValue( aMtrDistance, nX < 0L ? -nX : nX, ePoolUnit ); |
| else |
| SetMetricValue( aMtrDistance, nY < 0L ? -nY : nY, ePoolUnit ); |
| } |
| |
| // Tristate, z.B. mehrer Objekte wurden markiert, wovon einige einen Schatten besitzen, einige nicht. |
| // Der anzuzeigende Text des MetricFields wird auf "" gesetzt und dient in der Methode FillItemSet |
| // als Erkennungszeichen daf�r, das der Distance-Wert NICHT ver�ndert wurde !!!! |
| aMtrDistance.SetText( String() ); |
| aCtlPosition.SetActualRP( RP_MM ); |
| } |
| |
| // SchattenFarbe: |
| if( rAttrs.GetItemState( SDRATTR_SHADOWCOLOR ) != SFX_ITEM_DONTCARE ) |
| { |
| aLbShadowColor.SelectEntry( ( ( const SdrShadowColorItem& ) rAttrs.Get( SDRATTR_SHADOWCOLOR ) ).GetColorValue() ); |
| } |
| else |
| aLbShadowColor.SetNoSelection(); |
| |
| // Transparenz |
| if( rAttrs.GetItemState( SDRATTR_SHADOWTRANSPARENCE ) != SFX_ITEM_DONTCARE ) |
| { |
| sal_uInt16 nTransp = ( ( const SdrShadowTransparenceItem& ) rAttrs.Get( SDRATTR_SHADOWTRANSPARENCE ) ).GetValue(); |
| aMtrTransparent.SetValue( nTransp ); |
| } |
| else |
| aMtrTransparent.SetText( String() ); |
| |
| // Werte sichern |
| //aCtlPosition |
| aMtrDistance.SaveValue(); |
| aLbShadowColor.SaveValue(); |
| aTsbShowShadow.SaveValue(); |
| |
| // #66832# This field was not saved, but used to determine changes. |
| // Why? Seems to be the error. |
| // It IS the error. |
| aMtrTransparent.SaveValue(); |
| |
| ClickShadowHdl_Impl( NULL ); |
| ModifyShadowHdl_Impl( NULL ); |
| } |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| SfxTabPage* SvxShadowTabPage::Create( Window* pWindow, |
| const SfxItemSet& rAttrs ) |
| { |
| return( new SvxShadowTabPage( pWindow, rAttrs ) ); |
| } |
| |
| //------------------------------------------------------------------------ |
| |
| sal_uInt16* SvxShadowTabPage::GetRanges() |
| { |
| return( pShadowRanges ); |
| } |
| |
| //------------------------------------------------------------------------ |
| |
| IMPL_LINK( SvxShadowTabPage, ClickShadowHdl_Impl, void *, EMPTYARG ) |
| { |
| if( aTsbShowShadow.GetState() == STATE_NOCHECK ) |
| { |
| aFtPosition.Disable(); |
| aCtlPosition.Disable(); |
| aFtDistance.Disable(); |
| aMtrDistance.Disable(); |
| aFtShadowColor.Disable(); |
| aLbShadowColor.Disable(); |
| aFtTransparent.Disable(); |
| aMtrTransparent.Disable(); |
| } |
| else |
| { |
| aFtPosition.Enable(); |
| aCtlPosition.Enable(); |
| aFtDistance.Enable(); |
| aMtrDistance.Enable(); |
| aFtShadowColor.Enable(); |
| aLbShadowColor.Enable(); |
| aFtTransparent.Enable(); |
| aMtrTransparent.Enable(); |
| } |
| aCtlPosition.Invalidate(); |
| |
| ModifyShadowHdl_Impl( NULL ); |
| |
| return( 0L ); |
| } |
| |
| //------------------------------------------------------------------------ |
| |
| IMPL_LINK( SvxShadowTabPage, ModifyShadowHdl_Impl, void *, EMPTYARG ) |
| { |
| if( aTsbShowShadow.GetState() == STATE_CHECK ) |
| rXFSet.Put( XFillStyleItem( XFILL_SOLID ) ); |
| else |
| rXFSet.Put( XFillStyleItem( XFILL_NONE ) ); |
| |
| sal_uInt16 nPos = aLbShadowColor.GetSelectEntryPos(); |
| if( nPos != LISTBOX_ENTRY_NOTFOUND ) |
| { |
| rXFSet.Put( XFillColorItem( String(), |
| aLbShadowColor.GetSelectEntryColor() ) ); |
| } |
| sal_uInt16 nVal = (sal_uInt16)aMtrTransparent.GetValue(); |
| XFillTransparenceItem aItem( nVal ); |
| rXFSet.Put( XFillTransparenceItem( aItem ) ); |
| |
| // Schatten-Entfernung |
| sal_Int32 nX = 0L, nY = 0L; |
| sal_Int32 nXY = GetCoreValue( aMtrDistance, ePoolUnit ); |
| switch( aCtlPosition.GetActualRP() ) |
| { |
| case RP_LT: nX = nY = -nXY; break; |
| case RP_MT: nY = -nXY; break; |
| case RP_RT: nX = nXY; nY = -nXY; break; |
| case RP_LM: nX = -nXY; break; |
| case RP_RM: nX = nXY; break; |
| case RP_LB: nX = -nXY; nY = nXY; break; |
| case RP_MB: nY = nXY; break; |
| case RP_RB: nX = nY = nXY; break; |
| case RP_MM: break; |
| } |
| |
| aCtlXRectPreview.SetShadowPosition(Point(nX, nY)); |
| |
| aCtlXRectPreview.SetShadowAttributes(aXFillAttr.GetItemSet()); |
| //aCtlXRectPreview.SetFillAttr( aXFillAttr ); |
| aCtlXRectPreview.Invalidate(); |
| |
| return( 0L ); |
| } |
| |
| //------------------------------------------------------------------------ |
| |
| void SvxShadowTabPage::PointChanged( Window* pWindow, RECT_POINT eRcPt ) |
| { |
| eRP = eRcPt; |
| |
| // Schatten neu zeichnen |
| ModifyShadowHdl_Impl( pWindow ); |
| } |
| |
| void SvxShadowTabPage::PageCreated (SfxAllItemSet aSet) //add CHINA001 |
| { |
| SFX_ITEMSET_ARG (&aSet,pColorTabItem,SvxColorTableItem,SID_COLOR_TABLE,sal_False); |
| SFX_ITEMSET_ARG (&aSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE,sal_False); |
| SFX_ITEMSET_ARG (&aSet,pDlgTypeItem,SfxUInt16Item,SID_DLG_TYPE,sal_False); |
| |
| |
| if (pColorTabItem) |
| SetColorTable(pColorTabItem->GetColorTable()); |
| if (pPageTypeItem) |
| SetPageType(pPageTypeItem->GetValue()); |
| if (pDlgTypeItem) |
| SetDlgType(pDlgTypeItem->GetValue()); |
| Construct(); |
| } |