Implementation of the pushed close button.
[wine] / windows / event.c
1 /*
2  * X events handling functions
3  * 
4  * Copyright 1993 Alexandre Julliard
5  * 
6  */
7
8 #include "config.h"
9
10 #include "message.h"
11
12 #ifndef X_DISPLAY_MISSING
13 extern EVENT_DRIVER X11DRV_EVENT_Driver;
14 #else /* X_DISPLAY_MISSING */
15 extern EVENT_DRIVER TTYDRV_EVENT_Driver;
16 #endif /* X_DISPLAY_MISSING */
17
18 /***********************************************************************
19  *              EVENT_GetDriver
20  */
21 EVENT_DRIVER *EVENT_GetDriver(void)
22 {
23 #ifndef X_DISPLAY_MISSING
24   return &X11DRV_EVENT_Driver;
25 #else /* X_DISPLAY_MISSING */
26   return &TTYDRV_EVENT_Driver;
27 #endif /* X_DISPLAY_MISSING */
28 }
29
30 /***********************************************************************
31  *              EVENT_Init
32  *
33  * Initialize network IO.
34  */
35 BOOL32 EVENT_Init(void)
36 {
37   return EVENT_GetDriver()->pInit();
38 }
39
40 /***********************************************************************
41  *              EVENT_AddIO 
42  */
43 void EVENT_AddIO(int fd, unsigned io_type)
44 {
45   EVENT_GetDriver()->pAddIO(fd, io_type);
46 }
47
48 /***********************************************************************
49  *              EVENT_DeleteIO 
50  */
51 void EVENT_DeleteIO(int fd, unsigned io_type)
52 {
53   EVENT_GetDriver()->pDeleteIO(fd, io_type);
54 }
55
56 /***********************************************************************
57  *              EVENT_WaitNetEvent
58  *
59  * Wait for a network event, optionally sleeping until one arrives.
60  * Return TRUE if an event is pending, FALSE on timeout or error
61  * (for instance lost connection with the server).
62  */
63 BOOL32 EVENT_WaitNetEvent(BOOL32 sleep, BOOL32 peek)
64 {
65   return EVENT_GetDriver()->pWaitNetEvent(sleep, peek);
66 }
67
68 /***********************************************************************
69  *              EVENT_Synchronize
70  *
71  * Synchronize with the X server. Should not be used too often.
72  */
73 void EVENT_Synchronize(void)
74 {
75   EVENT_GetDriver()->pSynchronize();
76 }
77
78 /**********************************************************************
79  *              EVENT_CheckFocus
80  */
81 BOOL32 EVENT_CheckFocus(void)
82 {
83   return EVENT_GetDriver()->pCheckFocus();
84 }
85
86 /***********************************************************************
87  *              EVENT_QueryPointer
88  */
89 BOOL32 EVENT_QueryPointer(DWORD *posX, DWORD *posY, DWORD *state)
90 {
91   return EVENT_GetDriver()->pQueryPointer(posX, posY, state);
92 }
93
94
95 /***********************************************************************
96  *              EVENT_DummyMotionNotify
97  *
98  * Generate a dummy MotionNotify event. Used to force a WM_SETCURSOR message.
99  */
100 void EVENT_DummyMotionNotify(void)
101 {
102   EVENT_GetDriver()->pDummyMotionNotify();
103 }
104
105 /**********************************************************************
106  *              X11DRV_EVENT_Pending
107  */
108 BOOL32 EVENT_Pending()
109 {
110   return EVENT_GetDriver()->pPending();
111 }
112
113 /***********************************************************************
114  *              IsUserIdle      (USER.333)
115  *
116  * Check if we have pending X events.
117  */
118 BOOL16 WINAPI IsUserIdle(void)
119 {
120   return EVENT_GetDriver()->pIsUserIdle();
121 }