8 extern Object** (*nrnpy_gui_helper_)(
const char*,
Object*);
12 #define TRY_GUI_REDIRECT_OBJ(name, obj) {\ 14 if (nrnpy_gui_helper_) {\ 15 ngh_result = nrnpy_gui_helper_(name, (Object*) obj);\ 17 return (void*) *ngh_result;\ 22 #define TRY_GUI_REDIRECT_METHOD_ACTUAL_DOUBLE(name, sym, v) {\ 23 Object** guiredirect_result = NULL;\ 24 if (nrnpy_gui_helper_) {\ 25 Object* obj = nrn_get_gui_redirect_obj();\ 26 guiredirect_result = nrnpy_gui_helper_(name, obj);\ 27 if (guiredirect_result) {\ 28 return(nrnpy_object_to_double_(*guiredirect_result));\ 33 #define TRY_GUI_REDIRECT_METHOD_ACTUAL_OBJ(name, sym, v) {\ 34 Object** guiredirect_result = NULL;\ 35 if (nrnpy_gui_helper_) {\ 36 Object* obj = nrn_get_gui_redirect_obj();\ 37 guiredirect_result = nrnpy_gui_helper_(name, obj);\ 38 if (guiredirect_result) {\ 39 return(guiredirect_result);\ 44 #define TRY_GUI_REDIRECT_NO_RETURN(name, obj) {\ 46 if (nrnpy_gui_helper_) {\ 47 ngh_result = nrnpy_gui_helper_(name, (Object*) obj);\ 54 #define TRY_GUI_REDIRECT_DOUBLE(name, obj) {\ 56 if (nrnpy_gui_helper_) {\ 57 ngh_result = nrnpy_gui_helper_(name, (Object*) obj);\ 60 hoc_pushx(nrnpy_object_to_double_(*ngh_result));\ 66 #define TRY_GUI_REDIRECT_ACTUAL_DOUBLE(name, obj) {\ 68 if (nrnpy_gui_helper_) {\ 69 ngh_result = nrnpy_gui_helper_(name, (Object*) obj);\ 71 return(nrnpy_object_to_double_(*ngh_result));\ 76 #define TRY_GUI_REDIRECT_ACTUAL_STR(name, obj) {\ 78 if (nrnpy_gui_helper_) {\ 79 ngh_result = nrnpy_gui_helper3_str_(name, (Object*) obj, 0);\ 81 return((const char**) ngh_result);\ 86 #define TRY_GUI_REDIRECT_ACTUAL_OBJ(name, obj) {\ 88 if (nrnpy_gui_helper_) {\ 89 ngh_result = nrnpy_gui_helper_(name, (Object*) obj);\ 96 #define TRY_GUI_REDIRECT_DOUBLE_SEND_STRREF(name, obj) {\ 98 if (nrnpy_gui_helper_) {\ 99 ngh_result = nrnpy_gui_helper3_(name, (Object*) obj, 1);\ 102 hoc_pushx(nrnpy_object_to_double_(*ngh_result));\ double(* nrnpy_object_to_double_)(Object *)
Object * nrn_get_gui_redirect_obj()