Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : */
9 :
10 : #include <libxml/xmlwriter.h>
11 :
12 : #include <com/sun/star/beans/XPropertySet.hpp>
13 : #include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp>
14 : #include <com/sun/star/drawing/Direction3D.hpp>
15 : #include <com/sun/star/drawing/ShadeMode.hpp>
16 : #include <com/sun/star/drawing/ProjectionMode.hpp>
17 : #include <com/sun/star/drawing/Position3D.hpp>
18 :
19 : #include <com/sun/star/awt/Rectangle.hpp>
20 : #include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
21 : #include <com/sun/star/beans/PropertyValue.hpp>
22 : #include <com/sun/star/beans/PropertyValues.hpp>
23 : #include <com/sun/star/drawing/EnhancedCustomShapeParameter.hpp>
24 :
25 : #include <com/sun/star/drawing/EnhancedCustomShapeSegment.hpp>
26 : #include <com/sun/star/drawing/EnhancedCustomShapeTextFrame.hpp>
27 : #include <com/sun/star/awt/Size.hpp>
28 :
29 : #include <com/sun/star/drawing/EnhancedCustomShapeTextPathMode.hpp>
30 :
31 : #ifndef INCLUDED_DRAWINGLAYER_SOURCE_DUMPER_ENHANCEDSHAPEDUMPER_HXX
32 : #define INCLUDED_DRAWINGLAYER_SOURCE_DUMPER_ENHANCEDSHAPEDUMPER_HXX
33 :
34 : class EnhancedShapeDumper
35 : {
36 : public:
37 959 : EnhancedShapeDumper(xmlTextWriterPtr writer)
38 : :
39 959 : xmlWriter(writer)
40 : {
41 :
42 959 : }
43 :
44 : // auxiliary functions
45 : void dumpEnhancedCustomShapeParameterPair(com::sun::star::drawing::EnhancedCustomShapeParameterPair aParameterPair);
46 : void dumpDirection3D(com::sun::star::drawing::Direction3D aDirection3D);
47 : void dumpPropertyValueAsElement(com::sun::star::beans::PropertyValue aPropertyValue);
48 : void dumpEnhancedCustomShapeParameter(com::sun::star::drawing::EnhancedCustomShapeParameter aParameter);
49 :
50 : // EnhancedCustomShapeExtrusion.idl
51 : void dumpEnhancedCustomShapeExtrusionService(com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > xPropSet);
52 : void dumpExtrusionAsAttribute(bool bExtrusion);
53 : void dumpBrightnessAsAttribute(double aBrightness);
54 : void dumpDepthAsElement(com::sun::star::drawing::EnhancedCustomShapeParameterPair aDepth);
55 : void dumpDiffusionAsAttribute(double aDiffusion);
56 : void dumpNumberOfLineSegmentsAsAttribute(sal_Int32 aNumberOfLineSegments);
57 : void dumpLightFaceAsAttribute(bool bLightFace);
58 : void dumpFirstLightHarshAsAttribute(bool bFirstLightHarsh);
59 : void dumpSecondLightHarshAsAttribute(bool bSecondLightHarsh);
60 : void dumpFirstLightLevelAsAttribute(double aFirstLightLevel);
61 : void dumpSecondLightLevelAsAttribute(double aSecondLightLevel);
62 : void dumpFirstLightDirectionAsElement(com::sun::star::drawing::Direction3D aFirstLightDirection);
63 : void dumpSecondLightDirectionAsElement(com::sun::star::drawing::Direction3D aSecondLightDirection);
64 : void dumpMetalAsAttribute(bool bMetal);
65 : void dumpShadeModeAsAttribute(com::sun::star::drawing::ShadeMode eShadeMode);
66 : void dumpRotateAngleAsElement(com::sun::star::drawing::EnhancedCustomShapeParameterPair aRotateAngle);
67 : void dumpRotationCenterAsElement(com::sun::star::drawing::Direction3D aRotationCenter);
68 : void dumpShininessAsAttribute(double aShininess);
69 : void dumpSkewAsElement(com::sun::star::drawing::EnhancedCustomShapeParameterPair aSkew);
70 : void dumpSpecularityAsAttribute(double aSpecularity);
71 : void dumpProjectionModeAsAttribute(com::sun::star::drawing::ProjectionMode eProjectionMode);
72 : void dumpViewPointAsElement(com::sun::star::drawing::Position3D aViewPoint);
73 : void dumpOriginAsElement(com::sun::star::drawing::EnhancedCustomShapeParameterPair aOrigin);
74 : void dumpExtrusionColorAsAttribute(bool bExtrusionColor);
75 :
76 : // EnhancedCustomShapeGeometry.idl
77 : void dumpEnhancedCustomShapeGeometryService(com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > xPropSet);
78 : void dumpTypeAsAttribute(const OUString& sType);
79 : void dumpViewBoxAsElement(com::sun::star::awt::Rectangle aViewBox);
80 : void dumpMirroredXAsAttribute(bool bMirroredX); // also used in EnhancedCustomShapeHandle
81 : void dumpMirroredYAsAttribute(bool bMirroredY); // also used in EnhancedCustomShapeHandle
82 : void dumpTextRotateAngleAsAttribute(double aTextRotateAngle);
83 : void dumpAdjustmentValuesAsElement(const com::sun::star::uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeAdjustmentValue>& aAdjustmentValues);
84 : void dumpExtrusionAsElement(const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& aExtrusion);
85 : void dumpPathAsElement(const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& aPath);
86 : void dumpTextPathAsElement(const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& aTextPath);
87 : void dumpEquationsAsElement(const com::sun::star::uno::Sequence< OUString >& aEquations);
88 : void dumpHandlesAsElement(const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValues >& aHandles);
89 :
90 : // EnhancedCustomShapeHandle.idl
91 : void dumpEnhancedCustomShapeHandleService(com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > xPropSet);
92 : void dumpSwitchedAsAttribute(bool bSwitched);
93 : void dumpPositionAsElement(com::sun::star::drawing::EnhancedCustomShapeParameterPair aPosition);
94 : void dumpPolarAsElement(com::sun::star::drawing::EnhancedCustomShapeParameterPair aPolar);
95 : void dumpRefXAsAttribute(sal_Int32 aRefX);
96 : void dumpRefYAsAttribute(sal_Int32 aRefY);
97 : void dumpRefAngleAsAttribute(sal_Int32 aRefAngle);
98 : void dumpRefRAsAttribute(sal_Int32 aRefR);
99 : void dumpRangeXMinimumAsElement(com::sun::star::drawing::EnhancedCustomShapeParameter aRangeXMinimum);
100 : void dumpRangeXMaximumAsElement(com::sun::star::drawing::EnhancedCustomShapeParameter aRangeXMaximum);
101 : void dumpRangeYMinimumAsElement(com::sun::star::drawing::EnhancedCustomShapeParameter aRangeYMinimum);
102 : void dumpRangeYMaximumAsElement(com::sun::star::drawing::EnhancedCustomShapeParameter aRangeXMaximum);
103 : void dumpRadiusRangeMinimumAsElement(com::sun::star::drawing::EnhancedCustomShapeParameter aRadiusRangeMinimum);
104 : void dumpRadiusRangeMaximumAsElement(com::sun::star::drawing::EnhancedCustomShapeParameter aRadiusRangeMaximum);
105 :
106 : // EnhancedCustomShapePath.idl
107 : void dumpEnhancedCustomShapePathService(com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > xPropSet);
108 : void dumpCoordinatesAsElement(const com::sun::star::uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeParameterPair >& aCoordinates);
109 : void dumpSegmentsAsElement(const com::sun::star::uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeSegment >& aSegments);
110 : void dumpStretchXAsAttribute(sal_Int32 aStretchX);
111 : void dumpStretchYAsAttribute(sal_Int32 aStretchY);
112 : void dumpTextFramesAsElement(const com::sun::star::uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeTextFrame >& aTextFrames);
113 : void dumpGluePointsAsElement(const com::sun::star::uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeParameterPair >& aGluePoints);
114 : void dumpGluePointLeavingDirectionsAsElement(const com::sun::star::uno::Sequence< double >& aGluePointLeavingDirections);
115 : void dumpGluePointTypeAsAttribute(sal_Int32 aGluePointType);
116 : void dumpExtrusionAllowedAsAttribute(bool bExtrusionAllowed);
117 : void dumpConcentricGradientFillAllowedAsAttribute(bool bConcentricGradientFillAllowed);
118 : void dumpTextPathAllowedAsAttribute(bool bTextPathAllowed);
119 : void dumpSubViewSizeAsElement(const com::sun::star::uno::Sequence< com::sun::star::awt::Size >& aSubViewSize);
120 :
121 : // EnhancedCustomShapePath.idl
122 : void dumpEnhancedCustomShapeTextPathService(com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > xPropSet);
123 : void dumpTextPathAsAttribute(bool bTextPath);
124 : void dumpTextPathModeAsAttribute(com::sun::star::drawing::EnhancedCustomShapeTextPathMode eTextPathMode);
125 : void dumpScaleXAsAttribute(bool bScaleX);
126 :
127 : private:
128 : xmlTextWriterPtr xmlWriter;
129 : };
130 : #endif
131 :
132 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|