1 ;;;============================================================================
5 ;;; Copyright (c) 2006-2012 by Marc Feeley, All Rights Reserved.
7 ;;; A simple interface to the X Window System Xlib library.
9 ;; Note: This interface to Xlib is still in development. There are
10 ;; still memory leaks in the interface.
12 ;;;============================================================================
14 (##namespace ("Xlib#"))
16 (##include "~~lib/gambit#.scm")
18 (##include "Xlib#.scm")
27 ;;;============================================================================
29 (c-declare #<<end-of-c-declare
32 #include <X11/Xutil.h>
37 ;; Declare a few types so that the function prototypes use the same
38 ;; type names as a C program.
40 (c-define-type Time unsigned-long)
41 (c-define-type XID unsigned-long)
43 (c-define-type Window XID)
44 (c-define-type Drawable XID)
45 (c-define-type Font XID)
46 (c-define-type Pixmap XID)
47 (c-define-type Cursor XID)
48 (c-define-type Colormap XID)
49 (c-define-type GContext XID)
50 (c-define-type KeySym XID)
52 (c-declare #<<end-of-c-declare
54 #define debug_free_not
61 ___SCMOBJ release_rc_XGCValues( void* ptr )
64 printf( "release_rc_XGCValues(%p)\n", p );
68 ___EXT(___release_rc)( p );
70 return ___FIX(___NO_ERR);
73 ___SCMOBJ XFreeFontInfo_XFontStruct( void* ptr )
74 { XFontStruct* p = ptr;
76 printf( "XFreeFontInfo_XFontStruct(%p)\n", p );
80 XFreeFontInfo( NULL, p, 1 );
82 return ___FIX(___NO_ERR);
85 ___SCMOBJ release_rc_XColor( void* ptr )
88 printf( "release_rc_XColor(%p)\n", p );
92 ___EXT(___release_rc)( p );
94 return ___FIX(___NO_ERR);
97 ___SCMOBJ release_rc_XEvent( void* ptr )
100 printf( "release_rc_XEvent(%p)\n", p );
104 ___EXT(___release_rc)( p );
106 return ___FIX(___NO_ERR);
112 (c-define-type Bool int)
113 (c-define-type Status int)
114 (c-define-type GC (pointer (struct "_XGC") (GC)))
115 (c-define-type Visual "Visual")
116 (c-define-type Visual* (pointer Visual (Visual*)))
117 (c-define-type Display "Display")
118 (c-define-type Display* (pointer Display (Display*)))
119 (c-define-type Screen "Screen")
120 (c-define-type Screen* (pointer Screen (Screen*)))
121 (c-define-type XGCValues "XGCValues")
122 (c-define-type XGCValues* (pointer XGCValues (XGCValues*)))
123 (c-define-type XGCValues*/release-rc (pointer XGCValues (XGCValues*) "release_rc_XGCValues"))
124 (c-define-type XFontStruct "XFontStruct")
125 (c-define-type XFontStruct* (pointer XFontStruct (XFontStruct*)))
126 (c-define-type XFontStruct*/XFreeFontInfo (pointer XFontStruct (XFontStruct*) "XFreeFontInfo_XFontStruct"))
127 (c-define-type XColor "XColor")
128 (c-define-type XColor* (pointer XColor (XColor*)))
129 (c-define-type XColor*/release-rc (pointer XColor (XColor*) "release_rc_XColor"))
130 (c-define-type XEvent "XEvent")
131 (c-define-type XEvent* (pointer XEvent (XEvent*)))
132 (c-define-type XEvent*/release-rc (pointer XEvent (XEvent*) "release_rc_XEvent"))
134 (c-define-type char* char-string)
136 ;; Function prototypes for a minimal subset of Xlib functions. The
137 ;; functions have the same name in Scheme and C.
140 (c-lambda (char*) ;; display_name
144 (define XCloseDisplay
145 (c-lambda (Display*) ;; display
149 (define XDefaultScreen
150 (c-lambda (Display*) ;; display
154 (define XScreenOfDisplay
155 (c-lambda (Display* ;; display
156 int) ;; screen_number
160 (define XDefaultColormapOfScreen
161 (c-lambda (Screen*) ;; screen
163 "XDefaultColormapOfScreen"))
166 (c-lambda (Display* ;; display
171 (define XConnectionNumber
172 (c-lambda (Display*) ;; display
174 "XConnectionNumber"))
177 (c-lambda (Display* ;; display
178 int) ;; screen_number
182 (define XDefaultRootWindow
183 (c-lambda (Display*) ;; display
185 "XDefaultRootWindow"))
187 (define XRootWindowOfScreen
188 (c-lambda (Screen*) ;; screen
190 "XRootWindowOfScreen"))
192 (define XDefaultVisual
193 (c-lambda (Display* ;; display
194 int) ;; screen_number
198 (define XDefaultVisualOfScreen
199 (c-lambda (Screen*) ;; screen
201 "XDefaultVisualOfScreen"))
204 (c-lambda (Display* ;; display
205 int) ;; screen_number
209 (define XDefaultGCOfScreen
210 (c-lambda (Screen*) ;; screen
212 "XDefaultGCOfScreen"))
215 (c-lambda (Display* ;; display
216 int) ;; screen_number
221 (c-lambda (Display* ;; display
222 int) ;; screen_number
226 (define XCreateSimpleWindow
227 (c-lambda (Display* ;; display
231 unsigned-int ;; width
232 unsigned-int ;; height
233 unsigned-int ;; border_width
234 unsigned-long ;; border
235 unsigned-long) ;; backgound
237 "XCreateSimpleWindow"))
240 (c-lambda (Display* ;; display
245 (define XResizeWindow
246 (c-lambda (Display* ;; display
248 unsigned-int ;; width
249 unsigned-int) ;; height
254 (c-lambda (Display*) ;; display
259 (c-lambda (Display* ;; display
261 unsigned-long ;; valuemask
262 XGCValues*) ;; values
267 (c-lambda (Display* ;; display
272 (define XFillRectangle
273 (c-lambda (Display* ;; display
278 unsigned-int ;; width
279 unsigned-int) ;; height
284 (c-lambda (Display* ;; display
289 unsigned-int ;; width
290 unsigned-int ;; height
297 (c-lambda (Display* ;; display
308 (c-lambda (XFontStruct* ;; font_struct
315 (c-lambda (Display* ;; display
318 XColor*) ;; exact_def_return
323 (c-lambda (Display* ;; display
325 XColor*) ;; screen_in_out
329 (define (make-XColor-box)
332 "___result_voidstar = ___EXT(___alloc_rc) (sizeof (XColor));")))
335 (c-lambda (XColor*) ;; XColor box
337 "___result = ___arg1->pixel;"))
339 (define XColor-pixel-set!
340 (c-lambda (XColor* ;; XColor box
341 unsigned-long) ;; intensity
343 "___arg1->pixel = ___arg2;"))
346 (c-lambda (XColor*) ;; XColor box
348 "___result = ___arg1->red;"))
350 (define XColor-red-set!
351 (c-lambda (XColor* ;; XColor box
352 unsigned-short);; intensity
354 "___arg1->red = ___arg2;"))
357 (c-lambda (XColor*) ;; XColor box
359 "___result = ___arg1->green;"))
361 (define XColor-green-set!
362 (c-lambda (XColor* ;; XColor box
363 unsigned-short);; intensity
365 "___arg1->green = ___arg2;"))
368 (c-lambda (XColor*) ;; XColor box
370 "___result = ___arg1->blue;"))
372 (define XColor-blue-set!
373 (c-lambda (XColor* ;; XColor box
374 unsigned-short);; intensity
376 "___arg1->blue = ___arg2;"))
378 (define (make-XGCValues-box)
380 XGCValues*/release-rc
381 "___result_voidstar = ___EXT(___alloc_rc) (sizeof (XGCValues));")))
383 (define XGCValues-foreground
384 (c-lambda (XGCValues*) ;; XGCValues box
386 "return ___arg1->foreground;"))
388 (define XGCValues-foreground-set!
389 (c-lambda (XGCValues* ;; XGCValues box
390 unsigned-long) ;; pixel index
392 "___arg1->foreground = ___arg2;"))
394 (define XGCValues-background
395 (c-lambda (XGCValues*) ;; XGCValues box
397 "return ___arg1->background;"))
399 (define XGCValues-background-set!
400 (c-lambda (XGCValues* ;; XGCValues box
401 unsigned-long) ;; pixel index
403 "___arg1->background = ___arg2;"))
405 (define XGCValues-font
406 (c-lambda (XGCValues*) ;; XGCValues box
408 "return ___arg1->font;"))
410 (define XGCValues-font-set!
411 (c-lambda (XGCValues* ;; XGCValues box
414 "___arg1->font = ___arg2;"))
417 ((c-lambda () unsigned-long "___result = GCFunction;")))
420 ((c-lambda () unsigned-long "___result = GCPlaneMask;")))
423 ((c-lambda () unsigned-long "___result = GCForeground;")))
426 ((c-lambda () unsigned-long "___result = GCBackground;")))
429 ((c-lambda () unsigned-long "___result = GCLineWidth;")))
432 ((c-lambda () unsigned-long "___result = GCLineStyle;")))
435 ((c-lambda () unsigned-long "___result = GCCapStyle;")))
438 ((c-lambda () unsigned-long "___result = GCJoinStyle;")))
441 ((c-lambda () unsigned-long "___result = GCFillStyle;")))
444 ((c-lambda () unsigned-long "___result = GCFillRule;")))
447 ((c-lambda () unsigned-long "___result = GCTile;")))
450 ((c-lambda () unsigned-long "___result = GCStipple;")))
452 (define GCTileStipXOrigin
453 ((c-lambda () unsigned-long "___result = GCTileStipXOrigin;")))
455 (define GCTileStipYOrigin
456 ((c-lambda () unsigned-long "___result = GCTileStipYOrigin;")))
459 ((c-lambda () unsigned-long "___result = GCFont;")))
461 (define GCSubwindowMode
462 ((c-lambda () unsigned-long "___result = GCSubwindowMode;")))
464 (define GCGraphicsExposures
465 ((c-lambda () unsigned-long "___result = GCGraphicsExposures;")))
467 (define GCClipXOrigin
468 ((c-lambda () unsigned-long "___result = GCClipXOrigin;")))
470 (define GCClipYOrigin
471 ((c-lambda () unsigned-long "___result = GCClipYOrigin;")))
474 ((c-lambda () unsigned-long "___result = GCClipMask;")))
477 ((c-lambda () unsigned-long "___result = GCDashOffset;")))
480 ((c-lambda () unsigned-long "___result = GCDashList;")))
483 ((c-lambda () unsigned-long "___result = GCArcMode;")))
486 (c-lambda (Display* ;; display
488 unsigned-long ;; valuemask
489 XGCValues*) ;; values
494 (c-lambda (Display* ;; display
496 unsigned-long ;; valuemask
497 XGCValues*) ;; values_return
502 (c-lambda (Display* ;; display
504 XFontStruct*/XFreeFontInfo
507 (define XFreeFontInfo
508 (c-lambda (nonnull-char-string-list ;; names
509 XFontStruct* ;; free_info
515 (c-lambda (Display* ;; display
521 (c-lambda (Display* ;; display
526 (define XLoadQueryFont
527 (c-lambda (Display* ;; display
529 XFontStruct*/XFreeFontInfo
533 (c-lambda (Display* ;; display
534 XFontStruct*) ;; font_struct
538 (define XFontStruct-fid
539 (c-lambda (XFontStruct*) ;; font_struct
541 "___result = ___arg1->fid;"))
543 (define XFontStruct-ascent
544 (c-lambda (XFontStruct*) ;; font_struct
546 "___result = ___arg1->ascent;"))
548 (define XFontStruct-descent
549 (c-lambda (XFontStruct*) ;; font_struct
551 "___result = ___arg1->descent;"))
554 ((c-lambda () long "___result = NoEventMask;")))
557 ((c-lambda () long "___result = KeyPressMask;")))
559 (define KeyReleaseMask
560 ((c-lambda () long "___result = KeyReleaseMask;")))
562 (define ButtonPressMask
563 ((c-lambda () long "___result = ButtonPressMask;")))
565 (define ButtonReleaseMask
566 ((c-lambda () long "___result = ButtonReleaseMask;")))
568 (define EnterWindowMask
569 ((c-lambda () long "___result = EnterWindowMask;")))
571 (define LeaveWindowMask
572 ((c-lambda () long "___result = LeaveWindowMask;")))
574 (define PointerMotionMask
575 ((c-lambda () long "___result = PointerMotionMask;")))
577 (define PointerMotionHintMask
578 ((c-lambda () long "___result = PointerMotionHintMask;")))
580 (define Button1MotionMask
581 ((c-lambda () long "___result = Button1MotionMask;")))
583 (define Button2MotionMask
584 ((c-lambda () long "___result = Button2MotionMask;")))
586 (define Button3MotionMask
587 ((c-lambda () long "___result = Button3MotionMask;")))
589 (define Button4MotionMask
590 ((c-lambda () long "___result = Button4MotionMask;")))
592 (define Button5MotionMask
593 ((c-lambda () long "___result = Button5MotionMask;")))
595 (define ButtonMotionMask
596 ((c-lambda () long "___result = ButtonMotionMask;")))
598 (define KeymapStateMask
599 ((c-lambda () long "___result = KeymapStateMask;")))
602 ((c-lambda () long "___result = ExposureMask;")))
604 (define VisibilityChangeMask
605 ((c-lambda () long "___result = VisibilityChangeMask;")))
607 (define StructureNotifyMask
608 ((c-lambda () long "___result = StructureNotifyMask;")))
610 (define ResizeRedirectMask
611 ((c-lambda () long "___result = ResizeRedirectMask;")))
613 (define SubstructureNotifyMask
614 ((c-lambda () long "___result = SubstructureNotifyMask;")))
616 (define SubstructureRedirectMask
617 ((c-lambda () long "___result = SubstructureRedirectMask;")))
619 (define FocusChangeMask
620 ((c-lambda () long "___result = FocusChangeMask;")))
622 (define PropertyChangeMask
623 ((c-lambda () long "___result = PropertyChangeMask;")))
625 (define ColormapChangeMask
626 ((c-lambda () long "___result = ColormapChangeMask;")))
628 (define OwnerGrabButtonMask
629 ((c-lambda () long "___result = OwnerGrabButtonMask;")))
632 ((c-lambda () long "___result = KeyPress;")))
635 ((c-lambda () long "___result = KeyRelease;")))
638 ((c-lambda () long "___result = ButtonPress;")))
640 (define ButtonRelease
641 ((c-lambda () long "___result = ButtonRelease;")))
644 ((c-lambda () long "___result = MotionNotify;")))
647 ((c-lambda () long "___result = EnterNotify;")))
650 ((c-lambda () long "___result = LeaveNotify;")))
653 ((c-lambda () long "___result = FocusIn;")))
656 ((c-lambda () long "___result = FocusOut;")))
659 ((c-lambda () long "___result = KeymapNotify;")))
662 ((c-lambda () long "___result = Expose;")))
664 (define GraphicsExpose
665 ((c-lambda () long "___result = GraphicsExpose;")))
668 ((c-lambda () long "___result = NoExpose;")))
670 (define VisibilityNotify
671 ((c-lambda () long "___result = VisibilityNotify;")))
674 ((c-lambda () long "___result = CreateNotify;")))
676 (define DestroyNotify
677 ((c-lambda () long "___result = DestroyNotify;")))
680 ((c-lambda () long "___result = UnmapNotify;")))
683 ((c-lambda () long "___result = MapNotify;")))
686 ((c-lambda () long "___result = MapRequest;")))
688 (define ReparentNotify
689 ((c-lambda () long "___result = ReparentNotify;")))
691 (define ConfigureNotify
692 ((c-lambda () long "___result = ConfigureNotify;")))
694 (define ConfigureRequest
695 ((c-lambda () long "___result = ConfigureRequest;")))
697 (define GravityNotify
698 ((c-lambda () long "___result = GravityNotify;")))
700 (define ResizeRequest
701 ((c-lambda () long "___result = ResizeRequest;")))
703 (define CirculateNotify
704 ((c-lambda () long "___result = CirculateNotify;")))
706 (define CirculateRequest
707 ((c-lambda () long "___result = CirculateRequest;")))
709 (define PropertyNotify
710 ((c-lambda () long "___result = PropertyNotify;")))
712 (define SelectionClear
713 ((c-lambda () long "___result = SelectionClear;")))
715 (define SelectionRequest
716 ((c-lambda () long "___result = SelectionRequest;")))
718 (define SelectionNotify
719 ((c-lambda () long "___result = SelectionNotify;")))
721 (define ColormapNotify
722 ((c-lambda () long "___result = ColormapNotify;")))
724 (define ClientMessage
725 ((c-lambda () long "___result = ClientMessage;")))
727 (define MappingNotify
728 ((c-lambda () long "___result = MappingNotify;")))
730 (define XCheckMaskEvent
731 (c-lambda (Display* ;; display
737 if (XCheckMaskEvent (___arg1, ___arg2, &ev))
739 pev = ___CAST(XEvent*,___EXT(___alloc_rc) (sizeof (ev)));
744 ___result_voidstar = pev;
749 (c-lambda (Display* ;; display
755 (define XAnyEvent-type
756 (c-lambda (XEvent*) ;; XEvent box
758 "___result = ___arg1->type;"))
760 (define XAnyEvent-serial
761 (c-lambda (XEvent*) ;; XEvent box
763 "___result = ___arg1->xany.serial;"))
765 (define XAnyEvent-send-event
766 (c-lambda (XEvent*) ;; XEvent box
768 "___result = ___arg1->xany.send_event;"))
770 (define XAnyEvent-display
771 (c-lambda (XEvent*) ;; XEvent box
773 "___result_voidstar = ___arg1->xany.display;"))
775 (define XAnyEvent-window
776 (c-lambda (XEvent*) ;; XEvent box
778 "___result = ___arg1->xany.window;"))
780 (define XKeyEvent-root
781 (c-lambda (XEvent*) ;; XEvent box
783 "___result = ___arg1->xkey.root;"))
785 (define XKeyEvent-subwindow
786 (c-lambda (XEvent*) ;; XEvent box
788 "___result = ___arg1->xkey.subwindow;"))
790 (define XKeyEvent-time
791 (c-lambda (XEvent*) ;; XEvent box
793 "___result = ___arg1->xkey.time;"))
796 (c-lambda (XEvent*) ;; XEvent box
798 "___result = ___arg1->xkey.x;"))
801 (c-lambda (XEvent*) ;; XEvent box
803 "___result = ___arg1->xkey.y;"))
805 (define XKeyEvent-x-root
806 (c-lambda (XEvent*) ;; XEvent box
808 "___result = ___arg1->xkey.x_root;"))
810 (define XKeyEvent-y-root
811 (c-lambda (XEvent*) ;; XEvent box
813 "___result = ___arg1->xkey.y_root;"))
815 (define XKeyEvent-state
816 (c-lambda (XEvent*) ;; XEvent box
818 "___result = ___arg1->xkey.state;"))
820 (define XKeyEvent-keycode
821 (c-lambda (XEvent*) ;; XEvent box
823 "___result = ___arg1->xkey.keycode;"))
825 (define XKeyEvent-same-screen
826 (c-lambda (XEvent*) ;; XEvent box
828 "___result = ___arg1->xkey.same_screen;"))
830 (define XButtonEvent-root
831 (c-lambda (XEvent*) ;; XEvent box
833 "___result = ___arg1->xbutton.root;"))
835 (define XButtonEvent-subwindow
836 (c-lambda (XEvent*) ;; XEvent box
838 "___result = ___arg1->xbutton.subwindow;"))
840 (define XButtonEvent-time
841 (c-lambda (XEvent*) ;; XEvent box
843 "___result = ___arg1->xbutton.time;"))
845 (define XButtonEvent-x
846 (c-lambda (XEvent*) ;; XEvent box
848 "___result = ___arg1->xbutton.x;"))
850 (define XButtonEvent-y
851 (c-lambda (XEvent*) ;; XEvent box
853 "___result = ___arg1->xbutton.y;"))
855 (define XButtonEvent-x-root
856 (c-lambda (XEvent*) ;; XEvent box
858 "___result = ___arg1->xbutton.x_root;"))
860 (define XButtonEvent-y-root
861 (c-lambda (XEvent*) ;; XEvent box
863 "___result = ___arg1->xbutton.y_root;"))
865 (define XButtonEvent-state
866 (c-lambda (XEvent*) ;; XEvent box
868 "___result = ___arg1->xbutton.state;"))
870 (define XButtonEvent-button
871 (c-lambda (XEvent*) ;; XEvent box
873 "___result = ___arg1->xbutton.button;"))
875 (define XButtonEvent-same-screen
876 (c-lambda (XEvent*) ;; XEvent box
878 "___result = ___arg1->xbutton.same_screen;"))
880 (define XMotionEvent-root
881 (c-lambda (XEvent*) ;; XEvent box
883 "___result = ___arg1->xmotion.root;"))
885 (define XMotionEvent-subwindow
886 (c-lambda (XEvent*) ;; XEvent box
888 "___result = ___arg1->xmotion.subwindow;"))
890 (define XMotionEvent-time
891 (c-lambda (XEvent*) ;; XEvent box
893 "___result = ___arg1->xmotion.time;"))
895 (define XMotionEvent-x
896 (c-lambda (XEvent*) ;; XEvent box
898 "___result = ___arg1->xmotion.x;"))
900 (define XMotionEvent-y
901 (c-lambda (XEvent*) ;; XEvent box
903 "___result = ___arg1->xmotion.y;"))
905 (define XMotionEvent-x-root
906 (c-lambda (XEvent*) ;; XEvent box
908 "___result = ___arg1->xmotion.x_root;"))
910 (define XMotionEvent-y-root
911 (c-lambda (XEvent*) ;; XEvent box
913 "___result = ___arg1->xmotion.y_root;"))
915 (define XMotionEvent-state
916 (c-lambda (XEvent*) ;; XEvent box
918 "___result = ___arg1->xmotion.state;"))
920 (define XMotionEvent-is-hint
921 (c-lambda (XEvent*) ;; XEvent box
923 "___result = ___arg1->xmotion.is_hint;"))
925 (define XMotionEvent-same-screen
926 (c-lambda (XEvent*) ;; XEvent box
928 "___result = ___arg1->xmotion.same_screen;"))
930 (define XCrossingEvent-root
931 (c-lambda (XEvent*) ;; XEvent box
933 "___result = ___arg1->xcrossing.root;"))
935 (define XCrossingEvent-subwindow
936 (c-lambda (XEvent*) ;; XEvent box
938 "___result = ___arg1->xcrossing.subwindow;"))
940 (define XCrossingEvent-time
941 (c-lambda (XEvent*) ;; XEvent box
943 "___result = ___arg1->xcrossing.time;"))
945 (define XCrossingEvent-x
946 (c-lambda (XEvent*) ;; XEvent box
948 "___result = ___arg1->xcrossing.x;"))
950 (define XCrossingEvent-y
951 (c-lambda (XEvent*) ;; XEvent box
953 "___result = ___arg1->xcrossing.y;"))
955 (define XCrossingEvent-x-root
956 (c-lambda (XEvent*) ;; XEvent box
958 "___result = ___arg1->xcrossing.x_root;"))
960 (define XCrossingEvent-y-root
961 (c-lambda (XEvent*) ;; XEvent box
963 "___result = ___arg1->xcrossing.y_root;"))
965 (define XCrossingEvent-mode
966 (c-lambda (XEvent*) ;; XEvent box
968 "___result = ___arg1->xcrossing.mode;"))
970 (define XCrossingEvent-detail
971 (c-lambda (XEvent*) ;; XEvent box
973 "___result = ___arg1->xcrossing.detail;"))
975 (define XCrossingEvent-same-screen
976 (c-lambda (XEvent*) ;; XEvent box
978 "___result = ___arg1->xcrossing.same_screen;"))
980 (define XCrossingEvent-focus
981 (c-lambda (XEvent*) ;; XEvent box
983 "___result = ___arg1->xcrossing.focus;"))
985 (define XCrossingEvent-state
986 (c-lambda (XEvent*) ;; XEvent box
988 "___result = ___arg1->xcrossing.state;"))
990 (define XConfigureEvent-x
991 (c-lambda (XEvent*) ;; XEvent box
993 "___result = ___arg1->xconfigure.x;"))
995 (define XConfigureEvent-y
996 (c-lambda (XEvent*) ;; XEvent box
998 "___result = ___arg1->xconfigure.y;"))
1000 (define XConfigureEvent-width
1001 (c-lambda (XEvent*) ;; XEvent box
1003 "___result = ___arg1->xconfigure.width;"))
1005 (define XConfigureEvent-height
1006 (c-lambda (XEvent*) ;; XEvent box
1008 "___result = ___arg1->xconfigure.height;"))
1010 (define XConfigureEvent-border-width
1011 (c-lambda (XEvent*) ;; XEvent box
1013 "___result = ___arg1->xconfigure.border_width;"))
1015 (define XResizeRequestEvent-width
1016 (c-lambda (XEvent*) ;; XEvent box
1018 "___result = ___arg1->xresizerequest.width;"))
1020 (define XResizeRequestEvent-height
1021 (c-lambda (XEvent*) ;; XEvent box
1023 "___result = ___arg1->xresizerequest.height;"))
1025 (define XLookupString
1026 (c-lambda (XEvent*) ;; event_struct (XKeyEvent)
1032 int n = XLookupString (___CAST(XKeyEvent*,___arg1),
1041 (define (convert-XEvent ev)
1043 (let ((type (XAnyEvent-type ev)))
1045 (cond ((or (##fixnum.= type KeyPress)
1046 (##fixnum.= type KeyRelease))
1048 (if (##fixnum.= type KeyPress)
1052 (XAnyEvent-serial ev)
1053 (XAnyEvent-send-event ev)
1054 (XAnyEvent-display ev)
1055 (XAnyEvent-window ev)
1057 (XKeyEvent-subwindow ev)
1061 (XKeyEvent-x-root ev)
1062 (XKeyEvent-y-root ev)
1063 (XKeyEvent-state ev)
1064 (XKeyEvent-keycode ev)
1065 (XKeyEvent-same-screen ev)
1066 (XLookupString ev)))
1068 ((or (##fixnum.= type ButtonPress)
1069 (##fixnum.= type ButtonRelease))
1071 (if (##fixnum.= type ButtonPress)
1072 'XButtonPressedEvent
1073 'XButtonReleasedEvent)
1075 (XAnyEvent-serial ev)
1076 (XAnyEvent-send-event ev)
1077 (XAnyEvent-display ev)
1078 (XAnyEvent-window ev)
1079 (XButtonEvent-root ev)
1080 (XButtonEvent-subwindow ev)
1081 (XButtonEvent-time ev)
1084 (XButtonEvent-x-root ev)
1085 (XButtonEvent-y-root ev)
1086 (XButtonEvent-state ev)
1087 (XButtonEvent-button ev)
1088 (XButtonEvent-same-screen ev)))
1090 ((##fixnum.= type MotionNotify)
1094 (XAnyEvent-serial ev)
1095 (XAnyEvent-send-event ev)
1096 (XAnyEvent-display ev)
1097 (XAnyEvent-window ev)
1098 (XMotionEvent-root ev)
1099 (XMotionEvent-subwindow ev)
1100 (XMotionEvent-time ev)
1103 (XMotionEvent-x-root ev)
1104 (XMotionEvent-y-root ev)
1105 (XMotionEvent-state ev)
1106 (XMotionEvent-is-hint ev)
1107 (XMotionEvent-same-screen ev)))
1109 ((or (##fixnum.= type EnterNotify)
1110 (##fixnum.= type LeaveNotify))
1112 (if (##fixnum.= type EnterNotify)
1116 (XAnyEvent-serial ev)
1117 (XAnyEvent-send-event ev)
1118 (XAnyEvent-display ev)
1119 (XAnyEvent-window ev)
1120 (XCrossingEvent-root ev)
1121 (XCrossingEvent-subwindow ev)
1122 (XCrossingEvent-time ev)
1123 (XCrossingEvent-x ev)
1124 (XCrossingEvent-y ev)
1125 (XCrossingEvent-x-root ev)
1126 (XCrossingEvent-y-root ev)
1127 (XCrossingEvent-mode ev)
1128 (XCrossingEvent-detail ev)
1129 (XCrossingEvent-same-screen ev)
1130 (XCrossingEvent-focus ev)
1131 (XCrossingEvent-state ev)))
1133 ((##fixnum.= type ConfigureNotify)
1137 (XAnyEvent-serial ev)
1138 (XAnyEvent-send-event ev)
1139 (XAnyEvent-display ev)
1140 (XAnyEvent-window ev)
1141 (XConfigureEvent-x ev)
1142 (XConfigureEvent-y ev)
1143 (XConfigureEvent-width ev)
1144 (XConfigureEvent-height ev)
1145 (XConfigureEvent-border-width ev)))
1147 ((##fixnum.= type ResizeRequest)
1149 'XResizeRequestEvent
1151 (XAnyEvent-serial ev)
1152 (XAnyEvent-send-event ev)
1153 (XAnyEvent-display ev)
1154 (XAnyEvent-window ev)
1155 (XResizeRequestEvent-width ev)
1156 (XResizeRequestEvent-height ev)))
1161 ;;;============================================================================