6 /* ---------------------------- included header files ---------------------- */
8 /* ---------------------------- global definitions ------------------------- */
10 /* ---------------------------- global macros ------------------------------ */
12 /* ---------------------------- type definitions --------------------------- */
14 /* ---------------------------- forward declarations ----------------------- */
16 /* ---------------------------- exported variables (globals) --------------- */
18 /* ---------------------------- interface functions (privileged access) ----- */
20 #ifdef FEVENT_PRIVILEGED_ACCESS
21 void fev_copy_last_event(XEvent
*dest
);
22 XEvent
*fev_get_last_event_address(void);
25 /* ---------------------------- interface functions (normal_access) -------- */
27 /* get the latest event time */
28 Time
fev_get_evtime(void);
30 /* This function determines the location of the mouse pointer from the event
31 * if possible, if not it queries the X server. Returns False if it had to
32 * query the server and the call failed because the pointer was on a
33 * different screen. */
34 Bool
fev_get_evpos_or_query(
35 Display
*dpy
, Window w
, const XEvent
*e
, int *ret_x
, int *ret_y
);
37 /* Sets the x_root/y_root position in the given event if it's of the proper
38 * type. Returns True if the position was set. */
39 Bool
fev_set_evpos(XEvent
*e
, int x
, int y
);
41 /* announce a faked event to the FEvent module */
42 void fev_fake_event(XEvent
*ev
);
44 /* temporarily store the cached event in allocated memory */
45 void *fev_save_event(void);
47 /* restore an event saved with fev_save_event and free the memory it uses */
48 void fev_restore_event(void *ev
);
50 /* fill the event structure *ev with a dummy event of no particular type */
51 void fev_make_null_event(XEvent
*ev
, Display
*dpy
);
53 /* return a copy of the last XEVent in *ev */
54 void fev_get_last_event(XEvent
*ev
);
56 /* ---------------------------- X event replacements ----------------------- */
58 /* Replacements for X functions */
59 XTimeCoord
*FGetMotionEvents(
60 Display
*display
, Window w
, Time start
, Time stop
, int *nevents_return
);
62 Display
*display
, int event_mode
, Time time
);
64 Display
*display
, XEvent
*event_return
,
65 Bool (*predicate
) (Display
*display
, XEvent
*event
, XPointer arg
),
68 Display
*display
, long event_mask
, XEvent
*event_return
);
69 Bool
FCheckPeekIfEvent(
70 Display
*display
, XEvent
*event_return
,
71 Bool (*predicate
) (Display
*display
, XEvent
*event
, XPointer arg
),
73 Bool
FCheckTypedEvent(
74 Display
*display
, int event_type
, XEvent
*event_return
);
75 Bool
FCheckTypedWindowEvent(
76 Display
*display
, Window w
, int event_type
, XEvent
*event_return
);
77 Bool
FCheckWindowEvent(
78 Display
*display
, Window w
, long event_mask
, XEvent
*event_return
);
80 Display
*display
, int mode
);
82 Display
*display
, XEvent
*event_return
,
83 Bool (*predicate
) (Display
*display
, XEvent
*event
, XPointer arg
),
86 Display
*display
, long event_mask
, XEvent
*event_return
);
88 Display
*display
, XEvent
*event_return
);
90 Display
*display
, XEvent
*event_return
);
92 Display
*display
, XEvent
*event_return
,
93 Bool (*predicate
) (Display
*display
, XEvent
*event
, XPointer arg
),
98 Display
*display
, XEvent
*event
);
102 Display
*display
, Window w
, Window
*root_return
, Window
*child_return
,
103 int *root_x_return
, int *root_y_return
, int *win_x_return
,
104 int *win_y_return
, unsigned int *mask_return
);
106 Display
*display
, Window w
, long event_mask
);
108 Display
*display
, Window w
, Bool propagate
, long event_mask
,
111 Display
*display
, Window src_w
, Window dest_w
, int src_x
, int src_y
,
112 unsigned int src_width
, unsigned int src_height
, int dest_x
,
114 int FWarpPointerUpdateEvpos(
115 XEvent
*ev
, Display
*display
, Window src_w
, Window dest_w
, int src_x
,
116 int src_y
, unsigned int src_width
, unsigned int src_height
,
117 int dest_x
, int dest_y
);
119 Display
*display
, Window w
, long event_mask
, XEvent
*event_return
);
121 /* ---------------------------- disable X symbols -------------------------- */
123 /* FEVENT_C must only be defined in FEvent.c! */
125 #define XGetMotionEvents(a, b, c, d, e) use_FGetMotionEvents
126 #define XCheckIfEvent(a, b, c, d) use_FCheckIfEvent
127 #define XCheckMaskEvent(a, b, c) use_FCheckMaskEvent
128 #define XCheckTypedEvent(a, b, c) use_FCheckTypedEvent
129 #define XCheckTypedWindowEvent(a, b, c, d) use_FCheckTypedWindowEvent
130 #define XCheckWindowEvent(a, b, c, d) use_FCheckWindowEvent
131 #define XEventsQueued(a, b) use_FEventsQueued
132 #define XIfEvent(a, b, c, d) use_FIfEvent
133 #define XMaskEvent(a, b, c) use_FMaskEvent
134 #define XNextEvent(a, b) use_FNextEvent
135 #define XPeekEvent(a, b) use_FPeekEvent
136 #define XPeekIfEvent(a, b, c, d) use_FPeekIfEvent
137 #define XPending(a) use_FPending
138 #define XPutBackEvent(a, b) use_FPutBackEvent
139 #define XQueryPointer(a, b, c, d, e, f, g, h, i) use_FQueryPointer
140 #define XQLength(a) use_FQLength
141 #define XSendEvent(a, b, c, d, e) use_FSendEvent
142 #define XWarpPointer(a, b, c, d, e, f, g, h, i) use_FWarpPointer
143 #define XWindowEvent(a, b, c, d) use_FWindowEvent
146 #endif /* FEVENT_H */