template<class UserInterface>
Magnum::Ui::BasicSnapLayout class new in Git master

Layout using SnapLayouter.

Restricts AbstractSnapLayout to a concrete user interface instance. Meant to be used through concrete a typedef such as SnapLayout. See the base class documentation for more information.

Base classes

class AbstractSnapLayout new in Git master
Base for layouts using SnapLayouter.

Derived classes

template<class UserInterface>
class BasicSnapLayoutColumn new in Git master
Column layout using SnapLayouter.
template<class UserInterface>
class BasicSnapLayoutColumnFill new in Git master
Filled column layout using SnapLayouter.
template<class UserInterface>
class BasicSnapLayoutColumnLeft new in Git master
Left-aligned column layout using SnapLayouter.
template<class UserInterface>
class BasicSnapLayoutColumnRight new in Git master
Right-aligned column layout using SnapLayouter.
template<class UserInterface>
class BasicSnapLayoutRow new in Git master
Row layout using SnapLayouter.
template<class UserInterface>
class BasicSnapLayoutRowBottom new in Git master
Bottom-aligned row layout using SnapLayouter.
template<class UserInterface>
class BasicSnapLayoutRowFill new in Git master
Filled row layout using SnapLayouter.
template<class UserInterface>
class BasicSnapLayoutRowTop new in Git master
Top-aligned row layout using SnapLayouter.

Public static functions

static auto snapRoot(UserInterface& ui, SnapLayouter& layouter, Snaps snap, const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, SnapLayoutFlags layoutFlags = {}) -> BasicSnapLayout<UserInterface>
Create an explicitly snapped root layout.
static auto snapRoot(UserInterface& ui, SnapLayouter& layouter, Snaps snap, const Vector2& nodeSize, SnapLayoutFlags layoutFlags) -> BasicSnapLayout<UserInterface>
static auto snapRoot(UserInterface& ui, Snaps snap, const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, SnapLayoutFlags layoutFlags = {}) -> BasicSnapLayout<UserInterface>
Create an explicitly snapped root layout using the default layouter in given user interface.
static auto snapRoot(UserInterface& ui, Snaps snap, const Vector2& nodeSize, SnapLayoutFlags layoutFlags) -> BasicSnapLayout<UserInterface>

Constructors, destructors, conversion operators

BasicSnapLayout(SnapLayouter& layouter, const BasicAnchor<UserInterface>& anchor) explicit
Construct with creating or reusing layout on an existing node.
BasicSnapLayout(UserInterface& ui, SnapLayouter& layouter, NodeHandle node) explicit
Construct with creating or reusing layout on an existing node.
BasicSnapLayout(const BasicAnchor<UserInterface>& anchor) explicit
Construct with creating or reusing layout on an existing node.
BasicSnapLayout(UserInterface& ui, NodeHandle node) explicit
Construct with creating or reusing layout on an existing node.
BasicSnapLayout(UserInterface& ui, SnapLayouter& layouter, LayoutHandle layout) explicit
Construct from an existing layout handle.
BasicSnapLayout(UserInterface& ui, SnapLayouter& layouter, LayouterDataHandle layout) explicit
BasicSnapLayout(UserInterface& ui, LayoutHandle layout) explicit
Construct from an existing layout handle.
BasicSnapLayout(UserInterface& ui, LayouterDataHandle layout) explicit
operator BasicAnchor<UserInterface>() const
Widget positioning anchor.

Public functions

