Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members | Related Pages

QwtDynGridLayout Class Reference

The QwtDynGridLayout class lays out widgets in a grid, adjusting the number of columns and rows to the current size. More...

#include <qwt_dyngrid_layout.h>

List of all members.

Public Member Functions

 QwtDynGridLayout (QWidget *, int margin=0, int space=-1, const char *name=0)
 QwtDynGridLayout (QLayout *, int space=-1, const char *name=0)
 QwtDynGridLayout (int space=-1, const char *name=0)
virtual ~QwtDynGridLayout ()
void setMaxCols (uint maxCols)
uint maxCols () const
uint numRows () const
uint numCols () const
virtual void addItem (QLayoutItem *)
virtual QLayoutIterator iterator ()
virtual int maxItemWidth () const
virtual void setGeometry (const QRect &rect)
virtual bool hasHeightForWidth () const
virtual int heightForWidth (int) const
virtual QSize sizeHint () const
void setExpanding (QSizePolicy::ExpandData)
virtual QSizePolicy::ExpandData expanding () const
virtual bool isEmpty () const
virtual uint columnsForWidth (int width) const
QValueList< QRect > layoutItems (const QRect &, uint numCols) const

Protected Member Functions

void layoutGrid (uint numCols, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const
void stretchGrid (const QRect &rect, uint numCols, QwtArray< int > &rowHeight, QwtArray< int > &colWidth) const

Private Member Functions

void init ()

Private Attributes

uint d_maxCols
uint d_numRows
uint d_numCols
QSizePolicy::ExpandData d_expanding
QList< QLayoutItem > d_itemList


Detailed Description

The QwtDynGridLayout class lays out widgets in a grid, adjusting the number of columns and rows to the current size.

QwtDynGridLayout takes the space it gets, divides it up into rows and columns, and puts each of the widgets it manages into the correct cell(s). It lays out as many number of columns as possible (limited by maxCols()).

Definition at line 35 of file qwt_dyngrid_layout.h.


Constructor & Destructor Documentation

QwtDynGridLayout::QwtDynGridLayout QWidget *  parent,
int  margin = 0,
int  space = -1,
const char *  name = 0
 

Parameters:
parent Parent widget
margin Margin
space Spacing
name Widget name

Definition at line 61 of file qwt_dyngrid_layout.cpp.

References init().

QwtDynGridLayout::QwtDynGridLayout QLayout *  parent,
int  space = -1,
const char *  name = 0
 

Parameters:
parent Parent widget
space Spacing
name Widget name

Definition at line 74 of file qwt_dyngrid_layout.cpp.

References init().

QwtDynGridLayout::QwtDynGridLayout int  space = -1,
const char *  name = 0
 

Parameters:
space Spacing
name Widget name

Definition at line 86 of file qwt_dyngrid_layout.cpp.

References init().

QwtDynGridLayout::~QwtDynGridLayout  )  [virtual]
 

Destructor.

Definition at line 105 of file qwt_dyngrid_layout.cpp.


Member Function Documentation

void QwtDynGridLayout::addItem QLayoutItem *   )  [virtual]
 

Adds item to the next free position.

Definition at line 134 of file qwt_dyngrid_layout.cpp.

References d_itemList.

uint QwtDynGridLayout::columnsForWidth int  width  )  const [virtual]
 

Calculate the number of columns for a given width. It tries to use as many columns as possible (limited by maxCols())

Parameters:
width Available width for all columns
See also:
QwtDynGridLayout::maxCols(), QwtDynGridLayout::setMaxCols()

Definition at line 195 of file qwt_dyngrid_layout.cpp.

References d_itemList, d_maxCols, and numCols().

Referenced by heightForWidth(), QwtPlot::printLegend(), and setGeometry().

QSizePolicy::ExpandData QwtDynGridLayout::expanding  )  const [virtual]
 

