! Copyright (C) 2006 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. IN: gadgets-lists USING: gadgets gadgets-labels gadgets-scrolling kernel sequences models opengl math namespaces gadgets-theme ; TUPLE: list index hook presenter color ; : list-theme ( list -- ) { 0.8 0.8 1.0 1.0 } swap set-list-color ; C: list ( hook presenter model -- gadget ) [ swap delegate>control ] keep [ set-list-presenter ] keep [ set-list-hook ] keep 0 over set-list-index 1 over set-pack-fill dup list-theme ; : bound-index ( list -- ) dup list-index over control-value length 1- max 0 min swap set-list-index ; M: list model-changed dup clear-gadget dup control-value over list-presenter map [