OpendTect  6.6
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  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uicmddrivermod.h"
15 #include "bufstringset.h"
16 #include "factory.h"
17 
18 
19 class uiMainWin;
20 
21 namespace CmdDrive
22 {
23 
24 class CmdDriver;
25 class WildcardManager;
26 
27 mExpClass(uiCmdDriver) Function
28 {
29 public:
30 
32  static void initStandardFunctions();
33  static BufferString factoryKey(const char* name);
34 
35  Function(const CmdDriver& cmddrv)
36  : drv_(cmddrv)
37  {}
38  virtual ~Function() {}
39 
40  virtual const char* name() const =0;
41  virtual bool eval(const BufferStringSet& args,
42  BufferString& res) const =0;
43 
44 
45 protected:
46 
47  static BufferString createFactoryKey(const char* keyword);
48 
49  const CmdDriver& drv_;
50 
51  bool openQDlg() const;
52  const uiMainWin* curWin() const;
53  const uiMainWin* applWin() const;
54 
55  const WildcardManager& wildcardMan() const;
56 };
57 
58 
59 #define mStartDeclFunClassNoEval(funkey,parentclass) \
60 \
61 mExpClass(uiCmdDriver) funkey##Func : public parentclass \
62 { \
63 public: \
64  funkey##Func(const CmdDriver& cmddrv) \
65  : parentclass(cmddrv) \
66  { \
67  name_ = keyWord(); \
68  *name_.getCStr() = mCast(char,tolower(*name_.buf())); \
69  } \
70 \
71  static const char* keyWord() { return #funkey; } \
72  virtual const char* name() const { return name_; } \
73 protected: \
74  BufferString name_;
75 
76 
77 #define mStartDeclFunClass(funkey,parentclass) \
78 \
79  mStartDeclFunClassNoEval(funkey,parentclass) \
80 public: \
81  virtual bool eval(const BufferStringSet& args, \
82  BufferString& res) const; \
83 \
84  static Function* createInstance(const CmdDriver& cmddrv) \
85  { return new funkey##Func(cmddrv); } \
86  static void initClass() \
87  { factory().addCreator( createInstance, \
88  createFactoryKey(keyWord()) ); }
89 
90 #define mEndDeclFunClass \
91 };
92 
93 
113 
120 
127 
130 
133 
137 
141 
144 
146 
147 }; // namespace CmdDrive
148 
149 
CmdDrive::Function::name
virtual const char * name() const =0
Stats::Sum
@ Sum
Definition: stattype.h:26
uiMainWin
User interface main window.
Definition: uimainwin.h:35
factory.h
CmdDrive::CmdDriver
Definition: cmddriver.h:103
mEndDeclFunClass
#define mEndDeclFunClass
Definition: cmdfunction.h:90
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
CmdDrive::Function::factoryKey
static BufferString factoryKey(const char *name)
CmdDrive::Function::~Function
virtual ~Function()
Definition: cmdfunction.h:38
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Math::Floor
float Floor(float)
CmdDrive::Function::curWin
const uiMainWin * curWin() const
CmdDrive::Function::eval
virtual bool eval(const BufferStringSet &args, BufferString &res) const =0
CmdDrive::Function::applWin
const uiMainWin * applWin() const
CmdDrive::Function::Function
Function(const CmdDriver &cmddrv)
Definition: cmdfunction.h:35
Math::Abs
unsigned int Abs(unsigned int i)
Definition: math2.h:79
CmdDrive::Function
Definition: cmdfunction.h:28
CmdDrive::Function::createFactoryKey
static BufferString createFactoryKey(const char *keyword)
CmdDrive::Function::wildcardMan
const WildcardManager & wildcardMan() const
mStartDeclFunClass
#define mStartDeclFunClass(funkey, parentclass)
Definition: cmdfunction.h:77
CmdDrive::Function::mDefineFactory1ParamInClass
mDefineFactory1ParamInClass(Function, const CmdDriver &, factory)
File::Log
@ Log
Definition: file.h:122
Math::Exp
float Exp(float)
Math::Atan2
float Atan2(float y, float x)
CmdDrive::Function::initStandardFunctions
static void initStandardFunctions()
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
Math::Ceil
float Ceil(float)
bufstringset.h
Stats::Min
@ Min
Definition: stattype.h:25
CmdDrive
Command Drive
Definition: canvascommands.h:22
CmdDrive::Function::drv_
const CmdDriver & drv_
Definition: cmdfunction.h:49
Stats::Max
@ Max
Definition: stattype.h:25
Math::Sqrt
float Sqrt(float)
CmdDrive::Function::openQDlg
bool openQDlg() const
CmdDrive::WildcardManager
Definition: searchkey.h:57

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