diff options
author | Kristian Høgsberg <krh@redhat.com> | 2008-12-30 11:03:33 -0500 |
---|---|---|
committer | Kristian Høgsberg <krh@redhat.com> | 2008-12-30 11:03:33 -0500 |
commit | 94448c0ad7fc452aa363f74021b7c3d87f20a462 (patch) | |
tree | 1ecdbaae483f90d3d7a9aeaaed275c006744903e /wayland-client.h | |
parent | e787bc60e50da65204e53b7587fca05d011e38ba (diff) | |
download | wayland-94448c0ad7fc452aa363f74021b7c3d87f20a462.tar.gz wayland-94448c0ad7fc452aa363f74021b7c3d87f20a462.tar.xz wayland-94448c0ad7fc452aa363f74021b7c3d87f20a462.zip |
Add listener interfaces for output and input_device objects.
Diffstat (limited to 'wayland-client.h')
-rw-r--r-- | wayland-client.h | 83 |
1 files changed, 62 insertions, 21 deletions
diff --git a/wayland-client.h b/wayland-client.h index fd15839..8cbec1a 100644 --- a/wayland-client.h +++ b/wayland-client.h @@ -23,13 +23,7 @@ #ifndef _WAYLAND_CLIENT_H #define _WAYLAND_CLIENT_H -/* GCC visibility */ -#if defined(__GNUC__) && __GNUC__ >= 4 -#define WL_EXPORT __attribute__ ((visibility("default"))) -#else -#define WL_EXPORT -#endif - +struct wl_object; struct wl_display; struct wl_surface; struct wl_visual; @@ -37,6 +31,10 @@ struct wl_visual; #define WL_DISPLAY_READABLE 0x01 #define WL_DISPLAY_WRITABLE 0x02 +int +wl_object_implements(struct wl_object *object, + const char *interface, int version); + typedef int (*wl_display_update_func_t)(uint32_t mask, void *data); struct wl_display *wl_display_create(const char *name, size_t name_size); @@ -46,20 +44,17 @@ int wl_display_get_fd(struct wl_display *display, void wl_display_iterate(struct wl_display *display, uint32_t mask); -typedef void (*wl_display_event_func_t)(struct wl_display *display, - uint32_t object, - uint32_t opcode, - uint32_t size, - uint32_t *p, - void *data); - -void wl_display_set_event_handler(struct wl_display *display, - wl_display_event_func_t handler, - void *data); - +struct wl_global_listener; +typedef void (*wl_display_global_func_t)(struct wl_display *display, + struct wl_object *object, + void *data); void -wl_display_get_geometry(struct wl_display *display, - int32_t *width, int32_t *height); +wl_display_remove_global_listener(struct wl_display *display, + struct wl_global_listener *listener); + +struct wl_global_listener * +wl_display_add_global_listener(struct wl_display *display, + wl_display_global_func_t handler, void *data); struct wl_compositor * wl_display_get_compositor(struct wl_display *display); struct wl_visual * @@ -69,10 +64,24 @@ wl_display_get_premultiplied_argb_visual(struct wl_display *display); struct wl_visual * wl_display_get_rgb_visual(struct wl_display *display); +struct wl_compositor_listener { + void (*acknowledge)(void *data, + struct wl_compositor *compositor, + uint32_t key, uint32_t frame); + void (*frame)(void *data, + struct wl_compositor *compositor, + uint32_t frame, uint32_t timestamp); +}; + struct wl_surface * wl_compositor_create_surface(struct wl_compositor *compositor); void wl_compositor_commit(struct wl_compositor *compositor, uint32_t key); +int +wl_compositor_add_listener(struct wl_compositor *compostior, + const struct wl_compositor_listener *listener, + void *data); + void wl_surface_destroy(struct wl_surface *surface); void wl_surface_attach(struct wl_surface *surface, uint32_t name, @@ -86,6 +95,37 @@ void wl_surface_copy(struct wl_surface *surface, int32_t dst_x, int32_t dst_y, void wl_surface_damage(struct wl_surface *surface, int32_t x, int32_t y, int32_t width, int32_t height); +struct wl_output; +struct wl_output_listener { + void (*geometry)(void *data, + struct wl_output *output, + int32_t width, int32_t height); +}; + +int +wl_output_add_listener(struct wl_output *output, + const struct wl_output_listener *listener, + void *data); + +struct wl_input_device; +struct wl_input_device_listener { + void (*motion)(void *data, + struct wl_input_device *input_device, + int32_t x, int32_t y, int32_t sx, int32_t sy); + void (*button)(void *data, + struct wl_input_device *input_device, + uint32_t button, uint32_t state, + int32_t x, int32_t y, int32_t sx, int32_t sy); + void (*key)(void *data, + struct wl_input_device *input_device, + uint32_t button, uint32_t state); +}; + +int +wl_input_device_add_listener(struct wl_input_device *input_device, + const struct wl_input_device_listener *listener, + void *data); + /* These entry points are for client side implementation of custom * objects. */ @@ -96,5 +136,6 @@ uint32_t wl_display_allocate_id(struct wl_display *display); void wl_display_write(struct wl_display *display, const void *data, size_t count); - +void wl_display_advertise_global(struct wl_display *display, + struct wl_object *object); #endif |