OpendTect  6.6
uigeninput.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. Bril
8  Date: Oct 2000
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uitoolsmod.h"
15 #include "uigroup.h"
16 #include "datainpspec.h"
17 #include "position.h"
18 #include "uistring.h"
19 
20 class BinIDValue;
21 class uiLineEdit;
22 class uiLabel;
23 class uiCheckBox;
24 class uiString;
25 class uiButton;
26 class uiGenInputInputFld;
27 class uiGenInputFieldIdx;
28 class uiTextValidator;
29 class DataInpSpec;
30 class UserInputObj;
31 
58 mExpClass(uiTools) uiGenInput : public uiGroup
60 public:
61  uiGenInput(uiParent* p,const uiString& disptxt,
62  const char* inputStr=nullptr);
63 
64  uiGenInput(uiParent* p,const uiString& disptxt,
65  const DataInpSpec&);
66 
68  const DataInpSpec&,const DataInpSpec&);
69 
71  const DataInpSpec&,const DataInpSpec&,
72  const DataInpSpec& );
73 
74  virtual ~uiGenInput();
75 
76  void addInput( const DataInpSpec& );
77 
91  const DataInpSpec* dataInpSpec(int nr=0) const;
92 
98  bool newSpec(const DataInpSpec& nw, int nr);
99 
101  void updateSpecs();
102 
103  bool isUndef( int nr=0 ) const;
104 
105 #undef mDeclArgs
106 #define mDeclArgs(type) int nr=0, type undefval=mUdf(type)
107 
108  const char* text( mDeclArgs(const char*) ) const;
109  const char* text( const char* undefval) const
110  { return text(0,undefval); }
111 
112  int getIntValue( mDeclArgs(int) ) const;
114  bool getBoolValue( mDeclArgs(bool) ) const;
115 
116  double getDValue( mDeclArgs(double) ) const;
117  double getDValue( double undefval ) const
118  { return getDValue(0,undefval) ; }
119 
120  float getFValue( mDeclArgs(float) ) const;
121  float getFValue( float undefval ) const
122  { return getFValue(0,undefval); }
123 
124  inline Interval<int> getIInterval( mDeclArgs(int) ) const
125  { return Interval<int>( getIntValue(nr*2,undefval),
126  getIntValue(nr*2+1,undefval) );}
127 
128  inline Interval<float> getFInterval( mDeclArgs(float) ) const
129  { return Interval<float>( getFValue(nr*2,undefval),
130  getFValue(nr*2+1,undefval) );}
131  inline Interval<float> getFInterval( float undefval ) const
132  { return getFInterval(0,undefval); }
133 
134  inline Interval<double> getDInterval( mDeclArgs(double) ) const
135  { return Interval<double>(getDValue(nr*2,undefval),
136  getDValue(nr*2+1,undefval) );}
137  inline Interval<double> getDInterval( double undefval ) const
138  { return getDInterval(0,undefval); }
139 
141  { return StepInterval<int>(getIntValue(nr*3,undefval),
142  getIntValue(nr*3+1,undefval),
143  getIntValue(nr*3+2,undefval)
144  ); }
146  { return StepInterval<float>(getFValue(nr*3,undefval),
147  getFValue(nr*3+1,undefval),
148  getFValue(nr*3+2,undefval)
149  ); }
150  inline StepInterval<float> getFStepInterval( float undefval ) const
151  { return getFStepInterval(0,undefval); }
152 
154  { return StepInterval<double>(getDValue(nr*3,undefval),
155  getDValue(nr*3+1,undefval),
156  getDValue(nr*3+2,undefval) ); }
157  inline StepInterval<double> getDStepInterval( double undefval ) const
158  { return getDStepInterval(0,undefval); }
159 
160  Coord getCoord( mDeclArgs(double) ) const;
161  BinID getBinID( mDeclArgs(int) ) const;
162  int getTrcNr( mDeclArgs(int) ) const;
163  float getOffset( mDeclArgs(float) ) const;
164 
166 
167 
168 #undef mDeclArgs
169 
170  void setText(const char*,int nr=0);
171  void setValue(int,int nr=0);
172  void setValue(od_int64,int nr=0);
173  void setValue(double,int nr=0);
174  void setValue(float,int nr=0);
175  void setValue(bool,int nr=0);
176 
177  inline void setTexts( const char* v1, const char* v2 )
178  { setText(v1,0); setText(v2,1); }
179  inline void setValues( int v1, int v2 )
180  { setValue(v1,0); setValue(v2,1); }
181  inline void setValues( double v1, double v2 )
182  { setValue(v1,0); setValue(v2,1); }
183  inline void setValues( float v1, float v2 )
184  { setValue(v1,0); setValue(v2,1); }
185  inline void setValues( bool v1, bool v2 )
186  { setValue(v1,0); setValue(v2,1); }
187  inline void setValue( const Coord& c )
188  { setValue(c.x,0); setValue(c.y,1); }
189  inline void setValue( const BinID& b )
190  { setValue(b.inl(),0); setValue(b.crl(),1); }
191  inline void setValue(const BinIDValue&);
192  void setValue(const Interval<int>&);
193  void setValue(const Interval<float>&);
194  void setValue(const Interval<double>&);
195 
196  void displayField(bool yn=true,int elemnr=-1,int fldnr=-1);
197  void setReadOnly( bool yn=true,int elemnr=-1,int fldnr=-1);
198  void setSensitive(bool yn=true,int elemnr=-1,int fldnr=-1);
199  void setEmpty(int nr=-1);
200 
204  int nrElements() const;
205  void setElemSzPol( uiObject::SzPolicy p ) { elemszpol_=p;}
206  uiObject::SzPolicy elemSzPol() const { return elemszpol_; }
207  void setToolTip(const uiString&,int ielem=0);
208 
209  virtual const uiString& titleText();
210  virtual void setTitleText(const uiString&);
211 
212  void setChecked(bool yn);
213  bool isChecked() const { return checked_; }
214  bool isCheckable() const { return withchk_ || cbox_; }
215 
216  virtual bool isSingleLine() const { return true; }
217 
218  void setWithCheck( bool yn=true ) { withchk_ = yn; }
219  void setWithSelect( bool yn=true );
220 
221  void setNrDecimals(int nrdec,int fldnr=0);
222  void setRequired(bool yn=true);
223  void setPrefix(const uiString&r,int fldnr=0);
224 
229 
230 protected:
231 
234 
236 
238  bool withchk_;
240 
244  uiButton* selbut_;
245  uiTextValidator* textvl_ = nullptr;
246 
250  virtual void doSelect(CallBacker*) {}
252 
254 
258  inline DataInpSpec* spec( int nr )
259  {
260  return const_cast<DataInpSpec*>
261  ( ((const uiGenInput*)this)->dataInpSpec(nr) );
262  }
263 
264 private:
265 
266  bool checked_;
267 
268  bool rdonly_;
270 
272 
274 
275  DataInpSpec* getInputSpecAndIndex(const int,int&) const;
276  uiGenInputInputFld* getInputFldAndIndex(const int,int&) const;
277 
278 public:
279  mDeprecated ("Use uiString")
280  uiGenInput(uiParent* p,const char* disptxt,
281  const char* inputStr=nullptr);
282 
284  uiGenInput(uiParent* p,const char* disptxt,
285  const DataInpSpec&);
286 
288  uiGenInput(uiParent* p,const char* disptxt,
289  const DataInpSpec&,const DataInpSpec&);
290 
292  uiGenInput(uiParent* p,const char* disptxt,
293  const DataInpSpec&,const DataInpSpec&,
294  const DataInpSpec& );
295 
297  double getdValue( int nr=0, double uv=mUdf(double) ) const
298  { return getDValue( nr, uv ); }
299  mDeprecated ("Use getDValue")
300  double getdValue( float undefval ) const
301  { return getDValue(0,undefval); }
302 
303  mDeprecated ("Use getFValue")
304  float getfValue( int nr=0, float udfval=mUdf(float) ) const
305  { return getFValue( nr, udfval ); }
306  mDeprecated ("Use getFValue")
307  float getfValue( float undefval ) const
308  { return getFValue(0,undefval); }
309 };
310 
311 
UserInputObj::setText
virtual void setText(const char *)=0
uiGenInput::doSelect_
void doSelect_(CallBacker *)
Select is pressed. Calls virtual doSelect.
uiGenInput::displayField
void displayField(bool yn=true, int elemnr=-1, int fldnr=-1)
uiGenInput::setValues
void setValues(bool v1, bool v2)
Definition: uigeninput.h:185
uiGenInput::updateRequested
Notifier< uiGenInput > updateRequested
Definition: uigeninput.h:228
uiGenInput::getDStepInterval
StepInterval< double > getDStepInterval(int nr=0, double undefval=mUdf(double)) const
Definition: uigeninput.h:153
uiGenInput::setEmpty
void setEmpty(int nr=-1)
uiGenInput::getInt64Value
od_int64 getInt64Value(int nr=0, od_int64 undefval=mUdf(od_int64)) const
uiGenInput::getFInterval
Interval< float > getFInterval(float undefval) const
Definition: uigeninput.h:131
uiGenInput::getIntValue
int getIntValue(int nr=0, int undefval=mUdf(int)) const
uiGenInput::getDStepInterval
StepInterval< double > getDStepInterval(double undefval) const
Definition: uigeninput.h:157
uiGenInput::setElemSzPol
void setElemSzPol(uiObject::SzPolicy p)
Definition: uigeninput.h:205
uiLineEdit
Definition: uilineedit.h:100
Pos::IdxPair::crl
IdxType & crl()
Definition: posidxpair.h:47
uiGenInput::getInputFldAndIndex
uiGenInputInputFld * getInputFldAndIndex(const int, int &) const
uiGenInput::element
UserInputObj * element(int idx)
returns 0 if not finalised.
uiGenInput::checked_
bool checked_
Definition: uigeninput.h:266
uiGenInput::doFinalise
void doFinalise(CallBacker *)
uiGenInput::valuechanged
Notifier< uiGenInput > valuechanged
Definition: uigeninput.h:227
uiGenInput::getBinID
BinID getBinID(int nr=0, int undefval=mUdf(int)) const
uiGenInput::setChecked
void setChecked(bool yn)
uistring.h
uiGenInput::withchk_
bool withchk_
Definition: uigeninput.h:238
uiGenInput::isCheckable
bool isCheckable() const
Definition: uigeninput.h:214
uiGenInput::setValue
void setValue(const Interval< int > &)
and StepIntv
uiGenInput::setValue
void setValue(bool, int nr=0)
ObjectSet< uiGenInputInputFld >
uiGenInput::nrElements
int nrElements() const
uiGenInput::setSensitive
void setSensitive(bool yn=true, int elemnr=-1, int fldnr=-1)
uiGenInput::setValue
void setValue(int, int nr=0)
uiGenInput::setTextValidator
void setTextValidator(const uiTextValidator &)
od_int64
#define od_int64
Definition: plftypes.h:35
uiGenInput::setValue
void setValue(od_int64, int nr=0)
uiGenInput::isSingleLine
virtual bool isSingleLine() const
Definition: uigeninput.h:216
uiGenInput::uiGenInput
mODTextTranslationClass(uiGenInput) public uiGenInput(uiParent *p, const uiString &disptxt, const DataInpSpec &)
uiGenInput::isrequired_
bool isrequired_
Definition: uigeninput.h:239
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
uiCheckBox
Definition: uibutton.h:167
uiGenInput::setValues
void setValues(int v1, int v2)
Definition: uigeninput.h:179
uiGenInput::getFInterval
Interval< float > getFInterval(int nr=0, float undefval=mUdf(float)) const
Definition: uigeninput.h:128
uiGenInput::setPrefix
void setPrefix(const uiString &r, int fldnr=0)
uiGenInput::getFValue
float getFValue(float undefval) const
Definition: uigeninput.h:121
uiGenInput::getIInterval
Interval< int > getIInterval(int nr=0, int undefval=mUdf(int)) const
Definition: uigeninput.h:124
uiGenInput::updateSpecs
void updateSpecs()
update dataInpSpec() from current values on screen.
uiGenInput::getFValue
float getFValue(int nr=0, float undefval=mUdf(float)) const
uiGenInput::setWithSelect
void setWithSelect(bool yn=true)
uiGenInput::setValues
void setValues(double v1, double v2)
Definition: uigeninput.h:181
uiGenInput::doClear
void doClear(CallBacker *)
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
uiGenInput::spec
DataInpSpec * spec(int nr)
Definition: uigeninput.h:258
uiGenInput::getFStepInterval
StepInterval< float > getFStepInterval(int nr=0, float undefval=mUdf(float)) const
Definition: uigeninput.h:145
uiGenInput::checkBoxSel
void checkBoxSel(CallBacker *)
uiGenInput::getCoord
Coord getCoord(int nr=0, double undefval=mUdf(double)) const
uiGenInput::setValue
void setValue(const BinID &b)
Definition: uigeninput.h:189
uiGenInput::getDInterval
Interval< double > getDInterval(double undefval) const
Definition: uigeninput.h:137
mODTextTranslationClass
#define mODTextTranslationClass(clss)
Definition: uistring.h:40
uigroup.h
uiGenInput::uiGenInput
uiGenInput(uiParent *p, const uiString &, const DataInpSpec &, const DataInpSpec &)
uiGenInput::~uiGenInput
virtual ~uiGenInput()
uiGenInput
General Input Element.
Definition: uigeninput.h:59
uiGenInput::addInput
void addInput(const DataInpSpec &)
uiGenInput::setTexts
void setTexts(const char *v1, const char *v2)
Definition: uigeninput.h:177
uiGenInput::cbox_
uiCheckBox * cbox_
Definition: uigeninput.h:243
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
StepInterval< int >
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
UserInputObj::setValue
virtual void setValue(const char *s)
uiGenInput::getIStepInterval
StepInterval< int > getIStepInterval(int nr=0, int undefval=mUdf(int)) const
Definition: uigeninput.h:140
uiGenInput::uiGenInput
uiGenInput(uiParent *p, const uiString &, const DataInpSpec &, const DataInpSpec &, const DataInpSpec &)
uiGenInput::setWithCheck
void setWithCheck(bool yn=true)
Definition: uigeninput.h:218
uiGenInput::setValue
void setValue(const Coord &c)
Definition: uigeninput.h:187
uiGenInput::getDValue
double getDValue(int nr=0, double undefval=mUdf(double)) const
uiGroup
Definition: uigroup.h:54
uiGenInput::setTitleText
virtual void setTitleText(const uiString &)
uiGenInput::labl_
uiLabel * labl_
Definition: uigeninput.h:241
uiGenInput::titleText
virtual const uiString & titleText()
mDeprecated
#define mDeprecated(msg)
Definition: plfdefs.h:215
uiGenInput::setValues
void setValues(float v1, float v2)
Definition: uigeninput.h:183
uiGenInput::getInputSpecAndIndex
DataInpSpec * getInputSpecAndIndex(const int, int &) const
uiGenInput::newSpec
bool newSpec(const DataInpSpec &nw, int nr)
makes it possible to change the actual spec for an input field.
uiGenInput::idxes_
TypeSet< uiGenInputFieldIdx > & idxes_
Definition: uigeninput.h:233
Notifier< uiGenInput >
DataInpSpec
Specification of input characteristics.
Definition: datainpspec.h:90
uiGenInput::rdonly_
bool rdonly_
Definition: uigeninput.h:268
uiGenInput::setValue
void setValue(double, int nr=0)
uiGenInput::setValue
void setValue(float, int nr=0)
uiGenInput::setNrDecimals
void setNrDecimals(int nrdec, int fldnr=0)
uiGenInput::valuechanging
Notifier< uiGenInput > valuechanging
Definition: uigeninput.h:226
uiGenInput::getTrcNr
int getTrcNr(int nr=0, int undefval=mUdf(int)) const
datainpspec.h
uiGenInput::getDValue
double getDValue(double undefval) const
Definition: uigeninput.h:117
uiGenInput::elemszpol_
uiObject::SzPolicy elemszpol_
Definition: uigeninput.h:273
position.h
UserInputObj::getDValue
virtual double getDValue() const =0
uiGenInput::getDInterval
Interval< double > getDInterval(int nr=0, double undefval=mUdf(double)) const
Definition: uigeninput.h:134
UserInputObj::text
virtual const char * text() const =0
uiGenInput::selText_
uiString selText_
Definition: uigeninput.h:237
uiGenInput::flds_
ObjectSet< uiGenInputInputFld > flds_
Definition: uigeninput.h:232
uiObject::SzPolicy
SzPolicy
How should the object's size behave? Undef : use default. Small : 1 base sz. Medium : 2* base sz + 1....
Definition: uiobj.h:55
uiObject
The base class for most UI elements.
Definition: uiobj.h:38
uiGenInput::setReadOnly
void setReadOnly(bool yn=true, int elemnr=-1, int fldnr=-1)
uiGenInput::getOffset
float getOffset(int nr=0, float undefval=mUdf(float)) const
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
uiGenInput::setToolTip
void setToolTip(const uiString &, int ielem=0)
uiGenInput::rdonlyset_
bool rdonlyset_
Definition: uigeninput.h:269
uiGenInput::finalised_
bool finalised_
Definition: uigeninput.h:235
uiGenInput::text
const char * text(const char *undefval) const
Definition: uigeninput.h:109
Pos::IdxPair::inl
IdxType & inl()
Definition: posidxpair.h:42
Geom::Point2D::y
T y
Definition: geometry.h:68
uiGenInput::checked
Notifier< uiGenInput > checked
Definition: uigeninput.h:225
UserInputObj::getFValue
virtual float getFValue() const =0
uiLabel
Definition: uilabel.h:24
Geom::Point2D::x
T x
Definition: geometry.h:67
BinIDValue
BinID and a value.
Definition: binidvalue.h:31
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
uiGenInput::setRequired
void setRequired(bool yn=true)
uiGenInput::dataInpSpec
const DataInpSpec * dataInpSpec(int nr=0) const
gives access to the actual spec of an input field.
uiGenInput::setValue
void setValue(const Interval< double > &)
and StepIntv
uiParent
Definition: uiparent.h:26
uiGenInputInputFld
Generalised data input field.
Definition: uigeninput_impl.h:33
uiGenInput::setValue
void setValue(const Interval< float > &)
and StepIntv
uiGenInput::elemSzPol
uiObject::SzPolicy elemSzPol() const
Definition: uigeninput.h:206
uiGenInput::getFStepInterval
StepInterval< float > getFStepInterval(float undefval) const
Definition: uigeninput.h:150
uiGenInput::setText
void setText(const char *, int nr=0)
uiGenInput::isUndef
bool isUndef(int nr=0) const
Interval< int >
UserInputObj
Definition: userinputobj.h:25
uiGenInput::createInpFld
uiGenInputInputFld & createInpFld(const DataInpSpec &)
DataInpField factory.
uiGenInput::getBoolValue
bool getBoolValue(int nr=0, bool undefval=mUdf(bool)) const
UserInputObj::getIntValue
virtual int getIntValue() const =0
uiGenInput::titletext_
uiString titletext_
Definition: uigeninput.h:242
uiGenInput::setValue
void setValue(const BinIDValue &)
mDeclArgs
#define mDeclArgs(type)
Definition: uigeninput.h:106
uiGenInput::text
const char * text(int nr=0, const char *undefval=mUdf(const char *)) const
uiGenInput::mDeprecated
mDeprecated("Use uiString") uiGenInput(uiParent *p
uiGenInput::isChecked
bool isChecked() const
Definition: uigeninput.h:213
uiGenInput::doSelect
virtual void doSelect(CallBacker *)
Select is pressed. Called by doSelect_.
Definition: uigeninput.h:250
uiGenInput::inputs_
ObjectSet< DataInpSpec > inputs_
Definition: uigeninput.h:271
uiTextValidator
Definition: uilineedit.h:56
TypeSet< uiGenInputFieldIdx >
uiGenInput::selbut_
uiButton * selbut_
Definition: uigeninput.h:244
uiGenInput::rightObj
uiObject * rightObj()
for attaching

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