Bootstrap fix, got close box working
parent
d22a142935
commit
d9977d36f8
|
|
@ -129,7 +129,7 @@ V{ } clone hand-buttons set-global
|
||||||
: ui-step ( -- )
|
: ui-step ( -- )
|
||||||
do-timers
|
do-timers
|
||||||
[ layout-queued ] make-hash
|
[ layout-queued ] make-hash
|
||||||
[ nip [ draw-world ] when* ] hash-each
|
[ nip dup world-handle [ draw-world ] when ] hash-each
|
||||||
10 sleep ;
|
10 sleep ;
|
||||||
|
|
||||||
: close-world ( world -- )
|
: close-world ( world -- )
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
! Copyright (C) 2005, 2006 Slava Pestov.
|
! Copyright (C) 2005, 2006 Slava Pestov.
|
||||||
! See http://factor.sf.net/license.txt for BSD license.
|
! See http://factor.sf.net/license.txt for BSD license.
|
||||||
IN: gadgets-listener
|
IN: gadgets-listener
|
||||||
USING: arrays compiler gadgets gadgets-editors gadgets-labels
|
USING: arrays gadgets gadgets-editors gadgets-labels
|
||||||
gadgets-layouts gadgets-panes gadgets-scrolling
|
gadgets-layouts gadgets-panes gadgets-scrolling
|
||||||
gadgets-splitters gadgets-theme generic hashtables
|
gadgets-splitters gadgets-theme generic hashtables
|
||||||
inference inspector io jedit kernel listener lists math
|
io jedit kernel listener lists math
|
||||||
namespaces parser prettyprint sequences shells threads words
|
namespaces parser prettyprint sequences threads words ;
|
||||||
help ;
|
|
||||||
|
|
||||||
TUPLE: listener-gadget pane stack status ;
|
TUPLE: listener-gadget pane stack status ;
|
||||||
|
|
||||||
|
|
@ -49,12 +48,6 @@ TUPLE: listener-gadget pane stack status ;
|
||||||
|
|
||||||
: <stack-bar> ( -- gadget ) <shelf> dup status-theme ;
|
: <stack-bar> ( -- gadget ) <shelf> dup status-theme ;
|
||||||
|
|
||||||
: <bottom-bar> ( -- gadget status )
|
|
||||||
<status-bar> [
|
|
||||||
<shelf> dup stack-bar set-global
|
|
||||||
2array make-pile 1 over set-pack-fill
|
|
||||||
] keep ;
|
|
||||||
|
|
||||||
: <scroller> ( -- gadget )
|
: <scroller> ( -- gadget )
|
||||||
<input-pane> dup pane set-global <scroller> ;
|
<input-pane> dup pane set-global <scroller> ;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,13 +80,13 @@ M: world key-down-event ( event world -- )
|
||||||
M: world key-up-event ( event world -- ) 2drop ;
|
M: world key-up-event ( event world -- ) 2drop ;
|
||||||
|
|
||||||
: close-box? ( event -- )
|
: close-box? ( event -- )
|
||||||
dup XClientMessageEvent-type "WM_PROTOCOLS" x-atom =
|
dup XClientMessageEvent-message_type "WM_PROTOCOLS" x-atom =
|
||||||
swap XClientMessageEvent-data "WM_DELETE_WINDOW" x-atom =
|
swap XClientMessageEvent-data "WM_DELETE_WINDOW" x-atom =
|
||||||
and ;
|
and ;
|
||||||
|
|
||||||
M: world client-event ( event world -- )
|
M: world client-event ( event world -- )
|
||||||
swap close-box? [
|
swap close-box? [
|
||||||
dup close-world world-handle destroy-window*
|
dup world-handle first >r close-world r> destroy-window*
|
||||||
] [
|
] [
|
||||||
drop
|
drop
|
||||||
] if ;
|
] if ;
|
||||||
|
|
|
||||||
|
|
@ -41,10 +41,14 @@ USING: alien hashtables kernel math namespaces sequences ;
|
||||||
: destroy-window* ( win -- )
|
: destroy-window* ( win -- )
|
||||||
dup windows get remove-hash destroy-window ;
|
dup windows get remove-hash destroy-window ;
|
||||||
|
|
||||||
|
: set-closable ( win -- )
|
||||||
|
dpy get swap "WM_DELETE_WINDOW" x-atom <Atom> 1
|
||||||
|
XSetWMProtocols drop ;
|
||||||
|
|
||||||
: map-window ( win -- ) dpy get swap XMapWindow drop ;
|
: map-window ( win -- ) dpy get swap XMapWindow drop ;
|
||||||
|
|
||||||
: map-window* ( world win -- )
|
: map-window* ( world win -- )
|
||||||
[ windows get set-hash ] keep map-window ;
|
dup set-closable [ windows get set-hash ] keep map-window ;
|
||||||
|
|
||||||
: glx-window* ( world dim -- win context )
|
: glx-window* ( world dim -- win context )
|
||||||
glx-window >r [ map-window* ] keep r> ;
|
glx-window >r [ map-window* ] keep r> ;
|
||||||
|
|
|
||||||
|
|
@ -51,12 +51,14 @@ TYPEDEF: void* Window**
|
||||||
: <Window> <XID> ;
|
: <Window> <XID> ;
|
||||||
: <Drawable> <XID> ;
|
: <Drawable> <XID> ;
|
||||||
: <KeySym> <XID> ;
|
: <KeySym> <XID> ;
|
||||||
|
: <Atom> <ulong> ;
|
||||||
|
|
||||||
: *ulong *uint ;
|
: *ulong *uint ;
|
||||||
: *XID *ulong ;
|
: *XID *ulong ;
|
||||||
: *Window *XID ;
|
: *Window *XID ;
|
||||||
: *Drawable *XID ;
|
: *Drawable *XID ;
|
||||||
: *KeySym *XID ;
|
: *KeySym *XID ;
|
||||||
|
: *Atom *ulong ;
|
||||||
!
|
!
|
||||||
! 2 - Display Functions
|
! 2 - Display Functions
|
||||||
!
|
!
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue