OpendTect  6.6
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 
28 enum stretchLimitTp { left=1, right=2, above=4, below=8,
30 
31 
32 class i_LayoutItem;
33 
34 // all is used for setting cached positions dirty
35 enum LayoutMode { minimum=0, preferred=1, setGeom=2, all=3 };
36 const int nLayoutMode = 3;
37 
39 
69 class i_LayoutMngr : public mQtclass(QLayout), public NamedCallBacker
70 {
71  friend class i_LayoutItem;
72  friend class uiGroupParentBody;
73 
74 public:
75  i_LayoutMngr(mQtclass(QWidget*) prnt,
76  const char* name,uiObjectBody& mngbdy);
77 
78  virtual ~i_LayoutMngr();
79 
80  virtual void addItem(mQtclass(QLayoutItem*));
82 
83  virtual mQtclass(QSize) sizeHint() const;
84  virtual mQtclass(QSize) minimumSize() const;
85 
86  virtual mQtclass(QLayoutItem*) itemAt(int idx) const;
87  virtual mQtclass(QLayoutItem*) takeAt(int idx);
88  virtual int count() const;
89 
90  virtual void invalidate();
92  virtual void initChildLayout(LayoutMode);
93 
94  bool attach(constraintType,mQtclass(QWidget&),
95  mQtclass(QWidget*),int,
96  bool reciprocal=true);
97 
98  const uiRect& curpos(LayoutMode) const;
101 
102  void forceChildrenRedraw(uiObjectBody*,bool deep);
105 
106  int childStretch(bool hor) const;
107 
108  int borderSpace() const { return borderspc_; }
109  int horSpacing() const;
110  int verSpacing() const { return vspacing_; }
111 
112  void setHSpacing( int s ) { hspacing_ = s; }
113  void setVSpacing( int s ) { vspacing_ = s; }
114  void setBorderSpace( int s ) { borderspc_ = s; }
115 
116  void setIsMain( bool yn ) { ismain_ = yn; }
117  void layoutChildren(LayoutMode,bool finalLoop=false);
118 
119 private:
120 
121  void setGeometry( const mQtclass(QRect&) );
122 
123  inline void doLayout( LayoutMode m, const mQtclass(QRect&) r ) const
124  { const_cast<i_LayoutMngr*>(this)->doLayout(m,r); }
125  void doLayout(LayoutMode,const mQtclass(QRect&));
126 
127  void itemDel( CallBacker* );
128 
129  void moveChildrenTo( int , int, LayoutMode );
131  bool tryToGrowItem( resizeItem&, const int, const int,
132  int, int, const mQtclass(QRect&), int);
133  void resizeTo( const mQtclass(QRect&) );
135 
137 
139 
141  mQtclass(QRect) prefgeometry_;
142 
146  bool ismain_;
147 
151 
152  uiObjectBody& managedbody_;
153 
157  bool poppedup_;
159 
160  friend class i_LayoutItem;
161 
162 };
i_LayoutMngr::i_LayoutItem
friend class i_LayoutItem
Definition: i_layout.h:71
i_LayoutMngr::horSpacing
int horSpacing() const
i_LayoutMngr::vspacing_
int vspacing_
Definition: i_layout.h:149
stretchLimitTp
stretchLimitTp
internal enum used to determine in which direction a widget
Definition: i_layout.h:28
i_LayoutMngr::mQtclass
mQtclass(QRect) prefgeometry_
i_LayoutMngr::childrenCommitGeometrySet
void childrenCommitGeometrySet(bool)
i_LayoutMngr::initChildLayout
virtual void initChildLayout(LayoutMode)
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_LayoutMngr::isChild
bool isChild(uiObject *)
i_LayoutMngr::curpos
uiRect & curpos(LayoutMode)
i_LayoutMngr::mQtclass
virtual mQtclass(QSize) sizeHint() const
i_LayoutMngr::poppedup_
bool poppedup_
Definition: i_layout.h:157
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
above
@ above
Definition: i_layout.h:28
i_LayoutMngr::tryToGrowItem
bool tryToGrowItem(resizeItem &, const int, const int, int, int, const mQtclass(QRect &), int)
left
@ left
Definition: i_layout.h:28
uiRect
Definition: uigeom.h:42
i_LayoutMngr::prefposstored_
bool prefposstored_
Definition: i_layout.h:145
i_LayoutMngr::startPoptimer
void startPoptimer()
i_LayoutMngr::itemDel
void itemDel(CallBacker *)
i_LayoutMngr::attach
bool attach(constraintType, mQtclass(QWidget &), mQtclass(QWidget *), int, bool reciprocal=true)
i_LayoutMngr::layoutChildren
void layoutChildren(LayoutMode, bool finalLoop=false)
i_LayoutMngr::fillResizeList
void fillResizeList(ObjectSet< resizeItem > &, bool)
i_LayoutMngr::setGeometry
void setGeometry(const mQtclass(QRect &))
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
setGeom
@ setGeom
Definition: i_layout.h:35
constraintType
constraintType
Definition: uilayout.h:19
i_LayoutMngr::count
virtual int count() const
i_LayoutMngr::invalidate
virtual void invalidate()
i_LayoutMngr::minimumdone_
bool minimumdone_
Definition: i_layout.h:143
i_LayoutMngr::setHSpacing
void setHSpacing(int s)
Definition: i_layout.h:112
Timer
Timer class.
Definition: timer.h:25
i_LayoutMngr::updatedAlignment
virtual void updatedAlignment(LayoutMode)
NamedObject::name
virtual const name_type & name() const
Definition: namedobj.h:54
i_LayoutMngr::managedbody_
uiObjectBody & managedbody_
Definition: i_layout.h:152
i_LayoutMngr::childrenRect
uiRect childrenRect(LayoutMode)
i_LayoutMngr::uiGroupParentBody
friend class uiGroupParentBody
Definition: i_layout.h:72
i_LayoutMngr::childrenClear
void childrenClear(uiObject *)
i_LayoutMngr::childStretch
int childStretch(bool hor) const
i_LayoutMngr::layoutpos_
uiRect layoutpos_[nLayoutMode]
Definition: i_layout.h:140
i_LayoutMngr::borderSpace
int borderSpace() const
Definition: i_layout.h:108
i_LayoutMngr::preferreddone_
bool preferreddone_
Definition: i_layout.h:144
i_LayoutMngr::mQtclass
virtual mQtclass(QLayoutItem *) takeAt(int idx)
rightLimit
@ rightLimit
Definition: i_layout.h:29
i_LayoutMngr::setBorderSpace
void setBorderSpace(int s)
Definition: i_layout.h:114
i_LayoutMngr::~i_LayoutMngr
virtual ~i_LayoutMngr()
all
@ all
Definition: i_layout.h:35
i_LayoutMngr::timerrunning_
bool timerrunning_
Definition: i_layout.h:158
i_LayoutMngr::poptimer_
Timer & poptimer_
Definition: i_layout.h:156
i_LayoutMngr
dGB's layout manager
Definition: i_layout.h:70
i_LayoutMngr::winpos
uiRect winpos(LayoutMode) const
i_LayoutMngr::moveChildrenTo
void moveChildrenTo(int, int, LayoutMode)
right
@ right
Definition: i_layout.h:28
i_LayoutMngr::popTimTick
void popTimTick(CallBacker *)
i_LayoutMngr::forceChildrenRedraw
void forceChildrenRedraw(uiObjectBody *, bool deep)
i_LayoutMngr::mQtclass
virtual mQtclass(QLayoutItem *) itemAt(int idx) const
i_LayoutMngr::resizeTo
void resizeTo(const mQtclass(QRect &))
i_LayoutMngr::verSpacing
int verSpacing() const
Definition: i_layout.h:110
i_LayoutMngr::setIsMain
void setIsMain(bool yn)
Definition: i_layout.h:116
i_LayoutMngr::i_LayoutMngr
i_LayoutMngr(mQtclass(QWidget *) prnt, const char *name, uiObjectBody &mngbdy)
i_LayoutMngr::ismain_
bool ismain_
Definition: i_layout.h:146
mQtclass
#define mQtclass(cls)
Definition: commondefs.h:234
uiObject
The base class for most UI elements.
Definition: uiobj.h:38
preferred
@ preferred
Definition: i_layout.h:35
i_LayoutMngr::doLayout
void doLayout(LayoutMode m, const mQtclass(QRect &) r) const
Definition: i_layout.h:123
uilayout.h
below
@ below
Definition: i_layout.h:28
uigeom.h
minimum
@ minimum
Definition: i_layout.h:35
bottomLimit
@ bottomLimit
Definition: i_layout.h:29
i_LayoutMngr::curpos
const uiRect & curpos(LayoutMode) const
i_LayoutMngr::mQtclass
virtual mQtclass(QSize) minimumSize() const
i_LayoutMngr::hspacing_
int hspacing_
Definition: i_layout.h:148
sets.h
i_LayoutMngr::addItem
virtual void addItem(mQtclass(QLayoutItem *))
i_LayoutMngr::doLayout
void doLayout(LayoutMode, const mQtclass(QRect &))
i_LayoutMngr::setVSpacing
void setVSpacing(int s)
Definition: i_layout.h:113
i_LayoutMngr::borderspc_
int borderspc_
Definition: i_layout.h:150
i_LayoutMngr::childrenlist_
ObjectSet< i_LayoutItem > childrenlist_
Definition: i_layout.h:138
uiobj.h
i_LayoutMngr::addItem
void addItem(i_LayoutItem *)

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