Mercurial
annotate third_party/raylib/custom.c @ 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 |
| rev | line source |
|---|---|
|
116
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1 #include "third_party/raylib/include/raylib.h" |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2 #define RAYGUI_IMPLEMENTATION |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3 #include "third_party/raylib/include/raygui.h" |
|
161
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
4 #include "third_party/raylib/custom.h" |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
5 #include <string.h> |
|
116
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
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 IMPLEMENTATION |
|
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 // Global color scheme instance |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
12 ColorScheme g_colors = {0}; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
13 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
14 ColorScheme PostDog_DefaultColorScheme(void) |
|
116
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
15 { |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
16 return (ColorScheme){ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
17 .primary = (Color){255, 140, 0, 255}, // Orange |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
18 .secondary = (Color){255, 248, 231, 255}, // Beige/Egg white |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
19 .background = (Color){255, 255, 255, 255}, // White |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
20 .text = (Color){30, 30, 30, 255}, // Near black |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
21 .text_light = (Color){255, 255, 255, 255}, // White |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
22 .border = (Color){200, 200, 200, 255}, // Light gray |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
23 .highlight = (Color){255, 180, 100, 255}, // Light orange |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
24 .success = (Color){76, 175, 80, 255}, // Green |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
25 .error = (Color){244, 67, 54, 255}, // Red |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
26 .muted = (Color){158, 158, 158, 255}, // Gray |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
27 }; |
|
116
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
28 } |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
29 |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
30 ColorScheme PostDog_DarkColorScheme(void) |
|
116
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
31 { |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
32 return (ColorScheme){ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
33 .primary = (Color){255, 140, 0, 255}, // Orange |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
34 .secondary = (Color){45, 45, 48, 255}, // Dark gray |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
35 .background = (Color){30, 30, 30, 255}, // Near black |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
36 .text = (Color){240, 240, 240, 255}, // Near white |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
37 .text_light = (Color){255, 255, 255, 255}, // White |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
38 .border = (Color){70, 70, 70, 255}, // Dark gray |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
39 .highlight = (Color){255, 180, 100, 255}, // Light orange |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
40 .success = (Color){76, 175, 80, 255}, // Green |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
41 .error = (Color){244, 67, 54, 255}, // Red |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
42 .muted = (Color){100, 100, 100, 255}, // Gray |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
43 }; |
|
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 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
46 void PostDog_InitColorScheme(void) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
47 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
48 g_colors = PostDog_DefaultColorScheme(); |
|
116
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
49 } |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
50 |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
51 void PostDog_SetColorScheme(ColorScheme scheme) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
52 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
53 g_colors = scheme; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
54 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
55 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
56 // ============================================================================ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
57 // FUNCTIONALITY HELPERS |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
58 // ============================================================================ |
|
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 void DefaultBehaviours(void) |
|
116
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
61 { |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
62 IncreaseFontSize(); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
63 DecreaseFontSize(); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
64 } |
|
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 void IncreaseFontSize(void) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
67 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
68 if ((IsKeyDown(KEY_LEFT_SUPER) || IsKeyDown(KEY_LEFT_CONTROL)) && IsKeyDown(KEY_EQUAL)) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
69 GuiSetStyle(DEFAULT, TEXT_SIZE, GuiGetStyle(DEFAULT, TEXT_SIZE) + 1); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
70 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
71 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
72 void DecreaseFontSize(void) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
73 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
74 if ((IsKeyDown(KEY_LEFT_SUPER) || IsKeyDown(KEY_LEFT_CONTROL)) && IsKeyDown(KEY_MINUS)) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
75 GuiSetStyle(DEFAULT, TEXT_SIZE, GuiGetStyle(DEFAULT, TEXT_SIZE) - 1); |
|
116
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
76 } |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
77 |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
78 // --- Layout helper --- // |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
79 Rectangle RightOf(Rectangle ref, float padding) |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
80 { |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
81 return (Rectangle){ |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
82 .x = ref.x + ref.width + padding, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
83 .y = ref.y, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
84 .width = 0, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
85 .height = ref.height |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
86 }; |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
87 } |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
88 |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
89 Rectangle Below(Rectangle ref, float padding) |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
90 { |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
91 return (Rectangle){ |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
92 .x = ref.x, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
93 .y = ref.y + ref.height + padding, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
94 .width = ref.width, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
95 .height = 0 |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
96 }; |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
97 } |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
98 |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
99 Rectangle LeftColumn(Rectangle container, float ratio, float padding) |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
100 { |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
101 return (Rectangle){ |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
102 .x = container.x + padding, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
103 .y = container.y + padding, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
104 .width = (container.width * ratio) - padding, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
105 .height = container.height - (2 * padding) |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
106 }; |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
107 } |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
108 |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
109 Rectangle RightColumn(Rectangle container, Rectangle leftCol, float padding) |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
110 { |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
111 return (Rectangle){ |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
112 .x = leftCol.x + leftCol.width + padding, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
113 .y = container.y + padding, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
114 .width = container.width - leftCol.width - (3 * padding), |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
115 .height = container.height - (2 * padding) |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
116 }; |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
117 } |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
118 |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
119 Rectangle HorizontalSplit(Rectangle container, float ratio) |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
120 { |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
121 return (Rectangle){ |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
122 .x = container.x, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
123 .y = container.y, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
124 .width = container.width * ratio, |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
125 .height = container.height |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
126 }; |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
127 } |
|
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
128 |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
129 |
|
161
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
130 void DrawRectangleSelectiveRounded(Rectangle rec, float radius, int segments, Color color, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
131 boolean roundTL, boolean roundTR, boolean roundBR, boolean roundBL) { |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
132 // Clamp radius to valid range |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
133 float maxR = fminf(rec.width, rec.height) * 0.5f; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
134 radius = fminf(fmaxf(radius, 0.0f), maxR); |
|
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 // Fill center |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
137 DrawRectangleRec((Rectangle){ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
138 rec.x + radius, rec.y + radius, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
139 rec.width - 2.0f * radius, rec.height - 2.0f * radius |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
140 }, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
141 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
142 // |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
143 // |--------| |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
144 // | | |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
145 // | | |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
146 // |--------| |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
147 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
148 // Top edge |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
149 float topStart = rec.x + (roundTL ? radius : 0.0f); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
150 float topWidth = rec.width - (roundTL ? radius : 0.0f) - (roundTR ? radius : 0.0f); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
151 if (topWidth > 0.0f) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
152 DrawRectangleRec((Rectangle){ topStart, rec.y, topWidth, radius }, color); |
|
116
7bd795bac997
[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
153 |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
154 // Bottom edge |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
155 float botStart = rec.x + (roundBL ? radius : 0.0f); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
156 float botWidth = rec.width - (roundBL ? radius : 0.0f) - (roundBR ? radius : 0.0f); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
157 if (botWidth > 0.0f) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
158 DrawRectangleRec((Rectangle){ botStart, rec.y + rec.height - radius, botWidth, radius }, color); |
|
161
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
159 |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
160 // Left edge |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
161 float leftStart = rec.y + (roundTL ? radius : 0.0f); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
162 float leftHeight = rec.height - (roundTL ? radius : 0.0f) - (roundBL ? radius : 0.0f); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
163 if (leftHeight > 0.0f) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
164 DrawRectangleRec((Rectangle){ rec.x, leftStart, radius, leftHeight - radius}, color); |
|
161
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
165 |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
166 // Right edge |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
167 float rightStart = rec.y + (roundTR ? radius : 0.0f); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
168 float rightHeight = rec.height - (roundTR ? radius : 0.0f) - (roundBR ? radius : 0.0f); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
169 if (rightHeight > 0.0f) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
170 DrawRectangleRec((Rectangle){ rec.x + rec.width - radius, rightStart, radius, rightHeight - radius }, color); |
|
161
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
171 |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
172 // Corners (arcs) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
173 if (roundTL) { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
174 DrawCircleSector((Vector2){ rec.x + radius, rec.y + radius }, radius, 180.0f, 270.0f, segments, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
175 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
176 if (roundTR) { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
177 DrawCircleSector((Vector2){ rec.x + rec.width - radius, rec.y + radius }, radius, 270.0f, 360.0f, segments, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
178 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
179 if (roundBR) { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
180 DrawCircleSector((Vector2){ rec.x + rec.width - radius, rec.y + rec.height - radius }, radius, 0.0f, 90.0f, segments, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
181 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
182 if (roundBL) { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
183 DrawCircleSector((Vector2){ rec.x + radius, rec.y + rec.height - radius }, radius, 90.0f, 180.0f, segments, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
184 } |
|
161
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
185 } |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
186 |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
187 Rectangle AddPadding(Rectangle rect, float padding) |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
188 { |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
189 return (Rectangle){ |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
190 rect.x + padding, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
191 rect.y + padding, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
192 rect.width - (2 * padding), |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
193 rect.height - (2 * padding) |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
194 }; |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
195 } |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
196 |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
197 Rectangle AddPaddingAll(Rectangle rect, float top, float right,float down, float left) |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
198 { |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
199 return (Rectangle){ |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
200 rect.x + left, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
201 rect.y + top, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
202 rect.width - (right + left), |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
203 rect.height - (top + down), |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
204 }; |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
205 } |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
206 |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
207 |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
208 |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
209 Rectangle AddPaddingHorizontal(Rectangle rect, float padding) |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
210 { |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
211 return (Rectangle){ |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
212 rect.x + padding, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
213 rect.y, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
214 rect.width - (2 * padding), |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
215 rect.height |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
216 }; |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
217 } |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
218 |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
219 Rectangle AddPaddingVertical(Rectangle rect, float padding) |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
220 { |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
221 return (Rectangle){ |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
222 rect.x, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
223 rect.y + padding, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
224 rect.width, |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
225 rect.height - (2 * padding) |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
226 }; |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
227 } |
|
87d8d3eb3491
[PostDog] WIP to make it more mordern looking
June Park <parkjune1995@gmail.com>
parents:
116
diff
changeset
|
228 |
|
163
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
229 Rectangle VerticalSplit(Rectangle container, float ratio) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
230 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
231 return (Rectangle){ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
232 .x = container.x, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
233 .y = container.y, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
234 .width = container.width, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
235 .height = container.height * ratio |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
236 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
237 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
238 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
239 // ============================================================================ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
240 // DRAWING HELPERS - Additional |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
241 // ============================================================================ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
242 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
243 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
|
244 boolean roundTL, boolean roundTR, boolean roundBR, boolean roundBL) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
245 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
246 // Top edge |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
247 DrawLine(rec.x + (roundTL ? radius : 0), rec.y, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
248 rec.x + rec.width - (roundTR ? radius : 0), rec.y, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
249 // Bottom edge |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
250 DrawLine(rec.x + (roundBL ? radius : 0), rec.y + rec.height, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
251 rec.x + rec.width - (roundBR ? radius : 0), rec.y + rec.height, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
252 // Left edge |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
253 DrawLine(rec.x, rec.y + (roundTL ? radius : 0), |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
254 rec.x, rec.y + rec.height - (roundBL ? radius : 0), color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
255 // Right edge |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
256 DrawLine(rec.x + rec.width, rec.y + (roundTR ? radius : 0), |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
257 rec.x + rec.width, rec.y + rec.height - (roundBR ? radius : 0), color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
258 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
259 // Corner arcs |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
260 if (roundTL) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
261 DrawCircleSectorLines((Vector2){rec.x + radius, rec.y + radius}, radius, 180, 270, segments, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
262 if (roundTR) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
263 DrawCircleSectorLines((Vector2){rec.x + rec.width - radius, rec.y + radius}, radius, 270, 360, segments, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
264 if (roundBR) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
265 DrawCircleSectorLines((Vector2){rec.x + rec.width - radius, rec.y + rec.height - radius}, radius, 0, 90, segments, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
266 if (roundBL) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
267 DrawCircleSectorLines((Vector2){rec.x + radius, rec.y + rec.height - radius}, radius, 90, 180, segments, color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
268 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
269 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
270 // ============================================================================ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
271 // CUSTOM TAB COMPONENT IMPLEMENTATION |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
272 // ============================================================================ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
273 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
274 boolean PostDog_TabBar(Rectangle bounds, TabConfig config) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
275 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
276 if (config.count <= 0 || config.labels == NULL || config.active_tab == NULL) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
277 return FALSE; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
278 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
279 boolean changed = FALSE; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
280 float tab_width = (bounds.width - config.padding * (config.count - 1)) / config.count; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
281 Vector2 mouse = GetMousePosition(); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
282 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
283 for (int i = 0; i < config.count; i++) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
284 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
285 Rectangle tab_rect = { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
286 .x = bounds.x + i * (tab_width + config.padding), |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
287 .y = bounds.y, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
288 .width = tab_width, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
289 .height = bounds.height |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
290 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
291 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
292 boolean is_active = (i == *config.active_tab); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
293 boolean is_hovered = CheckCollisionPointRec(mouse, tab_rect); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
294 Color bg_color = is_active ? config.active_color : config.inactive_color; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
295 Color txt_color = is_active ? config.active_text_color : config.text_color; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
296 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
297 // Hover effect |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
298 if (is_hovered && !is_active) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
299 bg_color = Fade(config.active_color, 0.5f); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
300 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
301 // Draw tab background with rounded top corners |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
302 DrawRectangleSelectiveRounded(tab_rect, config.corner_radius, 8, bg_color, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
303 TRUE, TRUE, FALSE, FALSE); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
304 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
305 // Draw tab label |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
306 int text_width = MeasureText(config.labels[i], GuiGetStyle(DEFAULT, TEXT_SIZE)); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
307 Vector2 text_pos = { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
308 tab_rect.x + (tab_rect.width - text_width) / 2, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
309 tab_rect.y + (tab_rect.height - GuiGetStyle(DEFAULT, TEXT_SIZE)) / 2 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
310 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
311 DrawText(config.labels[i], text_pos.x, text_pos.y, GuiGetStyle(DEFAULT, TEXT_SIZE), txt_color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
312 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
313 // Handle click |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
314 if (is_hovered && IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && !is_active) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
315 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
316 *config.active_tab = i; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
317 changed = TRUE; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
318 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
319 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
320 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
321 return changed; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
322 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
323 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
324 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
|
325 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
326 TabConfig config = { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
327 .labels = labels, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
328 .count = count, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
329 .active_tab = active_tab, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
330 .padding = 2, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
331 .corner_radius = 8, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
332 .active_color = g_colors.primary, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
333 .inactive_color = g_colors.secondary, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
334 .text_color = g_colors.text, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
335 .active_text_color = g_colors.text_light, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
336 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
337 return PostDog_TabBar(bounds, config); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
338 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
339 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
340 // ============================================================================ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
341 // SPLIT PANEL IMPLEMENTATION |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
342 // ============================================================================ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
343 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
344 void PostDog_SplitPanel(Rectangle bounds, SplitPanelConfig config, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
345 Rectangle *out_left, Rectangle *out_right) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
346 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
347 float left_width = bounds.width * config.split_ratio - config.gap / 2; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
348 float right_width = bounds.width * (1.0f - config.split_ratio) - config.gap / 2; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
349 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
350 if (out_left) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
351 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
352 *out_left = (Rectangle){ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
353 .x = bounds.x, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
354 .y = bounds.y, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
355 .width = left_width, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
356 .height = bounds.height |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
357 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
358 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
359 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
360 if (out_right) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
361 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
362 *out_right = (Rectangle){ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
363 .x = bounds.x + left_width + config.gap, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
364 .y = bounds.y, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
365 .width = right_width, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
366 .height = bounds.height |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
367 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
368 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
369 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
370 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
371 void PostDog_SplitPanelDraw(Rectangle bounds, SplitPanelConfig config) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
372 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
373 Rectangle left_rect, right_rect; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
374 PostDog_SplitPanel(bounds, config, &left_rect, &right_rect); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
375 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
376 // Draw left panel with rounded left corners |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
377 DrawRectangleSelectiveRounded(left_rect, config.corner_radius, 8, config.left_color, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
378 TRUE, FALSE, FALSE, TRUE); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
379 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
380 // Draw right panel with rounded right corners |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
381 DrawRectangleSelectiveRounded(right_rect, config.corner_radius, 8, config.right_color, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
382 FALSE, TRUE, TRUE, FALSE); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
383 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
384 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
385 // ============================================================================ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
386 // COMBINED INPUT COMPONENTS IMPLEMENTATION |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
387 // ============================================================================ |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
388 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
389 // Helper: Parse semicolon-separated items and return item at index |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
390 static const char* GetDropdownItem(const char *items, int index, char *buffer, int buffer_size) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
391 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
392 int current_index = 0; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
393 int start = 0; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
394 int len = strlen(items); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
395 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
396 for (int i = 0; i <= len; i++) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
397 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
398 if (items[i] == ';' || items[i] == '\0') |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
399 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
400 if (current_index == index) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
401 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
402 int item_len = i - start; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
403 if (item_len >= buffer_size) item_len = buffer_size - 1; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
404 strncpy(buffer, items + start, item_len); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
405 buffer[item_len] = '\0'; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
406 return buffer; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
407 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
408 current_index++; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
409 start = i + 1; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
410 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
411 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
412 buffer[0] = '\0'; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
413 return buffer; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
414 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
415 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
416 // Helper: Count items in semicolon-separated string |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
417 static int CountDropdownItems(const char *items) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
418 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
419 if (!items || items[0] == '\0') return 0; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
420 int count = 1; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
421 for (int i = 0; items[i]; i++) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
422 if (items[i] == ';') count++; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
423 return count; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
424 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
425 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
426 boolean PostDog_DropdownTextBox(Rectangle bounds, DropdownTextBoxConfig config) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
427 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
428 boolean result = FALSE; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
429 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
430 // Calculate dropdown width |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
431 float dropdown_w = config.dropdown_width; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
432 if (dropdown_w <= 1.0f) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
433 dropdown_w = bounds.width * dropdown_w; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
434 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
435 // Calculate rectangles |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
436 Rectangle dropdown_rect = { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
437 .x = bounds.x, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
438 .y = bounds.y, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
439 .width = dropdown_w, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
440 .height = bounds.height |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
441 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
442 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
443 Rectangle textbox_rect = { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
444 .x = bounds.x + dropdown_w, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
445 .y = bounds.y, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
446 .width = bounds.width - dropdown_w, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
447 .height = bounds.height |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
448 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
449 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
450 // Draw combined background |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
451 DrawRectangleSelectiveRounded(dropdown_rect, config.corner_radius, 8, config.background_color, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
452 TRUE, FALSE, FALSE, TRUE); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
453 DrawRectangleSelectiveRounded(textbox_rect, config.corner_radius, 8, config.background_color, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
454 FALSE, TRUE, TRUE, FALSE); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
455 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
456 // Draw separator line |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
457 DrawLine(dropdown_rect.x + dropdown_rect.width, dropdown_rect.y + 4, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
458 dropdown_rect.x + dropdown_rect.width, dropdown_rect.y + dropdown_rect.height - 4, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
459 config.border_color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
460 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
461 // Draw border |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
462 DrawRectangleSelectiveRoundedLines(bounds, config.corner_radius, 8, config.border_color, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
463 TRUE, TRUE, TRUE, TRUE); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
464 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
465 // Custom dropdown with per-item colors |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
466 Vector2 mouse_pos = GetMousePosition(); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
467 int item_count = config.item_count > 0 ? config.item_count : CountDropdownItems(config.dropdown_items); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
468 int font_size = GuiGetStyle(DEFAULT, TEXT_SIZE); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
469 char item_buffer[64]; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
470 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
471 // Get current selected item |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
472 GetDropdownItem(config.dropdown_items, *config.dropdown_active, item_buffer, sizeof(item_buffer)); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
473 Color current_color = (config.item_colors && *config.dropdown_active < item_count) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
474 ? config.item_colors[*config.dropdown_active] |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
475 : config.text_color; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
476 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
477 // Draw selected item in dropdown area |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
478 Rectangle dropdown_inner = AddPadding(dropdown_rect, 6); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
479 boolean dropdown_hovered = CheckCollisionPointRec(mouse_pos, dropdown_rect); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
480 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
481 // Highlight on hover |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
482 if (dropdown_hovered && !(*config.dropdown_edit_mode)) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
483 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
484 DrawRectangleSelectiveRounded(dropdown_rect, config.corner_radius, 8, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
485 Fade(current_color, 0.5f), TRUE, FALSE, FALSE, TRUE); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
486 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
487 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
488 // Draw selected text with color |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
489 int text_width = MeasureText(item_buffer, font_size); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
490 DrawText(item_buffer, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
491 dropdown_inner.x + (dropdown_inner.width - text_width) / 2, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
492 dropdown_inner.y + (dropdown_inner.height - font_size) / 2, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
493 font_size, current_color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
494 DrawRectangleSelectiveRounded(dropdown_rect, config.corner_radius, 8, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
495 Fade(current_color, 0.3f), TRUE, FALSE, FALSE, TRUE); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
496 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
497 // Draw dropdown arrow |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
498 float arrow_size = 6; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
499 float arrow_x = dropdown_rect.x + dropdown_rect.width - 14; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
500 float arrow_y = dropdown_rect.y + dropdown_rect.height / 2; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
501 DrawTriangle( |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
502 (Vector2){arrow_x, arrow_y - arrow_size/2}, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
503 (Vector2){arrow_x + arrow_size, arrow_y - arrow_size/2}, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
504 (Vector2){arrow_x + arrow_size/2, arrow_y + arrow_size/2}, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
505 config.text_color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
506 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
507 // Handle dropdown click |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
508 if (dropdown_hovered && IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
509 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
510 *config.dropdown_edit_mode = !(*config.dropdown_edit_mode); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
511 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
512 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
513 // Draw dropdown list when open |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
514 if (*config.dropdown_edit_mode) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
515 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
516 float item_height = bounds.height; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
517 Rectangle list_rect = { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
518 .x = dropdown_rect.x, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
519 .y = dropdown_rect.y + dropdown_rect.height + 2, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
520 .width = dropdown_rect.width, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
521 .height = item_height * item_count |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
522 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
523 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
524 // Background |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
525 DrawRectangleRounded(list_rect, 0.1f, 8, config.background_color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
526 DrawRectangleRoundedLines(list_rect, 0.1f, 8, config.border_color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
527 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
528 // Draw each item |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
529 for (int i = 0; i < item_count; i++) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
530 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
531 Rectangle item_rect = { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
532 .x = list_rect.x, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
533 .y = list_rect.y + i * item_height, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
534 .width = list_rect.width, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
535 .height = item_height |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
536 }; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
537 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
538 GetDropdownItem(config.dropdown_items, i, item_buffer, sizeof(item_buffer)); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
539 Color item_color = (config.item_colors && i < item_count) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
540 ? config.item_colors[i] |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
541 : config.text_color; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
542 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
543 boolean item_hovered = CheckCollisionPointRec(mouse_pos, item_rect); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
544 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
545 // Highlight hovered item |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
546 if (item_hovered) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
547 DrawRectangleRec(item_rect, Fade(item_color, 0.15f)); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
548 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
549 // Highlight selected item |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
550 DrawRectangleRec(item_rect, Fade(item_color, 0.2f)); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
551 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
552 // Draw item text |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
553 text_width = MeasureText(item_buffer, font_size); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
554 DrawText(item_buffer, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
555 item_rect.x + (item_rect.width - text_width) / 2, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
556 item_rect.y + (item_rect.height - font_size) / 2, |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
557 font_size, item_color); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
558 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
559 // Handle item click |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
560 if (item_hovered && IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
561 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
562 *config.dropdown_active = i; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
563 *config.dropdown_edit_mode = FALSE; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
564 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
565 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
566 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
567 // Close dropdown if clicked outside |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
568 if (!CheckCollisionPointRec(mouse_pos, list_rect) && |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
569 !CheckCollisionPointRec(mouse_pos, dropdown_rect) && |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
570 IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
571 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
572 *config.dropdown_edit_mode = FALSE; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
573 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
574 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
575 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
576 // Draw text box (using raygui) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
577 Rectangle textbox_inner = AddPadding(textbox_rect, 4); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
578 boolean ctrl_pressed = IsKeyDown(KEY_LEFT_CONTROL) || IsKeyDown(KEY_RIGHT_CONTROL) || IsKeyDown(KEY_LEFT_SUPER) || IsKeyDown(KEY_RIGHT_SUPER); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
579 if (*config.text_edit_mode && ctrl_pressed && IsKeyPressed(KEY_V)) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
580 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
581 const char *clipboard = GetClipboardText(); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
582 snprintf(config.text_buffer, config.text_buffer_size, "%s", clipboard); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
583 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
584 if (GuiTextBox(textbox_inner, config.text_buffer, config.text_buffer_size, *config.text_edit_mode)) |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
585 { |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
586 *config.text_edit_mode = !(*config.text_edit_mode); |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
587 result = TRUE; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
588 } |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
589 |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
590 return result; |
|
058de208e640
[Config] Adding os ignore files.
June Park <parkjune1995@gmail.com>
parents:
161
diff
changeset
|
591 } |