Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XIfEvent(3)			XLIB FUNCTIONS			   XIfEvent(3)

NAME
       XIfEvent,  XCheckIfEvent,  XPeekIfEvent	- check	the event queue	with a
       predicate procedure

SYNTAX
       int XIfEvent(Display  *display,	XEvent	*event_return,	Bool  (*predi-
	      cate)(), XPointer	arg);

       Bool XCheckIfEvent(Display *display, XEvent *event_return, Bool (*pred-
	      icate)(),	XPointer arg);

       int XPeekIfEvent(Display	*display, XEvent *event_return,	Bool  (*predi-
	      cate)(), XPointer	arg);

ARGUMENTS
       arg	 Specifies  the	 user-supplied argument	that will be passed to
		 the predicate procedure.

       display	 Specifies the connection to the X server.

       event_return
		 Returns either	a copy of or the  matched  event's  associated
		 structure.

       predicate Specifies  the	procedure that is to be	called to determine if
		 the next event	in the queue matches what you want.

DESCRIPTION
       The XIfEvent function completes only when the specified predicate  pro-
       cedure returns True for an event, which indicates an event in the queue
       matches.	 XIfEvent flushes the output buffer if it blocks  waiting  for
       additional  events.  XIfEvent removes the matching event	from the queue
       and copies the structure	into the client-supplied XEvent	structure.

       When the	predicate procedure finds a match,  XCheckIfEvent  copies  the
       matched	event  into  the  client-supplied XEvent structure and returns
       True.  (This event is removed from the queue.)  If the predicate	proce-
       dure finds no match, XCheckIfEvent returns False, and the output	buffer
       will have been flushed.	All earlier events stored in the queue are not
       discarded.

       The  XPeekIfEvent  function  returns  only when the specified predicate
       procedure returns True for an event.   After  the  predicate  procedure
       finds  a	 match,	XPeekIfEvent copies the	matched	event into the client-
       supplied	XEvent structure without removing the event  from  the	queue.
       XPeekIfEvent  flushes  the output buffer	if it blocks waiting for addi-
       tional events.

       Each of these functions requires	you to pass a predicate	procedure that
       determines if an	event matches what you want.  Your predicate procedure
       must decide if the event	is useful without calling any Xlib  functions.
       If  the	predicate directly or indirectly causes	the state of the event
       queue to	change,	the result is not defined.  If Xlib has	been  initial-
       ized  for  threads, the predicate is called with	the display locked and
       the result of a call by the predicate to	any Xlib function  that	 locks
       the display is not defined unless the caller has	first called XLockDis-
       play.

       The predicate procedure and its associated arguments are:

       Bool (*predicate)(Display *display, XEvent *event, XPointer arg)

       display	 Specifies the connection to the X server.

       event	 Specifies the XEvent structure.

       arg	 Specifies the argument	passed in from the  XIfEvent,  XCheck-
		 IfEvent, or XPeekIfEvent function.

       The  predicate procedure	is called once for each	event in the queue un-
       til it finds a match.  After finding a match, the  predicate  procedure
       must return True.  If it	did not	find a match, it must return False.

SEE ALSO
       XAnyEvent(3), XNextEvent(3), XPutBackEvent(3) XSendEvent(3)
       Xlib - C	Language X Interface

X Version 11			 libX11	1.6.12			   XIfEvent(3)

NAME | SYNTAX | ARGUMENTS | DESCRIPTION | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=XIfEvent&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help