#! /bin/env tclsh
package require ycl::twyst::ui::console
namespace eval imports {
package require ycl::ns
namespace import [yclprefix]::ns::nsnormalize
}
proc new {name {type console}} {
set name [nsnormalize [uplevel namespace current] $name]
switch -- $type {
console {
console new $name
} default {
return -code error "unknown UI: $type"
}
}
$name method control
}
proc answer {state args} {
if {[llength $args]} {
lassign $args[set args {}] answer
$state $ answer $answer
} else
return [$state $ answer]
}
proc control {state args} {
if {[llength $args]} {
lassign $args[set args {}] control
$state $ control control [uplevel [list namespace which control]]
}
return [$state $ control]
}