auto ui() const -> UserInterface&
User interface instance.
auto child(const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, LayoutHandle layoutBefore = LayoutHandle::Null, SnapLayoutFlags layoutFlags = {}) -> BasicSnapLayout<UserInterface>
Create a child layout.
auto child(const Vector2& nodeSize, LayoutHandle layoutBefore, SnapLayoutFlags layoutFlags = {}) -> BasicSnapLayout<UserInterface>
auto child(const Vector2& nodeSize, NodeFlags nodeFlags, SnapLayoutFlags layoutFlags) -> BasicSnapLayout<UserInterface>
auto child(const Vector2& nodeSize, SnapLayoutFlags layoutFlags) -> BasicSnapLayout<UserInterface>
auto child(const Vector2& nodeSize, NodeFlags nodeFlags, LayouterDataHandle layoutBefore, SnapLayoutFlags layoutFlags = {}) -> BasicSnapLayout<UserInterface>
Create a child layout, ordered before given layout assuming the layout belongs to the same layouter.
auto child(const Vector2& nodeSize, LayouterDataHandle layoutBefore, SnapLayoutFlags layoutFlags = {}) -> BasicSnapLayout<UserInterface>
auto snapChild(Snaps snap, const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, SnapLayoutFlags layoutFlags = {}) -> BasicSnapLayout<UserInterface>
Create an explicitly snapped child layout.
auto snapChild(Snaps snap, const Vector2& nodeSize, SnapLayoutFlags layoutFlags) -> BasicSnapLayout<UserInterface>
auto snapSibling(Snaps snap, const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, SnapLayoutFlags layoutFlags = {}) -> BasicSnapLayout<UserInterface>
Create an explicitly snapped sibling layout.
auto snapSibling(Snaps snap, const Vector2& nodeSize, SnapLayoutFlags layoutFlags) -> BasicSnapLayout<UserInterface>

Function documentation

template<class UserInterface _1>
static BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::snapRoot(UserInterface& ui, SnapLayouter& layouter, Snaps snap, const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, SnapLayoutFlags layoutFlags = {})

Create an explicitly snapped root layout.

Like AbstractSnapLayout::snapRoot(AbstractUserInterface&, SnapLayouter&, Snaps, const Vector2&, NodeFlags, SnapLayoutFlags) but returning a concrete layout instance. Use snapRoot(UserInterface&, Snaps, const Vector2&, NodeFlags, SnapLayoutFlags) to use the default SnapLayouter instance available through UserInterface::snapLayouter().

template<class UserInterface _1>
static BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::snapRoot(UserInterface& ui, SnapLayouter& layouter, Snaps snap, const Vector2& nodeSize, SnapLayoutFlags layoutFlags)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class UserInterface _1>
static BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::snapRoot(UserInterface& ui, Snaps snap, const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, SnapLayoutFlags layoutFlags = {})

Create an explicitly snapped root layout using the default layouter in given user interface.

Like AbstractSnapLayout::snapRoot(AbstractUserInterface&, SnapLayouter&, Snaps, const Vector2&, NodeFlags, SnapLayoutFlags) but using the default SnapLayouter instance available through UserInterface::snapLayouter(), and returning a concrete layout instance. Expects that ui contains a SnapLayouter instance.

template<class UserInterface _1>
static BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::snapRoot(UserInterface& ui, Snaps snap, const Vector2& nodeSize, SnapLayoutFlags layoutFlags)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class UserInterface _1>
Magnum::Ui::BasicSnapLayout<_1>::BasicSnapLayout(SnapLayouter& layouter, const BasicAnchor<UserInterface>& anchor) explicit

Construct with creating or reusing layout on an existing node.

Like AbstractSnapLayout::AbstractSnapLayout(SnapLayouter&, const AbstractAnchor&) but accepting a concrete anchor instance.

template<class UserInterface _1>
Magnum::Ui::BasicSnapLayout<_1>::BasicSnapLayout(UserInterface& ui, SnapLayouter& layouter, NodeHandle node) explicit

Construct with creating or reusing layout on an existing node.

Like AbstractSnapLayout::AbstractSnapLayout(AbstractUserInterface&, SnapLayouter&, NodeHandle) but accepting a concrete user interface instance.

template<class UserInterface _1>
Magnum::Ui::BasicSnapLayout<_1>::BasicSnapLayout(const BasicAnchor<UserInterface>& anchor) explicit

Construct with creating or reusing layout on an existing node.

Like AbstractSnapLayout::AbstractSnapLayout(SnapLayouter&, const AbstractAnchor&) but using the default SnapLayouter instance available through UserInterface::snapLayouter() and accepting a concrete anchor instance. Expects that the user interface referenced in anchor contains a SnapLayouter instance.

