UI fixes
parent
2b475b4b43
commit
afa4aef86b
|
|
@ -57,6 +57,8 @@ SYMBOL: building
|
||||||
|
|
||||||
: # ( n -- ) number>string % ;
|
: # ( n -- ) number>string % ;
|
||||||
|
|
||||||
|
: init-namespaces ( -- ) global 1array >vector set-namestack ;
|
||||||
|
|
||||||
IN: sequences
|
IN: sequences
|
||||||
|
|
||||||
: prune ( seq -- seq )
|
: prune ( seq -- seq )
|
||||||
|
|
@ -69,7 +71,3 @@ IN: sequences
|
||||||
: join ( seq glue -- seq )
|
: join ( seq glue -- seq )
|
||||||
[ swap [ % ] [ dup % ] interleave drop ] over make ;
|
[ swap [ % ] [ dup % ] interleave drop ] over make ;
|
||||||
flushable
|
flushable
|
||||||
|
|
||||||
IN: kernel-internals
|
|
||||||
|
|
||||||
: init-namespaces ( -- ) global 1array >vector set-namestack ;
|
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,8 @@ namespaces objc sequences errors freetype ;
|
||||||
: install-app-delegate ( -- )
|
: install-app-delegate ( -- )
|
||||||
NSApp FactorApplicationDelegate install-delegate ;
|
NSApp FactorApplicationDelegate install-delegate ;
|
||||||
|
|
||||||
: init-cocoa-ui ( -- )
|
: init-cocoa ( -- )
|
||||||
reset-callbacks
|
reset-callbacks
|
||||||
init-ui
|
|
||||||
install-app-delegate
|
install-app-delegate
|
||||||
register-services
|
register-services
|
||||||
default-main-menu ;
|
default-main-menu ;
|
||||||
|
|
@ -68,11 +67,12 @@ IN: shells
|
||||||
] unless
|
] unless
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
init-cocoa-ui
|
init-timers
|
||||||
|
init-cocoa
|
||||||
restore-windows? [
|
restore-windows? [
|
||||||
restore-windows
|
restore-windows
|
||||||
] [
|
] [
|
||||||
reset-windows
|
init-ui
|
||||||
listener-window
|
listener-window
|
||||||
] if
|
] if
|
||||||
finish-launching
|
finish-launching
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,8 @@ GENERIC: tick ( ms object -- )
|
||||||
|
|
||||||
: timers \ timers get-global ;
|
: timers \ timers get-global ;
|
||||||
|
|
||||||
|
: init-timers ( -- ) H{ } clone \ timers set-global ;
|
||||||
|
|
||||||
: add-timer ( object delay -- )
|
: add-timer ( object delay -- )
|
||||||
over >r <timer> r> timers set-hash ;
|
over >r <timer> r> timers set-hash ;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,8 @@ TUPLE: listener-gadget scroller stack ;
|
||||||
: <stack-bar> ( -- gadget ) <shelf> dup highlight-theme ;
|
: <stack-bar> ( -- gadget ) <shelf> dup highlight-theme ;
|
||||||
|
|
||||||
: start-listener ( listener -- )
|
: start-listener ( listener -- )
|
||||||
[ >r clear r> listener-thread ] in-thread drop ;
|
[ >r clear r> init-namespaces listener-thread ] in-thread
|
||||||
|
drop ;
|
||||||
|
|
||||||
C: listener-gadget ( -- gadget )
|
C: listener-gadget ( -- gadget )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,6 @@ sequences threads ;
|
||||||
! Assoc mapping aliens to gadgets
|
! Assoc mapping aliens to gadgets
|
||||||
SYMBOL: windows
|
SYMBOL: windows
|
||||||
|
|
||||||
: reset-windows ( hash -- hash ) V{ } clone windows set-global ;
|
|
||||||
|
|
||||||
: window ( handle -- world ) windows get-global assoc ;
|
: window ( handle -- world ) windows get-global assoc ;
|
||||||
|
|
||||||
: register-window ( world handle -- )
|
: register-window ( world handle -- )
|
||||||
|
|
@ -41,9 +39,9 @@ SYMBOL: windows
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
: init-ui ( -- )
|
: init-ui ( -- )
|
||||||
H{ } clone \ timers set-global
|
<queue> \ invalid set-global
|
||||||
<queue> \ invalid set-global ;
|
V{ } clone windows set-global ;
|
||||||
|
|
||||||
: ui-step ( -- )
|
: ui-step ( -- )
|
||||||
do-timers
|
do-timers
|
||||||
[ layout-queued ] make-hash hash-values [
|
[ layout-queued ] make-hash hash-values [
|
||||||
|
|
@ -85,10 +83,18 @@ C: titled-gadget ( gadget title -- )
|
||||||
: open-titled-window ( gadget title -- )
|
: open-titled-window ( gadget title -- )
|
||||||
<titled-gadget> open-window ;
|
<titled-gadget> open-window ;
|
||||||
|
|
||||||
|
: fix-rollover ( -- )
|
||||||
|
#! After we restore the UI, send mouse leave events to all
|
||||||
|
#! gadgets that were under the mouse at the time of the
|
||||||
|
#! save, since the mouse is in a different location now.
|
||||||
|
f hand-gadget [ get-global ] 2keep set-global
|
||||||
|
parents hand-gestures ;
|
||||||
|
|
||||||
: restore-windows ( -- )
|
: restore-windows ( -- )
|
||||||
windows get [ second ] map
|
windows get [ second ] map
|
||||||
reset-windows
|
0 windows get set-length
|
||||||
[ dup reset-world open-window* ] each ;
|
[ dup reset-world open-window* ] each
|
||||||
|
fix-rollover ;
|
||||||
|
|
||||||
: restore-windows? ( -- ? )
|
: restore-windows? ( -- ? )
|
||||||
windows get [ empty? not ] [ f ] if* ;
|
windows get [ empty? not ] [ f ] if* ;
|
||||||
|
|
|
||||||
|
|
@ -145,11 +145,11 @@ IN: shells
|
||||||
: ui ( -- )
|
: ui ( -- )
|
||||||
[
|
[
|
||||||
f [
|
f [
|
||||||
init-ui
|
init-timers
|
||||||
restore-windows? [
|
restore-windows? [
|
||||||
restore-windows
|
restore-windows
|
||||||
] [
|
] [
|
||||||
reset-windows
|
init-ui
|
||||||
launchpad-window
|
launchpad-window
|
||||||
listener-window
|
listener-window
|
||||||
] if
|
] if
|
||||||
|
|
|
||||||
|
|
@ -239,6 +239,7 @@ SYMBOL: hWnd
|
||||||
"MSG" <c-object> msg-obj set
|
"MSG" <c-object> msg-obj set
|
||||||
class-name ui-wndproc register-wndclassex win32-error=0
|
class-name ui-wndproc register-wndclassex win32-error=0
|
||||||
H{ } clone windows set
|
H{ } clone windows set
|
||||||
|
init-timers
|
||||||
init-ui ;
|
init-ui ;
|
||||||
|
|
||||||
: cleanup-win32-ui ( -- ) class-name f UnregisterClass drop ;
|
: cleanup-win32-ui ( -- ) class-name f UnregisterClass drop ;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue