#include #include #include #include #include #include #include #include #include /* Macros */ #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif /* Typedefs */ typedef int bool; typedef int (* error_handler_t) (Display *dpy, XErrorEvent *event); typedef struct ocm_app_t ocm_app_t; typedef struct ocm_window_t ocm_window_t; /* Data structures */ struct ocm_app_t { Display * display; Window root; Window no_focus; uint32_t timestamp; Window cm_owner; Window wm_owner; error_handler_t error_handler; int error_nesting; ocm_window_t * windows; }; struct ocm_window_t { ocm_app_t * app; Window xwindow; ocm_window_t * next; Damage damage; }; /* window.c */ ocm_window_t * ocm_window_new (ocm_app_t *app, Window xwindow); void ocm_window_free (ocm_window_t *window); /* utils.c */ void ocm_error (const char *fmt, ...); void * ocm_malloc (size_t n); void ocm_free (void *data); void ocm_begin_ignore_errors (ocm_app_t *app); void ocm_end_ignore_errors (ocm_app_t *app); bool ocm_window_owns_xwindow (ocm_window_t *window, Window xwindow);