2008-12-12 00:49:45 -05:00
|
|
|
! (c) 2008 Joe Groff, see license for details
|
2009-02-09 22:40:29 -05:00
|
|
|
USING: accessors continuations images.bitmap kernel math
|
2008-12-11 21:32:40 -05:00
|
|
|
sequences ui.gadgets ui.gadgets.worlds ui ui.backend
|
|
|
|
destructors ;
|
2008-12-09 13:07:57 -05:00
|
|
|
IN: ui.offscreen
|
|
|
|
|
|
|
|
TUPLE: offscreen-world < world ;
|
|
|
|
|
|
|
|
: <offscreen-world> ( gadget title status -- world )
|
|
|
|
offscreen-world new-world ;
|
|
|
|
|
|
|
|
M: offscreen-world graft*
|
|
|
|
(open-offscreen-buffer) ;
|
|
|
|
|
|
|
|
M: offscreen-world ungraft*
|
|
|
|
[ (ungraft-world) ]
|
|
|
|
[ handle>> (close-offscreen-buffer) ]
|
|
|
|
[ reset-world ] tri ;
|
|
|
|
|
|
|
|
: open-offscreen ( gadget -- world )
|
2008-12-11 19:50:37 -05:00
|
|
|
"" f <offscreen-world>
|
|
|
|
[ open-world-window dup relayout-1 ] keep
|
2008-12-09 18:27:30 -05:00
|
|
|
notify-queued ;
|
|
|
|
|
|
|
|
: close-offscreen ( world -- )
|
|
|
|
ungraft notify-queued ;
|
2008-12-09 13:07:57 -05:00
|
|
|
|
|
|
|
: offscreen-world>bitmap ( world -- bitmap )
|
2008-12-10 09:49:50 -05:00
|
|
|
offscreen-pixels bgra>bitmap ;
|
2008-12-09 22:16:37 -05:00
|
|
|
|
2008-12-09 18:27:30 -05:00
|
|
|
: do-offscreen ( gadget quot: ( offscreen-world -- ) -- )
|
|
|
|
[ open-offscreen ] dip
|
2008-12-10 09:49:50 -05:00
|
|
|
over [ slip ] [ close-offscreen ] [ ] cleanup ; inline
|
|
|
|
|
|
|
|
: gadget>bitmap ( gadget -- bitmap )
|
|
|
|
[ offscreen-world>bitmap ] do-offscreen ;
|