NEURON
objcmd.h
Go to the documentation of this file.
1 #ifndef objcmd_h
2 #define objcmd_h
3 
4 #include <OS/string.h>
5 #include <InterViews/observe.h>
6 #if HAVE_IV
7 #include <InterViews/action.h>
8 #include "rubband.h"
9 #endif
10 
11 struct Object;
12 
13 // command to be executed within scope of object.
14 
15 class HocCommand : public Observer{
16 public:
17  HocCommand(const char*);
18  HocCommand(const char*, Object*);
19  HocCommand(Object* paction); // Python method call or tuple with args
20  virtual ~HocCommand();
21  int execute(bool notify = true);
22  int execute(const char*, bool notify = true);
23  int exec_strret(char* buf, int size, bool notify = true); // for python callback returning a string
24  const char* name();
25  virtual void update(Observable*);
26  virtual void audit();
27  virtual void help();
28  double func_call(int narg, int* perr = NULL); //perr used only by pyobject
29  Object* object() { return obj_; }
30  Object* pyobject() { return po_; }
31 private:
32  void init(const char*, Object*);
33 private:
37 };
38 
39 #if HAVE_IV
40 class HocCommandAction : public Action {
41 public:
42  HocCommandAction(HocCommand*);
43  virtual ~HocCommandAction();
44  virtual void execute();
45 private:
46  HocCommand* hc_;
47 };
48 
49 class HocCommandTool : public Rubberband {
50 public:
51  HocCommandTool(HocCommand*);
52  virtual ~HocCommandTool();
53  virtual bool event(Event&);
54  HocCommand* hc_;
55 };
56 #endif
57 
58 #endif
virtual void audit()
Definition: objcmd.cpp:92
virtual void help()
Definition: objcmd.cpp:68
static int narg()
Definition: ivocvect.cpp:135
virtual ~HocCommand()
Definition: objcmd.cpp:56
const char * name()
Definition: objcmd.cpp:84
int execute(bool notify=true)
Definition: objcmd.cpp:105
#define Event
Definition: _defines.h:107
Object * obj_
Definition: objcmd.h:34
int exec_strret(char *buf, int size, bool notify=true)
Definition: objcmd.cpp:126
CopyString * s_
Definition: objcmd.h:35
HocCommand(const char *)
Definition: objcmd.cpp:22
Definition: hocdec.h:226
double func_call(int narg, int *perr=NULL)
Definition: objcmd.cpp:151
void init(const char *, Object *)
Definition: objcmd.cpp:41
#define Action
Definition: _defines.h:27
char buf[512]
Definition: init.cpp:13
Object * object()
Definition: objcmd.h:29
return NULL
Definition: cabcode.cpp:461
virtual void update(Observable *)
Definition: objcmd.cpp:50
Object * po_
Definition: objcmd.h:36
Object * pyobject()
Definition: objcmd.h:30