diff options
author | Rüdiger Timm <rt@openoffice.org> | 2005-01-07 08:25:13 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2005-01-07 08:25:13 +0000 |
commit | 50241c97168a0e2b6f57ebf248ccb4d55692badb (patch) | |
tree | 1b0509ef240f5938ef87d9d2fbc844e26a6c170e /svx/source/toolbars/fontworkbar.cxx | |
parent | db31e877a45916d3afb4bf020fd0f1ce1bfe5376 (diff) |
INTEGRATION: CWS sj13 (1.4.134); FILE MERGED
2004/12/08 00:42:14 sj 1.4.134.3: RESYNC: (1.4-1.6); FILE MERGED
2004/11/29 10:18:41 sj 1.4.134.2: #i38048# added some more broadcasting on object changes
2004/11/25 14:52:35 sj 1.4.134.1: #i37876# added FontWork type state
Diffstat (limited to 'svx/source/toolbars/fontworkbar.cxx')
-rw-r--r-- | svx/source/toolbars/fontworkbar.cxx | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/svx/source/toolbars/fontworkbar.cxx b/svx/source/toolbars/fontworkbar.cxx index 9659b245e00a..329f894e08e1 100644 --- a/svx/source/toolbars/fontworkbar.cxx +++ b/svx/source/toolbars/fontworkbar.cxx @@ -2,9 +2,9 @@ * * $RCSfile: fontworkbar.cxx,v $ * - * $Revision: 1.6 $ + * $Revision: 1.7 $ * - * last change: $Author: rt $ $Date: 2004-11-26 14:29:44 $ + * last change: $Author: rt $ $Date: 2005-01-07 09:25:13 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -203,6 +203,42 @@ void SetKernCharacterPairsState( SdrView* pSdrView, SfxItemSet& rSet ) rSet.Put( SfxBoolItem( SID_FONTWORK_KERN_CHARACTER_PAIRS, bChecked ) ); } +void SetFontWorkShapeTypeState( SdrView* pSdrView, SfxItemSet& rSet ) +{ + const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList(); + ULONG nCount = rMarkList.GetMarkCount(), i; + + rtl::OUString aFontWorkShapeType; + + for( i = 0; i < nCount; i++ ) + { + SdrObject* pObj = rMarkList.GetMark( i )->GetObj(); + if( pObj->ISA( SdrObjCustomShape ) ) + { + const rtl::OUString sType( RTL_CONSTASCII_USTRINGPARAM ( "Type" ) ); + SdrCustomShapeGeometryItem aGeometryItem( (SdrCustomShapeGeometryItem&)pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ) ); + Any* pAny = aGeometryItem.GetPropertyValueByName( sType ); + if( pAny ) + { + rtl::OUString aType; + if ( *pAny >>= aType ) + { + if ( aFontWorkShapeType.getLength() ) + { + if ( !aFontWorkShapeType.equals( aType ) ) // different FontWorkShapeTypes selected ? + { + aFontWorkShapeType = rtl::OUString(); + break; + } + } + aFontWorkShapeType = aType; + } + } + } + } + rSet.Put( SfxStringItem( SID_FONTWORK_SHAPE_TYPE, aFontWorkShapeType ) ); +} + /************************************************************************* |* |* Standardinterface deklarieren (Die Slotmap darf nicht leer sein, also @@ -333,6 +369,7 @@ static void impl_execute( SdrView* pSdrView, SfxRequest& rReq, SdrCustomShapeGeo } pObj->SetMergedItem( SdrTextHorzAdjustItem( eHorzAdjust ) ); pObj->SetMergedItem( SdrTextFitToSizeTypeItem( eFTS ) ); + pObj->BroadcastObjectChange(); } } } @@ -344,6 +381,7 @@ static void impl_execute( SdrView* pSdrView, SfxRequest& rReq, SdrCustomShapeGeo { sal_Int32 nCharSpacing = ((const SfxInt32Item*)rReq.GetArgs()->GetItem(SID_FONTWORK_CHARACTER_SPACING))->GetValue(); pObj->SetMergedItem( SvxCharScaleWidthItem( (sal_uInt16)nCharSpacing, EE_CHAR_FONTWIDTH ) ); + pObj->BroadcastObjectChange(); } } break; @@ -354,6 +392,7 @@ static void impl_execute( SdrView* pSdrView, SfxRequest& rReq, SdrCustomShapeGeo { sal_Bool bKernCharacterPairs = ((const SfxBoolItem*)rReq.GetArgs()->GetItem(SID_FONTWORK_KERN_CHARACTER_PAIRS))->GetValue(); //TODO: pObj->SetMergedItem( SvxCharScaleWidthItem( (sal_uInt16)nCharSpacing, EE_CHAR_FONTWIDTH ) ); + pObj->BroadcastObjectChange(); } } break; @@ -507,8 +546,10 @@ void FontworkBar::execute( SdrView* pSdrView, SfxRequest& rReq, SfxBindings& rBi SdrCustomShapeGeometryItem aGeometryItem( (SdrCustomShapeGeometryItem&)pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ) ); GetGeometryForCustomShape( aGeometryItem, aCustomShape ); pObj->SetMergedItem( aGeometryItem ); + pObj->BroadcastObjectChange(); pSdrView->EndUndo(); pSdrView->AdjustMarkHdl( sal_True ); + rBindings.Invalidate( SID_FONTWORK_SHAPE_TYPE ); } } } @@ -566,6 +607,7 @@ void FontworkBar::execute( SdrView* pSdrView, SfxRequest& rReq, SfxBindings& rBi SdrCustomShapeGeometryItem aGeometryItem( (SdrCustomShapeGeometryItem&)pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ) ); impl_execute( pSdrView, rReq, aGeometryItem, pObj ); pObj->SetMergedItem( aGeometryItem ); + pObj->BroadcastObjectChange(); pSdrView->EndUndo(); } } @@ -627,5 +669,7 @@ void FontworkBar::getState( SdrView* pSdrView, SfxItemSet& rSet ) { if ( !checkForSelectedFontWork( pSdrView, nCheckStatus ) ) rSet.DisableItem( SID_FONTWORK_SHAPE_TYPE ); + else + SetFontWorkShapeTypeState( pSdrView, rSet ); } } |