summaryrefslogtreecommitdiff
path: root/ex-display.h
diff options
context:
space:
mode:
Diffstat (limited to 'ex-display.h')
-rw-r--r--ex-display.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/ex-display.h b/ex-display.h
new file mode 100644
index 0000000..f3e5cd1
--- /dev/null
+++ b/ex-display.h
@@ -0,0 +1,50 @@
+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);