aboutsummaryrefslogtreecommitdiff
path: root/include/client
diff options
context:
space:
mode:
Diffstat (limited to 'include/client')
-rw-r--r--include/client/window.h50
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);