OpendTect  6.6
i_layoutitem.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: 29/06/2001
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uibasemod.h"
14 #include "i_layout.h"
15 #include "uiobjbody.h"
16 
17 #include <QSize>
18 #include <QWidget>
19 
20 mFDQtclass(QLayoutItem)
21 
22 mExpClass(uiBase) i_LayoutItem : public uiBody, public NamedCallBacker
24 {
25  friend class i_LayoutMngr;
26  friend class i_LayoutIterator;
27 #ifdef __debug__
28  friend class uiGroupParentBody;
29 #endif
30 
31 public:
32  i_LayoutItem(i_LayoutMngr&,
33  mQtclass(QLayoutItem&));
34  virtual ~i_LayoutItem();
35 
36  virtual int horAlign(LayoutMode m ) const
37  { return curpos(m).left(); }
38  virtual int center(LayoutMode,bool hor=true) const;
39  virtual uiSize minimumSize() const;
40  uiSize prefSize() const;
41 
42  virtual void invalidate();
43  virtual void updatedAlignment(LayoutMode) {}
44  virtual void initChildLayout(LayoutMode) {}
45 
46  uiSize actualSize(bool include_border = true) const;
48 
49  inline const i_LayoutMngr& mngr() const { return *mngr_; }
50 
51  inline const uiRect& curpos(LayoutMode m) const
52  { return layoutpos_[m];}
53  inline uiRect& curpos(LayoutMode m)
54  { return layoutpos_[m];}
55 
56  bool inited() const;
57 
58 protected:
59 
60  bool preferred_pos_inited_;
61  bool minimum_pos_inited_;
62 
63  uiRect layoutpos_[nLayoutMode];
64 
65  int stretch(bool hor) const;
66  virtual void commitGeometrySet(bool);
67 
68  void initLayout(LayoutMode,int mngrtop,int mngrleft);
69  bool layout(LayoutMode,int,bool);
70 
71  void attach(constraintType,i_LayoutItem* other,
72  int margin,bool reciprocal=true);
73 
74  virtual uiObject* objLayouted() { return nullptr; }
75  const uiObject* objLayouted() const;
76  virtual uiObjectBody* bodyLayouted() { return nullptr; }
77  const uiObjectBody* bodyLayouted() const;
78 
79  mQtclass(QLayoutItem&) qlayoutItm();
80  const mQtclass(QLayoutItem&) qlayoutItm() const;
81  mQtclass(QLayoutItem*) takeQlayoutItm();
82 
83  virtual const mQtclass(QWidget*) qwidget_() const;
84  virtual const mQtclass(QWidget*) managewidg_() const;
85 
86  inline i_LayoutMngr& mngr() { return *mngr_; }
87 
88  bool isAligned() const;
89 
90 private:
91 
92  mQtclass(QLayoutItem*) qlayoutitm_;
93  i_LayoutMngr* mngr_;
94 
95  void managerDeletedCB(CallBacker*);
96 
97  TypeSet<uiConstraint> constraintlist_;
98 
99 #ifdef __debug__
100  int isPosOk(uiConstraint*,int,bool);
101 #endif
102  bool prefszdone_;
103  uiSize prefsz_;
104  bool hsameas_;
105  bool vsameas_;
106 };
107 
108 
111 mExpClass(uiBase) i_uiLayoutItem : public i_LayoutItem
112 {
113 public:
114  i_uiLayoutItem( i_LayoutMngr& mgr, uiObjectBody& obj )
115  : i_LayoutItem(mgr,
116  *new mQtclass(QWidgetItem)(obj.qwidget()) )
117  , uiobjbody_(obj) {}
118 
119  virtual ~i_uiLayoutItem();
120 
121  virtual uiSize minimumSize() const;
122 
123  virtual uiObject* objLayouted() { return &uiobjbody_.uiObjHandle(); }
124  virtual uiObjectBody* bodyLayouted(){ return &uiobjbody_; }
125 
126 
127 protected:
128 
129  uiObjectBody& uiobjbody_;
130 
131 
132 };
i_uiLayoutItem::bodyLayouted
virtual uiObjectBody * bodyLayouted()
Definition: i_layoutitem.h:124
NamedCallBacker
CallBacker object with a name. Use if you want your object to be able to send and receive CallBack's,...
Definition: namedobj.h:72
i_uiLayoutItem::~i_uiLayoutItem
virtual ~i_uiLayoutItem()
uiRect
Definition: uigeom.h:42
uiConstraint
Definition: uilayout.h:39
mFDQtclass
#define mFDQtclass(cls)
Definition: commondefs.h:233
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
i_uiLayoutItem
Wrapper around QLayoutItem class. Stores some dGB specific layout info.
Definition: i_layoutitem.h:112
LayoutMode
LayoutMode
Definition: i_layout.h:35
nLayoutMode
const int nLayoutMode
Definition: i_layout.h:36
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
constraintType
constraintType
Definition: uilayout.h:19
i_uiLayoutItem::objLayouted
virtual uiObject * objLayouted()
Definition: i_layoutitem.h:123
i_uiLayoutItem::uiobjbody_
uiObjectBody & uiobjbody_
Definition: i_layoutitem.h:129
i_LayoutMngr
dGB's layout manager
Definition: i_layout.h:70
uiSize
Definition: uigeom.h:25
i_uiLayoutItem::minimumSize
virtual uiSize minimumSize() const
i_uiLayoutItem::i_uiLayoutItem
i_uiLayoutItem(i_LayoutMngr &mgr, uiObjectBody &obj)
Definition: i_layoutitem.h:114
mQtclass
#define mQtclass(cls)
Definition: commondefs.h:234
uiObject
The base class for most UI elements.
Definition: uiobj.h:38
i_layout.h
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29
uiobjbody.h

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