aboutsummaryrefslogtreecommitdiff
path: root/include/swaylock
diff options
context:
space:
mode:
authorCalvin Lee <cyrus296@gmail.com>2017-02-21 12:49:22 -0700
committerCalvin Lee <cyrus296@gmail.com>2017-02-21 14:12:31 -0700
commit34e2c70abcbc9ba496ab32f1f742dd7bae0ce0fe (patch)
tree41068bbf6d412c8501a8040c577321798ff8991c /include/swaylock
parent76614efb16527420017291cd47de176b11440d38 (diff)
downloadsway-34e2c70abcbc9ba496ab32f1f742dd7bae0ce0fe.tar.xz
Feature for #1078: Configurable swaylock colors
Colors are configured through the command line so that swaylock conforms to the i3lock fork 'github.com/chrjguill/i3lock-color'. Differences from it are that one letter options '-r' and '-s' are not implimentend because '-s' is already used by '--scaling' in swaylock. This commit also fixed whitespace in 'include/swaylock/swaylock.h' and changed `parse_color` in 'common/util.h' so that it can accept colors that do not start with a hash. This was done to keep compatability with the i3lock fork.
Diffstat (limited to 'include/swaylock')
-rw-r--r--include/swaylock/swaylock.h62
1 files changed, 41 insertions, 21 deletions
diff --git a/include/swaylock/swaylock.h b/include/swaylock/swaylock.h
index 1cf66e89..6e0ae288 100644
--- a/include/swaylock/swaylock.h
+++ b/include/swaylock/swaylock.h
@@ -4,34 +4,54 @@
#include "client/cairo.h"
enum scaling_mode {
- SCALING_MODE_STRETCH,
- SCALING_MODE_FILL,
- SCALING_MODE_FIT,
- SCALING_MODE_CENTER,
- SCALING_MODE_TILE,
+ 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,
+ AUTH_STATE_IDLE,
+ AUTH_STATE_INPUT,
+ AUTH_STATE_BACKSPACE,
+ AUTH_STATE_VALIDATING,
+ AUTH_STATE_INVALID,
};
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;
- uint32_t color;
- enum scaling_mode scaling_mode;
- enum auth_state auth_state;
+ 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;
+ uint32_t color;
+ enum scaling_mode scaling_mode;
+ enum auth_state auth_state;
};
-void render(struct render_data* render_data);
+struct lock_colors {
+ uint32_t inner_ring;
+ uint32_t outer_ring;
+};
+
+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;
+};
+
+void render(struct render_data* render_data, struct lock_config *config);
#endif