ui.gadgets.scrollers: Nicer version of 'find-scroller*'

db4
Eduardo Cavazos 2008-11-10 02:10:18 -06:00
parent 2bf9a55cea
commit 6df7342b81
1 changed files with 6 additions and 8 deletions

View File

@ -4,7 +4,8 @@ USING: accessors arrays ui.gadgets ui.gadgets.viewports
ui.gadgets.frames ui.gadgets.grids ui.gadgets.theme ui.gadgets.frames ui.gadgets.grids ui.gadgets.theme
ui.gadgets.sliders ui.gestures kernel math namespaces sequences ui.gadgets.sliders ui.gestures kernel math namespaces sequences
models models.range models.compose models models.range models.compose
combinators math.vectors classes.tuple math.geometry.rect ; combinators math.vectors classes.tuple math.geometry.rect
combinators.short-circuit ;
IN: ui.gadgets.scrollers IN: ui.gadgets.scrollers
TUPLE: scroller < frame viewport x y follows ; TUPLE: scroller < frame viewport x y follows ;
@ -70,13 +71,10 @@ scroller H{
: relative-scroll-rect ( rect gadget scroller -- newrect ) : relative-scroll-rect ( rect gadget scroller -- newrect )
viewport>> gadget-child relative-loc offset-rect ; viewport>> gadget-child relative-loc offset-rect ;
: find-scroller* ( gadget -- scroller ) : find-scroller* ( gadget -- scroller/f )
dup find-scroller dup [ dup find-scroller
2dup viewport>> gadget-child { [ nip ] [ viewport>> gadget-child swap child? ] [ nip ] }
swap child? [ nip ] [ 2drop f ] if 2&& ;
] [
2drop f
] if ;
: scroll>rect ( rect gadget -- ) : scroll>rect ( rect gadget -- )
dup find-scroller* dup [ dup find-scroller* dup [