summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2013-05-16 03:49:34 +0200
committerJan Holesovsky <kendy@suse.cz>2013-05-16 04:57:15 +0200
commit225b41088a565ea1d69967139e7f4de59e4acf2c (patch)
tree4cbf9ab366ee30e04843c94e8030b812777dbe84 /drawinglayer
parent5fe65c0c5e5a8d815d9d15ef192e7652726662e6 (diff)
XShapeDumper: Dump more values, to be able to test n#819614.
Change-Id: I19cbae855996bffb18206b9003e22a2bcc0c75d9
Diffstat (limited to 'drawinglayer')
-rw-r--r--drawinglayer/source/dumper/EnhancedShapeDumper.cxx31
-rw-r--r--drawinglayer/source/dumper/XShapeDumper.cxx116
2 files changed, 118 insertions, 29 deletions
diff --git a/drawinglayer/source/dumper/EnhancedShapeDumper.cxx b/drawinglayer/source/dumper/EnhancedShapeDumper.cxx
index 842cd5236257..8a1808821a3a 100644
--- a/drawinglayer/source/dumper/EnhancedShapeDumper.cxx
+++ b/drawinglayer/source/dumper/EnhancedShapeDumper.cxx
@@ -475,11 +475,27 @@ void EnhancedShapeDumper::dumpAdjustmentValuesAsElement(uno::Sequence< drawing::
xmlTextWriterStartElement(xmlWriter, BAD_CAST( "EnhancedCustomShapeAdjustmentValue" ));
uno::Any aAny = aAdjustmentValues[i].Value;
OUString sValue;
+ float fValue;
+ sal_Int32 nValue;
+ sal_Bool bValue;
if(aAny >>= sValue)
{
xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s",
OUStringToOString(sValue, RTL_TEXTENCODING_UTF8).getStr());
}
+ else if(aAny >>= nValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%" SAL_PRIdINT32, nValue);
+ }
+ else if(aAny >>= fValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%f", fValue);
+ }
+ else if(aAny >>= bValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", (bValue? "true": "false"));
+ }
+
switch(aAdjustmentValues[i].State)
{
case beans::PropertyState_DIRECT_VALUE:
@@ -741,11 +757,26 @@ void EnhancedShapeDumper::dumpEnhancedCustomShapeParameter(drawing::EnhancedCust
{
uno::Any aAny = aParameter.Value;
OUString sValue;
+ float fValue;
+ sal_Int32 nValue;
+ sal_Bool bValue;
if(aAny >>= sValue)
{
xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s",
OUStringToOString(sValue, RTL_TEXTENCODING_UTF8).getStr());
}
+ else if(aAny >>= nValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%" SAL_PRIdINT32, nValue);
+ }
+ else if(aAny >>= fValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%f", fValue);
+ }
+ else if(aAny >>= bValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", (bValue? "true": "false"));
+ }
sal_Int32 aType = aParameter.Type;
xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("type"), "%" SAL_PRIdINT32, aType);
}
diff --git a/drawinglayer/source/dumper/XShapeDumper.cxx b/drawinglayer/source/dumper/XShapeDumper.cxx
index d61dfc33ca26..caf3758bb79d 100644
--- a/drawinglayer/source/dumper/XShapeDumper.cxx
+++ b/drawinglayer/source/dumper/XShapeDumper.cxx
@@ -1090,41 +1090,99 @@ void dumpCustomShapeDataAsAttribute(OUString sCustomShapeData, xmlTextWriterPtr
OUStringToOString(sCustomShapeData, RTL_TEXTENCODING_UTF8).getStr());
}
+void dumpPropertyValueAsElement(const beans::PropertyValue& rPropertyValue, xmlTextWriterPtr xmlWriter)
+{
+ xmlTextWriterStartElement(xmlWriter, BAD_CAST( "PropertyValue" ));
+
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("name"), "%s",
+ OUStringToOString(rPropertyValue.Name, RTL_TEXTENCODING_UTF8).getStr());
+
+ uno::Any aAny = rPropertyValue.Value;
+ OUString sValue;
+ float fValue;
+ sal_Int32 nValue;
+ sal_Bool bValue;
+ awt::Rectangle aRectangleValue;
+ uno::Sequence< drawing::EnhancedCustomShapeAdjustmentValue> aAdjustmentValues;
+ uno::Sequence< drawing::EnhancedCustomShapeParameterPair > aCoordinates;
+ uno::Sequence< drawing::EnhancedCustomShapeSegment > aSegments;
+ uno::Sequence< beans::PropertyValue > aPropSeq;
+ if(aAny >>= sValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s",
+ OUStringToOString(sValue, RTL_TEXTENCODING_UTF8).getStr());
+ }
+ else if(aAny >>= nValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%" SAL_PRIdINT32, nValue);
+ }
+ else if(aAny >>= fValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%f", fValue);
+ }
+ else if(aAny >>= bValue)
+ {
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s", (bValue? "true": "false"));
+ }
+ else if(rPropertyValue.Name == "ViewBox" && (aAny >>= aRectangleValue))
+ {
+ EnhancedShapeDumper enhancedDumper(xmlWriter);
+ enhancedDumper.dumpViewBoxAsElement(aRectangleValue);
+ }
+ else if(rPropertyValue.Name == "AdjustmentValues" && (aAny >>= aAdjustmentValues))
+ {
+ EnhancedShapeDumper enhancedDumper(xmlWriter);
+ enhancedDumper.dumpAdjustmentValuesAsElement(aAdjustmentValues);
+ }
+ else if(rPropertyValue.Name == "Coordinates" && (aAny >>= aCoordinates))
+ {
+ EnhancedShapeDumper enhancedDumper(xmlWriter);
+ enhancedDumper.dumpCoordinatesAsElement(aCoordinates);
+ }
+ else if(rPropertyValue.Name == "Segments" && (aAny >>= aSegments))
+ {
+ EnhancedShapeDumper enhancedDumper(xmlWriter);
+ enhancedDumper.dumpSegmentsAsElement(aSegments);
+ }
+ else if(aAny >>= aPropSeq)
+ {
+ xmlTextWriterStartElement(xmlWriter, BAD_CAST( OUStringToOString(rPropertyValue.Name, RTL_TEXTENCODING_UTF8).getStr() ));
+
+ sal_Int32 i = 0, nCount = aPropSeq.getLength();
+ for ( ; i < nCount; i++ )
+ dumpPropertyValueAsElement(aPropSeq[ i ], xmlWriter);
+
+ xmlTextWriterEndElement(xmlWriter);
+ }
+ // TODO more, if necessary
+
+ xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("handle"), "%" SAL_PRIdINT32, rPropertyValue.Handle);
+
+ switch(rPropertyValue.State)
+ {
+ case beans::PropertyState_DIRECT_VALUE:
+ xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "DIRECT_VALUE");
+ break;
+ case beans::PropertyState_DEFAULT_VALUE:
+ xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "DEFAULT_VALUE");
+ break;
+ case beans::PropertyState_AMBIGUOUS_VALUE:
+ xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "AMBIGUOUS_VALUE");
+ break;
+ default:
+ break;
+ }
+ xmlTextWriterEndElement( xmlWriter );
+}
+
void dumpCustomShapeGeometryAsElement(uno::Sequence< beans::PropertyValue> aCustomShapeGeometry, xmlTextWriterPtr xmlWriter)
{
xmlTextWriterStartElement(xmlWriter, BAD_CAST( "CustomShapeGeometry" ));
+
sal_Int32 nLength = aCustomShapeGeometry.getLength();
for (sal_Int32 i = 0; i < nLength; ++i)
- {
- xmlTextWriterStartElement(xmlWriter, BAD_CAST( "PropertyValue" ));
-
- xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("name"), "%s",
- OUStringToOString(aCustomShapeGeometry[i].Name, RTL_TEXTENCODING_UTF8).getStr());
- xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("handle"), "%" SAL_PRIdINT32, aCustomShapeGeometry[i].Handle);
+ dumpPropertyValueAsElement(aCustomShapeGeometry[i], xmlWriter);
- uno::Any aAny = aCustomShapeGeometry[i].Value;
- OUString sValue;
- if(aAny >>= sValue)
- {
- xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("value"), "%s",
- OUStringToOString(sValue, RTL_TEXTENCODING_UTF8).getStr());
- }
- switch(aCustomShapeGeometry[i].State)
- {
- case beans::PropertyState_DIRECT_VALUE:
- xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "DIRECT_VALUE");
- break;
- case beans::PropertyState_DEFAULT_VALUE:
- xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "DEFAULT_VALUE");
- break;
- case beans::PropertyState_AMBIGUOUS_VALUE:
- xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("propertyState"), "%s", "AMBIGUOUS_VALUE");
- break;
- default:
- break;
- }
- xmlTextWriterEndElement( xmlWriter );
- }
xmlTextWriterEndElement( xmlWriter );
}