Wt: Wt::WBorderLayout Class Reference

Wt 4.10.4

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | List of all members
Wt::WBorderLayout Class Reference

A layout manager which divides the container region in five regions. More...

`#include <Wt/WBorderLayout.h>`

Inheritance diagram for Wt::WBorderLayout:
[legend]

## Public Types
typedef LayoutPosition | Position
| Typedef for enum Wt::LayoutPosition.
Public Types inherited from Wt::WLayoutItem
Public Types inherited from Wt::WObject
typedef void(WObject::*) | Method()
| Typedef for a WObject method without arguments.

## Public Member Functions
| WBorderLayout ()
| Creates a new border layout.
virtual | ~WBorderLayout () override
| Destructor.
void | setSpacing (int size)
| Sets spacing between each item.
int | spacing () const
| Returns the spacing between each item.
virtual void | addItem (std::unique_ptr< WLayoutItem > item) override
| Adds a layout item.
virtual std::unique_ptr< WLayoutItem > | removeItem (WLayoutItem *item) override
| Removes a layout item (widget or nested layout).
virtual WLayoutItem * | itemAt (int index) const override
| Returns the layout item at a specific index.
virtual int | count () const override
| Returns the number of items in this layout.
void | addWidget (std::unique_ptr< WWidget > widget, LayoutPosition position)
| Adds a widget to the given position.
void | add (std::unique_ptr< WLayoutItem > item, LayoutPosition position)
| Adds a layout item to the given position.
WWidget * | widgetAt (LayoutPosition position) const
| Returns the widget at a position.
WLayoutItem * | itemAt (LayoutPosition position) const
| Returns the item at a position.
LayoutPosition | position (WLayoutItem *item) const
| Returns the position at which the given layout item is set.
Public Member Functions inherited from Wt::WLayout
virtual | ~WLayout ()
| Destructor.
void | setPreferredImplementation (LayoutImplementation implementation)
| Set the preferred layout implementation.
void | addWidget (std::unique_ptr< WWidget > widget)
| Adds the given widget to the layout.
std::unique_ptr< WWidget > | removeWidget (WWidget *widget)
| Removes the given widget from the layout.
virtual int | indexOf (WLayoutItem *item) const
| Returns the index of a given item.
virtual WWidgetItem * | findWidgetItem (WWidget *widget) override
| Finds the widget item associated with the given widget.
virtual WWidget * | widget () override
| Returns the widget that is held by this WLayoutItem.
virtual WLayout * | layout () override
| Returns the layout that implements this WLayoutItem.
virtual WLayout * | parentLayout () const override
| Returns the layout in which this item is contained.
void | setContentsMargins (int left, int top, int right, int bottom)
| Set contents margins (in pixels).
void | getContentsMargins (int *left, int *top, int *right, int *bottom) const
| Returns the contents margins.
Public Member Functions inherited from Wt::WLayoutItem
virtual | ~WLayoutItem ()
| Destructor.
Public Member Functions inherited from Wt::WObject
void | addChild (std::unique_ptr< WObject > child)
| Add a child WObject whose lifetime is determined by this WObject.
template<typename Child >
Child * | addChild (std::unique_ptr< Child > child)
| Add a child WObject, returning a raw pointer.
std::unique_ptr< WObject > | removeChild (WObject *child)
| Remove a child WObject, so its lifetime is no longer determined by this WObject.
template<typename Child >
std::unique_ptr< Child > | removeChild (Child *child)
| Remove a child WObject, so its lifetime is no longer determined by this WObject.
virtual const std::string | id () const
| Returns the (unique) identifier for this object.
virtual void | setObjectName (const std::string &name)
| Sets an object name.
virtual std::string | objectName () const
| Returns the object name.
void | resetLearnedSlots ()
| Resets learned stateless slot implementations.
template<class T >
void | resetLearnedSlot (void(T::*method)())
| Resets a learned stateless slot implementation.
template<class T >
WStatelessSlot * | implementStateless (void(T::*method)())
| Declares a slot to be stateless and learn client-side behaviour on first invocation.
template<class T >
WStatelessSlot * | implementStateless (void(T::*method)(), void(T::*undoMethod)())
| Declares a slot to be stateless and learn client-side behaviour in advance.
void | isNotStateless ()
| Marks the current function as not stateless.
template<class T >
WStatelessSlot * | implementJavaScript (void(T::*method)(), const std::string &jsCode)
| Provides a JavaScript implementation for a method.
Public Member Functions inherited from Wt::Core::observable
| observable () noexcept
| Default constructor.
virtual | ~observable ()
| Destructor.
template<typename... Args, typename C >
auto | bindSafe (void(C::*method)(Args...)) noexcept
| Protects a method call against object destruction.
template<typename... Args, typename C >
auto | bindSafe (void(C::*method)(Args...) const) const noexcept
| Protects a const method call against object destruction.
template<typename Function >
auto | bindSafe (const Function &function) noexcept
| Protects a function against object destruction.