template<class UserInterface _1>
Magnum::Ui::BasicSnapLayout<_1>::BasicSnapLayout(UserInterface& ui, NodeHandle node) explicit

Construct with creating or reusing layout on an existing node.

Like AbstractSnapLayout::AbstractSnapLayout(AbstractUserInterface&, SnapLayouter&, NodeHandle) but accepting a concrete user interface instance and using the default SnapLayouter available through UserInterface::snapLayouter(). Expects that the ui contains a SnapLayouter instance.

template<class UserInterface _1>
Magnum::Ui::BasicSnapLayout<_1>::BasicSnapLayout(UserInterface& ui, SnapLayouter& layouter, LayoutHandle layout) explicit

Construct from an existing layout handle.

Like AbstractSnapLayout::AbstractSnapLayout(AbstractUserInterface&, SnapLayouter&, LayoutHandle) but accepting a concrete user interface instance.

template<class UserInterface _1>
Magnum::Ui::BasicSnapLayout<_1>::BasicSnapLayout(UserInterface& ui, SnapLayouter& layouter, LayouterDataHandle layout) explicit

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class UserInterface _1>
Magnum::Ui::BasicSnapLayout<_1>::BasicSnapLayout(UserInterface& ui, LayoutHandle layout) explicit

Construct from an existing layout handle.

Like AbstractSnapLayout::AbstractSnapLayout(AbstractUserInterface&, SnapLayouter&, LayoutHandle) but accepting a concrete user interface instance and using the default SnapLayouter available through UserInterface::snapLayouter(). Expects that the ui contains a SnapLayouter instance.

template<class UserInterface _1>
Magnum::Ui::BasicSnapLayout<_1>::BasicSnapLayout(UserInterface& ui, LayouterDataHandle layout) explicit

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::child(const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, LayoutHandle layoutBefore = LayoutHandle::Null, SnapLayoutFlags layoutFlags = {})

Create a child layout.

Like AbstractSnapLayout::child(const Vector2&, NodeFlags, LayoutHandle, SnapLayoutFlags) but returning a concrete layout instance.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::child(const Vector2& nodeSize, LayoutHandle layoutBefore, SnapLayoutFlags layoutFlags = {})

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::child(const Vector2& nodeSize, NodeFlags nodeFlags, SnapLayoutFlags layoutFlags)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::child(const Vector2& nodeSize, SnapLayoutFlags layoutFlags)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::child(const Vector2& nodeSize, NodeFlags nodeFlags, LayouterDataHandle layoutBefore, SnapLayoutFlags layoutFlags = {})

Create a child layout, ordered before given layout assuming the layout belongs to the same layouter.

Like AbstractSnapLayout::child(const Vector2&, NodeFlags, LayouterDataHandle, SnapLayoutFlags) but returning a concrete layout instance.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::child(const Vector2& nodeSize, LayouterDataHandle layoutBefore, SnapLayoutFlags layoutFlags = {})

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::snapChild(Snaps snap, const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, SnapLayoutFlags layoutFlags = {})

Create an explicitly snapped child layout.

Like AbstractSnapLayout::snapChild(Snaps, const Vector2&, NodeFlags, SnapLayoutFlags) but returning a concrete layout instance.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::snapChild(Snaps snap, const Vector2& nodeSize, SnapLayoutFlags layoutFlags)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::snapSibling(Snaps snap, const Vector2& nodeSize = {}, NodeFlags nodeFlags = {}, SnapLayoutFlags layoutFlags = {})

Create an explicitly snapped sibling layout.

Like AbstractSnapLayout::snapSibling(Snaps, const Vector2&, NodeFlags, SnapLayoutFlags) but returning a concrete layout instance.

template<class UserInterface _1>
BasicSnapLayout<UserInterface> Magnum::Ui::BasicSnapLayout<_1>::snapSibling(Snaps snap, const Vector2& nodeSize, SnapLayoutFlags layoutFlags)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.