2012-01-03 15:56:05 -05:00
|
|
|
#ifndef _UNLOCK_INDICATOR_H
|
|
|
|
#define _UNLOCK_INDICATOR_H
|
|
|
|
|
2017-05-30 18:34:02 -04:00
|
|
|
#include <ev.h>
|
2018-02-03 07:33:15 -05:00
|
|
|
#include <xcb/xcb.h>
|
2017-05-30 18:34:02 -04:00
|
|
|
|
2020-03-08 16:22:22 -04:00
|
|
|
#include <fonts.h>
|
2017-11-19 15:12:43 -05:00
|
|
|
|
2012-01-03 15:56:05 -05:00
|
|
|
typedef enum {
|
2018-01-14 16:17:43 -05:00
|
|
|
STATE_STARTED = 0, /* default state */
|
|
|
|
STATE_KEY_PRESSED = 1, /* key was pressed, show unlock indicator */
|
|
|
|
STATE_KEY_ACTIVE = 2, /* a key was pressed recently, highlight part
|
2012-01-03 15:56:05 -05:00
|
|
|
of the unlock indicator. */
|
2018-01-14 16:17:43 -05:00
|
|
|
STATE_BACKSPACE_ACTIVE = 3, /* backspace was pressed recently, highlight
|
2012-01-03 15:56:05 -05:00
|
|
|
part of the unlock indicator in red. */
|
2018-01-14 16:17:43 -05:00
|
|
|
STATE_NOTHING_TO_DELETE = 4, /* backspace was pressed, but there is nothing to delete. */
|
2012-01-03 15:56:05 -05:00
|
|
|
} unlock_state_t;
|
|
|
|
|
|
|
|
typedef enum {
|
2018-01-14 16:17:43 -05:00
|
|
|
STATE_AUTH_IDLE = 0, /* no authenticator interaction at the moment */
|
|
|
|
STATE_AUTH_VERIFY = 1, /* currently verifying the password via authenticator */
|
|
|
|
STATE_AUTH_LOCK = 2, /* currently locking the screen */
|
|
|
|
STATE_AUTH_WRONG = 3, /* the password was wrong */
|
|
|
|
STATE_I3LOCK_LOCK_FAILED = 4, /* i3lock failed to load */
|
2017-04-15 03:39:13 -04:00
|
|
|
} auth_state_t;
|
2012-01-03 15:56:05 -05:00
|
|
|
|
2018-02-03 09:27:11 -05:00
|
|
|
typedef struct {
|
|
|
|
text_t status_text;
|
|
|
|
text_t mod_text;
|
|
|
|
text_t keylayout_text;
|
|
|
|
text_t time_text;
|
|
|
|
text_t date_text;
|
2018-10-05 10:40:50 -04:00
|
|
|
text_t greeter_text;
|
2018-02-03 09:27:11 -05:00
|
|
|
|
|
|
|
double indicator_x, indicator_y;
|
|
|
|
|
2021-02-18 14:14:55 -05:00
|
|
|
double screen_x, screen_y;
|
|
|
|
double bar_x, bar_y, bar_width;
|
2018-02-03 09:27:11 -05:00
|
|
|
} DrawData;
|
|
|
|
|
2021-05-29 00:27:15 -04:00
|
|
|
typedef enum {
|
|
|
|
NONE,
|
|
|
|
TILE,
|
|
|
|
CENTER,
|
|
|
|
FILL,
|
|
|
|
SCALE,
|
|
|
|
MAX,
|
|
|
|
} background_type_t;
|
|
|
|
|
2022-01-10 12:34:12 -05:00
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
CC_POS_RESET,
|
|
|
|
CC_POS_CHANGE,
|
|
|
|
CC_POS_KEEP,
|
|
|
|
CC_POS_TAB
|
|
|
|
} control_char_pos_t;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char character;
|
|
|
|
control_char_pos_t x_behavior;
|
|
|
|
int x_behavior_arg;
|
|
|
|
control_char_pos_t y_behavior;
|
|
|
|
int y_behavior_arg;
|
|
|
|
} control_char_config_t;
|
|
|
|
|
2020-04-18 06:50:27 -04:00
|
|
|
void render_lock(uint32_t* resolution, xcb_drawable_t drawable);
|
2021-05-29 00:27:15 -04:00
|
|
|
void draw_image(uint32_t* resolution, cairo_surface_t* img, cairo_t* xcb_ctx);
|
2017-11-19 15:12:43 -05:00
|
|
|
void init_colors_once(void);
|
2012-04-01 06:28:28 -04:00
|
|
|
void redraw_screen(void);
|
2014-03-06 15:22:02 -05:00
|
|
|
void clear_indicator(void);
|
2016-10-14 14:48:43 -04:00
|
|
|
void start_time_redraw_timeout(void);
|
2017-12-08 02:29:05 -05:00
|
|
|
void* start_time_redraw_tick_pthread(void* arg);
|
|
|
|
void start_time_redraw_tick(struct ev_loop* main_loop);
|
2012-01-03 15:56:05 -05:00
|
|
|
#endif
|