mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05: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
				
			
		| 
						 | 
				
			
			@ -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