annotate third_party/raylib/custom.h @ 279:b3b547563ec7

Add Google connector service and agent wiki Implement the C/Seobeo Google Drive and Gmail connector with encrypted OAuth storage, Zenbu authentication, browser testing, AI tool discovery, chunked HTTP decoding, and Bazel coverage. Consolidate repository guidance into progressive wiki documentation and enforce arena-first allocation for new first-party C code. Co-authored-by: Copilot <[email protected]> Copilot-Session: 84c338fd-0939-4bb3-b7f3-1062eb213e5d
author MrJuneJune <me@mrjunejune.com>
date Mon, 17 Aug 2026 22:22:36 -0700
parents 058de208e640
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
161
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
1 #ifndef CUSTOM_UI
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
2 #define CUSTOM_UI
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
3
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
4 #include "dowa/dowa.h"
163
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
5 #include "third_party/raylib/include/raylib.h"
161
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
6
163
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
7 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
8 // COLOR SCHEME - Easily modifiable color palette
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
9 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
10
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
11 typedef struct {
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
12 Color primary; // Main accent color (Orange)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
13 Color secondary; // Secondary background (Beige/Egg white)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
14 Color background; // Main background (White)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
15 Color text; // Text color (Black)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
16 Color text_light; // Light text (White - for dark backgrounds)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
17 Color border; // Border color
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
18 Color highlight; // Highlight/hover color
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
19 Color success; // Success indicator
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
20 Color error; // Error indicator
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
21 Color muted; // Muted/disabled elements
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
22 } ColorScheme;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
23
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
24 // Global color scheme - initialize with PostDog_InitColorScheme()
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
25 extern ColorScheme g_colors;
161
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
26
163
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
27 void PostDog_InitColorScheme(void);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
28 void PostDog_SetColorScheme(ColorScheme scheme);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
29
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
30 // Predefined color schemes
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
31 ColorScheme PostDog_DefaultColorScheme(void);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
32 ColorScheme PostDog_DarkColorScheme(void);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
33
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
34 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
35 // FUNCTIONALITY HELPERS
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
36 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
37
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
38 void DefaultBehaviours(void);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
39 void IncreaseFontSize(void);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
40 void DecreaseFontSize(void);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
41
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
42 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
43 // LAYOUT HELPERS
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
44 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
45
161
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
46 Rectangle RightOf(Rectangle ref, float padding);
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
47 Rectangle Below(Rectangle ref, float padding);
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
48 Rectangle LeftColumn(Rectangle container, float ratio, float padding);
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
49 Rectangle RightColumn(Rectangle container, Rectangle leftCol, float padding);
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
50 Rectangle HorizontalSplit(Rectangle container, float ratio);
163
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
51 Rectangle VerticalSplit(Rectangle container, float ratio);
161
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
52 Rectangle AddPadding(Rectangle rect, float padding);
163
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
53 Rectangle AddPaddingAll(Rectangle rect, float top, float right, float down, float left);
161
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
54 Rectangle AddPaddingHorizontal(Rectangle rect, float padding);
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
55 Rectangle AddPaddingVertical(Rectangle rect, float padding);
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
56
163
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
57 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
58 // DRAWING HELPERS
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
59 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
60
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
61 void DrawRectangleSelectiveRounded(Rectangle rec, float radius, int segments, Color color,
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
62 boolean roundTL, boolean roundTR, boolean roundBR, boolean roundBL);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
63 void DrawRectangleSelectiveRoundedLines(Rectangle rec, float radius, int segments, Color color,
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
64 boolean roundTL, boolean roundTR, boolean roundBR, boolean roundBL);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
65
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
66 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
67 // CUSTOM TAB COMPONENT
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
68 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
69
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
70 // Tab configuration
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
71 typedef struct {
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
72 const char **labels; // Array of tab labels
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
73 int count; // Number of tabs
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
74 int *active_tab; // Pointer to active tab index
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
75 float padding; // Padding between tabs
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
76 float corner_radius; // Corner radius for rounded tabs
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
77 Color active_color; // Color for active tab
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
78 Color inactive_color; // Color for inactive tab
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
79 Color text_color; // Text color
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
80 Color active_text_color; // Text color for active tab
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
81 } TabConfig;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
82
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
83 // Draw tabs and return true if active tab changed
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
84 // Usage: PostDog_TabBar(bounds, config) where config contains all tab settings
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
85 boolean PostDog_TabBar(Rectangle bounds, TabConfig config);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
86
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
87 // Simplified tab bar - uses default styling from color scheme
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
88 // Returns true if tab changed
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
89 boolean PostDog_TabBarSimple(Rectangle bounds, const char **labels, int count, int *active_tab);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
90
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
91 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
92 // COMBINED INPUT COMPONENTS
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
93 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
94
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
95 // Dropdown + TextBox combined component
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
96 // Draws a dropdown on the left, text input on the right, with shared rounded border
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
97 typedef struct {
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
98 // Dropdown settings
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
99 const char *dropdown_items; // Semicolon-separated items: "GET;POST;PUT;DELETE"
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
100 int *dropdown_active; // Pointer to active dropdown index
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
101 boolean *dropdown_edit_mode; // Pointer to dropdown edit mode state
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
102 float dropdown_width; // Width of dropdown (ratio 0.0-1.0 or absolute if > 1.0)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
103
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
104 // TextBox settings
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
105 char *text_buffer; // Text buffer for input
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
106 int text_buffer_size; // Size of text buffer
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
107 boolean *text_edit_mode; // Pointer to text edit mode state
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
108
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
109 // Styling
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
110 float corner_radius;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
111 Color background_color;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
112 Color border_color;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
113 Color text_color;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
114
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
115 // Optional: per-item colors for dropdown (NULL to use default text_color)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
116 Color *item_colors; // Array of colors matching dropdown items count
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
117 int item_count; // Number of items (required if item_colors is set)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
118 } DropdownTextBoxConfig;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
119
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
120 boolean PostDog_DropdownTextBox(Rectangle bounds, DropdownTextBoxConfig config);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
121
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
122 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
123 // PANEL COMPONENTS
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
124 // ============================================================================
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
125
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
126 // Split panel - two panels side by side with shared rounded border
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
127 typedef struct {
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
128 float split_ratio; // 0.0-1.0, ratio of left panel
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
129 float corner_radius;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
130 Color left_color;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
131 Color right_color;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
132 Color border_color;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
133 float gap; // Gap between panels (0 for seamless)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
134 } SplitPanelConfig;
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
135
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
136 // Returns rectangles for left and right content areas
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
137 void PostDog_SplitPanel(Rectangle bounds, SplitPanelConfig config,
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
138 Rectangle *out_left, Rectangle *out_right);
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
139
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
140 // Draw split panel background only (for custom content)
058de208e640 [Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents: 161
diff changeset
141 void PostDog_SplitPanelDraw(Rectangle bounds, SplitPanelConfig config);
161
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
142
87d8d3eb3491 [PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
diff changeset
143 #endif // CUSTOM_UI