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);
18 extern void hoc_ivfixedvalue(CChar* name, CChar* variable,
19  bool deflt=false, bool usepointer=false);
20 extern void hoc_ivvalue_keep_updated(CChar* name, CChar* variable, Object* pyvar = 0);
21 extern void hoc_ivpvalue(CChar* name, double*, bool deflt=false, HocSymExtension* extra=NULL);
22 extern void hoc_ivvaluerun(CChar* name, CChar* variable, CChar* action,
23  bool deflt=false, bool canrun=false, bool usepointer=false, Object* pyvar = 0, Object* pyact = 0);
24 extern void hoc_ivvaluerun_ex(CChar* name,
25  CChar* var, double* pvar, Object* pyvar,
26  CChar* action, Object* pyact,
27  bool deflt=false, bool canrun=false, bool usepointer=false,
28  HocSymExtension* extra=NULL);
29 extern void hoc_ivpvaluerun(CChar* name, double*, CChar* action,
30  bool deflt=false, bool canrun=false, HocSymExtension* extra=NULL);
31 
32 extern void hoc_ivlabel(CChar*);
33 extern void hoc_ivvarlabel(char**, Object* pyvar = 0);
34 extern void hoc_ivstatebutton(double*, CChar* name, CChar* action, int style, Object* pyvar = 0, Object* pyact = 0);
35 extern void hoc_ivslider(double*, float low=0, float high=100,
36  float resolution=1, int steps=10,
37  const char* send_cmd=NULL, bool vert=false, bool slow = false, Object* pyvar = 0, Object* pyact = 0);
38 
39 inline double* object_pval(Symbol* sym, Objectdata* od) {
40  return od[sym->u.oboff].pval;
41 }
42 inline char* object_str(Symbol* sym, Objectdata* od) {
43  return *od[sym->u.oboff].ppstr;
44 }
45 inline char** object_pstr(Symbol* sym, Objectdata* od) {
46  return od[sym->u.oboff].ppstr;
47 }
48 inline Object** object_pobj(Symbol* sym, Objectdata* od) {
49  return od[sym->u.oboff].pobj;
50 }
52  return od[sym->u.oboff].psecitm;
53 }
54 
55 class Oc2IV {
56 public:
57  static char** object_pstr(const char* symname, Object* = NULL);
58  static char* object_str(const char* symname, Object* = NULL);
59 };
60 
61 struct Symlist;
62 
63 #ifndef OCMATRIX
64 
66 public:
67  ParseTopLevel();
68  virtual ~ParseTopLevel();
69  void save();
70  void restore();
71 private:
75  bool restored_;
76 };
77 #endif
78 
79 #endif
char * object_str(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:42
void hoc_ivfixedvalue(CChar *name, CChar *variable, bool deflt=false, bool usepointer=false)
Definition: hocdec.h:84
void hoc_ivpvalue(CChar *name, double *, bool deflt=false, HocSymExtension *extra=NULL)
static char * object_str(const char *symname, Object *=NULL)
Definition: oc2iv.cpp:14
Object ** object_pobj(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:48
void hoc_ivlabel(CChar *)
void hoc_ivstatebutton(double *, CChar *name, CChar *action, int style, Object *pyvar=0, Object *pyact=0)
void hoc_ivvarlabel(char **, Object *pyvar=0)
void hoc_ivvalue_keep_updated(CChar *name, CChar *variable, Object *pyvar=0)
void hoc_ivvalue(CChar *name, CChar *variable, bool deflt=false, Object *pyvar=0)
Definition: oc2iv.h:55
Objectdata * obdsav_
Definition: oc2iv.h:72
double * object_pval(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:39
double * pval
Definition: hocdec.h:217
static char ** object_pstr(const char *symname, Object *=NULL)
Definition: oc2iv.cpp:25
void hoc_ivbutton(CChar *name, CChar *action, Object *pyact=0)
HocStruct Object ** pobj
Definition: hocdec.h:219
hoc_Item ** object_psecitm(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:51
void hoc_ivpanel(CChar *, bool h=false)
char ** ppstr
Definition: hocdec.h:218
Definition: model.h:57
static double restore(void *v)
Object * obsav_
Definition: oc2iv.h:73
char * name
Definition: init.cpp:16
int oboff
Definition: hocdec.h:131
bool restored_
Definition: oc2iv.h:75
void hoc_ivmenu(CChar *, bool add2menubar=false)
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_ivpanelmap(int scroll=-1)
void hoc_ivvaluerun(CChar *name, CChar *variable, CChar *action, bool deflt=false, bool canrun=false, bool usepointer=false, Object *pyvar=0, Object *pyact=0)
#define CChar
Definition: oc2iv.h:10
static double save(void *v)
Definition: ocbox.cpp:340
HocStruct hoc_Item ** psecitm
Definition: hocdec.h:220
Definition: hocdec.h:226
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_ivpvaluerun(CChar *name, double *, CChar *action, bool deflt=false, bool canrun=false, HocSymExtension *extra=NULL)
char ** object_pstr(Symbol *sym, Objectdata *od)
Definition: oc2iv.h:45
static void activate()
void hoc_ivradiobutton(CChar *name, CChar *action, bool activate=false, Object *pyact=0)
union Symbol::@18 u
void hoc_ivvarmenu(CChar *, CChar *, bool add2menubar=false, Object *pyvar=NULL)
Symlist * symsav_
Definition: oc2iv.h:74
double var(InputIterator begin, InputIterator end)
Definition: ivocvect.h:93
return NULL
Definition: cabcode.cpp:461