OpendTect  6.3
i_layout.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A.H. Lammertink
8  Date: 18/08/1999
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uilayout.h"
14 #include "uigeom.h"
15 #include "uiobj.h"
16 #include "sets.h"
17 
18 #include <QLayout>
19 #include <QRect>
20 
21 
22 class resizeItem;
23 class Timer;
24 
26 enum stretchLimitTp { left=1, right=2, above=4, below=8,
28 
29 
31 class i_LayoutItem;
32 
33 enum LayoutMode { minimum=0, preferred=1, setGeom=2, all=3 };
34  // all is used for setting cached positions dirty
35 const int nLayoutMode = 3;
36 
38 
68 class i_LayoutMngr : public mQtclass(QLayout), public NamedCallBacker
69 {
70  friend class i_LayoutItem;
71  friend class uiGroupParentBody;
72 
73 public:
74  i_LayoutMngr(mQtclass(QWidget*) prnt,
75  const char* name,uiObjectBody& mngbdy);
76 
77  virtual ~i_LayoutMngr();
78 
79  virtual void addItem(mQtclass(QLayoutItem*));
80  void addItem(i_LayoutItem*);
81 
82  virtual mQtclass(QSize) sizeHint() const;
83  virtual mQtclass(QSize) minimumSize() const;
84 
85  virtual mQtclass(QLayoutItem*) itemAt(int idx) const;
86  virtual mQtclass(QLayoutItem*) takeAt(int idx);
87  virtual int count() const;
88 
89  virtual void invalidate();
90  virtual void updatedAlignment(LayoutMode);
91  virtual void initChildLayout(LayoutMode);
92 
93  bool attach(constraintType,mQtclass(QWidget&),
94  mQtclass(QWidget*),int,
95  bool reciprocal=true);
96 
97  const uiRect& curpos(LayoutMode) const;
98  uiRect& curpos(LayoutMode);
99  uiRect winpos(LayoutMode) const;
100 
101  void forceChildrenRedraw(uiObjectBody*,bool deep);
102  void childrenClear(uiObject*);
103  bool isChild(uiObject*);
104 
105  int childStretch(bool hor) const;
106 
107  int borderSpace() const { return borderspc; }
108  int horSpacing() const;
109  int verSpacing() const { return vspacing; }
110 
111  void setHSpacing(int s) { hspacing = s; }
112  void setVSpacing(int s) { vspacing = s; }
113  void setBorderSpace(int s) { borderspc = s; }
114 
115  void setIsMain( bool yn ) { ismain = yn; }
116  void layoutChildren(LayoutMode,bool finalLoop=false);
117 
118 private:
119 
120  void setGeometry( const mQtclass(QRect&) );
121 
122  inline void doLayout( LayoutMode m, const mQtclass(QRect&) r ) const
123  { const_cast<i_LayoutMngr*>(this)->doLayout(m,r); }
124  void doLayout( LayoutMode m, const mQtclass(QRect&) );
125 
126  void itemDel( CallBacker* );
127 
128  void moveChildrenTo( int , int, LayoutMode );
129  void fillResizeList( ObjectSet<resizeItem>&, bool );
130  bool tryToGrowItem( resizeItem&, const int, const int,
131  int, int, const mQtclass(QRect&), int);
132  void resizeTo( const mQtclass(QRect&) );
133  void childrenCommitGeometrySet(bool);
134 
136 
138 
140  mQtclass(QRect) prefGeometry;
141 
145  bool ismain;
146 
147  int hspacing;
148  int vspacing;
150 
151  uiObjectBody& managedBody;
152 
153  void startPoptimer();
154  void popTimTick(CallBacker*);
156  bool popped_up;
158 
159 };
Timer & poptimer
Definition: i_layout.h:155
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
int hspacing
Definition: i_layout.h:147
Definition: uigeom.h:40
virtual void invalidate()
#define mQtclass(cls)
Definition: commondefs.h:232
void setHSpacing(int s)
Definition: i_layout.h:111
friend class i_LayoutItem
Definition: i_layout.h:70
Definition: i_layout.h:26
void setGeometry(const mQtclass(QRect &))
bool popped_up
Definition: i_layout.h:156
Definition: i_layout.h:26
Definition: i_layout.h:33
Definition: i_layout.h:27
i_LayoutMngr(mQtclass(QWidget *) prnt, const char *name, uiObjectBody &mngbdy)
ObjectSet< i_LayoutItem > childrenlist
Definition: i_layout.h:137
virtual void updatedAlignment(LayoutMode)
The base class for most UI elements.
Definition: uiobj.h:35
bool attach(constraintType, mQtclass(QWidget &), mQtclass(QWidget *), int, bool reciprocal=true)
bool prefposStored
Definition: i_layout.h:144
uiRect winpos(LayoutMode) const
void childrenClear(uiObject *)
uiObjectBody & managedBody
Definition: i_layout.h:151
int childStretch(bool hor) const
uiRect childrenRect(LayoutMode)
const uiRect & curpos(LayoutMode) const
Set of pointers to objects.
Definition: commontypes.h:28
void childrenCommitGeometrySet(bool)
Set of (small) copyable elements.
Definition: commontypes.h:26
void doLayout(LayoutMode m, const mQtclass(QRect &) r) const
Definition: i_layout.h:122
LayoutMode
Definition: i_layout.h:33
uiRect layoutpos[nLayoutMode]
Definition: i_layout.h:139
void resizeTo(const mQtclass(QRect &))
Definition: i_layout.h:33
void fillResizeList(ObjectSet< resizeItem > &, bool)
void setVSpacing(int s)
Definition: i_layout.h:112
virtual int count() const
int horSpacing() const
bool preferredDone
Definition: i_layout.h:143
void setBorderSpace(int s)
Definition: i_layout.h:113
bool timer_running
Definition: i_layout.h:157
int borderSpace() const
Definition: i_layout.h:107
friend class uiGroupParentBody
Definition: i_layout.h:71
Definition: i_layout.h:27
int borderspc
Definition: i_layout.h:149
virtual void addItem(mQtclass(QLayoutItem *))
constraintType
Definition: uilayout.h:17
stretchLimitTp
internal enum used to determine in which direction a widget can be stretched and to check which outer...
Definition: i_layout.h:26
TypeSet< uiConstraint > constraintList
Definition: i_layout.h:30
void setIsMain(bool yn)
Definition: i_layout.h:115
const int nLayoutMode
Definition: i_layout.h:35
bool tryToGrowItem(resizeItem &, const int, const int, int, int, const mQtclass(QRect &), int)
Definition: i_layout.h:26
Definition: i_layout.h:33
int verSpacing() const
Definition: i_layout.h:109
void startPoptimer()
bool minimumDone
Definition: i_layout.h:142
Timer class.
Definition: timer.h:24
Definition: i_layout.h:33
virtual ~i_LayoutMngr()
bool ismain
Definition: i_layout.h:145
virtual const OD::String & name() const
Definition: namedobj.h:33
void layoutChildren(LayoutMode, bool finalLoop=false)
CallBacker object with a name. Use if you want your object to be able to send and receive CallBack&#39;s...
Definition: namedobj.h:50
void moveChildrenTo(int, int, LayoutMode)
virtual void initChildLayout(LayoutMode)
dGB&#39;s layout manager
Definition: i_layout.h:68
void popTimTick(CallBacker *)
int vspacing
Definition: i_layout.h:148
bool isChild(uiObject *)
void itemDel(CallBacker *)
void forceChildrenRedraw(uiObjectBody *, bool deep)
virtual mQtclass(QSize) sizeHint() const
Definition: i_layout.h:26

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017