00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_DYNGRID_LAYOUT_H
00011 #define QWT_DYNGRID_LAYOUT_H
00012
00013 #include <qlayout.h>
00014 #include <qsize.h>
00015 #include "qwt_array.h"
00016 #include <qvaluelist.h>
00017 #include "qwt_global.h"
00018
00019 class QwtDynGridLayoutPrivate;
00020
00030 class QWT_EXPORT QwtDynGridLayout : public QLayout
00031 {
00032 Q_OBJECT
00033 public:
00034 QwtDynGridLayout(QWidget *, int margin=0,
00035 int space=-1, const char *name = 0);
00036 QwtDynGridLayout(QLayout *, int space=-1, const char * name = 0 );
00037 QwtDynGridLayout(int space=-1, const char * name=0 );
00038
00039 virtual ~QwtDynGridLayout();
00040
00041 void setMaxCols(uint maxCols);
00042 uint maxCols() const;
00043
00044 uint numRows () const;
00045 uint numCols () const;
00046
00047 virtual void addItem(QLayoutItem *);
00048 virtual QLayoutIterator iterator();
00049
00050 virtual int maxItemWidth() const;
00051
00052 virtual void setGeometry(const QRect &rect);
00053
00054 virtual bool hasHeightForWidth() const;
00055 virtual int heightForWidth(int) const;
00056
00057 virtual QSize sizeHint() const;
00058
00059 void setExpanding(QSizePolicy::ExpandData);
00060 virtual QSizePolicy::ExpandData expanding() const;
00061
00062 virtual bool isEmpty() const;
00063 uint itemCount() const;
00064
00065 virtual uint columnsForWidth(int width) const;
00066
00067 QValueList<QRect> layoutItems(const QRect &, uint numCols) const;
00068
00069 protected:
00070
00071 void layoutGrid(uint numCols,
00072 QwtArray<int>& rowHeight, QwtArray<int>& colWidth) const;
00073 void stretchGrid(const QRect &rect, uint numCols,
00074 QwtArray<int>& rowHeight, QwtArray<int>& colWidth) const;
00075
00076 private:
00077 void init();
00078
00079 uint d_maxCols;
00080 uint d_numRows;
00081 uint d_numCols;
00082
00083 QSizePolicy::ExpandData d_expanding;
00084 QwtDynGridLayoutPrivate *d_layoutData;
00085 };
00086
00087 #endif
00088
00089
00090
00091
00092
00093