factor/basis/ui/clipboards/clipboards.factor

43 lines
1.0 KiB
Factor
Raw Normal View History

2007-09-20 18:09:08 -04:00
! Copyright (C) 2006, 2007 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
2008-08-29 19:44:19 -04:00
2008-08-29 16:47:36 -04:00
USING: kernel accessors ui.gadgets ui.gestures namespaces ;
2008-08-29 19:44:19 -04:00
2007-09-20 18:09:08 -04:00
IN: ui.clipboards
! Two text transfer buffers
2007-09-20 18:09:08 -04:00
TUPLE: clipboard contents ;
GENERIC: clipboard-contents ( clipboard -- string )
GENERIC: set-clipboard-contents ( string clipboard -- )
M: clipboard clipboard-contents contents>> ;
M: clipboard set-clipboard-contents contents<< ;
2008-06-08 16:32:55 -04:00
: <clipboard> ( -- clipboard ) "" clipboard boa ;
2007-09-20 18:09:08 -04:00
GENERIC: paste-clipboard ( gadget clipboard -- )
M: object paste-clipboard
clipboard-contents dup [ swap user-input ] [ 2drop ] if ;
GENERIC: copy-clipboard ( string gadget clipboard -- )
2008-08-29 19:44:19 -04:00
M: object copy-clipboard nip set-clipboard-contents ;
2007-09-20 18:09:08 -04:00
SYMBOL: clipboard
SYMBOL: selection
: gadget-copy ( gadget clipboard -- )
over gadget-selection?
[ [ [ gadget-selection ] keep ] dip copy-clipboard ]
[ 2drop ]
if ;
2007-09-20 18:09:08 -04:00
2008-06-08 16:32:55 -04:00
: com-copy ( gadget -- ) clipboard get gadget-copy ;
2007-09-20 18:09:08 -04:00
2008-06-08 16:32:55 -04:00
: com-copy-selection ( gadget -- ) selection get gadget-copy ;