OpendTect  6.3
userinputobj.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: 21/2/2002
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "generalmod.h"
14 #include "datainpspec.h"
15 #include "convert.h"
16 #include "undefval.h"
17 
18 class CallBack;
19 class BufferStringSet;
20 class uiString;
21 
22 
24 {
25 public:
26 
28  virtual ~UserInputObj() {}
29 
30  virtual const char* text() const = 0;
31  virtual int getIntValue() const = 0;
32  virtual od_int64 getInt64Value() const = 0;
33  virtual double getDValue() const = 0;
34  virtual float getFValue() const = 0;
35  virtual bool getBoolValue() const = 0;
36 
37  virtual void setText(const char*) = 0;
38  virtual void setValue(const char* s);
39  virtual void setValue(int) = 0;
40  virtual void setValue(od_int64) = 0;
41  virtual void setValue(double) = 0;
42  virtual void setValue(float) = 0;
43  virtual void setValue(bool) = 0;
44 
45  virtual void setReadOnly( bool = true ) = 0;
46  virtual bool isReadOnly() const = 0;
47 
48  virtual void setEmpty() = 0;
49  virtual void addItem(const uiString&);
50 
53  bool notifyValueChanging( const CallBack& cb );
54 
57  bool notifyValueChanged( const CallBack& cb );
58 
60  bool notifyUpdateRequested( const CallBack& cb );
61 
63  bool update( const DataInpSpec& s );
64 
65  virtual void setToolTip(const uiString&) = 0;
66 
67 protected:
68 
70  virtual bool notifyValueChanging_(const CallBack&) =0;
72  virtual bool notifyValueChanged_(const CallBack&) =0;
73  virtual bool notifyUpdateRequested_(const CallBack&) =0;
74  virtual bool update_( const DataInpSpec&) =0;
75 
76 };
77 
78 
79 template<class T>
81 {
82 public:
83 
84  virtual const char* text() const
85  { return Conv::to<const char*>( getvalue_() ); }
86  virtual int getIntValue() const
87  { return Conv::to<int>( getvalue_() ); }
88  virtual od_int64 getInt64Value() const
89  { return Conv::to<od_int64>( getvalue_() ); }
90  virtual double getDValue() const
91  { return Conv::to<double>( getvalue_() );}
92  virtual float getFValue() const
93  { return Conv::to<float>( getvalue_() ); }
94  virtual bool getBoolValue() const
95  { return Conv::to<bool>( getvalue_() ); }
96 
97  virtual void setText( const char* s )
98  { setvalue_( Conv::to<T>(s) ); }
99  virtual void setValue( const char* s )
100  { setText( s ); }
101  virtual void setValue( int i )
102  { setvalue_( Conv::to<T>(i) ); }
103  virtual void setValue( od_int64 i )
104  { setvalue_( Conv::to<T>(i) ); }
105  virtual void setValue( double d )
106  { setvalue_( Conv::to<T>(d) ); }
107  virtual void setValue( float f )
108  { setvalue_( Conv::to<T>(f) ); }
109  virtual void setValue( bool b )
110  { setvalue_( Conv::to<T>(b) ); }
111 
112  void setEmpty()
113  { setvalue_(mUdf(T)); }
114 
115 protected:
116  // return true if implemented.
117  virtual bool setEmpty_() { return false; }
118 
119  virtual void setvalue_( T v ) = 0;
120  virtual T getvalue_() const = 0;
121 
122 };
#define mExpClass(module)
Definition: commondefs.h:157
virtual void setText(const char *s)
Definition: userinputobj.h:97
virtual void setValue(double d)
Definition: userinputobj.h:105
virtual void setValue(int i)
Definition: userinputobj.h:101
virtual od_int64 getInt64Value() const
Definition: userinputobj.h:88
#define od_int64
Definition: plftypes.h:34
virtual int getIntValue() const
Definition: userinputobj.h:86
virtual void setValue(bool b)
Definition: userinputobj.h:109
Definition: uistring.h:88
Set of BufferString objects.
Definition: bufstringset.h:25
UserInputObj()
Definition: userinputobj.h:27
virtual const char * text() const
Definition: userinputobj.h:84
Specification of input characteristics.
Definition: datainpspec.h:88
void setEmpty()
Definition: userinputobj.h:112
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
virtual double getDValue() const
Definition: userinputobj.h:90
virtual bool setEmpty_()
Definition: userinputobj.h:117
void setEmpty()
virtual void setValue(float f)
Definition: userinputobj.h:107
virtual ~UserInputObj()
Definition: userinputobj.h:28
virtual float getFValue() const
Definition: userinputobj.h:92
Definition: userinputobj.h:23
#define mClass(module)
Definition: commondefs.h:161
virtual void setValue(const char *s)
Definition: userinputobj.h:99
virtual bool getBoolValue() const
Definition: userinputobj.h:94
CallBacks object-oriented (object + method).
Definition: callback.h:62
virtual void setValue(od_int64 i)
Definition: userinputobj.h:103
Definition: userinputobj.h:80

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