casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
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 { //# 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