factor/library/ui/backend.factor

40 lines
914 B
Factor

IN: gadgets
USING: generic kernel namespaces opengl ;
DEFER: set-title ( string handle -- )
DEFER: draw-world ! defined in world.factor
DEFER: open-window* ( world title -- )
DEFER: raise-window ( world -- )
DEFER: select-gl-context ( handle -- )
DEFER: flush-gl-context ( handle -- )
DEFER: user-input ( string gadget -- )
: with-gl-context ( handle quot -- )
swap [ select-gl-context call ] keep
glFlush flush-gl-context gl-error ; inline
! Two text transfer buffers
TUPLE: clipboard contents ;
C: clipboard "" over set-clipboard-contents ;
GENERIC: paste-clipboard ( gadget clipboard -- )
M: object paste-clipboard
clipboard-contents dup [ swap user-input ] [ 2drop ] if ;
GENERIC: copy-clipboard ( string gadget clipboard -- )
M: object copy-clipboard nip set-clipboard-contents ;
SYMBOL: clipboard
SYMBOL: selection
<clipboard> clipboard set-global
<clipboard> selection set-global