mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-26 03:39:58 -07:00
59 lines
2.5 KiB
C
59 lines
2.5 KiB
C
#include "gui_top_buttons.h"
|
|
|
|
void elements_button_top_left(Canvas* canvas, const char* str) {
|
|
const Icon* icon = &I_ButtonUp_7x4;
|
|
|
|
const uint8_t button_height = 12;
|
|
const uint8_t vertical_offset = 3;
|
|
const uint8_t horizontal_offset = 3;
|
|
const uint8_t string_width = canvas_string_width(canvas, str);
|
|
const uint8_t icon_h_offset = 3;
|
|
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset;
|
|
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset;
|
|
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset;
|
|
|
|
const uint8_t x = 0;
|
|
const uint8_t y = 0 + button_height;
|
|
|
|
uint8_t line_x = x + button_width;
|
|
uint8_t line_y = y - button_height;
|
|
canvas_draw_box(canvas, x, line_y, button_width, button_height);
|
|
canvas_draw_line(canvas, line_x + 0, line_y, line_x + 0, y - 1);
|
|
canvas_draw_line(canvas, line_x + 1, line_y, line_x + 1, y - 2);
|
|
canvas_draw_line(canvas, line_x + 2, line_y, line_x + 2, y - 3);
|
|
|
|
canvas_invert_color(canvas);
|
|
canvas_draw_icon(canvas, x + horizontal_offset, y - icon_v_offset, icon);
|
|
canvas_draw_str(
|
|
canvas, x + horizontal_offset + icon_width_with_offset, y - vertical_offset, str);
|
|
canvas_invert_color(canvas);
|
|
}
|
|
|
|
void elements_button_top_right(Canvas* canvas, const char* str) {
|
|
const Icon* icon = &I_ButtonDown_7x4;
|
|
|
|
const uint8_t button_height = 12;
|
|
const uint8_t vertical_offset = 3;
|
|
const uint8_t horizontal_offset = 3;
|
|
const uint8_t string_width = canvas_string_width(canvas, str);
|
|
const uint8_t icon_h_offset = 3;
|
|
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset;
|
|
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset + 1;
|
|
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset;
|
|
|
|
const uint8_t x = canvas_width(canvas);
|
|
const uint8_t y = 0 + button_height;
|
|
|
|
uint8_t line_x = x - button_width;
|
|
uint8_t line_y = y - button_height;
|
|
canvas_draw_box(canvas, line_x, line_y, button_width, button_height);
|
|
canvas_draw_line(canvas, line_x - 1, line_y, line_x - 1, y - 1);
|
|
canvas_draw_line(canvas, line_x - 2, line_y, line_x - 2, y - 2);
|
|
canvas_draw_line(canvas, line_x - 3, line_y, line_x - 3, y - 3);
|
|
|
|
canvas_invert_color(canvas);
|
|
canvas_draw_str(canvas, x - button_width + horizontal_offset, y - vertical_offset, str);
|
|
canvas_draw_icon(
|
|
canvas, x - horizontal_offset - icon_get_width(icon), y - icon_v_offset, icon);
|
|
canvas_invert_color(canvas);
|
|
} |