diff options
author | Calvin Lee <cyrus296@gmail.com> | 2017-02-21 12:49:22 -0700 |
---|---|---|
committer | Calvin Lee <cyrus296@gmail.com> | 2017-02-21 14:12:31 -0700 |
commit | 34e2c70abcbc9ba496ab32f1f742dd7bae0ce0fe (patch) | |
tree | 41068bbf6d412c8501a8040c577321798ff8991c /include/swaylock | |
parent | 76614efb16527420017291cd47de176b11440d38 (diff) | |
download | sway-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.h | 62 |
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 |