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:
Andres Gomez
2013-08-26 18:33:38 +03:00
committed by Miklos Vajna
parent 6f135b0aa2
commit 43b84bbba2
23 changed files with 102 additions and 3 deletions

View File

@@ -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);

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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},

View File

@@ -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;
};

View File

@@ -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"
1 ScAnnotationShapeObj com::sun::star::style::CharacterPropertiesAsian#optional CharHeightAsian
76 ScAnnotationShapeObj com::sun::star::drawing::Shape Style#optional
77 ScAnnotationShapeObj com::sun::star::drawing::Shape Transformation#optional
78 ScAnnotationShapeObj com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
79 ScAnnotationShapeObj com::sun::star::drawing::Shape InteropGrabBag#optional
80 ScAnnotationShapeObj com::sun::star::style::CharacterPropertiesComplex#optional CharHeightComplex
81 ScAnnotationShapeObj com::sun::star::style::CharacterPropertiesComplex#optional CharWeightComplex
82 ScAnnotationShapeObj com::sun::star::style::CharacterPropertiesComplex#optional CharFontNameComplex

View File

@@ -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"
1 ScShapeObj com::sun::star::lang::XComponent dispose()
11 ScShapeObj com::sun::star::drawing::Shape Style#optional
12 ScShapeObj com::sun::star::drawing::Shape Transformation#optional
13 ScShapeObj com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
14 ScShapeObj com::sun::star::drawing::Shape InteropGrabBag#optional
15 ScShapeObj com::sun::star::drawing::XShapeDescriptor getShapeType()
16 ScShapeObj com::sun::star::drawing::XGluePointsSupplier#optional getGluePoints()
17 ScShapeObj com::sun::star::sheet::Shape Anchor

View File

@@ -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"
1 ChartLegend com::sun::star::xml::UserDefinedAttributesSupplier UserDefinedAttributes
12 ChartLegend com::sun::star::drawing::Shape Style#optional
13 ChartLegend com::sun::star::drawing::Shape Transformation#optional
14 ChartLegend com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
15 ChartLegend com::sun::star::drawing::Shape InteropGrabBag#optional
16 ChartLegend com::sun::star::drawing::XShapeDescriptor getShapeType()
17 ChartLegend com::sun::star::drawing::LineProperties LineStyle
18 ChartLegend com::sun::star::drawing::LineProperties LineDash

View File

@@ -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"
1 ChartTitle com::sun::star::xml::UserDefinedAttributesSupplier UserDefinedAttributes
12 ChartTitle com::sun::star::drawing::Shape Style#optional
13 ChartTitle com::sun::star::drawing::Shape Transformation#optional
14 ChartTitle com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
15 ChartTitle com::sun::star::drawing::Shape InteropGrabBag#optional
16 ChartTitle com::sun::star::drawing::XShapeDescriptor getShapeType()
17 ChartTitle com::sun::star::drawing::XGluePointsSupplier#optional getGluePoints()
18 ChartTitle com::sun::star::chart::ChartTitle TextRotation

View File

@@ -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()"
1 SdXShape com::sun::star::lang::XComponent dispose()
11 SdXShape com::sun::star::drawing::Shape Style#optional
12 SdXShape com::sun::star::drawing::Shape Transformation#optional
13 SdXShape com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
14 SdXShape com::sun::star::drawing::Shape InteropGrabBag#optional
15 SdXShape com::sun::star::drawing::XShapeDescriptor getShapeType()
16 SdXShape com::sun::star::drawing::XGluePointsSupplier#optional getGluePoints()
17 SdXShape com::sun::star::beans::XTolerantMultiPropertySet#optional setPropertyValuesTolerant()

View File

@@ -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"
1 SvxGraphicObject com::sun::star::style::CharacterPropertiesAsian#optional CharHeightAsian
76 SvxGraphicObject com::sun::star::drawing::Shape Style#optional
77 SvxGraphicObject com::sun::star::drawing::Shape Transformation#optional
78 SvxGraphicObject com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
79 SvxGraphicObject com::sun::star::drawing::Shape InteropGrabBag#optional
80 SvxGraphicObject com::sun::star::style::CharacterPropertiesComplex#optional CharHeightComplex
81 SvxGraphicObject com::sun::star::style::CharacterPropertiesComplex#optional CharWeightComplex
82 SvxGraphicObject com::sun::star::style::CharacterPropertiesComplex#optional CharFontNameComplex

View File

@@ -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"
1 SvxShape com::sun::star::style::CharacterPropertiesAsian#optional CharHeightAsian
76 SvxShape com::sun::star::drawing::Shape Style#optional
77 SvxShape com::sun::star::drawing::Shape Transformation#optional
78 SvxShape com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
79 SvxShape com::sun::star::drawing::Shape InteropGrabBag#optional
80 SvxShape com::sun::star::drawing::TextShape CornerRadius
81 SvxShape com::sun::star::style::CharacterPropertiesComplex#optional CharHeightComplex
82 SvxShape com::sun::star::style::CharacterPropertiesComplex#optional CharWeightComplex

View File

@@ -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"
1 SvxShapeCircle com::sun::star::style::CharacterPropertiesAsian#optional CharHeightAsian
76 SvxShapeCircle com::sun::star::drawing::Shape Style#optional
77 SvxShapeCircle com::sun::star::drawing::Shape Transformation#optional
78 SvxShapeCircle com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
79 SvxShapeCircle com::sun::star::drawing::Shape InteropGrabBag#optional
80 SvxShapeCircle com::sun::star::style::CharacterPropertiesComplex#optional CharHeightComplex
81 SvxShapeCircle com::sun::star::style::CharacterPropertiesComplex#optional CharWeightComplex
82 SvxShapeCircle com::sun::star::style::CharacterPropertiesComplex#optional CharFontNameComplex

