~ubuntu-branches/ubuntu/quantal/openmsx-debugger/quantal

« back to all changes in this revision

Viewing changes to src/DockableWidgetLayout.h

  • Committer: Bazaar Package Importer
  • Author(s): Joost Yervante Damad
  • Date: 2009-12-06 07:40:02 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20091206074002-kssfkg1d6xbp6w9e
Tags: 0.0.0.svn20091206-1
New svn snapshot (Closes: #559612)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// $Id: DockableWidgetLayout.h 6143 2007-03-06 20:41:25Z edwinv $
 
1
// $Id: DockableWidgetLayout.h 9347 2009-03-06 22:47:13Z m9710797 $
2
2
 
3
 
#ifndef _DOCKABLEWIDGETLAYOUT_H
4
 
#define _DOCKABLEWIDGETLAYOUT_H
 
3
#ifndef DOCKABLEWIDGETLAYOUT_H
 
4
#define DOCKABLEWIDGETLAYOUT_H
5
5
 
6
6
#include <QLayout>
7
7
#include <QRect>
14
14
{
15
15
        Q_OBJECT;
16
16
public:
17
 
        DockableWidgetLayout(QWidget *parent = 0, int margin = 0, int spacing = -1);
 
17
        enum DockSide { TOP, LEFT, RIGHT, BOTTOM };
 
18
 
 
19
        DockableWidgetLayout(QWidget* parent = 0, int margin = 0, int spacing = -1);
18
20
        DockableWidgetLayout(int spacing);
19
21
        ~DockableWidgetLayout();
20
22
 
21
 
        enum DockSide { TOP, LEFT, RIGHT, BOTTOM };
22
 
                
23
 
        class DockInfo
24
 
        {
25
 
        public:
26
 
                DockableWidget *widget;
27
 
                QLayoutItem *item;
28
 
                DockSide dockSide;
29
 
                int dockDistance;
30
 
                bool useHintHeight;
31
 
                bool useHintWidth;
32
 
                int     left;
33
 
                int     top;
34
 
                int width;
35
 
                int height;
36
 
        };
 
23
        void addItem(QLayoutItem* item);
 
24
        void addItem(QLayoutItem* item, int index, DockSide side = RIGHT,
 
25
                     int dist = 0, int w = -1, int h = -1);
 
26
        void addWidget(DockableWidget* widget, const QRect& rect);
 
27
        void addWidget(DockableWidget* widget, DockSide side, int distance,
 
28
                       int width = -1, int height = -1);
 
29
        bool insertLocation(QRect& rect, const QSizePolicy& sizePol);
37
30
 
38
 
        void addItem( QLayoutItem *item );
39
 
        void addItem( QLayoutItem *item, int index, DockSide side = RIGHT, int dist = 0, int w = -1, int h = -1 );
40
 
        void addWidget( DockableWidget *widget, const QRect& rect );
41
 
        void addWidget( DockableWidget *widget, DockSide side, int distance, int width = -1, int height = -1 );
42
 
        bool insertLocation( QRect& rect, const QSizePolicy& sizePol );
43
 
        
44
 
        QLayoutItem *itemAt(int index) const;
45
 
        QLayoutItem *takeAt(int index);
 
31
        QLayoutItem* itemAt(int index) const;
 
32
        QLayoutItem* takeAt(int index);
46
33
        int count() const;
47
34
 
48
35
        Qt::Orientations expandingDirections() const;
54
41
 
55
42
        QSize sizeHint() const;
56
43
        void changed();
57
 
        
58
 
        void getConfig( QStringList& list );
59
 
        
 
44
 
 
45
        void getConfig(QStringList& list);
 
46
 
60
47
private:
61
 
        QList<DockInfo *> dockedWidgets;
 
48
        class DockInfo
 
49
        {
 
50
        public:
 
51
                QRect bounds() const { return QRect(left, top, width, height); }
 
52
                int right()  const { return left + width;  }
 
53
                int bottom() const { return top  + height; }
 
54
 
 
55
                DockableWidget* widget;
 
56
                QLayoutItem* item;
 
57
                DockSide dockSide;
 
58
                int dockDistance;
 
59
                int left;
 
60
                int top;
 
61
                int width;
 
62
                int height;
 
63
                bool useHintHeight;
 
64
                bool useHintWidth;
 
65
        };
 
66
 
 
67
        QList<DockInfo*> dockedWidgets;
62
68
        int layoutWidth, layoutHeight;
63
69
        int minWidth, minHeight;
64
70
        int maxWidth, maxHeight;
65
71
        int checkWidth, checkHeight;
66
 
        
 
72
 
67
73
        void calcSizeLimits();
68
 
        void sizeMove( int dx, int dy );
69
 
        void doLayout( bool check = false );
70
 
        bool insertLocation( QRect& rect, int& index, DockSide& side, const QSizePolicy& sizePol );
 
74
        void sizeMove(int dx, int dy);
 
75
        void doLayout(bool check = false);
 
76
        bool insertLocation(QRect& rect, int& index, DockSide& side,
 
77
                            const QSizePolicy& sizePol);
 
78
        bool overlaysWithFirstNWidgets(const QRect& r, int n) const;
71
79
};
72
80
 
73
 
#endif    // _DOCKABLEWIDGETLAYOUT_H
 
81
#endif // DOCKABLEWIDGETLAYOUT_H