casa
$Rev:20696$
|
00001 #ifndef TQFLOWLAYOUT_H 00002 #define TQFLOWLAYOUT_H 00003 00004 #include <casa/aips.h> 00005 00006 #include <graphics/X11/X_enter.h> 00007 #include <QLayout> 00008 #include <QRect> 00009 #include <QWidgetItem> 00010 #include <graphics/X11/X_exit.h> 00011 00012 00013 namespace casa { //# NAMESPACE CASA - BEGIN 00014 00015 00016 00017 class FlowLayout : public QLayout 00018 { 00019 public: 00020 FlowLayout(QWidget *parent, int margin = 0, int spacing = -1); 00021 FlowLayout(int spacing = -1); 00022 ~FlowLayout(); 00023 00024 void addItem(QLayoutItem *item); 00025 Qt::Orientations expandingDirections() const; 00026 bool hasHeightForWidth() const; 00027 int heightForWidth(int) const; 00028 int count() const; 00029 QLayoutItem *itemAt(int index) const; 00030 QSize minimumSize() const; 00031 void setGeometry(const QRect &rect); 00032 QSize sizeHint() const; 00033 QLayoutItem *takeAt(int index); 00034 00035 private: 00036 int doLayout(const QRect &rect, bool testOnly) const; 00037 00038 QList<QLayoutItem *> itemList; 00039 }; 00040 00041 00042 class BorderLayout : public QLayout 00043 { 00044 public: 00045 enum Position { West, North, South, East, Center }; 00046 00047 BorderLayout(QWidget *parent, int margin = 0, int spacing = -1); 00048 BorderLayout(int spacing = -1); 00049 ~BorderLayout(); 00050 00051 void addItem(QLayoutItem *item); 00052 void addWidget(QWidget *widget, Position position); 00053 Qt::Orientations expandingDirections() const; 00054 bool hasHeightForWidth() const; 00055 int count() const; 00056 QLayoutItem *itemAt(int index) const; 00057 QSize minimumSize() const; 00058 void setGeometry(const QRect &rect); 00059 QSize sizeHint() const; 00060 QLayoutItem *takeAt(int index); 00061 00062 void add(QLayoutItem *item, Position position); 00063 00064 private: 00065 struct ItemWrapper 00066 { 00067 ItemWrapper(QLayoutItem *i, Position p) { 00068 item = i; 00069 position = p; 00070 } 00071 00072 QLayoutItem *item; 00073 Position position; 00074 }; 00075 00076 enum SizeType { MinimumSize, SizeHint }; 00077 QSize calculateSize(SizeType sizeType) const; 00078 00079 QList<ItemWrapper *> list; 00080 }; 00081 00082 } //# NAMESPACE CASA - END 00083 00084 #endif