NEURON
oc2iv.h
Go to the documentation of this file.
1 #ifndef oc2iv_h
2 #define oc2iv_h
3 
4 #include <string.h>
5 #include <stdio.h>
6 // common things in oc that can be used by ivoc
7 #include "hocdec.h"
8 
9 // xmenu
10 #define CChar const char
11 extern void hoc_ivpanel(CChar*, bool h = false);
12 extern void hoc_ivpanelmap(int scroll = -1);
13 extern void hoc_ivbutton(CChar* name, CChar* action, Object* pyact = 0);
14 extern void hoc_ivradiobutton(CChar* name, CChar* action, bool activate = false, Object* pyact = 0);
15 extern void hoc_ivmenu(CChar*, bool add2menubar = false);
16 extern void hoc_ivvarmenu(CChar*, CChar*, bool add2menubar = false, Object* pyvar = NULL);
17 extern void hoc_ivvalue(CChar* name, CChar* variable, bool deflt = false, Object* pyvar = 0);
19  CChar* variable,
20  bool deflt = false,
21  bool usepointer = false);
22 extern void hoc_ivvalue_keep_updated(CChar* name, CChar* variable, Object* pyvar = 0);
23 extern void hoc_ivpvalue(CChar* name, double*, bool deflt = false, HocSymExtension* extra = NULL);
24 extern void hoc_ivvaluerun(CChar* name,
25  CChar* variable,
26  CChar* action,
27  bool deflt = false,
28  bool canrun = false,
29  bool usepointer = false,
30  Object* pyvar = 0,
31  Object* pyact = 0);
33  CChar* var,
34  double* pvar,
35  Object* pyvar,
36  CChar* action,
37  Object* pyact,
38  bool deflt = false,
39  bool canrun = false,
40  bool usepointer = false,
41  HocSymExtension* extra = NULL);
42 extern void hoc_ivpvaluerun(CChar* name,
43  double*,
44  CChar* action,
45  bool deflt = false,
46  bool canrun = false,
47  HocSymExtension* extra = NULL);
48 
49 extern void hoc_ivlabel(CChar*);
50 extern void hoc_ivvarlabel(char**, Object* pyvar = 0);
51 extern void hoc_ivstatebutton(double*,
52  CChar* name,
53  CChar* action,
54  int style,
55  Object* pyvar = 0,
56  Object* pyact = 0);
57 extern void hoc_ivslider(double*,
58  float low = 0,
59  float high = 100,
60  float resolution = 1,
61  int steps = 10,
62  const char* send_cmd = NULL,
63  bool vert = false,
64  bool slow = false,
65  Object* pyvar = 0,
66  Object* pyact = 0);
67 
68 inline double* object_pval(Symbol* sym, Objectdata* od) {
69  return od[sym->u.oboff].pval;
70 }
71 inline char* object_str(Symbol* sym, Objectdata* od) {
72  return *od[sym->u.oboff].ppstr;
73 }
74 inline char** object_pstr(Symbol* sym, Objectdata* od) {
75  return od[sym->u.oboff].ppstr;
76 }
77 inline Object** object_pobj(Symbol* sym, Objectdata* od) {
78  return od[sym->u.oboff].pobj;
79 }
81  return od[sym->u.oboff].psecitm;
82 }
83 
84 class Oc2IV {
85  public:
86  static char** object_pstr(const char* symname, Object* = NULL);
87  static char* object_str(const char* symname, Object* = NULL);
88 };
89 
90 struct Symlist;
91 
92 #ifndef OCMATRIX
93 
95  public:
96  ParseTopLevel();
97  virtual ~ParseTopLevel();
98  void save();
99  void restore();
100 
101  private:
105  bool restored_;
106 };
107 #endif
108 
109 #endif
Definition: oc2iv.h:84
static char ** object_pstr(const char *symname, Object *=NULL)
Definition: oc2iv.cpp:25
static char * object_str(const char *symname, Object *=NULL)
Definition: oc2iv.cpp:14
virtual ~ParseTopLevel()
Definition: oc2iv.cpp:51
Object * obsav_
Definition: oc2iv.h:103
Objectdata * obdsav_
Definition: oc2iv.h:102
Symlist * symsav_
Definition: oc2iv.h:104
void save()
Definition: oc2iv.cpp:54
void restore()
Definition: oc2iv.cpp:72
bool restored_
Definition: oc2iv.h:105
ParseTopLevel()
Definition: oc2iv.cpp:47
double var(InputIterator begin, InputIterator end)
Definition: ivocvect.h:101
char * name
Definition: init.cpp:16
#define CChar
Definition: oc2iv.h:10
char ** object_pstr(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:74
void hoc_ivvarlabel(char **, Object *pyvar=0)
Object ** object_pobj(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:77
void hoc_ivvaluerun_ex(CChar *name, CChar *var, double *pvar, Object *pyvar, CChar *action, Object *pyact, bool deflt=false, bool canrun=false, bool usepointer=false, HocSymExtension *extra=NULL)
void hoc_ivvalue(CChar *name, CChar *variable, bool deflt=false, Object *pyvar=0)
void hoc_ivbutton(CChar *name, CChar *action, Object *pyact=0)
void hoc_ivmenu(CChar *, bool add2menubar=false)
hoc_Item ** object_psecitm(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:80
void hoc_ivvalue_keep_updated(CChar *name, CChar *variable, Object *pyvar=0)
void hoc_ivradiobutton(CChar *name, CChar *action, bool activate=false, Object *pyact=0)
void hoc_ivpanelmap(int scroll=-1)
char * object_str(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:71
void hoc_ivpvalue(CChar *name, double *, bool deflt=false, HocSymExtension *extra=NULL)
double * object_pval(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:68
void hoc_ivfixedvalue(CChar *name, CChar *variable, bool deflt=false, bool usepointer=false)
void hoc_ivvaluerun(CChar *name, CChar *variable, CChar *action, bool deflt=false, bool canrun=false, bool usepointer=false, Object *pyvar=0, Object *pyact=0)
void hoc_ivslider(double *, float low=0, float high=100, float resolution=1, int steps=10, const char *send_cmd=NULL, bool vert=false, bool slow=false, Object *pyvar=0, Object *pyact=0)
void hoc_ivstatebutton(double *, CChar *name, CChar *action, int style, Object *pyvar=0, Object *pyact=0)
void hoc_ivpanel(CChar *, bool h=false)
void hoc_ivlabel(CChar *)
void hoc_ivvarmenu(CChar *, CChar *, bool add2menubar=false, Object *pyvar=NULL)
void hoc_ivpvaluerun(CChar *name, double *, CChar *action, bool deflt=false, bool canrun=false, HocSymExtension *extra=NULL)
static void activate()
#define NULL
Definition: sptree.h:16
Definition: hocdec.h:227
Definition: model.h:57
union Symbol::@18 u
int oboff
Definition: hocdec.h:132
Definition: hocdec.h:84
char ** ppstr
Definition: hocdec.h:219
double * pval
Definition: hocdec.h:218
HocStruct Object ** pobj
Definition: hocdec.h:220
HocStruct hoc_Item ** psecitm
Definition: hocdec.h:221