summaryrefslogtreecommitdiff
path: root/svx/source/toolbars/fontworkbar.cxx
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2005-01-07 08:25:13 +0000
committerRüdiger Timm <rt@openoffice.org>2005-01-07 08:25:13 +0000
commit50241c97168a0e2b6f57ebf248ccb4d55692badb (patch)
tree1b0509ef240f5938ef87d9d2fbc844e26a6c170e /svx/source/toolbars/fontworkbar.cxx
parentdb31e877a45916d3afb4bf020fd0f1ce1bfe5376 (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.cxx48
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 );
}
}