Mercurial
annotate infinite_canvas/theme.h @ 276:b55c22cff335
Add interactive infinite canvas prototype
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Mon, 17 Aug 2026 16:57:56 -0700 |
| parents | |
| children | 8d560f50ed4c |
| rev | line source |
|---|---|
|
276
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
1 #ifndef INFINITE_CANVAS_THEME_H |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
2 #define INFINITE_CANVAS_THEME_H |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
3 |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
4 #include "dowa/dowa.h" |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
5 #include "third_party/raylib/include/raylib.h" |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
6 |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
7 typedef enum { |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
8 CANVAS_THEME_AUTO = 0, |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
9 CANVAS_THEME_LIGHT, |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
10 CANVAS_THEME_DARK, |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
11 } Canvas_Theme_Mode; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
12 |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
13 typedef struct { |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
14 Canvas_Theme_Mode requested_mode; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
15 Canvas_Theme_Mode resolved_mode; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
16 Color background; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
17 Color surface; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
18 Color surface_muted; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
19 Color border; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
20 Color text; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
21 Color text_muted; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
22 Color accent; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
23 Color accent_soft; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
24 Color shadow; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
25 Color toast_surface; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
26 Color toast_border; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
27 } Canvas_Theme; |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
28 |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
29 Canvas_Theme_Mode Canvas_Theme_Mode_From_String(const char *p_value); |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
30 boolean Canvas_System_Prefers_Dark(void); |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
31 void Canvas_Theme_Resolve(Canvas_Theme *p_theme, Canvas_Theme_Mode mode); |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
32 void Canvas_Theme_Toggle(Canvas_Theme *p_theme); |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
33 void Canvas_Theme_Draw_Shadow( |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
34 const Canvas_Theme *p_theme, |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
35 Rectangle bounds, |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
36 float roundness, |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
37 int32 segments, |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
38 float zoom, |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
39 float opacity); |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
40 |
|
b55c22cff335
Add interactive infinite canvas prototype
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
41 #endif |