## Private Member Functions
virtual void | setParentWidget (WWidget *parent) override
| Internal method.

## Additional Inherited Members
Static Public Member Functions inherited from Wt::WLayout
static void | setDefaultImplementation (LayoutImplementation implementation)
| Sets the preferred layout implementation globally.
Static Public Member Functions inherited from Wt::WObject
Protected Member Functions inherited from Wt::WLayout
| WLayout ()
| Create a layout.
void | update (WLayoutItem *item=nullptr)
| Update the layout.
Protected Member Functions inherited from Wt::WObject
virtual WStatelessSlot * | getStateless (Method method)
| On-demand stateless slot implementation.

## Detailed Description

A layout manager which divides the container region in five regions.

The five regions are composed of:

      ------------------------------------
      |              North               |
      ------------------------------------
      |      |                    |      |
      | West |       Center       | East |
      |      |                    |      |
      ------------------------------------
      |              South               |
      ------------------------------------

Each region may hold no more than one widget, and for all but the Center region, the widget is optional.

The North, West, East, and South widgets will take their preferred sizes, while the Center widget takes all available remaining space.

Usage example:

auto w = addWidget(std::make_unique<Wt::WContainerWidget>());
auto layout = std::make_unique<Wt::WBorderLayout>();
layout->addWidget(std::make_unique<Wt::WText>("West-side is best"), Wt::LayoutPosition::West);
layout->addWidget(std::make_unique<Wt::WText>("East-side is best"), Wt::LayoutPosition::East);
layout->addWidget(std::move(contents), Wt::LayoutPosition::Center);
w->setLayout(std::move(layout));
Wt::WBorderLayout::addWidget
void addWidget(std::unique_ptr< WWidget > widget, LayoutPosition position)
Adds a widget to the given position.
Wt::WLayout::addWidget
void addWidget(std::unique_ptr< WWidget > widget)
Adds the given widget to the layout.
Wt::WLayout::layout
virtual WLayout * layout() override
Returns the layout that implements this WLayoutItem.
Definition WLayout.h:162
Wt::LayoutPosition::Center
@ Center
Center.
Wt::LayoutPosition::East
@ East
East (right)
Wt::LayoutPosition::West
@ West
West (left)

## Member Function Documentation

## ◆ add()

void Wt::WBorderLayout::add | ( | std::unique_ptr< WLayoutItem > | item,
|  | LayoutPosition | position )

Adds a layout item to the given position.

Only one widget per position is supported.

## ◆ addItem()

virtual void Wt::WBorderLayout::addItem | ( | std::unique_ptr< WLayoutItem > | item | ) |
| overridevirtual

Adds a layout item.

The item may be a widget or nested layout.

How the item is layed out with respect to siblings is implementation specific to the layout manager. In some cases, a layout manager will overload this method with extra arguments that specify layout options.

See also
  removeItem(WLayoutItem *), addWidget(WWidget *)

Implements Wt::WLayout.

## ◆ addWidget()

void Wt::WBorderLayout::addWidget | ( | std::unique_ptr< WWidget > | widget,
|  | LayoutPosition | position )

Adds a widget to the given position.

Only one widget per position is supported.

See also
  add(WLayoutItem *, Position)

## ◆ count()

virtual int Wt::WBorderLayout::count | ( |  | ) | const
| overridevirtual

Returns the number of items in this layout.

This may be a theoretical number, which is greater than the actual number of items. It can be used to iterate over the items in the layout, in conjunction with itemAt().

Implements Wt::WLayout.

## ◆ itemAt() [1/2]

virtual WLayoutItem * Wt::WBorderLayout::itemAt | ( | int | index | ) | const
| overridevirtual

Returns the layout item at a specific index.

If there is no item at the `index`, `0` is returned.

See also
  indexOf(WLayoutItem *) const, count()

Implements Wt::WLayout.

## ◆ itemAt() [2/2]

WLayoutItem * Wt::WBorderLayout::itemAt | ( | LayoutPosition | position | ) | const

Returns the item at a position.

Returns `0` if no item was set for that position.

## ◆ removeItem()

virtual std::unique_ptr< WLayoutItem > Wt::WBorderLayout::removeItem | ( | WLayoutItem * | item | ) |
| overridevirtual

Removes a layout item (widget or nested layout).

See also
  addItem(WLayoutItem *), removeWidget(WWidget *)

Implements Wt::WLayout.

## ◆ setSpacing()

void Wt::WBorderLayout::setSpacing | ( | int | size | ) |

Sets spacing between each item.

The default spacing is 6 pixels.

## ◆ spacing()

int Wt::WBorderLayout::spacing | ( |  | ) | const

Returns the spacing between each item.

See also
  setSpacing()

## ◆ widgetAt()

WWidget * Wt::WBorderLayout::widgetAt | ( | LayoutPosition | position | ) | const

Returns the widget at a position.

Returns `0` if no widget was set for that position.