//----------------------------------------------------------------------------
// define a panel to run the different demos
//----------------------------------------------------------------------------
proc make_demopanel() {
xpanel("Simulations of cortical cells")
xradiobutton("Regular-spiking pyramidal cell","restart(\"demo_PY_RS\")")
xradiobutton("Bursting pyramidal cell","restart(\"demo_PY_LTS\")")
xradiobutton("Fast-spiking interneuronl","restart(\"demo_IN_FS\")")
xpanel(20,100)
}
proc restart() {local i
// if (name_declared("IN") == 2) { objref IN[1] }
// if (name_declared("PY") == 2) { objref PY[1] }
// if (name_declared("IN") == 2) { objref IN[1] }
// if (name_declared("El") == 2) { objref El[1] }
ismenu = 0
if (electrodes_present) {
destroy_elec()
}
forall delete_section()
for i=0, n_graph_lists-1 {
graphList[i].remove_all()
}
flush_list.remove_all()
fast_flush_list.remove_all()
doNotify()
for (i= PWManager[0].count-1; i >= pwmcnt; i -= 1) {
PWManager[0].close(i)
doNotify()
}
stoprun = 0
cvode_active(0)
ismenu=0
sprint(tstr, "%s.oc", $s1)
load_file(1, tstr)
}
ismenu=0
load_file("nrngui.hoc")
strdef tstr
ncells=1
objref El[ncells]
electrodes_present=0 // after electrodes are created they must be
// destroyed if simulation restarted
proc destroy_elec() {
execute("objref stim, vc",El[0])
}
pwmcnt = PWManager[0].count // the initial GUIs should not be dismissed
make_demopanel()