OpendTect  6.3
uibody.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: 16/05/2001
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uibasemod.h"
14 #include "uiparent.h"
15 
16 mFDQtclass(QWidget)
17 
18 mExpClass(uiBase) uiBody
19 {
20 public:
21  uiBody() {}
22  virtual ~uiBody() {}
23 
24  virtual void finalise() {}
25  virtual bool finalised() const { return false; }
26  virtual void clear() {}
27  virtual void fontchanged() {}
28 
29 
31  inline const mQtclass(QWidget*) qwidget() const
32  { return qwidget_();}
34  inline mQtclass(QWidget*) qwidget()
35  {return const_cast<mQtclass(QWidget*)>(qwidget_());}
36 
37 protected:
38  virtual const mQtclass(QWidget*) qwidget_() const =0;
39 
40 };
41 
42 
48 template <class C, class T>
49 mClass(uiBase) uiBodyImpl : public uiBody
50 {
51 public:
52  uiBodyImpl( C& hndle, uiParent* parnt, T& qthng )
53  : uiBody()
54  , qthing_(&qthng)
55  , handle_(hndle)
56  {}
57 
58 
59 
60  T* qthing() { return qthing_; }
61  const T* qthing() const { return qthing_; }
62 
63  inline const C& handle() { return handle_; }
64 
65 protected:
66  ~uiBodyImpl() { delete qthing_; }
67 
68  virtual const mQtclass(QWidget*) qwidget_() const
69  {return dynamic_cast<mQtclass(QWidget*)>( qthing_ );}
70 
71  T* qthing_;
72 
73 private:
74 
75  C& handle_;
76 
77 };
#define mExpClass(module)
Definition: commondefs.h:157
C & handle_
Definition: i_uiobjqtbody.h:109
#define mQtclass(cls)
Definition: commondefs.h:232
void clear(std::ios &)
const C & handle()
Definition: uibody.h:63
virtual const mQtclass(QWidget *) qwidget_() const
Definition: uibody.h:68
Definition: uiparent.h:24
const T * qthing() const
Definition: uibody.h:61
virtual const QWidget * qwidget_() const
Definition: i_uiobjqtbody.h:27
T * qthing_
Definition: uibody.h:71
C & handle_
Definition: uibody.h:75
Simple delegating implementation of uiBody.
Definition: uibody.h:49
~uiBodyImpl()
Definition: uibody.h:66
uiBodyImpl(C &hndle, uiParent *parnt, T &qthng)
Definition: uibody.h:52
mFDQtclass(QWidget) class uiBody
Definition: uibody.h:16
#define mClass(module)
Definition: commondefs.h:161
T * qthing()
Definition: uibody.h:60

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