Returns whether this layout can make use of more space than sizeHint(). A value of Vertical or Horizontal means that it wants to grow in only one dimension, while BothDirections means that it wants to grow in both dimensions.

See also:
QwtDynGridLayout::setExpanding()

Definition at line 375 of file qwt_dyngrid_layout.cpp.

References d_expanding.

Referenced by layoutItems(), and stretchGrid().

bool QwtDynGridLayout::hasHeightForWidth  )  const [virtual]
 

Returns:
TRUE: QwtDynGridLayout implements heightForWidth.
See also:
QwtDynGridLayout::heightForWidth()

Definition at line 385 of file qwt_dyngrid_layout.cpp.

int QwtDynGridLayout::heightForWidth int  width  )  const [virtual]
 

Returns:
The preferred height for this layout, given the width w.
See also:
QwtDynGridLayout::hasHeightForWidth()

Definition at line 395 of file qwt_dyngrid_layout.cpp.

References columnsForWidth(), d_itemList, layoutGrid(), numCols(), and numRows().

Referenced by QwtLegend::layoutContents().

void QwtDynGridLayout::init  )  [private]
 

Initialize the layout with default values.

Definition at line 95 of file qwt_dyngrid_layout.cpp.

References d_expanding, d_maxCols, d_numCols, and d_numRows.

Referenced by QwtDynGridLayout().

bool QwtDynGridLayout::isEmpty  )  const [virtual]
 

Returns:
TRUE if this layout is empty.

Definition at line 141 of file qwt_dyngrid_layout.cpp.

References d_itemList.

QLayoutIterator QwtDynGridLayout::iterator  )  [virtual]
 

Returns:
An iterator over the children of this layout.

Definition at line 148 of file qwt_dyngrid_layout.cpp.

References d_itemList.

Referenced by QwtPlot::printLegend().

void QwtDynGridLayout::layoutGrid uint  numCols,
QwtArray< int > &  rowHeight,
QwtArray< int > &  colWidth
const [protected]
 

Calculate the dimensions for the columns and rows for a grid of numCols columns.

Parameters:
numCols Number of columns.
rowHeight Array where to fill in the calculated row heights.
colWidth Array where to fill in the calculated column widths.

Definition at line 330 of file qwt_dyngrid_layout.cpp.

References d_itemList.

Referenced by heightForWidth(), layoutItems(), and sizeHint().

QValueList< QRect > QwtDynGridLayout::layoutItems const QRect &  rect,
uint  numCols
const
 

Calculate the geometries of the layout items for a layout with numCols columns and a given rect.

Parameters:
rect Rect where to place the items
numCols Number of columns
Returns:
item geometries

Definition at line 261 of file qwt_dyngrid_layout.cpp.

References d_itemList, d_maxCols, expanding(), layoutGrid(), maxCols(), numRows(), and stretchGrid().

Referenced by QwtPlot::printLegend(), and setGeometry().

uint QwtDynGridLayout::maxCols  )  const
 

Return the upper limit for the number of columns. 0 means unlimited, what is the default.

See also:
QwtDynGridLayout::setMaxCols()

Definition at line 127 of file qwt_dyngrid_layout.cpp.

References d_maxCols.

Referenced by layoutItems().

int QwtDynGridLayout::maxItemWidth  )  const [virtual]
 

Returns:
the maximum width of all layout items

Definition at line 236 of file qwt_dyngrid_layout.cpp.

References d_itemList.

Referenced by QwtLegend::layoutContents().

uint QwtDynGridLayout::numCols  )  const
 

Returns:
Number of columns of the current layout.
See also:
QwtDynGridLayout::numRows
Warning:
The number of columns might change whenever the geometry changes

Definition at line 517 of file qwt_dyngrid_layout.cpp.

References d_numCols.

Referenced by columnsForWidth(), heightForWidth(), and sizeHint().

uint QwtDynGridLayout::numRows  )  const
 

