From: Doug Coleman Date: Wed, 10 Dec 2008 03:16:37 +0000 (-0600) Subject: Merge branch 'master' of git://repo.or.cz/factor/jcg X-Git-Tag: 0.94~2261^2~13 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=4f20c0813f7546d2cef278239158be9861fdcff3 Merge branch 'master' of git://repo.or.cz/factor/jcg Conflicts: basis/ui/cocoa/cocoa.factor --- 4f20c0813f7546d2cef278239158be9861fdcff3 diff --cc basis/ui/cocoa/cocoa.factor index b90f4d34fe,6e19f3ffe6..1338983164 mode 100644,100644..100755 --- a/basis/ui/cocoa/cocoa.factor +++ b/basis/ui/cocoa/cocoa.factor @@@ -3,15 -3,18 +3,18 @@@ USING: accessors math arrays assocs cocoa cocoa.application command-line kernel memory namespaces cocoa.messages cocoa.runtime cocoa.subclassing cocoa.pasteboard cocoa.types - cocoa.windows cocoa.classes cocoa.application cocoa.nibs - sequences system ui ui.backend ui.clipboards ui.gadgets - ui.gadgets.worlds ui.cocoa.views core-foundation threads - math.geometry.rect fry ; -cocoa.windows cocoa.classes cocoa.application sequences system ++cocoa.windows cocoa.classes sequences system + ui ui.backend ui.clipboards ui.gadgets ui.gadgets.worlds + ui.cocoa.views core-foundation threads math.geometry.rect fry + libc generalizations alien.c-types cocoa.views combinators ; IN: ui.cocoa - TUPLE: handle view window ; + TUPLE: handle ; + TUPLE: window-handle < handle view window ; + TUPLE: offscreen-handle < handle context buffer ; - C: handle + C: window-handle + C: offscreen-handle SINGLETON: cocoa-ui-backend diff --cc extra/ui/offscreen/offscreen.factor index 0000000000,9fe8577a52..779ecc0c31 mode 000000,100644..100755 --- a/extra/ui/offscreen/offscreen.factor +++ b/extra/ui/offscreen/offscreen.factor @@@ -1,0 -1,31 +1,31 @@@ + USING: accessors continuations graphics.bitmap kernel math + sequences ui.gadgets ui.gadgets.worlds ui ui.backend ; + IN: ui.offscreen + + TUPLE: offscreen-world < 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 ) + "" f [ open-world-window ] keep + notify-queued ; + + : close-offscreen ( world -- ) + ungraft notify-queued ; + + : offscreen-world>bitmap ( world -- bitmap ) + [ handle>> offscreen-pixels ] [ dim>> first2 neg ] bi + bgra>bitmap ; - ++ + : do-offscreen ( gadget quot: ( offscreen-world -- ) -- ) + [ open-offscreen ] dip + over [ slip ] [ close-offscreen ] [ ] cleanup ;