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