20#ifndef INCLUDED_OOX_EXPORT_SHAPES_HXX
21#define INCLUDED_OOX_EXPORT_SHAPES_HXX
26#include <unordered_map>
28#include <com/sun/star/awt/Size.hpp>
29#include <com/sun/star/table/BorderLine2.hpp>
30#include <com/sun/star/uno/Reference.hxx>
34#include <rtl/ustring.hxx>
49 class XEmbeddedObject;
55 class XComponentContext;
69 css::uno::Reference<css::uno::XComponentContext>
const& xContext,
70 css::uno::Reference<css::embed::XEmbeddedObject>
const& xObj,
71 std::u16string_view i_rProgID,
72 OUString & o_rMediaType,
73 OUString & o_rRelationType,
75 const char *& o_rpProgID);
87 typedef std::unordered_map< css::uno::Reference< css::drawing::XShape>, sal_Int32>
ShapeHashMap;
93 void WriteGraphicObjectShapePart(
const css::uno::Reference< css::drawing::XShape >& xShape,
const Graphic *pGraphic=
nullptr );
95 OUString GetShapeName(
const css::uno::Reference< css::drawing::XShape >& xShape);
102 css::awt::Size MapSize(
const css::awt::Size& )
const;
113 bool bUserShapes =
false );
116 void SetURLTranslator(
const std::shared_ptr<URLTransformer>& pTransformer);
118 static bool NonEmptyText(
const css::uno::Reference< css::uno::XInterface >& xIface );
121 WritePolyPolygonShape(
const css::uno::Reference< css::drawing::XShape >& xShape,
bool bClosed );
123 WriteClosedPolyPolygonShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
125 WriteConnectorShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
127 WriteCustomShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
129 WriteEllipseShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
131 WriteGraphicObjectShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
133 WriteGroupShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
135 WriteLineShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
137 WriteNonVisualDrawingProperties(
const css::uno::Reference< css::drawing::XShape >& xShape,
const char*
sName );
139 WriteNonVisualProperties(
const css::uno::Reference< css::drawing::XShape >& xShape );
141 WriteOpenPolyPolygonShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
143 WriteRectangleShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
184 ShapeExport& WriteShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
185 ShapeExport& WriteTextBox(
const css::uno::Reference< css::uno::XInterface >& xIface, sal_Int32 nXmlNamespace,
bool bWritePropertiesAsLstStyles =
false );
187 WriteTextShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
189 WriteTableShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
190 void WriteMathShape(css::uno::Reference<css::drawing::XShape>
const& xShape);
192 WriteOLE2Shape(
const css::uno::Reference< css::drawing::XShape >& xShape );
194 WriteUnknownShape(
const css::uno::Reference< css::drawing::XShape >& xShape );
196 void WriteTable(
const css::uno::Reference< css::drawing::XShape >& rXShape );
198 void WriteTableCellProperties(
const css::uno::Reference< css::beans::XPropertySet >& rXPropSet);
200 void WriteBorderLine(
const sal_Int32 XML_line,
const css::table::BorderLine2& rBorderLine);
201 void WriteTableCellBorders(
const css::uno::Reference< css::beans::XPropertySet >& rXPropSet);
203 sal_Int32
GetNewShapeID(
const css::uno::Reference< css::drawing::XShape >& rShape );
205 sal_Int32
GetShapeID(
const css::uno::Reference< css::drawing::XShape >& rShape );
Interface to be implemented by the parent exporter that knows how to handle shape text.
ShapeHashMap * mpShapeMap
sal_Int32 GetNewShapeID(const css::uno::Reference< css::drawing::XShape > &rShape)
std::unordered_map< css::uno::Reference< css::drawing::XShape >, sal_Int32 > ShapeHashMap
sal_Int32 GetShapeID(const css::uno::Reference< css::drawing::XShape > &rShape)
sal_Int32 GetNewShapeID(const css::uno::Reference< css::drawing::XShape > &rShape, ::oox::core::XmlFilterBase *pFB)
std::shared_ptr< URLTransformer > mpURLTransformer
static sal_Int32 GetShapeID(const css::uno::Reference< css::drawing::XShape > &rShape, ShapeHashMap *pShapeMap)
class SAL_NO_VTABLE XPropertySet
uno::Reference< io::XInputStream > GetOLEObjectStream(uno::Reference< uno::XComponentContext > const &xContext, uno::Reference< embed::XEmbeddedObject > const &xObj, std::u16string_view i_rProgID, OUString &o_rMediaType, OUString &o_rRelationType, OUString &o_rSuffix, const char *&o_rpProgID)
std::shared_ptr< FastSerializerHelper > FSHelperPtr