! Copyright (C) 2005, 2006 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. IN: gadgets-outliners USING: arrays gadgets gadgets-borders gadgets-buttons gadgets-labels gadgets-theme generic io kernel math opengl sequences styles namespaces ; TUPLE: guide color ; M: guide draw-interior guide-color gl-color rect-dim dup first 2 /i 0 2array origin get v+ swap first2 >r 2 /i r> 2array origin get v+ gl-line ; : guide-theme ( gadget -- ) T{ guide f { 0.5 0.5 0.5 1.0 } } swap set-gadget-interior ; : ( -- gadget ) dup guide-theme ; TUPLE: outliner quot ; : find-outliner ( gadget -- outliner ) [ outliner? ] find-parent ; : ( ? -- gadget ) arrow-right arrow-down ? { 0.5 0.5 0.5 1.0 } swap ; DEFER: set-outliner-expanded? : ( ? -- button ) #! If true, the button expands, otherwise it collapses. dup [ swap find-outliner set-outliner-expanded? ] curry >r r>