Newer
Older
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
* Qwt Widget Library
* Copyright (C) 1997 Josef Wilgen
* Copyright (C) 2002 Uwe Rathmann
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Qwt License, Version 1.0
*****************************************************************************/
#ifndef QWT_DYNGRID_LAYOUT_H
#define QWT_DYNGRID_LAYOUT_H
#include <qlayout.h>
#include <qsize.h>
#include <qlist.h>
/*!
\brief 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 maxColumns()).
*/
class QWT_EXPORT QwtDynGridLayout : public QLayout
{
Q_OBJECT
public:
explicit QwtDynGridLayout( QWidget *, int margin = 0, int space = -1 );
explicit QwtDynGridLayout( int space = -1 );
virtual ~QwtDynGridLayout();
virtual void invalidate();
void setMaxColumns( uint maxCols );
uint maxColumns() const;
virtual QLayoutItem *itemAt( int index ) const;
virtual QLayoutItem *takeAt( int index );
virtual int count() const;
QList<QRect> layoutItems( const QRect &, uint numCols ) const;
virtual QSize sizeHint() const;
virtual bool isEmpty() const;
uint itemCount() const;
void layoutGrid( uint numCols,
QVector<int>& rowHeight, QVector<int>& colWidth ) const;
void stretchGrid( const QRect &rect, uint numCols,
QVector<int>& rowHeight, QVector<int>& colWidth ) const;