load_file("nrngui.hoc")
load_file("stdlib.hoc")
mosinit=1
objref b_
b_ = new VBox()
b_.intercept(1)
b_.save("")
xpanel("")
xbutton("Santhakumar et. al.", "parden_launch()")
xbutton("Davison et. al. (> 1 minute setup)", "parbulb_launch()")
xbutton("Bush et. al.", "parbush_launch()")
xpanel()
b_.intercept(0)
b_.map("Figure 4 Launch model", 100, 200, 200, 200)
objref mesg_box_
strdef mesg_string_
mesg_string_ = "Select a model to load mod files and setup. This will take a few seconds."
mesg_box_ = new VBox()
mesg_box_.intercept(1)
mesg_box_.save("")
xpanel("")
xvarlabel(mesg_string_)
xpanel()
mesg_box_.intercept(0)
doNotify()
proc parden_launch() { localobj s
s = new String()
s.s = "Santhakumar et. al. model"
if (mkdll_("pardentategyrus", s.s)) {
load_file("init.hoc")
setup_(s.s)
}
}
proc parbulb_launch() { localobj s
s = new String()
s.s = "Davison et. al. model"
if (mkdll_("parbulbNet", s.s)) {
load_file("par_batch1.hoc")
setup_(s.s)
}
}
proc parbush_launch() { localobj s
s = new String()
s.s = "Bush et. al. model"
if (mkdll_("parbush", s.s)) {
load_file("batch_.hoc")
setup_(s.s)
}
}
func mkdll_() { localobj s, f
b_.unmap()
doNotify()
mesg_($s2, ": building dynamically loadable library")
s = new String()
sprint(s.s, "sh mkdll.sh %s %d", $s1, unix_mac_pc())
system(s.s, s.s)
f = new File()
if (f.ropen("mkdll.result")) {
if (f.gets(s.s) > 1) {
hoc_sf_.left(s.s, hoc_sf_.len(s.s) - 1)
mesg_("Loading ", s.s)
nrn_load_dll(s.s)
chdir($s1)
sprint(s.s, "Setting up %s in %s", $s2, $s1)
mesg_(s.s, " (may take some time)")
return 1
}
}
mesg_($s2, ": dll build failed. Exit and handle manually")
return 0
}
proc setup_() { localobj s
s = new String()
sprint(s.s, " setup time is %g sec", setuptime)
mesg_($s1, s.s)
}
proc mesg_() {
if (!mesg_box_.ismapped()) {
mesg_box_.map("Progress Message", 100, 200, 600, 50)
doNotify()
}
sprint(mesg_string_, "%s %s", $s1, $s2)
doNotify()
}