mirror of
https://github.com/swaywm/sway.git
synced 2025-10-31 22:25:26 -04:00
Split seat code into its own file
This commit is contained in:
parent
0bd40ce86b
commit
1008d4cc91
5 changed files with 262 additions and 300 deletions
38
include/swaylock/seat.h
Normal file
38
include/swaylock/seat.h
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#ifndef _SWAYLOCK_SEAT_H
|
||||
#define _SWAYLOCK_SEAT_H
|
||||
#include <xkbcommon/xkbcommon.h>
|
||||
|
||||
enum mod_bit {
|
||||
MOD_SHIFT = 1<<0,
|
||||
MOD_CAPS = 1<<1,
|
||||
MOD_CTRL = 1<<2,
|
||||
MOD_ALT = 1<<3,
|
||||
MOD_MOD2 = 1<<4,
|
||||
MOD_MOD3 = 1<<5,
|
||||
MOD_LOGO = 1<<6,
|
||||
MOD_MOD5 = 1<<7,
|
||||
};
|
||||
|
||||
enum mask {
|
||||
MASK_SHIFT,
|
||||
MASK_CAPS,
|
||||
MASK_CTRL,
|
||||
MASK_ALT,
|
||||
MASK_MOD2,
|
||||
MASK_MOD3,
|
||||
MASK_LOGO,
|
||||
MASK_MOD5,
|
||||
MASK_LAST
|
||||
};
|
||||
|
||||
struct swaylock_xkb {
|
||||
uint32_t modifiers;
|
||||
struct xkb_state *state;
|
||||
struct xkb_context *context;
|
||||
struct xkb_keymap *keymap;
|
||||
xkb_mod_mask_t masks[MASK_LAST];
|
||||
};
|
||||
|
||||
extern const struct wl_seat_listener seat_listener;
|
||||
|
||||
#endif
|
||||
|
|
@ -1,66 +1,41 @@
|
|||
#ifndef _SWAYLOCK_H
|
||||
#define _SWAYLOCK_H
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <wayland-client.h>
|
||||
#include "background-image.h"
|
||||
#include "cairo.h"
|
||||
#include "pool-buffer.h"
|
||||
#include "swaylock/seat.h"
|
||||
#include "wlr-layer-shell-unstable-v1-client-protocol.h"
|
||||
|
||||
#include "client/cairo.h"
|
||||
|
||||
enum scaling_mode {
|
||||
SCALING_MODE_STRETCH,
|
||||
SCALING_MODE_FILL,
|
||||
SCALING_MODE_FIT,
|
||||
SCALING_MODE_CENTER,
|
||||
SCALING_MODE_TILE,
|
||||
};
|
||||
|
||||
enum auth_state {
|
||||
AUTH_STATE_IDLE,
|
||||
AUTH_STATE_INPUT,
|
||||
AUTH_STATE_BACKSPACE,
|
||||
AUTH_STATE_VALIDATING,
|
||||
AUTH_STATE_INVALID,
|
||||
};
|
||||
|
||||
enum line_source {
|
||||
LINE_SOURCE_DEFAULT,
|
||||
LINE_SOURCE_RING,
|
||||
LINE_SOURCE_INSIDE,
|
||||
};
|
||||
|
||||
struct render_data {
|
||||
list_t *surfaces;
|
||||
// Output specific images
|
||||
cairo_surface_t **images;
|
||||
// OR one image for all outputs:
|
||||
cairo_surface_t *image;
|
||||
int num_images;
|
||||
int color_set;
|
||||
struct swaylock_args {
|
||||
uint32_t color;
|
||||
enum scaling_mode scaling_mode;
|
||||
enum auth_state auth_state;
|
||||
enum background_mode mode;
|
||||
bool show_indicator;
|
||||
};
|
||||
|
||||
struct lock_colors {
|
||||
uint32_t inner_ring;
|
||||
uint32_t outer_ring;
|
||||
struct swaylock_state {
|
||||
struct wl_display *display;
|
||||
struct wl_compositor *compositor;
|
||||
struct zwlr_layer_shell_v1 *layer_shell;
|
||||
struct wl_shm *shm;
|
||||
struct wl_list contexts;
|
||||
struct swaylock_args args;
|
||||
struct swaylock_xkb xkb;
|
||||
bool run_display;
|
||||
};
|
||||
|
||||
struct lock_config {
|
||||
char *font;
|
||||
|
||||
struct {
|
||||
uint32_t text;
|
||||
uint32_t line;
|
||||
uint32_t separator;
|
||||
uint32_t input_cursor;
|
||||
uint32_t backspace_cursor;
|
||||
struct lock_colors normal;
|
||||
struct lock_colors validating;
|
||||
struct lock_colors invalid;
|
||||
} colors;
|
||||
|
||||
int radius;
|
||||
int thickness;
|
||||
struct swaylock_context {
|
||||
cairo_surface_t *image;
|
||||
struct swaylock_state *state;
|
||||
struct wl_output *output;
|
||||
struct wl_surface *surface;
|
||||
struct zwlr_layer_surface_v1 *layer_surface;
|
||||
struct pool_buffer buffers[2];
|
||||
struct pool_buffer *current_buffer;
|
||||
uint32_t width, height;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
void render(struct render_data* render_data, struct lock_config *config);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue