tqlayout.h
Go to the documentation of this file.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 {
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 }
00083
00084 #endif