ycl

Artifact [7d00784ce9]
Login

Artifact [7d00784ce9]

Artifact 7d00784ce91938463ef3c29049930f375a2bc680:


#! /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]
}