home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sa104os2.zip / SATHR104.ZIP / SATHER / CONTRIB / SCHNETTR / XLIB / EVENT_HA.C < prev    next >
C/C++ Source or Header  |  1994-12-08  |  2KB  |  60 lines

  1. /* -*-C-*-
  2.  * access to the X Window System for Sather
  3.  * (c) 1994/11/03 - 1994/12/08 by Erik Schnetter
  4.  */
  5.  
  6. #include <X11/X.h>
  7. #include <X11/Xlib.h>
  8. #include "../../System/header.h"
  9.  
  10.  
  11.  
  12. /* declare the callback functions */
  13. void C_X_EVENT_HANDLER_X_Event_Expose
  14. (INT, INT, BOOL, Display*, INT, INT, INT, INT, INT, INT);
  15. void C_X_EVENT_HANDLER_X_Event_KeyPress
  16. (INT, INT, BOOL, Display*, INT, INT, INT, INT, INT, INT, INT, INT, INT, INT,
  17.  BOOL);
  18.  
  19. static void dispatch (XEvent* event)
  20. {
  21.   switch(event->type) {
  22.   case Expose:
  23.     C_X_EVENT_HANDLER_X_Event_Expose
  24.       (event->type, event->xexpose.serial, event->xexpose.send_event,
  25.        event->xexpose.display, event->xexpose.window,
  26.        event->xexpose.x, event->xexpose.y,
  27.        event->xexpose.width, event->xexpose.height,
  28.        event->xexpose.count);
  29.     break;
  30.   case KeyPress:
  31.     C_X_EVENT_HANDLER_X_Event_KeyPress
  32.       (event->type, event->xkey.serial, event->xkey.send_event,
  33.        event->xkey.display, event->xkey.window,
  34.        event->xkey.root, event->xkey.subwindow,
  35.        event->xkey.time, event->xkey.x, event->xkey.y,
  36.        event->xkey.x_root, event->xkey.y_root,
  37.        event->xkey.state, event->xkey.keycode,
  38.        event->xkey.same_screen);
  39.     break;
  40.   default:
  41.     /* ignore event */
  42.   }
  43. }
  44.  
  45. void X_NextEvent (Display* display)
  46. {
  47.   XEvent event;
  48.   XNextEvent (display, &event);
  49.   dispatch (&event);
  50. }
  51.  
  52. BOOL X_CheckMaskEvent (Display* display, INT mask)
  53. {
  54.   XEvent event;
  55.   BOOL res;
  56.   res = XCheckMaskEvent (display, mask, &event);
  57.   dispatch (&event);
  58.   return res;
  59. }
  60.