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