aboutsummaryrefslogtreecommitdiff
path: root/include/swaylock/swaylock.h
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2018-04-12 20:19:54 -0400
committerDrew DeVault <sir@cmpwn.com>2018-04-12 20:19:54 -0400
commitcd1b32453a9296c18b28bff71607aeb22987b5cd (patch)
treec653c6d525b471914c01a9d7ae543f521b6138ed /include/swaylock/swaylock.h
parent8e06985cc1b479724446fba752e0fecfb998e87b (diff)
parent5785170421dc38437acde8bb61068cd16fda716c (diff)
Merge branch 'wlroots'
Diffstat (limited to 'include/swaylock/swaylock.h')
-rw-r--r--include/swaylock/swaylock.h98
1 files changed, 48 insertions, 50 deletions
diff --git a/include/swaylock/swaylock.h b/include/swaylock/swaylock.h
index eeed094e..173e8b12 100644
--- a/include/swaylock/swaylock.h
+++ b/include/swaylock/swaylock.h
@@ -1,66 +1,64 @@
#ifndef _SWAYLOCK_H
#define _SWAYLOCK_H
-
-#include "client/cairo.h"
-
-enum scaling_mode {
- SCALING_MODE_STRETCH,
- SCALING_MODE_FILL,
- SCALING_MODE_FIT,
- SCALING_MODE_CENTER,
- SCALING_MODE_TILE,
-};
+#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"
enum auth_state {
- AUTH_STATE_IDLE,
- AUTH_STATE_INPUT,
- AUTH_STATE_BACKSPACE,
- AUTH_STATE_VALIDATING,
- AUTH_STATE_INVALID,
+ 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_password {
+ size_t size;
+ size_t len;
+ char *buffer;
};
-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;
+struct swaylock_state {
+ struct wl_display *display;
+ struct wl_compositor *compositor;
+ struct zwlr_layer_shell_v1 *layer_shell;
+ struct zwlr_input_inhibit_manager_v1 *input_inhibit_manager;
+ struct wl_shm *shm;
+ struct wl_list surfaces;
+ struct swaylock_args args;
+ struct swaylock_password password;
+ struct swaylock_xkb xkb;
+ enum auth_state auth_state;
+ bool run_display;
+};
- int radius;
- int thickness;
+struct swaylock_surface {
+ 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;
+ int32_t scale;
+ struct wl_list link;
};
-void render(struct render_data* render_data, struct lock_config *config);
+void swaylock_handle_key(struct swaylock_state *state,
+ xkb_keysym_t keysym, uint32_t codepoint);
+void render_frame(struct swaylock_surface *surface);
+void render_frames(struct swaylock_state *state);
#endif