ui.gadgets.scrollers: rewrite new-scroller
parent
779dbb9ee6
commit
199a7580d6
|
@ -29,30 +29,22 @@ scroller H{
|
||||||
{ T{ mouse-scroll } [ do-mouse-scroll ] }
|
{ T{ mouse-scroll } [ do-mouse-scroll ] }
|
||||||
} set-gestures
|
} set-gestures
|
||||||
|
|
||||||
: viewport, ( child -- )
|
|
||||||
g model>> <viewport>
|
|
||||||
g-> set-scroller-viewport @center frame, ;
|
|
||||||
|
|
||||||
: <scroller-model> ( -- model )
|
: <scroller-model> ( -- model )
|
||||||
0 0 0 0 <range> 0 0 0 0 <range> 2array <compose> ;
|
0 0 0 0 <range> 0 0 0 0 <range> 2array <compose> ;
|
||||||
|
|
||||||
: x-model ( -- model ) g model>> dependencies>> first ;
|
|
||||||
|
|
||||||
: y-model ( -- model ) g model>> dependencies>> second ;
|
|
||||||
|
|
||||||
: new-scroller ( gadget class -- scroller )
|
: new-scroller ( gadget class -- scroller )
|
||||||
new-frame
|
new-frame
|
||||||
t >>root?
|
t >>root?
|
||||||
<scroller-model> >>model
|
<scroller-model> >>model
|
||||||
faint-boundary
|
faint-boundary
|
||||||
[
|
|
||||||
x-model <x-slider> g-> set-scroller-x @bottom frame,
|
|
||||||
y-model <y-slider> g-> set-scroller-y @right frame,
|
|
||||||
viewport,
|
|
||||||
] make-gadget ;
|
|
||||||
|
|
||||||
: <scroller> ( gadget -- scroller )
|
dup model>> dependencies>> first <x-slider> >>x dup x>> @bottom grid-add*
|
||||||
scroller new-scroller ;
|
dup model>> dependencies>> second <y-slider> >>y dup y>> @right grid-add*
|
||||||
|
|
||||||
|
swap over model>> <viewport> >>viewport
|
||||||
|
dup viewport>> @center grid-add* ;
|
||||||
|
|
||||||
|
: <scroller> ( gadget -- scroller ) scroller new-scroller ;
|
||||||
|
|
||||||
: scroll ( value scroller -- )
|
: scroll ( value scroller -- )
|
||||||
[
|
[
|
||||||
|
|
Loading…
Reference in New Issue