illusion new V{ } clone >>connections V{ } clone >>dependencies 0 >>ref
swap >>quot over >>model [ add-dependency ] keep ;
-: backtalk ( value object -- ) [ quot>> [undo] call( a -- b ) ] [ model>> ] bi set-model ;
+: backtalk ( value object -- )
+ [ quot>> [undo] call( a -- b ) ] [ model>> ] bi set-model ;
M: illusion update-model ( model -- ) [ [ value>> ] keep backtalk ] with-locked-model ;
\ No newline at end of file
ui.gadgets.status-bar ui.gadgets.worlds ui.gestures ui.render ui.pens.solid
ui.text ui.commands ui.images ui.gadgets.menus ui.gadgets.line-support
math.rectangles models math.ranges sequences combinators
-combinators.short-circuit fonts locals strings vectors tools.continuations ;
+combinators.short-circuit fonts locals strings vectors ;
IN: ui.gadgets.tables
! Row rendererer protocol
new-line-gadget
swap >>renderer
swap >>model
+ V{ } clone >>selected-indices
V{ } clone <model> >>selected-values
sans-serif-font >>font
focus-border-color >>focus-border-color
: (selected-rows) ( table -- {row} )
[ selected-indices>> ] keep
- [ nth-row [ 1array ] [ drop { } ] if ] curry map concat ;
+ [ nth-row [ 1vector ] [ drop V{ } clone ] if ] curry map concat ;
: selected-rows ( table -- {value} )
[ (selected-rows) ] [ renderer>> ] bi [ row-value ] curry map ;