20 #ifndef INCLUDED_OOX_SOURCE_DRAWINGML_DIAGRAM_DIAGRAMLAYOUTATOMS_HXX
21 #define INCLUDED_OOX_SOURCE_DRAWINGML_DIAGRAM_DIAGRAMLAYOUTATOMS_HXX
26 #include <com/sun/star/xml/sax/XFastAttributeList.hpp>
41 void loadFromXAttr(
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttributes );
56 void loadFromXAttr(
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttributes );
126 static void connect(
const LayoutAtomPtr& pParent,
const LayoutAtomPtr& pChild)
128 pParent->addChild(pChild);
129 pChild->setParent(pParent);
133 void dump(
int level = 0);
150 void parseConstraint(std::vector<Constraint>& rConstraints,
bool bRequireForName)
const;
164 void parseRule(std::vector<Rule>& rRules)
const;
183 {
maMap[nType]=nVal; }
186 const std::vector<Constraint>& rConstraints,
187 const std::vector<Rule>& rRules );
210 const std::vector<Constraint>& rConstraints);
230 const std::vector<Constraint>& rConstraints);
241 LayoutPropertyMap& rProperties);
255 explicit ForEachAtom(
LayoutNode& rLayoutNode,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttributes);
277 explicit ConditionAtom(
LayoutNode& rLayoutNode,
bool isElse,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttributes);
282 static bool compareResult(sal_Int32 nOperator, sal_Int32 nFirst, sal_Int32 nSecond);
307 typedef std::map<sal_Int32, OUString>
VarMap;
337 sal_Int32 nCurrIdx )
const;
void setMoveWith(const OUString &sName)
std::shared_ptr< AlgAtom > AlgAtomPtr
ChooseAtom(LayoutNode &rLayoutNode)
void setStyleLabel(const OUString &sLabel)
void addParam(sal_Int32 nType, sal_Int32 nVal)
Constraints allow you to specify an ideal (or starting point) size for each shape.
sal_Int32 getChildOrder() const
std::map< sal_Int32, OUString > VarMap
const OUString & getName() const
std::shared_ptr< ConditionAtom > ConditionAtomPtr
void addNodeShape(const ShapePtr &pShape)
LayoutNode(Diagram &rDgm)
const ParamMap & getMap() const
IteratorAttr & iterator()
static void connect(const LayoutAtomPtr &pParent, const LayoutAtomPtr &pChild)
std::vector< LayoutAtomPtr > mpChildNodes
RuleAtom(LayoutNode &rLayoutNode)
Specifies the size and position for all child layout nodes.
abstract Atom for the layout
void loadFromXAttr(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttributes)
static void layoutShapeChildren(const ShapePtr &rShape)
Constraint & getConstraint()
static bool compareResult(sal_Int32 nOperator, sal_Int32 nFirst, sal_Int32 nSecond)
void setRef(const OUString &rsRef)
const LayoutNode * getParentLayoutNode() const
std::map< OUString, LayoutProperty > LayoutPropertyMap
const std::vector< LayoutAtomPtr > & getChildren() const
double getAspectRatio() const
AlgAtom(LayoutNode &rLayoutNode)
void setChildOrder(sal_Int32 nOrder)
const OUString & getRef() const
ConditionAtom(LayoutNode &rLayoutNode, bool isElse, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttributes)
const std::vector< ShapePtr > & getNodeShapes() const
ConstraintAtom(LayoutNode &rLayoutNode)
virtual void accept(LayoutAtomVisitor &) override
visitor acceptance
virtual void accept(LayoutAtomVisitor &) override
visitor acceptance
virtual void accept(LayoutAtomVisitor &) override
visitor acceptance
virtual void accept(LayoutAtomVisitor &) override
visitor acceptance
LayoutAtom(LayoutNode &rLayoutNode)
std::map< sal_Int32, sal_Int32 > LayoutProperty
static void layoutShapeChildren(const AlgAtom &rAlg, const ShapePtr &rShape, const std::vector< Constraint > &rConstraints)
virtual void accept(LayoutAtomVisitor &) override
visitor acceptance
ShapeAtom(LayoutNode &rLayoutNode, const ShapePtr &pShape)
void setAspectRatio(double fAspectRatio)
std::shared_ptr< DiagramLayout > DiagramLayoutPtr
sal_Int32 getConnectorType()
Determines the connector shape type for conn algorithm.
ForEachAtom(LayoutNode &rLayoutNode, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttributes)
LayoutAtomPtr getRefAtom()
void setType(sal_Int32 nToken)
std::weak_ptr< LayoutAtom > mpParent
std::shared_ptr< LayoutNode > LayoutNodePtr
void loadFromXAttr(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttributes)
Finds optimal grid to layout children that have fixed aspect ratio.
void setExistingShape(const ShapePtr &pShape)
std::vector< sal_Int32 > maAxis
double mfAspectRatio
Aspect ratio is not integer, so not part of maMap.
std::shared_ptr< LayoutAtom > LayoutAtomPtr
LayoutNode & mrLayoutNode
void setName(const OUString &sName)
sal_Int32 getNodeCount(const svx::diagram::Point *pPresPoint) const
virtual void accept(LayoutAtomVisitor &) override
visitor acceptance
void parseRule(std::vector< Rule > &rRules) const
LayoutNode & getLayoutNode()
sal_Int32 getVerticalShapesCount(const ShapePtr &rShape)
std::shared_ptr< ShapeAtom > ShapeAtomPtr
Rules allow you to specify what to do when constraints can't be fully satisfied.
bool getDecision(const svx::diagram::Point *pPresPoint) const
Lays out child layout nodes along a vertical path and works with the trapezoid shape to create a pyra...
void addChild(const LayoutAtomPtr &pNode)
std::map< sal_Int32, sal_Int32 > ParamMap
static bool inferFromLayoutProperty(const LayoutProperty &rMap, sal_Int32 nRefType, sal_Int32 &rValue)
Decides if a certain reference type (e.g.
bool setupShape(const ShapePtr &rShape, const svx::diagram::Point *pPresNode, sal_Int32 nCurrIdx) const
LayoutAtomPtr getParent() const
void setParent(const LayoutAtomPtr &pParent)
std::shared_ptr< Shape > ShapePtr
void layoutShape(const ShapePtr &rShape, const std::vector< Constraint > &rConstraints, const std::vector< Rule > &rRules)
std::vector< ShapePtr > mpNodeShapes
const ShapePtr & getShapeTemplate() const
static void applyConstraintToLayout(const Constraint &rConstraint, LayoutPropertyMap &rProperties)
Apply rConstraint to the rProperties shared layout state.
void parseConstraint(std::vector< Constraint > &rConstraints, bool bRequireForName) const
virtual void accept(LayoutAtomVisitor &) override
visitor acceptance
virtual void accept(LayoutAtomVisitor &) override
visitor acceptance
virtual void accept(LayoutAtomVisitor &)=0
visitor acceptance
const ShapePtr & getExistingShape() const
static void layoutShapeChildren(AlgAtom &rAlg, const ShapePtr &rShape, const std::vector< Constraint > &rConstraints)
std::shared_ptr< ForEachAtom > ForEachAtomPtr