xlib cleanups and start of clipboard code (untested)
parent
e1ddf693bc
commit
72485f5fcb
|
@ -5,7 +5,6 @@
|
||||||
]
|
]
|
||||||
|
|
||||||
- x11 title bars are funny
|
- x11 title bars are funny
|
||||||
- x11: when starting with restored windows, caret invisible
|
|
||||||
+ httpd:
|
+ httpd:
|
||||||
- outliners don't work
|
- outliners don't work
|
||||||
- browser responder doesn't work
|
- browser responder doesn't work
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
! Copyright (C) 2006 Slava Pestov
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: alien kernel math namespaces ;
|
||||||
|
IN: x11
|
||||||
|
|
||||||
|
! This code was inspired by McCLIM's Backends/CLX/port.lisp.
|
||||||
|
|
||||||
|
: selection-property ( -- n )
|
||||||
|
dpy get "org.factorcode.Factor.SELECTION" f XInternAtom ;
|
||||||
|
|
||||||
|
: convert-selection ( win -- n )
|
||||||
|
>r dpy get XA_PRIMARY XA_STRING selection-property r>
|
||||||
|
CurrentTime XConvertSelection ;
|
||||||
|
|
||||||
|
: snarf-property ( length-return prop-return -- string )
|
||||||
|
swap *ulong zero? [ drop f ] [ *char* ] if ;
|
||||||
|
|
||||||
|
: window-property ( win prop delete? -- string )
|
||||||
|
>r >r >r dpy get r> r> 0 -1 r> AnyProperty
|
||||||
|
0 <Atom> 0 <int> 0 <ulong> 0 <ulong> f <void*>
|
||||||
|
[ XGetWindowProperty drop ] 2keep snarf-property ;
|
||||||
|
|
||||||
|
: selection-from-event ( event -- string )
|
||||||
|
dup XSelectionEvent-property zero?
|
||||||
|
[ drop f ] [ selection-property t window-property ] if ;
|
|
@ -47,19 +47,17 @@ TYPEDEF: ulong Time
|
||||||
TYPEDEF: void* Window**
|
TYPEDEF: void* Window**
|
||||||
TYPEDEF: void* Atom**
|
TYPEDEF: void* Atom**
|
||||||
|
|
||||||
: <ulong> <uint> ;
|
: <XID> <ulong> ; inline
|
||||||
: <XID> <ulong> ;
|
: <Window> <XID> ; inline
|
||||||
: <Window> <XID> ;
|
: <Drawable> <XID> ; inline
|
||||||
: <Drawable> <XID> ;
|
: <KeySym> <XID> ; inline
|
||||||
: <KeySym> <XID> ;
|
: <Atom> <ulong> ; inline
|
||||||
: <Atom> <ulong> ;
|
|
||||||
|
|
||||||
: *ulong *uint ;
|
: *XID *ulong ; inline
|
||||||
: *XID *ulong ;
|
: *Window *XID ; inline
|
||||||
: *Window *XID ;
|
: *Drawable *XID ; inline
|
||||||
: *Drawable *XID ;
|
: *KeySym *XID ; inline
|
||||||
: *KeySym *XID ;
|
: *Atom *ulong ; inline
|
||||||
: *Atom *ulong ;
|
|
||||||
!
|
!
|
||||||
! 2 - Display Functions
|
! 2 - Display Functions
|
||||||
!
|
!
|
||||||
|
@ -261,6 +259,8 @@ FUNCTION: char* XGetAtomName ( Display* display, Atom atom ) ;
|
||||||
|
|
||||||
! 4.4 - Obtaining and Changing Window Properties
|
! 4.4 - Obtaining and Changing Window Properties
|
||||||
|
|
||||||
|
: AnyPropertyType 0 ; inline
|
||||||
|
|
||||||
FUNCTION: int XGetWindowProperty ( Display* display, Window w, Atom property, long long_offset, long long_length, Bool delete, Atom req_type, Atom* actual_type_return, int* actual_format_return, ulong* nitems_return, ulong* bytes_after_return, char** prop_return ) ;
|
FUNCTION: int XGetWindowProperty ( Display* display, Window w, Atom property, long long_offset, long long_length, Bool delete, Atom req_type, Atom* actual_type_return, int* actual_format_return, ulong* nitems_return, ulong* bytes_after_return, char** prop_return ) ;
|
||||||
|
|
||||||
FUNCTION: int XChangeProperty ( Display* display, Window w, Atom property, Atom type, int format, int mode, char* data, int nelements ) ;
|
FUNCTION: int XChangeProperty ( Display* display, Window w, Atom property, Atom type, int format, int mode, char* data, int nelements ) ;
|
||||||
|
|
Loading…
Reference in New Issue