Eneboo - Documentación para desarrolladores
|
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** 00002 * Qwt Widget Library 00003 * Copyright (C) 1997 Josef Wilgen 00004 * Copyright (C) 2002 Uwe Rathmann 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the Qwt License, Version 1.0 00008 *****************************************************************************/ 00009 00010 #ifndef QWT_DYNGRID_LAYOUT_H 00011 #define QWT_DYNGRID_LAYOUT_H 00012 00013 #include <qlayout.h> 00014 #include <qsize.h> 00015 #if QT_VERSION >= 0x040000 00016 #include <qlist.h> 00017 #else 00018 #include <qvaluelist.h> 00019 #endif 00020 #include "qwt_global.h" 00021 #include "qwt_array.h" 00022 00032 class QWT_EXPORT QwtDynGridLayout : public QLayout 00033 { 00034 Q_OBJECT 00035 public: 00036 explicit QwtDynGridLayout(QWidget *, int margin = 0, int space = -1); 00037 #if QT_VERSION < 0x040000 00038 explicit QwtDynGridLayout(QLayout *, int space = -1); 00039 #endif 00040 explicit QwtDynGridLayout(int space = -1); 00041 00042 virtual ~QwtDynGridLayout(); 00043 00044 virtual void invalidate(); 00045 00046 void setMaxCols(uint maxCols); 00047 uint maxCols() const; 00048 00049 uint numRows () const; 00050 uint numCols () const; 00051 00052 virtual void addItem(QLayoutItem *); 00053 00054 #if QT_VERSION >= 0x040000 00055 virtual QLayoutItem *itemAt( int index ) const; 00056 virtual QLayoutItem *takeAt( int index ); 00057 virtual int count() const; 00058 00059 void setExpandingDirections(Qt::Orientations); 00060 virtual Qt::Orientations expandingDirections() const; 00061 QList<QRect> layoutItems(const QRect &, uint numCols) const; 00062 #else 00063 virtual QLayoutIterator iterator(); 00064 00065 void setExpanding(QSizePolicy::ExpandData); 00066 virtual QSizePolicy::ExpandData expanding() const; 00067 QValueList<QRect> layoutItems(const QRect &, uint numCols) const; 00068 #endif 00069 00070 virtual int maxItemWidth() const; 00071 00072 virtual void setGeometry(const QRect &rect); 00073 00074 virtual bool hasHeightForWidth() const; 00075 virtual int heightForWidth(int) const; 00076 00077 virtual QSize sizeHint() const; 00078 00079 virtual bool isEmpty() const; 00080 uint itemCount() const; 00081 00082 virtual uint columnsForWidth(int width) const; 00083 00084 protected: 00085 00086 void layoutGrid(uint numCols, 00087 QwtArray<int>& rowHeight, QwtArray<int>& colWidth) const; 00088 void stretchGrid(const QRect &rect, uint numCols, 00089 QwtArray<int>& rowHeight, QwtArray<int>& colWidth) const; 00090 00091 00092 private: 00093 void init(); 00094 int maxRowWidth(int numCols) const; 00095 void updateLayoutCache(); 00096 00097 #if QT_VERSION < 0x040000 00098 // xlC 5.1, the IBM/AIX C++ compiler, needs it to be public 00099 public: 00100 #endif 00101 class PrivateData; 00102 00103 private: 00104 PrivateData *d_data; 00105 }; 00106 00107 #endif