diff options
Diffstat (limited to 'include/client')
-rw-r--r-- | include/client/window.h | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/include/client/window.h b/include/client/window.h index e48ec4f3..7be4fff3 100644 --- a/include/client/window.h +++ b/include/client/window.h @@ -9,33 +9,43 @@ #include "list.h" #include "client/registry.h" +struct window; + struct buffer { - struct wl_buffer *buffer; - cairo_surface_t *surface; - cairo_t *cairo; - PangoContext *pango; - uint32_t width, height; - bool busy; + struct wl_buffer *buffer; + cairo_surface_t *surface; + cairo_t *cairo; + PangoContext *pango; + uint32_t width, height; + bool busy; }; struct cursor { - struct wl_surface *surface; - struct wl_cursor_theme *cursor_theme; - struct wl_cursor *cursor; - struct wl_poitner *pointer; + struct wl_surface *surface; + struct wl_cursor_theme *cursor_theme; + struct wl_cursor *cursor; + struct wl_poitner *pointer; +}; + +struct pointer_input { + wl_fixed_t last_x; + wl_fixed_t last_y; + + void (*notify)(struct window *window, wl_fixed_t x, wl_fixed_t y, uint32_t button); }; struct window { - struct registry *registry; - struct buffer buffers[2]; - struct buffer *buffer; - struct wl_surface *surface; - struct wl_shell_surface *shell_surface; - struct wl_callback *frame_cb; - struct cursor cursor; - uint32_t width, height; - char *font; - cairo_t *cairo; + struct registry *registry; + struct buffer buffers[2]; + struct buffer *buffer; + struct wl_surface *surface; + struct wl_shell_surface *shell_surface; + struct wl_callback *frame_cb; + struct cursor cursor; + uint32_t width, height; + char *font; + cairo_t *cairo; + struct pointer_input pointer_input; }; struct window *window_setup(struct registry *registry, uint32_t width, uint32_t height, bool shell_surface); |