View File

@@ -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"
1 SvxShapeConnector com::sun::star::style::CharacterPropertiesAsian#optional CharHeightAsian
76 SvxShapeConnector com::sun::star::drawing::Shape Style#optional
77 SvxShapeConnector com::sun::star::drawing::Shape Transformation#optional
78 SvxShapeConnector com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
79 SvxShapeConnector com::sun::star::drawing::Shape InteropGrabBag#optional
80 SvxShapeConnector com::sun::star::style::CharacterPropertiesComplex#optional CharHeightComplex
81 SvxShapeConnector com::sun::star::style::CharacterPropertiesComplex#optional CharWeightComplex
82 SvxShapeConnector com::sun::star::style::CharacterPropertiesComplex#optional CharFontNameComplex

View File

@@ -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()"
1 SvxShapeControl com::sun::star::lang::XComponent dispose()
11 SvxShapeControl com::sun::star::drawing::Shape Style#optional
12 SvxShapeControl com::sun::star::drawing::Shape Transformation#optional
13 SvxShapeControl com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
14 SvxShapeControl com::sun::star::drawing::Shape InteropGrabBag#optional
15 SvxShapeControl com::sun::star::drawing::XShapeDescriptor getShapeType()
16 SvxShapeControl com::sun::star::drawing::XGluePointsSupplier#optional getGluePoints()
17 SvxShapeControl com::sun::star::drawing::XControlShape getControl()

View File

@@ -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"
1 SvxShapeDimensioning com::sun::star::style::CharacterPropertiesAsian#optional CharHeightAsian
94 SvxShapeDimensioning com::sun::star::drawing::Shape Style#optional
95 SvxShapeDimensioning com::sun::star::drawing::Shape Transformation#optional
96 SvxShapeDimensioning com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
97 SvxShapeDimensioning com::sun::star::drawing::Shape InteropGrabBag#optional
98 SvxShapeDimensioning com::sun::star::style::CharacterPropertiesComplex#optional CharHeightComplex
99 SvxShapeDimensioning com::sun::star::style::CharacterPropertiesComplex#optional CharWeightComplex
100 SvxShapeDimensioning com::sun::star::style::CharacterPropertiesComplex#optional CharFontNameComplex

View File

@@ -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()"
1 SvxShapeGroup com::sun::star::container::XIndexAccess getCount()
13 SvxShapeGroup com::sun::star::drawing::Shape Style#optional
14 SvxShapeGroup com::sun::star::drawing::Shape Transformation#optional
15 SvxShapeGroup com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
16 SvxShapeGroup com::sun::star::drawing::Shape InteropGrabBag#optional
17 SvxShapeGroup com::sun::star::drawing::XShapeDescriptor getShapeType()
18 SvxShapeGroup com::sun::star::drawing::XGluePointsSupplier#optional getGluePoints()
19 SvxShapeGroup com::sun::star::drawing::XShapeGroup enterGroup()

View File

@@ -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"
1 SvxShapePolyPolygon com::sun::star::style::CharacterPropertiesAsian#optional CharHeightAsian
76 SvxShapePolyPolygon com::sun::star::drawing::Shape Style#optional
77 SvxShapePolyPolygon com::sun::star::drawing::Shape Transformation#optional
78 SvxShapePolyPolygon com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
79 SvxShapePolyPolygon com::sun::star::drawing::Shape InteropGrabBag#optional
80 SvxShapePolyPolygon com::sun::star::style::CharacterPropertiesComplex#optional CharHeightComplex
81 SvxShapePolyPolygon com::sun::star::style::CharacterPropertiesComplex#optional CharWeightComplex
82 SvxShapePolyPolygon com::sun::star::style::CharacterPropertiesComplex#optional CharFontNameComplex

View File

@@ -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"
1 SvxShapePolyPolygonBezier com::sun::star::drawing::PolyPolygonBezierDescriptor PolygonKind
79 SvxShapePolyPolygonBezier com::sun::star::drawing::Shape Style#optional
80 SvxShapePolyPolygonBezier com::sun::star::drawing::Shape Transformation#optional
81 SvxShapePolyPolygonBezier com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
82 SvxShapePolyPolygonBezier com::sun::star::drawing::Shape InteropGrabBag#optional
83 SvxShapePolyPolygonBezier com::sun::star::style::CharacterPropertiesComplex#optional CharHeightComplex
84 SvxShapePolyPolygonBezier com::sun::star::style::CharacterPropertiesComplex#optional CharWeightComplex
85 SvxShapePolyPolygonBezier com::sun::star::style::CharacterPropertiesComplex#optional CharFontNameComplex

View File

@@ -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()"
1 SwXShape com::sun::star::lang::XComponent dispose()
11 SwXShape com::sun::star::drawing::Shape Style#optional
12 SwXShape com::sun::star::drawing::Shape Transformation#optional
13 SwXShape com::sun::star::drawing::Shape ShapeUserDefinedAttributes#optional
14 SwXShape com::sun::star::drawing::Shape InteropGrabBag#optional
15 SwXShape com::sun::star::drawing::XShapeDescriptor getShapeType()
16 SwXShape com::sun::star::drawing::XGluePointsSupplier#optional getGluePoints()
17 SwXShape com::sun::star::beans::XPropertySet getPropertySetInfo()

View File

@@ -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;
}

View File

@@ -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;