typedef struct ExDisplay ExDisplay; typedef enum { EX_GARBAGE_FROM_SERVER, /* unparsable response */ EX_LOST_CONNECTION } ExFatalError; typedef void (* ExFatalErrorHandler) (ExDisplay *display, ExFatalError error, const char *detail); ExDisplay *ex_display_open (const char *display_name); void ex_display_close (ExDisplay *display); void ex_display_set_event_handler (ExDisplay *display, ExEventHandler func); void ex_display_set_fatal_error_handler (ExDisplay *display, ExFatalErrorHandler func); void ex_display_push_error_handler (ExDisplay *display, ExErrorHandler func); void ex_display_pop_error_handler (ExDisplay *display); void ex_display_set_user_data (ExDisplay *display, expointer data); expointer ex_display_get_user_data (ExDisplay *display); void ex_display_set_memory_vtable (ExDisplay *display, ExMallocFunc malloc_, ExMalloc0Func malloc0_, ExReallocFunc realloc_ ExFreeFunc free_); /* main loop stuff */ int ex_display_get_fd (ExDisplay *display); exboolean ex_display_iteration (ExDisplay *display, exboolean may_block); exboolean ex_display_pending (ExDisplay *display); void ex_display_set_sync (ExDisplay *display, exboolean sync); exboolean ex_display_get_sync (ExDisplay *display); exboolean ex_display_flush (ExDisplay *display, exboolean may_block); void ex_display_sync (ExDisplay *display); /* internal */ ExID ex_display_generate_xid (ExDisplay *display); void ex_display_release_xid (ExDisplay *display, ExID id);