20 #ifndef INCLUDED_OOX_EXPORT_VMLEXPORT_HXX
21 #define INCLUDED_OOX_EXPORT_VMLEXPORT_HXX
25 #include <string_view>
27 #include <com/sun/star/uno/Reference.hxx>
31 #include <rtl/strbuf.hxx>
32 #include <rtl/string.hxx>
33 #include <rtl/ustring.hxx>
37 #include <rtl/ref.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 );
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,
const OString& 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 );
rtl::Reference<::sax_fastparser::FastAttributeList > m_pShapeAttrList
Fill the shape attributes as they come.
virtual void EndShape(sal_uInt16 nShapeType, sal_uInt32 nShapeID)
sal_uInt32 m_nShapeType
Remember the shape type.
const SdrObject * m_pSdrObject
The object we're exporting.
bool m_bOverrideShapeIdGeneration
There is a shapeid generation mechanism in EscherEx, but it does not seem to work so override the exi...
virtual EscherExHostAppData * StartShape(const css::uno::Reference< css::drawing::XShape > &rShape, const tools::Rectangle *pChildAnchor)
std::vector< bool > m_aShapeTypeWritten
Remember which shape types we had already written.
OString m_sShapeId
Remember the generated shape id.
VMLTextExport * m_pTextExport
Parent exporter, used for text callback.
void SetSkipwzName(bool bSkipwzName)
void SetHashMarkForType(bool bUseHashMarkForType)
rtl::Reference< sax_fastparser::FastAttributeList > m_pWrapAttrList
exports com.sun.star. drawing
bool m_bUseHashMarkForType
Use '#' mark for type attribute (check Type Attribute of VML shape in OOXML documentation) ...
sal_uInt64 m_nShapeIDCounter
Counter for generating shape ids (used if m_bOverrideShapeIdGeneration is true)
OStringBuffer m_TextboxStyle
style for textbox
std::shared_ptr< FastSerializerHelper > FSHelperPtr
bool m_bSkipwzName
It seems useless to write out an XML_ID attribute next to XML_id which defines the actual shape id...
OStringBuffer m_ShapeStyle
Remember style, the most important shape attribute ;-)
::sax_fastparser::FSHelperPtr m_pSerializer
Fast serializer to output the data.
const ::sax_fastparser::FSHelperPtr & GetFS() const
OString m_sShapeIDPrefix
Prefix for overridden shape id generation (used if m_bOverrideShapeIdGeneration is true) ...
Interface to be implemented by the parent exporter that knows how to handle shape text...
ShapeFlag m_nShapeFlags
Remember the shape flags.