OpendTect  6.3
cmdfunction.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: Jaap Glas
8  Date: April 2011
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uicmddrivermod.h"
14 #include "bufstringset.h"
15 #include "factory.h"
16 
17 
18 class uiMainWin;
19 
20 namespace CmdDrive
21 {
22 
23 class CmdDriver;
24 class WildcardManager;
25 
26 mExpClass(uiCmdDriver) Function
27 {
28 public:
29 
30  mDefineFactory1ParamInClass( Function, const CmdDriver&, factory );
31  static void initStandardFunctions();
32  static BufferString factoryKey(const char* name);
33 
34  Function(const CmdDriver& cmddrv)
35  : drv_(cmddrv)
36  {}
37  virtual ~Function() {}
38 
39  virtual const char* name() const =0;
40  virtual bool eval(const BufferStringSet& args,
41  BufferString& res) const =0;
42 
43 
44 protected:
45 
46  static BufferString createFactoryKey(const char* keyword);
47 
48  const CmdDriver& drv_;
49 
50  bool openQDlg() const;
51  const uiMainWin* curWin() const;
52  const uiMainWin* applWin() const;
53 
54  const WildcardManager& wildcardMan() const;
55 };
56 
57 
58 #define mStartDeclFunClassNoEval(funkey,parentclass) \
59 \
60 mExpClass(uiCmdDriver) funkey##Func : public parentclass \
61 { \
62 public: \
63  funkey##Func(const CmdDriver& cmddrv) \
64  : parentclass(cmddrv) \
65  { \
66  name_ = keyWord(); \
67  *name_.getCStr() = mCast(char,tolower(*name_.buf())); \
68  } \
69 \
70  static const char* keyWord() { return #funkey; } \
71  virtual const char* name() const { return name_; } \
72 protected: \
73  BufferString name_;
74 
75 
76 #define mStartDeclFunClass(funkey,parentclass) \
77 \
78  mStartDeclFunClassNoEval(funkey,parentclass) \
79 public: \
80  virtual bool eval(const BufferStringSet& args, \
81  BufferString& res) const; \
82 \
83  static Function* createInstance(const CmdDriver& cmddrv) \
84  { return new funkey##Func(cmddrv); } \
85  static void initClass() \
86  { factory().addCreator( createInstance, \
87  createFactoryKey(keyWord()) ); }
88 
89 #define mEndDeclFunClass \
90 };
91 
92 
112 
119 
126 
129 
132 
136 
140 
143 
145 
146 }; // namespace CmdDrive
#define mExpClass(module)
Definition: commondefs.h:157
User interface main window.
Definition: uimainwin.h:34
virtual ~Function()
Definition: cmdfunction.h:37
Function(const CmdDriver &cmddrv)
Definition: cmdfunction.h:34
Command Drive
Definition: canvascommands.h:20
Definition: stattype.h:25
float Ceil(float)
float Cos(float)
Definition: searchkey.h:55
float Atan2(float y, float x)
Definition: file.h:109
Set of BufferString objects.
Definition: bufstringset.h:25
Definition: stattype.h:24
unsigned int Abs(unsigned int i)
Definition: math2.h:78
#define mDefineFactory1ParamInClass(T, P, funcname)
Definition: factory.h:445
float Floor(float)
float Sin(float)
Definition: stattype.h:24
#define mEndDeclFunClass
Definition: cmdfunction.h:89
const CmdDriver & drv_
Definition: cmdfunction.h:48
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Definition: cmdfunction.h:26
float Exp(float)
float Sqrt(float)
#define mStartDeclFunClass(funkey, parentclass)
Definition: cmdfunction.h:76
Definition: cmddriver.h:102

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