! Copyright (C) 2005 Slava Pestov. ! See http://factor.sf.net/license.txt for BSD license. IN: gadgets USING: errors gadgets generic hashtables kernel kernel-internals lists namespaces sequences strings unparser vectors words ; : label-box ( list -- gadget ) 0 0 0 swap [ over add-gadget ] each ; : unparse* ( obj -- str ) dup string? [ unparse ] unless ; : sort-sheet ( assoc -- assoc ) #! Sort an association list whose keys are arbitrary objects [ 2car swap unparse* swap unparse* string> ] sort ; : alist>sheet ( assoc -- sheet ) unzip swap [ >r label-box r> add-gadget ] keep [ >r label-box r> add-gadget ] keep ; : ( gadget title -- gadget ) 0 10 0 [ >r