From d18bd1a6d2bbadc257ee521a8071899287dd6be1 Mon Sep 17 00:00:00 2001 From: Johan Malm Date: Tue, 19 Nov 2019 21:00:26 +0000 Subject: [PATCH] Add header file --- labwc.h | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ tinywl.c | 119 +---------------------------------------------------- 2 files changed, 124 insertions(+), 118 deletions(-) create mode 100644 labwc.h diff --git a/labwc.h b/labwc.h new file mode 100644 index 00000000..38d82033 --- /dev/null +++ b/labwc.h @@ -0,0 +1,123 @@ +#ifndef LABWC_H +#define LABWC_H + +#define _POSIX_C_SOURCE 200112L +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define XCURSOR_DEFAULT "left_ptr" +#define XCURSOR_SIZE 24 +#define XCURSOR_MOVE "grabbing" +#define XWL_TITLEBAR_HEIGHT (10) +#define XWL_WINDOW_BORDER (3) + +/* For brevity's sake, struct members are annotated where they are used. */ +enum tinywl_cursor_mode { + TINYWL_CURSOR_PASSTHROUGH, + TINYWL_CURSOR_MOVE, + TINYWL_CURSOR_RESIZE, +}; + +struct tinywl_server { + struct wl_display *wl_display; + struct wlr_backend *backend; + struct wlr_renderer *renderer; + struct wlr_compositor *compositor; + + struct wlr_xdg_shell *xdg_shell; + struct wl_listener new_xdg_surface; + struct wlr_xwayland *xwayland; + struct wl_listener new_xwayland_surface; + struct wl_list views; + + struct wlr_cursor *cursor; + struct wlr_xcursor_manager *cursor_mgr; + struct wl_listener cursor_motion; + struct wl_listener cursor_motion_absolute; + struct wl_listener cursor_button; + struct wl_listener cursor_axis; + struct wl_listener cursor_frame; + + struct wlr_seat *seat; + struct wl_listener new_input; + struct wl_listener request_cursor; + struct wl_list keyboards; + enum tinywl_cursor_mode cursor_mode; + struct tinywl_view *grabbed_view; + double grab_x, grab_y; + int grab_width, grab_height; + uint32_t resize_edges; + + struct wlr_output_layout *output_layout; + struct wl_list outputs; + struct wl_listener new_output; +}; + +struct tinywl_output { + struct wl_list link; + struct tinywl_server *server; + struct wlr_output *wlr_output; + struct wl_listener frame; +}; + +enum view_type { + LAB_XDG_SHELL_VIEW, + LAB_XWAYLAND_VIEW +}; + +struct tinywl_view { + enum view_type type; + struct wl_list link; + struct tinywl_server *server; + struct wlr_xdg_surface *xdg_surface; + struct wlr_xwayland_surface *xwayland_surface; + struct wlr_surface *surface; + struct wl_listener map; + struct wl_listener unmap; + struct wl_listener destroy; + struct wl_listener request_move; + struct wl_listener request_resize; + struct wl_listener request_configure; + + bool mapped; + /* + * Some X11 windows appear to create additional top levels windows + * which we want to ignore. These are never mapped, so we can track + * them that way + */ + bool been_mapped; + int x, y; +}; + +struct tinywl_keyboard { + struct wl_list link; + struct tinywl_server *server; + struct wlr_input_device *device; + + struct wl_listener modifiers; + struct wl_listener key; +}; + +#endif /* LABWC_H */ diff --git a/tinywl.c b/tinywl.c index c16db0d9..40354a58 100644 --- a/tinywl.c +++ b/tinywl.c @@ -1,121 +1,4 @@ -#define _POSIX_C_SOURCE 200112L -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define XCURSOR_DEFAULT "left_ptr" -#define XCURSOR_SIZE 24 -#define XCURSOR_MOVE "grabbing" -#define XWL_TITLEBAR_HEIGHT (10) -#define XWL_WINDOW_BORDER (3) - -/* For brevity's sake, struct members are annotated where they are used. */ -enum tinywl_cursor_mode { - TINYWL_CURSOR_PASSTHROUGH, - TINYWL_CURSOR_MOVE, - TINYWL_CURSOR_RESIZE, -}; - -struct tinywl_server { - struct wl_display *wl_display; - struct wlr_backend *backend; - struct wlr_renderer *renderer; - struct wlr_compositor *compositor; - - struct wlr_xdg_shell *xdg_shell; - struct wl_listener new_xdg_surface; - struct wlr_xwayland *xwayland; - struct wl_listener new_xwayland_surface; - struct wl_list views; - - struct wlr_cursor *cursor; - struct wlr_xcursor_manager *cursor_mgr; - struct wl_listener cursor_motion; - struct wl_listener cursor_motion_absolute; - struct wl_listener cursor_button; - struct wl_listener cursor_axis; - struct wl_listener cursor_frame; - - struct wlr_seat *seat; - struct wl_listener new_input; - struct wl_listener request_cursor; - struct wl_list keyboards; - enum tinywl_cursor_mode cursor_mode; - struct tinywl_view *grabbed_view; - double grab_x, grab_y; - int grab_width, grab_height; - uint32_t resize_edges; - - struct wlr_output_layout *output_layout; - struct wl_list outputs; - struct wl_listener new_output; -}; - -struct tinywl_output { - struct wl_list link; - struct tinywl_server *server; - struct wlr_output *wlr_output; - struct wl_listener frame; -}; - -enum view_type { - LAB_XDG_SHELL_VIEW, - LAB_XWAYLAND_VIEW -}; - -struct tinywl_view { - enum view_type type; - struct wl_list link; - struct tinywl_server *server; - struct wlr_xdg_surface *xdg_surface; - struct wlr_xwayland_surface *xwayland_surface; - struct wlr_surface *surface; - struct wl_listener map; - struct wl_listener unmap; - struct wl_listener destroy; - struct wl_listener request_move; - struct wl_listener request_resize; - struct wl_listener request_configure; - - bool mapped; - /* - * Some X11 windows appear to create additional top levels windows - * which we want to ignore. These are never mapped, so we can track - * them that way - */ - bool been_mapped; - int x, y; -}; - -struct tinywl_keyboard { - struct wl_list link; - struct tinywl_server *server; - struct wlr_input_device *device; - - struct wl_listener modifiers; - struct wl_listener key; -}; +#include "labwc.h" static struct tinywl_view *next_toplevel(struct tinywl_view *current); static bool is_toplevel(struct tinywl_view *view);