Public Member Functions | Protected Member Functions | Private Member Functions

Wt::WLayout Class Reference

An abstract base class for layout managers. More...

#include <Wt/WLayout>

Inheritance diagram for Wt::WLayout:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~WLayout ()
 Destructor.
virtual void addItem (WLayoutItem *item)=0
 Adds a layout item.
void addWidget (WWidget *widget)
 Adds the given widget to the layout.
virtual void removeItem (WLayoutItem *item)=0
 Removes a layout item (widget or nested layout).
bool removeWidget (WWidget *widget)
 Removes the given widget from the layout.
virtual int count () const =0
 Returns the number of items in this layout.
virtual WLayoutItemitemAt (int index) const =0
 Returns the layout item at a specific index.
virtual int indexOf (WLayoutItem *item) const
 Returns the index of a given item.
virtual WWidgetItemfindWidgetItem (WWidget *widget)
 Finds the widget item associated with the given widget.
void setLayoutHint (const std::string &name, const std::string &value)
 Provides a hint to the layout implementation.
virtual WWidgetwidget ()
 Returns the widget that is held by this WLayoutItem.
virtual WLayoutlayout ()
 Returns the layout that implements this WLayoutItem.
virtual WLayoutparentLayout () const
 Returns the layout in which this item is contained.
WLayoutItemImplimpl () const
 Returns the implementation for this layout item.
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.
virtual void clear ()
 Removes and deletes all child widgets and nested layouts.

Protected Member Functions

 WLayout ()
 Create a layout.
void update (WLayoutItem *item=0)
 Update the layout.
void updateAddItem (WLayoutItem *item)
 Update the layout, adding the given layout item.
void updateRemoveItem (WLayoutItem *item)
 Update the layout, remove the given layout item.
void setLayoutInParent (WWidget *parent)
 Set the layout in the parent.

Private Member Functions

virtual void setParentWidget (WWidget *parent)
 Internal method.
virtual void setParentLayout (WLayout *parentLayout)
 Internal method.

Detailed Description

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.

Layout managers may be used with WContainerWidget and Ext::Container container widgets. A suitable implementation for all layout classes is not yet available for both containers, and thus you need to refer to the documentation of a layout manager to see if it is applicable to your situation.

The implementation of the layout manager depends on the container widget to which it is set, and is therefore deferred to WLayoutImpl.

A layout never assumes ownership of contained items, instead these are owned by the parent widget to which the layout is applied.

Note:
When applying a layout manager to a WContainerWidget, you may not define any padding for the container widget. Instead, use setContentsMargins().

Constructor & Destructor Documentation

Wt::WLayout::~WLayout (  ) [virtual]

Destructor.

This will delete the layout (and nested layouts), but not the contained widgets.


Member Function Documentation

virtual void Wt::WLayout::addItem ( WLayoutItem item ) [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.

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

Implemented in Wt::WBorderLayout, Wt::WBoxLayout, Wt::WDefaultLayout, Wt::WFitLayout, and Wt::WGridLayout.

void Wt::WLayout::addWidget ( 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.

See also:
removeWidget(WWidget *), addItem(WLayoutItem *)
void Wt::WLayout::clear (  ) [virtual]

Removes and deletes all child widgets and nested layouts.

This is similar to WContainerWidget::clear(), with the exception that the layout itself is not deleted.

virtual int Wt::WLayout::count (  ) const [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::WBorderLayout, Wt::WBoxLayout, Wt::WDefaultLayout, Wt::WFitLayout, and Wt::WGridLayout.

void Wt::WLayout::getContentsMargins ( int *  left,
int *  top,
int *  right,
int *  bottom 
) const

Returns the contents margins.

See also:
setContentsMargins()
WLayoutItemImpl* Wt::WLayout::impl (  ) const [virtual]

Returns the implementation for this layout item.

The implementation of a layout item depends on the kind of container for which the layout does layout management.

Implements Wt::WLayoutItem.

int Wt::WLayout::indexOf ( WLayoutItem item ) const [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.

See also:
itemAt(int) const

Reimplemented in Wt::WDefaultLayout, and Wt::WFitLayout.

virtual WLayoutItem* Wt::WLayout::itemAt ( int  index ) const [pure virtual]

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()

Implemented in Wt::WBorderLayout, Wt::WBoxLayout, Wt::WDefaultLayout, Wt::WFitLayout, and Wt::WGridLayout.

virtual WLayout* Wt::WLayout::layout (  ) [virtual]

Returns the layout that implements this WLayoutItem.

This implements a type-safe upcasting mechanism to a WLayout.

Implements Wt::WLayoutItem.

virtual void Wt::WLayout::removeItem ( WLayoutItem item ) [pure virtual]

Removes a layout item (widget or nested layout).

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

Implemented in Wt::WBorderLayout, Wt::WBoxLayout, Wt::WDefaultLayout, Wt::WFitLayout, and Wt::WGridLayout.

bool Wt::WLayout::removeWidget ( WWidget widget )

Removes the given widget from the layout.

This method finds the corresponding WWidgetItem and calls removeItem(WLayoutItem *). The widget itself is not destroyed.

Returns true if succesful.

See also:
addWidget(WWidget *), removeItem(WLayoutItem *)
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.

Note:
Only used when the layout manager is applied to a WContainerWidget.
See also:
setContentsMargins()
void Wt::WLayout::setLayoutHint ( const std::string &  name,
const std::string &  value 
)

Provides a hint to the layout implementation.

In some cases, a layout implementation may require some hints for rendering its contents. Possible hints are indicated in the reference documentation for each layout manager.

void Wt::WLayout::setLayoutInParent ( WWidget parent ) [protected]

Set the layout in the parent.

Must be called from the constructor after the layout has been fully created (since it will call virtual methods count() and itemAt()).

void Wt::WLayout::update ( WLayoutItem item = 0 ) [protected]

Update the layout.

Must be called whenever some properties of the layout have changed.

void Wt::WLayout::updateAddItem ( WLayoutItem item ) [protected]

Update the layout, adding the given layout item.

Must be called from the implementation of addItem(WLayoutItem *)

void Wt::WLayout::updateRemoveItem ( WLayoutItem item ) [protected]

Update the layout, remove the given layout item.

Must be called from the implementation of removeItem(WLayoutItem *)

virtual WWidget* Wt::WLayout::widget (  ) [virtual]

Returns the widget that is held by this WLayoutItem.

This implements a type-safe upcasting mechanism to a WWidgetItem.

Implements Wt::WLayoutItem.

 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator

Generated on Fri Jul 8 2011 for the C++ Web Toolkit (Wt) by doxygen 1.7.2