Wt
4.10.4
|
An abstract base class for layout managers. More...
#include <Wt/WLayout.h>
Public Member Functions | |
virtual | ~WLayout () |
Destructor. More... | |
void | setPreferredImplementation (LayoutImplementation implementation) |
Set the preferred layout implementation. More... | |
virtual void | addItem (std::unique_ptr< WLayoutItem > item)=0 |
Adds a layout item. More... | |
void | addWidget (std::unique_ptr< WWidget > widget) |
Adds the given widget to the layout. More... | |
virtual std::unique_ptr< WLayoutItem > | removeItem (WLayoutItem *item)=0 |
Removes a layout item (widget or nested layout). More... | |
std::unique_ptr< WWidget > | removeWidget (WWidget *widget) |
Removes the given widget from the layout. More... | |
virtual int | count () const =0 |
Returns the number of items in this layout. More... | |
virtual WLayoutItem * | itemAt (int index) const =0 |
Returns the layout item at a specific index. More... | |
virtual int | indexOf (WLayoutItem *item) const |
Returns the index of a given item. More... | |
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. More... | |
virtual WLayout * | layout () override |
Returns the layout that implements this WLayoutItem. More... | |
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). More... | |
void | getContentsMargins (int *left, int *top, int *right, int *bottom) const |
Returns the contents margins. More... | |
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. More... | |
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. More... | |
virtual const std::string | id () const |
Returns the (unique) identifier for this object. More... | |
virtual void | setObjectName (const std::string &name) |
Sets an object name. More... | |
virtual std::string | objectName () const |
Returns the object name. More... | |
void | resetLearnedSlots () |
Resets learned stateless slot implementations. More... | |
template<class T > | |
void | resetLearnedSlot (void(T::*method)()) |
Resets a learned stateless slot implementation. More... | |
template<class T > | |
WStatelessSlot * | implementStateless (void(T::*method)()) |
Declares a slot to be stateless and learn client-side behaviour on first invocation. More... | |
template<class T > | |
WStatelessSlot * | implementStateless (void(T::*method)(), void(T::*undoMethod)()) |
Declares a slot to be stateless and learn client-side behaviour in advance. More... | |
void | isNotStateless () |
Marks the current function as not stateless. More... | |
template<class T > | |
WStatelessSlot * | implementJavaScript (void(T::*method)(), const std::string &jsCode) |
Provides a JavaScript implementation for a method. More... | |
Public Member Functions inherited from Wt::Core::observable | |
observable () noexcept | |
Default constructor. | |
virtual | ~observable () |
Destructor. More... | |
template<typename... Args, typename C > | |
auto | bindSafe (void(C::*method)(Args...)) noexcept |
Protects a method call against object destruction. More... | |
template<typename... Args, typename C > | |
auto | bindSafe (void(C::*method)(Args...) const) const noexcept |
Protects a const method call against object destruction. More... | |
template<typename Function > | |
auto | bindSafe (const Function &function) noexcept |
Protects a function against object destruction. More... | |
Static Public Member Functions | |
static void | setDefaultImplementation (LayoutImplementation implementation) |
Sets the preferred layout implementation globally. More... | |
Protected Member Functions | |
WLayout () | |
Create a layout. | |
void | update (WLayoutItem *item=nullptr) |
Update the layout. More... | |
virtual void | setParentWidget (WWidget *parent) override |
Internal method. | |
Protected Member Functions inherited from Wt::WObject | |
virtual WStatelessSlot * | getStateless (Method method) |
On-demand stateless slot implementation. More... | |
Private Member Functions | |
virtual void | setParentLayout (WLayout *parentLayout) override |
Internal method. | |
Additional Inherited Members | |
Public Types inherited from Wt::WObject | |
typedef void(WObject::* | Method) () |
Typedef for a WObject method without arguments. | |
An abstract base class for layout managers.
This class is the abstract base class for any layout manager. A layout manager is associated with a container widget, and manages the layout of children inside the whole space available to the container widget.
The implementation of the layout manager depends on the container widget to which it is set, and is therefore deferred to WLayoutImpl.
|
virtual |
Destructor.
This will delete the layout (and nested layouts), but not the contained widgets.
|
pure virtual |
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.
Implemented in Wt::WGridLayout, Wt::WFitLayout, Wt::WBoxLayout, and Wt::WBorderLayout.
void Wt::WLayout::addWidget | ( | std::unique_ptr< WWidget > | widget | ) |
Adds the given widget to the layout.
This method wraps the widget in a WWidgetItem and calls addItem(WLayoutItem *).
How the widget 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.
|
pure virtual |
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().
Implemented in Wt::WGridLayout, Wt::WFitLayout, Wt::WBoxLayout, and Wt::WBorderLayout.
void Wt::WLayout::getContentsMargins | ( | int * | left, |
int * | top, | ||
int * | right, | ||
int * | bottom | ||
) | const |
Returns the contents margins.
|
virtual |
Returns the index of a given item.
The default implementation loops over all items, and returns the index for which itemAt(index) equals item
.
Reimplemented in Wt::WFitLayout.
|
pure virtual |
Returns the layout item at a specific index.
If there is no item at the index
, 0
is returned.
Implemented in Wt::WGridLayout, Wt::WFitLayout, Wt::WBoxLayout, and Wt::WBorderLayout.
|
overridevirtual |
Returns the layout that implements this WLayoutItem.
This implements a type-safe upcasting mechanism to a WLayout.
Implements Wt::WLayoutItem.
|
pure virtual |
Removes a layout item (widget or nested layout).
Implemented in Wt::WGridLayout, Wt::WFitLayout, Wt::WBoxLayout, and Wt::WBorderLayout.
Removes the given widget from the layout.
This method finds the corresponding WWidgetItem and calls removeItem(WLayoutItem *), and returns the widget.
void Wt::WLayout::setContentsMargins | ( | int | left, |
int | top, | ||
int | right, | ||
int | bottom | ||
) |
Set contents margins (in pixels).
The default contents margins are 9 pixels in all directions.
|
static |
Sets the preferred layout implementation globally.
The default implementation for box layouts and fit layouts is Flex (if supported by the browser). Otherwise a fallback to JavaScript is used.
Because there are cases where Flex does not work properly, this method can be used to set the global preferred implementation to instead. Since this is a system-wide setting, and not a per-session setting, you should call this function before any session is created, e.g. in main() before calling WRun(). setPreferredImplementation()
void Wt::WLayout::setPreferredImplementation | ( | LayoutImplementation | implementation | ) |
Set the preferred layout implementation.
The default implementation for box layouts and fit layouts is Flex (if supported by the browser). Otherwise a fallback to JavaScript is used.
|
protected |
Update the layout.
Must be called whenever some properties of the layout have changed.
|
overridevirtual |
Returns the widget that is held by this WLayoutItem.
This implements a type-safe upcasting mechanism to a WWidgetItem.
Implements Wt::WLayoutItem.