replaced confusing u64 joinded colors with struct TimStyle

This commit is contained in:
2026-01-09 09:45:00 +05:00
parent 161f655492
commit 1ce7090bd6
13 changed files with 285 additions and 181 deletions

View File

@@ -3,12 +3,6 @@
#include "tim.h"
// colors
#define CTXT 0xf // text black, white
#define CFR 0x8 // frame black, gray
#define CYES 0xa000f // yes green, black, white
#define CNO 0x9000f // no red, black white
i32 main(i32 argc, char** argv) {
if (argc < 2 || strcmp(argv[1], "-h") == 0) {
printf("syntax: %s message\n", argv[0]);
@@ -18,6 +12,11 @@ i32 main(i32 argc, char** argv) {
// get text properties
TimText msg = tim_scan_str(argv[1]);
TimStyle style_frame = { .brd = TimColor16_DarkGray };
TimStyle style_text = { .fg = TimColor16_White };
TimStyle style_yes = { .brd = TimColor16_Green, .fg = style_text.fg };
TimStyle style_no = { .brd = TimColor16_Red, .fg = style_yes.fg };
while (tim_run(0)) {
// calculate size of message box
i32 w = MAX(msg.width + 4, 28);
@@ -25,18 +24,18 @@ i32 main(i32 argc, char** argv) {
tim_scope(A, A, w, h) {
// draw frame around entire scope
tim_frame(0, 0, ~0, ~0, CFR);
tim_frame(0, 0, ~0, ~0, style_frame);
// draw message
tim_label(argv[1], A, 1, msg.width, msg.lines, CTXT);
tim_label(argv[1], A, 1, msg.width, msg.lines, style_text);
// draw 'yes' button, return 0 when clicked
if (tim_button("[y] Yes", 2, ~1, A, A, CYES) || tim_is_key_press('y')) {
if (tim_button("[y] Yes", 2, ~1, A, A, style_yes) || tim_is_key_press('y')) {
exit(0);
}
// draw 'no' button, return 1 when clicked
if (tim_button("[n] No", ~2, ~1, A, A, CNO) || tim_is_key_press('n')) {
if (tim_button("[n] No", ~2, ~1, A, A, style_no) || tim_is_key_press('n')) {
exit(1);
}
@@ -46,4 +45,5 @@ i32 main(i32 argc, char** argv) {
}
}
}
return 0;
}