OpendTect  6.3
uimathformula.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: Bert
8  Date: Apr 2014
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uiiocommon.h"
14 #include "uigroup.h"
15 #include "uistrings.h"
16 #include "mathformula.h"
17 #include "propertyref.h"
18 class uiButton;
19 class uiUnitSel;
20 class uiToolButton;
21 class uiToolButtonSetup;
22 class uiMathExpression;
24 class CtxtIOObj;
25 class UnitOfMeasure;
26 namespace Math { class Form; }
27 
28 
29 /* edits a Math::Formula */
30 
31 
34 public:
35 
37  {
38  public:
40  : label_(lbl)
41  , maxnrinps_(6)
42  , withsubinps_(false)
43  , withunits_(true)
44  , proptype_(PropertyRef::Other) {}
45 
46  mDefSetupMemb(uiString,label);
47  mDefSetupMemb(int,maxnrinps);
48  mDefSetupMemb(BufferString,stortype); // if empty, no I/O
49  mDefSetupMemb(bool,withsubinps);
50  mDefSetupMemb(bool,withunits);
51  mDefSetupMemb(PropertyRef::StdType,proptype); // used if withunits_
52 
53  };
54 
55  uiMathFormula(uiParent*,Math::Formula&,const Setup&);
56  ~uiMathFormula();
57 
58 
59  void setNonSpecInputs(const BufferStringSet&,int iinp=-1);
60  void setNonSpecSubInputs(const BufferStringSet&,int iinp=-1);
61 
62  bool setText(const char*);
63  const char* text() const;
64 
65  bool useForm(const TypeSet<PropertyRef::StdType>* inptyps=0);
66  bool updateForm() const;
67 
68  // shortcuts for things available in form
69  int nrInputs() const;
70  const char* getInput(int) const;
71  bool isSpec(int) const;
72  bool isConst(int) const;
73  double getConstVal(int) const;
74  const UnitOfMeasure* getUnit() const;
75 
76  uiButton* addButton(const uiToolButtonSetup&);
77  void addInpViewIcon(const char* icnm,const uiString& tooltip,
78  const CallBack&);
79 
84 
85  uiMathExpression* exprFld() { return exprfld_; }
86  int nrInpFlds() const { return inpflds_.size(); }
87  uiMathExpressionVariable* inpFld( int idx ) { return inpflds_[idx]; }
88  uiUnitSel* unitFld() { return unitfld_; }
89  int inpSelNotifNr() const { return notifinpnr_; }
90  int vwLogInpNr(CallBacker*) const;
91  bool checkValidNrInputs() const;
92 
93 protected:
94 
103 
104  Setup setup_;
107 
108  BufferString getIOFileName(bool forread);
109  bool setNotifInpNr(const CallBacker*);
110 
111  void initFlds(CallBacker*);
112  void formSetCB(CallBacker*);
113  void inpSetCB(CallBacker*);
114  void subInpSetCB(CallBacker*);
115  void formUnitSetCB(CallBacker*);
116  void recButPush(CallBacker*);
117  void readReq(CallBacker*);
118  void writeReq(CallBacker*);
119 
120 };
Definition: uigroup.h:53
#define mExpClass(module)
Definition: commondefs.h:157
uiToolButton * savebut_
Definition: uimathformula.h:101
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
CtxtIOObj & ctio_
Definition: uimathformula.h:106
int notifinpnr_
Definition: uimathformula.h:102
Selector for UnitOfMeasure&#39;s.
Definition: uiunitsel.h:36
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Setup setup_
Definition: uimathformula.h:104
Ref Data for a (usually petrophysical) property.
Definition: propertyref.h:40
Notifier< uiMathFormula > subInpSet
Definition: uimathformula.h:82
Notifier< uiMathFormula > inpSet
Definition: uimathformula.h:81
uiToolButton * recbut_
Definition: uimathformula.h:99
Definition: odinst.h:40
Definition: uistring.h:88
Definition: uiparent.h:24
uiMathExpression * exprfld_
Definition: uimathformula.h:96
Set of BufferString objects.
Definition: bufstringset.h:25
Holds an IOObjCtxt plus a pointer to an IOObj and/or an IOPar.
Definition: ctxtioobj.h:24
uiUnitSel * unitFld()
Definition: uimathformula.h:88
Definition: uitoolbutton.h:74
Math formula: (expression, inputs, units, calculation, storage).
Definition: mathformula.h:64
Set of (small) copyable elements.
Definition: commontypes.h:26
TypeSet< double > recvals_
Definition: uimathformula.h:105
uiMathExpression * exprFld()
Definition: uimathformula.h:85
uiMathExpressionVariable * inpFld(int idx)
Definition: uimathformula.h:87
Definition: uimathexpressionvariable.h:26
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
Notifier< uiMathFormula > formUnitSet
Definition: uimathformula.h:83
Notifier< uiMathFormula > formSet
Definition: uimathformula.h:80
Definition: uimathformula.h:32
Math::Formula & form_
Definition: uimathformula.h:95
int nrInpFlds() const
Definition: uimathformula.h:86
uiUnitSel * unitfld_
Definition: uimathformula.h:98
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
ObjectSet< uiMathExpressionVariable > inpflds_
Definition: uimathformula.h:97
int inpSelNotifNr() const
Definition: uimathformula.h:89
Definition: math2.h:27
Definition: uitoolbutton.h:20
StdType
Definition: propertyref.h:44
Definition: uimathformula.h:36
Definition: uimathexpression.h:24
static uiString sEmptyString()
Definition: uistrings.h:307
CallBacks object-oriented (object + method).
Definition: callback.h:62
Setup(const uiString &lbl=uiStrings::sEmptyString())
Definition: uimathformula.h:39
Unit of Measure.
Definition: unitofmeasure.h:33
uiToolButton * openbut_
Definition: uimathformula.h:100

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