diff options
Diffstat (limited to 'include/sway')
-rw-r--r-- | include/sway/container.h | 4 | ||||
-rw-r--r-- | include/sway/input/cursor.h | 30 | ||||
-rw-r--r-- | include/sway/input/input-manager.h | 22 | ||||
-rw-r--r-- | include/sway/input/seat.h | 23 | ||||
-rw-r--r-- | include/sway/server.h | 2 |
5 files changed, 80 insertions, 1 deletions
diff --git a/include/sway/container.h b/include/sway/container.h index 08a98ed9..0e1cc8a3 100644 --- a/include/sway/container.h +++ b/include/sway/container.h @@ -3,6 +3,7 @@ #include <stdint.h> #include <sys/types.h> #include <wlr/types/wlr_box.h> +#include <wlr/types/wlr_surface.h> #include "list.h" typedef struct sway_container swayc_t; @@ -136,4 +137,7 @@ swayc_t *destroy_view(swayc_t *view); swayc_t *swayc_parent_by_type(swayc_t *container, enum swayc_types type); +swayc_t *swayc_at(swayc_t *parent, double lx, double ly, + struct wlr_surface **surface, double *sx, double *sy); + #endif diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h new file mode 100644 index 00000000..cc529de6 --- /dev/null +++ b/include/sway/input/cursor.h @@ -0,0 +1,30 @@ +#ifndef _SWAY_CURSOR_H +#define _SWAY_CURSOR_H + +#include "sway/input/seat.h" + +struct sway_cursor { + struct sway_seat *seat; + struct wlr_cursor *cursor; + struct wlr_xcursor_manager *xcursor_manager; + + double x, y; + + struct wl_listener motion; + struct wl_listener motion_absolute; + struct wl_listener button; + struct wl_listener axis; + + struct wl_listener touch_down; + struct wl_listener touch_up; + struct wl_listener touch_motion; + + struct wl_listener tool_axis; + struct wl_listener tool_tip; + + struct wl_listener request_set_cursor; +}; + +struct sway_cursor *sway_cursor_create(struct sway_seat *seat); + +#endif diff --git a/include/sway/input/input-manager.h b/include/sway/input/input-manager.h new file mode 100644 index 00000000..5dc75ba7 --- /dev/null +++ b/include/sway/input/input-manager.h @@ -0,0 +1,22 @@ +#ifndef _SWAY_INPUT_MANAGER_H +#define _SWAY_INPUT_MANAGER_H +#include <libinput.h> +#include "sway/server.h" +#include "sway/config.h" +#include "list.h" + +struct sway_input_manager { + struct wl_listener input_add; + struct wl_listener input_remove; + struct sway_server *server; + list_t *seats; +}; + +struct input_config *new_input_config(const char* identifier); + +char* libinput_dev_unique_id(struct libinput_device *dev); + +struct sway_input_manager *sway_input_manager_create( + struct sway_server *server); + +#endif diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h new file mode 100644 index 00000000..f7f8a1bb --- /dev/null +++ b/include/sway/input/seat.h @@ -0,0 +1,23 @@ +#ifndef _SWAY_SEAT_H +#define _SWAY_SEAT_H + +#include <wlr/types/wlr_seat.h> +#include "sway/input/input-manager.h" + +struct sway_seat { + struct wlr_seat *seat; + struct sway_cursor *cursor; +}; + +struct sway_seat *sway_seat_create(struct wl_display *display, + const char *seat_name); + +void sway_seat_add_device(struct sway_seat *seat, + struct wlr_input_device *device); + +void sway_seat_remove_device(struct sway_seat *seat, + struct wlr_input_device *device); + +void sway_seat_configure_xcursor(struct sway_seat *seat); + +#endif diff --git a/include/sway/server.h b/include/sway/server.h index 3fa72e84..76a05476 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -22,7 +22,7 @@ struct sway_server { struct wlr_compositor *compositor; struct wlr_data_device_manager *data_device_manager; - struct sway_input *input; + struct sway_input_manager *input; struct wl_listener output_add; struct wl_listener output_remove; |