Returns:
Number of rows of the current layout.
See also:
QwtDynGridLayout::numCols
Warning:
The number of rows might change whenever the geometry changes

Definition at line 507 of file qwt_dyngrid_layout.cpp.

References d_numRows.

Referenced by heightForWidth(), layoutItems(), sizeHint(), and stretchGrid().

void QwtDynGridLayout::setExpanding QSizePolicy::ExpandData  expanding  ) 
 

Set whether this layout can make use of more space than sizeHint(). A value of Vertical or Horizontal means that it wants to grow in only one dimension, while BothDirections means that it wants to grow in both dimensions. The default value is NoDirection.

See also:
QwtDynGridLayout::expanding()

Definition at line 362 of file qwt_dyngrid_layout.cpp.

References d_expanding.

void QwtDynGridLayout::setGeometry const QRect &  rect  )  [virtual]
 

Reorganizes columns and rows and resizes managed widgets within the rectangle rect.

Definition at line 158 of file qwt_dyngrid_layout.cpp.

References columnsForWidth(), d_itemList, d_numCols, d_numRows, and layoutItems().

void QwtDynGridLayout::setMaxCols uint  maxCols  ) 
 

Limit the number of columns.

Parameters:
maxCols upper limit, 0 means unlimited
See also:
QwtDynGridLayout::maxCols()

Definition at line 116 of file qwt_dyngrid_layout.cpp.

References d_maxCols.

Referenced by QwtPlot::setLegendPos().

QSize QwtDynGridLayout::sizeHint  )  const [virtual]
 

Return the size hint. If maxCols() > 0 it is the size for a grid with maxCols() columns, otherwise it is the size for a grid with only one row.

See also:
QwtDynGridLayout::maxCols(), QwtDynGridLayout::setMaxCols()

Definition at line 476 of file qwt_dyngrid_layout.cpp.

References d_itemList, d_maxCols, layoutGrid(), numCols(), and numRows().

void QwtDynGridLayout::stretchGrid const QRect &  rect,
uint  numCols,
QwtArray< int > &  rowHeight,
QwtArray< int > &  colWidth
const [protected]
 

Stretch columns in case of expanding() & QSizePolicy::Horizontal and rows in case of expanding() & QSizePolicy::Vertical to fill the entire rect. Rows and columns are stretched with the same factor.

See also:
QwtDynGridLayout::setExpanding(), QwtDynGridLayout::expanding()

Definition at line 424 of file qwt_dyngrid_layout.cpp.

References d_itemList, expanding(), and numRows().

Referenced by layoutItems().


Member Data Documentation

QSizePolicy::ExpandData QwtDynGridLayout::d_expanding [private]
 

Definition at line 87 of file qwt_dyngrid_layout.h.

Referenced by expanding(), init(), and setExpanding().

QList<QLayoutItem> QwtDynGridLayout::d_itemList [private]
 

Definition at line 88 of file qwt_dyngrid_layout.h.

Referenced by addItem(), columnsForWidth(), heightForWidth(), isEmpty(), iterator(), layoutGrid(), layoutItems(), maxItemWidth(), setGeometry(), sizeHint(), and stretchGrid().

uint QwtDynGridLayout::d_maxCols [private]
 

Definition at line 83 of file qwt_dyngrid_layout.h.

Referenced by columnsForWidth(), init(), layoutItems(), maxCols(), setMaxCols(), and sizeHint().

uint QwtDynGridLayout::d_numCols [private]
 

Definition at line 85 of file qwt_dyngrid_layout.h.

Referenced by init(), numCols(), and setGeometry().

uint QwtDynGridLayout::d_numRows [private]
 

Definition at line 84 of file qwt_dyngrid_layout.h.

Referenced by init(), numRows(), and setGeometry().


The documentation for this class was generated from the following files:
Generated on Fri Nov 7 14:11:48 2003 for Qwt Developer's Guide by doxygen 1.3.2