20#ifndef INCLUDED_OOX_EXPORT_VMLEXPORT_HXX
21#define INCLUDED_OOX_EXPORT_VMLEXPORT_HXX
27#include <com/sun/star/uno/Reference.hxx>
31#include <rtl/strbuf.hxx>
32#include <rtl/string.hxx>
33#include <rtl/ustring.hxx>
51 class FastAttributeList;
67 virtual void WriteVMLTextBox(css::uno::Reference<css::drawing::XShape> xShape) = 0;
82 sal_Int16
m_eHOri, m_eVOri, m_eHRel, m_eVRel;
85 bool m_IsFollowingTextFlow =
false;
132 const ::sax_fastparser::FSHelperPtr&
133 GetFS()
const {
return m_pSerializer; }
135 void SetFS(const ::sax_fastparser::FSHelperPtr& pSerializer);
140 OString
const & AddSdrObject(
const SdrObject& rObj,
141 bool const bIsFollowingTextFlow =
false,
142 sal_Int16 eHOri = -1, sal_Int16 eVOri = -1, sal_Int16 eHRel = -1,
143 sal_Int16 eVRel = -1,
145 const bool bOOxmlExport =
false, sal_uInt32
nId = 0);
146 OString
const & AddInlineSdrObject(
const SdrObject& rObj,
const bool bOOxmlExport );
147 virtual void AddSdrObjectVMLObject(
const SdrObject& rObj)
override;
148 static bool IsWaterMarkShape(std::u16string_view rStr);
152 void OverrideShapeIDGen(
bool bOverrideShapeIdGeneration,
153 const OString& sShapeIDPrefix = OString());
154 static OString GetVMLShapeTypeDefinition(std::string_view sShapeID,
const bool bIsPictureFrame);
161 void AddShapeAttribute(sal_Int32 nAttribute, std::string_view sValue);
167 virtual sal_uInt32 GenerateShapeId()
override;
172 virtual sal_Int32 StartShape();
177 virtual void EndShape( sal_Int32 nShapeElement );
182 virtual void OpenContainer( sal_uInt16 nEscherContainer,
int nRecInstance = 0 )
override;
183 virtual void CloseContainer()
override;
185 virtual sal_uInt32 EnterGroup(
const OUString& rShapeName,
const tools::Rectangle* pBoundRect )
override;
186 virtual void LeaveGroup()
override;
188 virtual void AddShape( sal_uInt32 nShapeType,
ShapeFlag nShapeFlags, sal_uInt32 nShapeId = 0 )
override;
192 OString ShapeIdString( sal_uInt32
nId );
201 void AddRectangleDimensions( OStringBuffer& rBuffer,
const tools::Rectangle& rRectangle,
bool rbAbsolutePos =
true );
virtual void EndShape(sal_uInt16 nShapeType, sal_uInt32 nShapeID)
virtual EscherExHostAppData * StartShape(const css::uno::Reference< css::drawing::XShape > &rShape, const tools::Rectangle *pChildAnchor)
sal_uInt32 m_nShapeType
Remember the shape type.
OString m_sShapeId
Remember the generated shape id.
ShapeFlag m_nShapeFlags
Remember the shape flags.
::sax_fastparser::FSHelperPtr m_pSerializer
Fast serializer to output the data.
OStringBuffer m_TextboxStyle
style for textbox
OString m_sShapeIDPrefix
Prefix for overridden shape id generation (used if m_bOverrideShapeIdGeneration is true)
const ::sax_fastparser::FSHelperPtr & GetFS() const
const SdrObject * m_pSdrObject
The object we're exporting.
std::vector< bool > m_aShapeTypeWritten
Remember which shape types we had already written.
sal_Int16 m_eHOri
Anchoring - Writer specific properties.
bool m_bUseHashMarkForType
Use '#' mark for type attribute (check Type Attribute of VML shape in OOXML documentation)
bool m_bOverrideShapeIdGeneration
There is a shapeid generation mechanism in EscherEx, but it does not seem to work so override the exi...
sal_uInt64 m_nShapeIDCounter
Counter for generating shape ids (used if m_bOverrideShapeIdGeneration is true)
bool m_bSkipwzName
It seems useless to write out an XML_ID attribute next to XML_id which defines the actual shape id.
void SetSkipwzName(bool bSkipwzName)
void SetHashMarkForType(bool bUseHashMarkForType)
OStringBuffer m_ShapeStyle
Remember style, the most important shape attribute ;-)
VMLTextExport * m_pTextExport
Parent exporter, used for text callback.
rtl::Reference<::sax_fastparser::FastAttributeList > m_pShapeAttrList
Fill the shape attributes as they come.
rtl::Reference< sax_fastparser::FastAttributeList > m_pWrapAttrList
Interface to be implemented by the parent exporter that knows how to handle shape text.
virtual void WriteOutliner(const OutlinerParaObject &rParaObj)=0
virtual oox::drawingml::DrawingML & GetDrawingML()=0
virtual void WriteVMLTextBox(css::uno::Reference< css::drawing::XShape > xShape)=0
Write the contents of the textbox that is associated to this shape in VML format.
std::shared_ptr< FastSerializerHelper > FSHelperPtr