Fix scrollers
parent
c4cab0678a
commit
b0f8680438
|
@ -1,8 +1,8 @@
|
|||
IN: ui.gadgets.tests
|
||||
USING: ui.gadgets ui.gadgets.packs ui.gadgets.worlds tools.test
|
||||
namespaces models kernel dlists dequeues math sets
|
||||
math.parser ui sequences hashtables assocs io arrays
|
||||
prettyprint io.streams.string ;
|
||||
USING: accessors ui.gadgets ui.gadgets.packs ui.gadgets.worlds
|
||||
tools.test namespaces models kernel dlists dequeues math sets
|
||||
math.parser ui sequences hashtables assocs io arrays prettyprint
|
||||
io.streams.string ;
|
||||
|
||||
[ T{ rect f { 10 10 } { 20 20 } } ]
|
||||
[
|
||||
|
|
|
@ -76,7 +76,7 @@ scroller H{
|
|||
] keep dup scroller-value rot v+ swap scroll ;
|
||||
|
||||
: relative-scroll-rect ( rect gadget scroller -- newrect )
|
||||
scroller-viewport gadget-child relative-loc offset-rect ;
|
||||
viewport>> gadget-child relative-loc offset-rect ;
|
||||
|
||||
: find-scroller* ( gadget -- scroller )
|
||||
dup find-scroller dup [
|
||||
|
@ -119,13 +119,15 @@ scroller H{
|
|||
: scroll>top ( gadget -- )
|
||||
<zero-rect> swap scroll>rect ;
|
||||
|
||||
: update-scroller ( scroller follows -- )
|
||||
{
|
||||
{ [ dup t eq? ] [ drop (scroll>bottom) ] }
|
||||
{ [ dup rect? ] [ swap (scroll>rect) ] }
|
||||
{ [ dup ] [ swap (scroll>gadget) ] }
|
||||
[ drop dup scroller-value swap scroll ]
|
||||
} cond ;
|
||||
GENERIC: update-scroller ( scroller follows -- )
|
||||
|
||||
M: t update-scroller drop (scroll>bottom) ;
|
||||
|
||||
M: gadget update-scroller swap (scroll>gadget) ;
|
||||
|
||||
M: rect update-scroller swap (scroll>rect) ;
|
||||
|
||||
M: f update-scroller drop dup scroller-value swap scroll ;
|
||||
|
||||
M: scroller layout*
|
||||
dup call-next-method
|
||||
|
|
Loading…
Reference in New Issue