OpendTect  6.6
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  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uibasemod.h"
15 #include "uiparent.h"
16 
17 mFDQtclass(QWidget)
18 
19 mExpClass(uiBase) uiBody
20 {
21 public:
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  uiBody() {}
39 
40  virtual const mQtclass(QWidget*) qwidget_() const =0;
41 
42 };
43 
44 
50 template <class C, class T>
51 mClass(uiBase) uiBodyImpl : public uiBody
52 {
53 public:
54  virtual ~uiBodyImpl() { delete qthing_; }
55 
56  T* qthing() { return qthing_; }
57  const T* qthing() const { return qthing_; }
58 
59  inline const C& handle() { return handle_; }
60 
61 protected:
62  uiBodyImpl( C& hndle, uiParent* parnt, T& qthng )
63  : uiBody()
64  , qthing_(&qthng)
65  , handle_(hndle)
66  {}
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 };
78 
uiBodyImpl::mQtclass
virtual const mQtclass(QWidget *) qwidget_() const
Definition: uibody.h:68
uiBodyImpl::qthing
const T * qthing() const
Definition: uibody.h:57
uiBodyImpl::handle_
C & handle_
Definition: uibody.h:75
uiBodyImpl
Simple delegating implementation of uiBody.
Definition: uibody.h:52
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
mFDQtclass
mFDQtclass(QWidget) class uiBody
Definition: uibody.h:17
uiparent.h
mClass
#define mClass(module)
Definition: commondefs.h:181
mQtclass
#define mQtclass(cls)
Definition: commondefs.h:234
uiBodyImpl::qthing
T * qthing()
Definition: uibody.h:56
uiBodyImpl::qthing_
T * qthing_
Definition: uibody.h:71
uiBodyImpl::~uiBodyImpl
virtual ~uiBodyImpl()
Definition: uibody.h:54
uiParent
Definition: uiparent.h:26
uiBodyImpl::handle
const C & handle()
Definition: uibody.h:59
uiBodyImpl::uiBodyImpl
uiBodyImpl(C &hndle, uiParent *parnt, T &qthng)
Definition: uibody.h:62
StrmOper::clear
void clear(std::ios &)

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