svx: new InteropGrabBag UNO prop in Shape service
Added the new InteropGrabBag property to the Shape service and modified the JUnit UNO unit tests for it. Added specific implementation in the svx module for the SvxShape class. This new property is intended by now for its usage on preserving OOX's Smart-Art but it could also be used for preserving other attributes for interoperability among document formats. Change-Id: Idc7a8e91592399ff05effd4da6eaa2935f8f4d42 Reviewed-on: https://gerrit.libreoffice.org/5769 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
This commit is contained in:
committed by
Miklos Vajna
parent
6f135b0aa2
commit
43b84bbba2
@@ -37,6 +37,7 @@ namespace {
|
||||
void dumpGradientProperty(com::sun::star::awt::Gradient aGradient, xmlTextWriterPtr xmlWriter);
|
||||
void dumpPolyPolygonBezierCoords(com::sun::star::drawing::PolyPolygonBezierCoords aPolyPolygonBezierCoords, xmlTextWriterPtr xmlWriter);
|
||||
void dumpPointSequenceSequence(com::sun::star::drawing::PointSequenceSequence aPointSequenceSequence, uno::Sequence<uno::Sequence<drawing::PolygonFlags> >*, xmlTextWriterPtr xmlWriter);
|
||||
void dumpPropertyValueAsElement(const beans::PropertyValue& rPropertyValue, xmlTextWriterPtr xmlWriter);
|
||||
|
||||
// FillProperties.idl
|
||||
void dumpFillStyleAsAttribute(com::sun::star::drawing::FillStyle eFillStyle, xmlTextWriterPtr xmlWriter);
|
||||
@@ -133,6 +134,7 @@ void dumpHomogenMatrixLine3(com::sun::star::drawing::HomogenMatrixLine3 aLine, x
|
||||
void dumpTransformationAsElement(com::sun::star::drawing::HomogenMatrix3 aTransformation, xmlTextWriterPtr xmlWriter);
|
||||
void dumpNavigationOrderAsAttribute(sal_Int32 aNavigationOrder, xmlTextWriterPtr xmlWriter);
|
||||
void dumpHyperlinkAsAttribute(OUString sHyperlink, xmlTextWriterPtr xmlWriter);
|
||||
void dumpInteropGrabBagAsElement(uno::Sequence< beans::PropertyValue> aInteropGrabBag, xmlTextWriterPtr xmlWriter);
|
||||
|
||||
// CustomShape.idl
|
||||
void dumpCustomShapeEngineAsAttribute(OUString sCustomShapeEngine, xmlTextWriterPtr xmlWriter);
|
||||
@@ -1052,6 +1054,17 @@ void dumpHyperlinkAsAttribute(OUString sHyperlink, xmlTextWriterPtr xmlWriter)
|
||||
OUStringToOString(sHyperlink, RTL_TEXTENCODING_UTF8).getStr());
|
||||
}
|
||||
|
||||
void dumpInteropGrabBagAsElement(uno::Sequence< beans::PropertyValue> aInteropGrabBag, xmlTextWriterPtr xmlWriter)
|
||||
{
|
||||
xmlTextWriterStartElement(xmlWriter, BAD_CAST( "InteropGrabBag" ));
|
||||
|
||||
sal_Int32 nLength = aInteropGrabBag.getLength();
|
||||
for (sal_Int32 i = 0; i < nLength; ++i)
|
||||
dumpPropertyValueAsElement(aInteropGrabBag[i], xmlWriter);
|
||||
|
||||
xmlTextWriterEndElement( xmlWriter );
|
||||
}
|
||||
|
||||
// --------------------------------
|
||||
// ---------- XShape.idl ----------
|
||||
// --------------------------------
|
||||
@@ -1154,6 +1167,10 @@ void dumpPropertyValueAsElement(const beans::PropertyValue& rPropertyValue, xmlT
|
||||
|
||||
xmlTextWriterEndElement(xmlWriter);
|
||||
}
|
||||
|
||||
// TODO: Add here dumping of XDocument for future OOX Smart-Art
|
||||
// properties.
|
||||
|
||||
// TODO more, if necessary
|
||||
|
||||
xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("handle"), "%" SAL_PRIdINT32, rPropertyValue.Handle);
|
||||
|
@@ -154,6 +154,7 @@
|
||||
#define UNO_NAME_POLYPOLYGONBEZIER "PolyPolygonBezier"
|
||||
#define UNO_NAME_POLYGON "Polygon"
|
||||
|
||||
#define UNO_NAME_MISC_OBJ_INTEROPGRABBAG "InteropGrabBag"
|
||||
#define UNO_NAME_MISC_OBJ_ZORDER "ZOrder"
|
||||
#define UNO_NAME_MISC_OBJ_MOVEPROTECT "MoveProtect"
|
||||
#define UNO_NAME_MISC_OBJ_SIZEPROTECT "SizeProtect"
|
||||
|
@@ -23,7 +23,7 @@
|
||||
// defines ------------------------------------------------------------------
|
||||
|
||||
#define OWN_ATTR_VALUE_START 3900
|
||||
#define OWN_ATTR_VALUE_END 3990
|
||||
#define OWN_ATTR_VALUE_END 3991
|
||||
|
||||
#define RID_SFX_START 260
|
||||
// RID_SFX_END 9999
|
||||
|
@@ -26,6 +26,7 @@
|
||||
#include <vcl/mapmod.hxx>
|
||||
#include <tools/string.hxx>
|
||||
#include <tools/weakbase.hxx>
|
||||
#include <com/sun/star/uno/Any.hxx>
|
||||
#include <svl/lstner.hxx>
|
||||
#include <vcl/timer.hxx>
|
||||
#include <svx/svdsob.hxx>
|
||||
@@ -61,6 +62,7 @@ class SdrPage;
|
||||
class SdrPageView;
|
||||
class SdrView;
|
||||
class SfxItemSet;
|
||||
class SfxGrabBagItem;
|
||||
class SfxSetItem;
|
||||
class SfxStyleSheet;
|
||||
class SfxUndoAction;
|
||||
@@ -357,6 +359,9 @@ protected:
|
||||
|
||||
sal_uInt32 nOrdNum; // Rangnummer des Obj in der Liste
|
||||
|
||||
SfxGrabBagItem* pGrabBagItem; // Holds the GrabBagItem property
|
||||
|
||||
|
||||
/** Position in the navigation order. SAL_MAX_UINT32 when not used.
|
||||
*/
|
||||
sal_uInt32 mnNavigationPosition;
|
||||
@@ -538,6 +543,11 @@ public:
|
||||
// geschehen.
|
||||
void SetOrdNum(sal_uInt32 nNum);
|
||||
|
||||
// GrabBagItem for interim interop purposes
|
||||
void GetGrabBagItem(com::sun::star::uno::Any& rVal) const;
|
||||
|
||||
void SetGrabBagItem(const com::sun::star::uno::Any& rVal);
|
||||
|
||||
/** Return the position in the navigation order for the called object.
|
||||
Note that this method may update the navigation position of the
|
||||
called and of other SdrObjects. Therefore this method can not be
|
||||
|
@@ -186,7 +186,8 @@
|
||||
|
||||
#define OWN_ATTR_MEDIA_STREAM (OWN_ATTR_VALUE_START+89)
|
||||
#define OWN_ATTR_MEDIA_TEMPFILEURL (OWN_ATTR_VALUE_START+90)
|
||||
// ATTENTION: maximum is OWN_ATTR_VALUE_START+90, see svl/inc/svl/solar.hrc
|
||||
#define OWN_ATTR_INTEROPGRABBAG (OWN_ATTR_VALUE_START+91)
|
||||
// ATTENTION: maximum is OWN_ATTR_VALUE_START+91, see include/svl/solar.hrc
|
||||
|
||||
// #FontWork#
|
||||
#define FONTWORK_PROPERTIES \
|
||||
@@ -315,6 +316,7 @@
|
||||
{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT, &::getCppuType((const ::com::sun::star::awt::Rectangle*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
|
||||
|
||||
#define MISC_OBJ_PROPERTIES \
|
||||
{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_INTEROPGRABBAG), OWN_ATTR_INTEROPGRABBAG, SEQTYPE(::getCppuType((::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >*)0)), 0, 0}, \
|
||||
MISC_OBJ_PROPERTIES_NO_SHEAR \
|
||||
{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_SHEARANGLE), SDRATTR_SHEARANGLE, &::getCppuType((const sal_Int32*)0), 0, 0},
|
||||
|
||||
|
@@ -27,7 +27,7 @@
|
||||
#include <com/sun/star/drawing/XGluePointsSupplier.idl>
|
||||
#include <com/sun/star/container/XNameContainer.idl>
|
||||
#include <com/sun/star/beans/XTolerantMultiPropertySet.idl>
|
||||
|
||||
#include <com/sun/star/beans/PropertyValue.idl>
|
||||
|
||||
module com { module sun { module star { module drawing {
|
||||
|
||||
@@ -153,6 +153,17 @@ published service Shape
|
||||
/** this property lets you get and set a hyperlink for this shape.
|
||||
*/
|
||||
[optional, property] string Hyperlink;
|
||||
|
||||
/** Grab bag of shape properties, used as a string-any map for
|
||||
interim interop purposes.
|
||||
|
||||
@since LibreOffice 4.2
|
||||
|
||||
<p>This property is intentionally not handled by the ODF
|
||||
filter. Any member that should be handled there should be
|
||||
first moved out from this grab bag to a separate property.</p>
|
||||
*/
|
||||
[optional, property] sequence<com::sun::star::beans::PropertyValue> InteropGrabBag;
|
||||
};
|
||||
|
||||
|
||||
|
@@ -76,6 +76,7 @@
|
||||
"ScAnnotationShapeObj";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"ScAnnotationShapeObj";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"ScAnnotationShapeObj";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"ScAnnotationShapeObj";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"ScAnnotationShapeObj";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharHeightComplex"
|
||||
"ScAnnotationShapeObj";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharWeightComplex"
|
||||
"ScAnnotationShapeObj";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharFontNameComplex"
|
||||
|
|
@@ -11,6 +11,7 @@
|
||||
"ScShapeObj";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"ScShapeObj";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"ScShapeObj";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"ScShapeObj";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"ScShapeObj";"com::sun::star::drawing::XShapeDescriptor";"getShapeType()"
|
||||
"ScShapeObj";"com::sun::star::drawing::XGluePointsSupplier#optional";"getGluePoints()"
|
||||
"ScShapeObj";"com::sun::star::sheet::Shape";"Anchor"
|
||||
|
|
@@ -12,6 +12,7 @@
|
||||
"ChartLegend";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"ChartLegend";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"ChartLegend";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"ChartLegend";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"ChartLegend";"com::sun::star::drawing::XShapeDescriptor";"getShapeType()"
|
||||
"ChartLegend";"com::sun::star::drawing::LineProperties";"LineStyle"
|
||||
"ChartLegend";"com::sun::star::drawing::LineProperties";"LineDash"
|
||||
|
|
@@ -12,6 +12,7 @@
|
||||
"ChartTitle";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"ChartTitle";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"ChartTitle";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"ChartTitle";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"ChartTitle";"com::sun::star::drawing::XShapeDescriptor";"getShapeType()"
|
||||
"ChartTitle";"com::sun::star::drawing::XGluePointsSupplier#optional";"getGluePoints()"
|
||||
"ChartTitle";"com::sun::star::chart::ChartTitle";"TextRotation"
|
||||
|
|
@@ -11,6 +11,7 @@
|
||||
"SdXShape";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SdXShape";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SdXShape";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SdXShape";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SdXShape";"com::sun::star::drawing::XShapeDescriptor";"getShapeType()"
|
||||
"SdXShape";"com::sun::star::drawing::XGluePointsSupplier#optional";"getGluePoints()"
|
||||
"SdXShape";"com::sun::star::beans::XTolerantMultiPropertySet#optional";"setPropertyValuesTolerant()"
|
||||
|
|
@@ -76,6 +76,7 @@
|
||||
"SvxGraphicObject";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SvxGraphicObject";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SvxGraphicObject";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SvxGraphicObject";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SvxGraphicObject";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharHeightComplex"
|
||||
"SvxGraphicObject";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharWeightComplex"
|
||||
"SvxGraphicObject";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharFontNameComplex"
|
||||
|
|
@@ -76,6 +76,7 @@
|
||||
"SvxShape";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SvxShape";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SvxShape";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SvxShape";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SvxShape";"com::sun::star::drawing::TextShape";"CornerRadius"
|
||||
"SvxShape";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharHeightComplex"
|
||||
"SvxShape";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharWeightComplex"
|
||||
|
|
@@ -76,6 +76,7 @@
|
||||
"SvxShapeCircle";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SvxShapeCircle";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SvxShapeCircle";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SvxShapeCircle";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SvxShapeCircle";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharHeightComplex"
|
||||
"SvxShapeCircle";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharWeightComplex"
|
||||
"SvxShapeCircle";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharFontNameComplex"
|
||||
|
|
@@ -76,6 +76,7 @@
|
||||
"SvxShapeConnector";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SvxShapeConnector";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SvxShapeConnector";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SvxShapeConnector";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SvxShapeConnector";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharHeightComplex"
|
||||
"SvxShapeConnector";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharWeightComplex"
|
||||
"SvxShapeConnector";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharFontNameComplex"
|
||||
|
|
@@ -11,6 +11,7 @@
|
||||
"SvxShapeControl";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SvxShapeControl";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SvxShapeControl";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SvxShapeControl";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SvxShapeControl";"com::sun::star::drawing::XShapeDescriptor";"getShapeType()"
|
||||
"SvxShapeControl";"com::sun::star::drawing::XGluePointsSupplier#optional";"getGluePoints()"
|
||||
"SvxShapeControl";"com::sun::star::drawing::XControlShape";"getControl()"
|
||||
|
|
@@ -94,6 +94,7 @@
|
||||
"SvxShapeDimensioning";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SvxShapeDimensioning";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SvxShapeDimensioning";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SvxShapeDimensioning";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SvxShapeDimensioning";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharHeightComplex"
|
||||
"SvxShapeDimensioning";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharWeightComplex"
|
||||
"SvxShapeDimensioning";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharFontNameComplex"
|
||||
|
|
@@ -13,6 +13,7 @@
|
||||
"SvxShapeGroup";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SvxShapeGroup";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SvxShapeGroup";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SvxShapeGroup";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SvxShapeGroup";"com::sun::star::drawing::XShapeDescriptor";"getShapeType()"
|
||||
"SvxShapeGroup";"com::sun::star::drawing::XGluePointsSupplier#optional";"getGluePoints()"
|
||||
"SvxShapeGroup";"com::sun::star::drawing::XShapeGroup";"enterGroup()"
|
||||
|
|
@@ -76,6 +76,7 @@
|
||||
"SvxShapePolyPolygon";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SvxShapePolyPolygon";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SvxShapePolyPolygon";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SvxShapePolyPolygon";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SvxShapePolyPolygon";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharHeightComplex"
|
||||
"SvxShapePolyPolygon";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharWeightComplex"
|
||||
"SvxShapePolyPolygon";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharFontNameComplex"
|
||||
|
|
@@ -79,6 +79,7 @@
|
||||
"SvxShapePolyPolygonBezier";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SvxShapePolyPolygonBezier";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SvxShapePolyPolygonBezier";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SvxShapePolyPolygonBezier";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SvxShapePolyPolygonBezier";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharHeightComplex"
|
||||
"SvxShapePolyPolygonBezier";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharWeightComplex"
|
||||
"SvxShapePolyPolygonBezier";"com::sun::star::style::CharacterPropertiesComplex#optional";"CharFontNameComplex"
|
||||
|
|
@@ -11,6 +11,7 @@
|
||||
"SwXShape";"com::sun::star::drawing::Shape";"Style#optional"
|
||||
"SwXShape";"com::sun::star::drawing::Shape";"Transformation#optional"
|
||||
"SwXShape";"com::sun::star::drawing::Shape";"ShapeUserDefinedAttributes#optional"
|
||||
"SwXShape";"com::sun::star::drawing::Shape";"InteropGrabBag#optional"
|
||||
"SwXShape";"com::sun::star::drawing::XShapeDescriptor";"getShapeType()"
|
||||
"SwXShape";"com::sun::star::drawing::XGluePointsSupplier#optional";"getGluePoints()"
|
||||
"SwXShape";"com::sun::star::beans::XPropertySet";"getPropertySetInfo()"
|
||||
|
|
@@ -38,6 +38,7 @@
|
||||
#include <sfx2/objface.hxx>
|
||||
#include <sfx2/objsh.hxx>
|
||||
#include <svl/whiter.hxx>
|
||||
#include <svl/grabbagitem.hxx>
|
||||
#include <svtools/colorcfg.hxx>
|
||||
#include <tools/bigint.hxx>
|
||||
#include <tools/diagnose_ex.h>
|
||||
@@ -433,6 +434,7 @@ SdrObject::SdrObject()
|
||||
,pUserCall(NULL)
|
||||
,pPlusData(NULL)
|
||||
,nOrdNum(0)
|
||||
,pGrabBagItem(NULL)
|
||||
,mnNavigationPosition(SAL_MAX_UINT32)
|
||||
,mnLayerID(0)
|
||||
,mpSvxShape( NULL )
|
||||
@@ -501,6 +503,8 @@ SdrObject::~SdrObject()
|
||||
SendUserCall(SDRUSERCALL_DELETE, GetLastBoundRect());
|
||||
delete pPlusData;
|
||||
|
||||
delete pGrabBagItem;
|
||||
|
||||
if(mpProperties)
|
||||
{
|
||||
delete mpProperties;
|
||||
@@ -906,6 +910,27 @@ void SdrObject::SetOrdNum(sal_uInt32 nNum)
|
||||
nOrdNum = nNum;
|
||||
}
|
||||
|
||||
void SdrObject::GetGrabBagItem(com::sun::star::uno::Any& rVal) const
|
||||
{
|
||||
if (pGrabBagItem != NULL)
|
||||
pGrabBagItem->QueryValue(rVal);
|
||||
else {
|
||||
uno::Sequence<beans::PropertyValue> aValue(0);
|
||||
rVal = uno::makeAny(aValue);
|
||||
}
|
||||
}
|
||||
|
||||
void SdrObject::SetGrabBagItem(const com::sun::star::uno::Any& rVal)
|
||||
{
|
||||
if (pGrabBagItem == NULL)
|
||||
pGrabBagItem = new SfxGrabBagItem;
|
||||
|
||||
pGrabBagItem->PutValue(rVal);
|
||||
|
||||
SetChanged();
|
||||
BroadcastObjectChange();
|
||||
}
|
||||
|
||||
sal_uInt32 SdrObject::GetNavigationPosition (void)
|
||||
{
|
||||
if (pObjList!=NULL && pObjList->RecalcNavigationPositions())
|
||||
@@ -1086,6 +1111,12 @@ SdrObject& SdrObject::operator=(const SdrObject& rObj)
|
||||
delete pPlusData->pBroadcast; // broadcaster isn't copied
|
||||
pPlusData->pBroadcast=NULL;
|
||||
}
|
||||
|
||||
delete pGrabBagItem;
|
||||
pGrabBagItem=NULL;
|
||||
if (rObj.pGrabBagItem!=NULL)
|
||||
pGrabBagItem=static_cast< SfxGrabBagItem* >( rObj.pGrabBagItem->Clone() );
|
||||
|
||||
aGridOffset = rObj.aGridOffset;
|
||||
return *this;
|
||||
}
|
||||
|
@@ -2451,6 +2451,12 @@ bool SvxShape::setPropertyValueImpl( const OUString&, const SfxItemPropertySimpl
|
||||
break;
|
||||
}
|
||||
|
||||
case OWN_ATTR_INTEROPGRABBAG:
|
||||
{
|
||||
mpObj->SetGrabBagItem(rValue);
|
||||
return true;
|
||||
}
|
||||
|
||||
case SDRATTR_OBJMOVEPROTECT:
|
||||
{
|
||||
sal_Bool bMoveProtect = sal_Bool();
|
||||
@@ -2854,6 +2860,12 @@ bool SvxShape::getPropertyValueImpl( const OUString&, const SfxItemPropertySimpl
|
||||
rValue <<= (sal_Int32)mpObj->GetShearAngle();
|
||||
break;
|
||||
|
||||
case OWN_ATTR_INTEROPGRABBAG:
|
||||
{
|
||||
mpObj->GetGrabBagItem(rValue);
|
||||
break;
|
||||
}
|
||||
|
||||
case SDRATTR_OBJMOVEPROTECT:
|
||||
rValue = uno::makeAny( (sal_Bool) mpObj->IsMoveProtect() );
|
||||
break;
|
||||
|
Reference in New Issue
Block a user