From 6b1e3ed8ba1868e0ac7fcb0510cee94326b92f41 Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Thu, 14 May 2026 09:38:21 -0700 Subject: [PATCH] setup a colors demo --- build/colors | Bin 0 -> 64784 bytes build_colors.sh | 10 +++++++ project.4coder | 5 ++++ src/colors.main.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 88 insertions(+) create mode 100755 build/colors create mode 100755 build_colors.sh create mode 100644 src/colors.main.c diff --git a/build/colors b/build/colors new file mode 100755 index 0000000000000000000000000000000000000000..48d83793a670c4775fbffb8a8e5785fa227c8548 GIT binary patch literal 64784 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 + +#include "mr4th/mr4th_base.c" + +int main(){ + Arena *arena = arena_alloc(); + + // initializes ncurses + initscr(); + + if (!has_colors()){ + goto no_color; + } + + start_color(); + + // settings + noecho(); + cbreak(); + + B32 animating = 1; + + // get size + U32 window_x = 0; + U32 window_y = 0; + getmaxyx(stdscr, window_y, window_x); + + U32 window_stride = window_x; + + // color pairs + struct ColorPairs{ + String8 text; + S16 fore; + S16 back; + }; + struct ColorPairs color_pairs[] = { + { str8_lit(" WHITE / BLACK"), COLOR_WHITE , COLOR_BLACK }, + { str8_lit(" RED / BLACK"), COLOR_RED , COLOR_BLACK }, + { str8_lit(" GREEN / BLACK"), COLOR_GREEN , COLOR_BLACK }, + { str8_lit(" BLUE / BLACK"), COLOR_BLUE , COLOR_BLACK }, + { str8_lit(" YELLOW / BLACK"), COLOR_YELLOW , COLOR_BLACK }, + { str8_lit("MAGENTA / BLACK"), COLOR_MAGENTA, COLOR_BLACK }, + { str8_lit(" CYAN / BLACK"), COLOR_CYAN , COLOR_BLACK }, + + { str8_lit(" BLACK / WHITE"), COLOR_BLACK , COLOR_WHITE }, + { str8_lit(" BLACK / RED"), COLOR_BLACK , COLOR_RED }, + { str8_lit(" BLACK / GREEN"), COLOR_BLACK , COLOR_GREEN }, + { str8_lit(" BLACK / BLUE"), COLOR_BLACK , COLOR_BLUE }, + { str8_lit(" BLACK / YELLOW"), COLOR_BLACK , COLOR_YELLOW }, + { str8_lit(" BLACK / MAGENTA"), COLOR_BLACK , COLOR_MAGENTA }, + { str8_lit(" BLACK / CYAN"), COLOR_BLACK , COLOR_CYAN }, + }; + + // print + for (S16 i = 0; i < ArrayCount(color_pairs); i += 1){ + S16 pair_idx = i + 1; + init_pair(pair_idx, color_pairs[i].fore, color_pairs[i].back); + attron(COLOR_PAIR(pair_idx)); + printw("%.*s\n", (S32)color_pairs[i].text.size, color_pairs[i].text.str); + attroff(pair_idx); + } + + getch(); + endwin(); + + if (0){ no_color: + endwin(); + printf("no ncurses color support\n"); + } + + return(0); +}