From 66bd7af3e59e509000b8a55a9429e7a8e133fd81 Mon Sep 17 00:00:00 2001 From: Simeon Simeonov Date: Tue, 14 Mar 2023 23:30:32 +0100 Subject: Sync with upstream 2.14.1 and update the documentation --- include/extras.h | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 include/extras.h (limited to 'include/extras.h') diff --git a/include/extras.h b/include/extras.h new file mode 100644 index 0000000..4f791d8 --- /dev/null +++ b/include/extras.h @@ -0,0 +1,106 @@ +/* + * This file is part of i3lock-extended + * Copyright (C) 2020-2023 Simeon Simeonov + + * i3lock-extended is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * i3lock-extended is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef EXTRAS_H +#define EXTRAS_H + +#include + + +#define I3LOCK_SCALE_LED_LENGTH 60 +#define I3LOCK_SCALE_LED_SPACING 30 + + +typedef enum { + + I3LOCK_ALIGN_LEFT = 0, + I3LOCK_ALIGN_CENTER, + I3LOCK_ALIGN_RIGHT + +} i3lock_horizontal_alignment; + + +typedef enum { + + I3LOCK_ALIGN_TOP = 0, + I3LOCK_ALIGN_MIDDLE, + I3LOCK_ALIGN_BOTTOM + +} i3lock_vertical_alignment; + + +typedef struct i3lock_digital_clock_t_ { + + int text_size; + char color[7]; + char *template; + i3lock_horizontal_alignment horizontal_alignment; + i3lock_vertical_alignment vertical_alignment; + +} i3lock_digital_clock_t; + + +typedef struct i3lock_elapsed_time_t_ { + + int text_size; + char color[7]; + time_t start_time; + i3lock_horizontal_alignment horizontal_alignment; + i3lock_vertical_alignment vertical_alignment; + +} i3lock_elapsed_time_t; + + +typedef struct i3lock_led_clock_t_ { + + char led_on_color[7]; + char led_off_color[7]; + char led_border_color[7]; + i3lock_horizontal_alignment horizontal_alignment; + i3lock_vertical_alignment vertical_alignment; + +} i3lock_led_clock_t; + + +void i3lock_draw_digital_clock(cairo_t *cr, + const i3lock_digital_clock_t *dc, + const uint32_t *resolution, + const struct tm *brokentime); + + +void i3lock_draw_elapsed_time(cairo_t *cr, + const i3lock_elapsed_time_t *et, + const uint32_t *resolution, + const time_t *now); + +void i3lock_draw_led_clock(cairo_t *cr, + const i3lock_led_clock_t *lc, + const uint32_t *resolution, + const struct tm *brokentime); + + +void i3lock_draw_string(cairo_t *cr, + const char *formatted_string, + const i3lock_elapsed_time_t *et, + const uint32_t *resolution); + +char * i3lock_format_elapsed_time(char *to, + const char *template, + int max_size, + int seconds); +#endif -- cgit v1.3