text-list: make rebface [ tip: { USAGE: text-list data ["One" "Two"] text-list data ctx-rebgui/locale*/colors text-list data [1 2] [print face/selected] DESCRIPTION: A single column list with a scroller. OPTIONS: 'multi allows multiple rows to be selected at once } size: 50x25 data: [] edge: outline-edge ; widget facets redraw: make function! [] [] ; place-holder for examine selected: make function! [] [] ; place-holder for examine picked: [] rows: make function! [] [pane/rows] select-row: make function! [ row [integer! none! block!] /no-action /local rows lines ][ clear picked if row [ row: either integer? row [to block! row] [sort copy row] rows: pane/rows lines: pane/lines foreach r row [ r: max 1 min rows r insert picked r ] unless no-action [action/on-click self] ] show self ] ; init init: make function! [/local p] [ p: self pane: make face-iterator [ size: p/size span: either p/span [copy p/span] [none] data: p/data options: p/options ; share options block picked: p/picked ; share picked block action: get in p/action 'on-click ; share action func alt-action: get in p/action 'on-alt-click ; share alt-action func dbl-action: get in p/action 'on-dbl-click ; share dbl-action func ] pane/init ; accessors redraw: get in pane 'redraw selected: get in pane 'selected ] ]