20#ifndef INCLUDED_OOX_VML_VMLDRAWING_HXX
21#define INCLUDED_OOX_VML_VMLDRAWING_HXX
27#include <com/sun/star/uno/Reference.hxx>
30#include <rtl/ustring.hxx>
35 namespace drawing {
class XDrawPage; }
36 namespace drawing {
class XShape; }
37 namespace drawing {
class XShapes; }
41 namespace core {
class XmlFilterBase; }
42 namespace ole {
class EmbeddedControl; }
43 namespace ole {
class EmbeddedForm; }
44 namespace vml {
class ShapeContainer; }
72 void setShapeId( sal_Int32 nShapeId );
88 void setShapeId( sal_Int32 nShapeId );
98 const css::uno::Reference< css::drawing::XDrawPage >& rxDrawPage,
116 void registerBlockId( sal_Int32 nBlockId );
122 void registerControl(
const ControlInfo& rControl );
125 void finalizeFragmentImport();
129 void convertAndInsert()
const;
132 sal_Int32 getLocalShapeIndex( std::u16string_view rShapeId )
const;
134 const OleObjectInfo* getOleObjectInfo(
const OUString& rShapeId )
const;
136 const ControlInfo* getControlInfo(
const OUString& rShapeId )
const;
140 css::uno::Reference< css::drawing::XShape >
141 createAndInsertXShape(
142 const OUString& rService,
143 const css::uno::Reference< css::drawing::XShapes >& rxShapes,
144 const css::awt::Rectangle& rShapeRect )
const;
148 css::uno::Reference< css::drawing::XShape >
149 createAndInsertXControlShape(
150 const ::oox::ole::EmbeddedControl& rControl,
151 const css::uno::Reference< css::drawing::XShapes >& rxShapes,
152 const css::awt::Rectangle& rShapeRect,
153 sal_Int32& rnCtrlIndex )
const;
156 virtual bool isShapeSupported(
const ShapeBase& rShape )
const;
160 virtual OUString getShapeBaseName(
const ShapeBase& rShape )
const;
164 virtual bool convertClientAnchor(
165 css::awt::Rectangle& orShapeRect,
166 const OUString& rShapeAnchor )
const;
170 virtual css::uno::Reference< css::drawing::XShape >
171 createAndInsertClientXShape(
173 const css::uno::Reference< css::drawing::XShapes >& rxShapes,
174 const css::awt::Rectangle& rShapeRect )
const;
180 virtual void notifyXShapeInserted(
181 const css::uno::Reference< css::drawing::XShape >& rxShape,
182 const css::awt::Rectangle& rShapeRect,
183 const ShapeBase& rShape,
bool bGroupChild );
191 css::uno::Reference< css::drawing::XDrawPage >
193 mutable std::unique_ptr<::oox::ole::EmbeddedForm>
mxCtrlForm;
Represents the collection of VML shapes for a complete draw page.
ShapeContainer & getShapes()
Returns read/write access to the container of shapes and templates.
::oox::core::XmlFilterBase & getFilter() const
Returns the filter object that imports/exports this VML drawing.
::std::map< OUString, ControlInfo > ControlInfoMap
DrawingType getType() const
Returns the application type containing the drawing.
std::unique_ptr<::oox::ole::EmbeddedForm > mxCtrlForm
The control form used to process embedded controls.
ControlInfoMap maControls
Info about all embedded form controls, mapped by control name.
::oox::core::XmlFilterBase & mrFilter
Filter object that imports/exports the VML drawing.
::std::map< OUString, OleObjectInfo > OleObjectInfoMap
BlockIdVector maBlockIds
Block identifiers used by this drawing.
const DrawingType meType
Application type containing the drawing.
const ShapeContainer & getShapes() const
Returns read access to the container of shapes and templates.
OleObjectInfoMap maOleObjects
Info about all embedded OLE objects, mapped by shape id.
std::unique_ptr< ShapeContainer > mxShapes
All shapes and shape templates.
::std::vector< sal_Int32 > BlockIdVector
css::uno::Reference< css::drawing::XDrawPage > mxDrawPage
UNO draw page used to insert the shapes.
A shape object that is part of a drawing.
Container that holds a list of shapes and shape templates.
DrawingType
Enumerates different types of VML drawings.
@ VMLDRAWING_EXCEL
Excel: OLE objects are part of VML.
@ VMLDRAWING_WORD
Word: One shape per drawing.
@ VMLDRAWING_POWERPOINT
PowerPoint: OLE objects are part of DrawingML.
::cppu::WeakComponentImplHelper< css::report::XShape, css::lang::XServiceInfo > ShapeBase
const PowerPointImport & mrFilter
Contains generic information about an OLE object.
Contains information about a form control embedded in a draw page.
OUString maName
Programmatical name of the form control.
bool mbTextContentShape
Whether this control shape will be imported to Writer or not (has AnchorType property or not).
OUString maShapeId
Shape identifier for shape lookup.
OUString maFragmentPath
Path to the fragment describing the form control properties.
Contains information about an OLE object embedded in a draw page.
const bool mbDmlShape
True = DrawingML shape (PowerPoint), false = VML shape (Excel/Word).
OUString maName
Programmatical name of the OLE object.
OUString maShapeId
Shape identifier for shape lookup.