20#ifndef INCLUDED_OOX_VML_VMLSHAPECONTAINER_HXX
21#define INCLUDED_OOX_VML_VMLSHAPECONTAINER_HXX
28#include <com/sun/star/awt/Rectangle.hpp>
29#include <com/sun/star/uno/Reference.hxx>
32#include <rtl/ustring.hxx>
35 namespace drawing {
class XShapes; }
65 template<
typename ShapeT >
83 template<
typename Functor >
106 const css::uno::Reference< css::drawing::XShapes >& rxShapes,
124template<
typename ShapeT >
127 auto xShape = std::make_shared<ShapeT>(
mrDrawing );
128 xShape->setContainer(
this);
133template<
typename Functor >
value_type findIf(const FunctorType &rFunctor) const
Searches for an element by using the passed functor that takes a constant reference of the object typ...
Represents the collection of VML shapes for a complete draw page.
A shape object that is part of a drawing.
Container that holds a list of shapes and shape templates.
const ShapeBase * findShape(const Functor &rFunctor) const
Searches for a shape by using the passed functor that takes a constant reference of a ShapeBase objec...
ShapeMap maShapesById
All shape definitions mapped by identifier.
RefMap< OUString, ShapeType > ShapeTypeMap
const ShapeType * getShapeTypeById(const OUString &rShapeId) const
Returns the shape template with the passed identifier.
Drawing & mrDrawing
The VML drawing page that contains this shape.
ShapeVector maShapes
All shape definitions.
ShapeTypeVector maTypes
All shape templates.
bool empty() const
Returns true, if this container does not contain any shapes.
std::shared_ptr< ShapeBase > takeLastShape()
(Word only) Returns the last shape in the collection, if it is after the last mark from pushMark(),...
void convertAndInsert(const css::uno::Reference< css::drawing::XShapes > &rxShapes, const ShapeParentAnchor *pParentAnchor=nullptr) const
Creates and inserts all UNO shapes into the passed container.
Drawing & getDrawing()
Returns the drawing this shape container is part of.
RefVector< ShapeBase > ShapeVector
ShapeTypeMap maTypesById
All shape templates mapped by identifier.
void finalizeFragmentImport()
Final processing after import of the drawing fragment.
void popMark()
Removes a recursion mark.
RefMap< OUString, ShapeBase > ShapeMap
RefVector< ShapeType > ShapeTypeVector
std::stack< size_t > markStack
Recursion marks from pushMark()/popMark().
void pushMark()
Adds a recursion mark to the stack.
ShapeContainer(Drawing &rDrawing)
std::shared_ptr< ShapeType > createShapeType()
Creates and returns a new shape template object.
const ShapeBase * getShapeById(const OUString &rShapeId) const
Returns the shape with the passed identifier.
std::shared_ptr< ShapeT > createShape()
Creates and returns a new shape object of the specified type.
A shape template contains all formatting properties of shapes and can serve as templates for several ...
::cppu::WeakComponentImplHelper< css::report::XShape, css::lang::XServiceInfo > ShapeBase
css::awt::Rectangle maShapeRect
css::awt::Rectangle maCoordSys