Mercurial
annotate third_party/raylib/custom.c @ 174:1ba8c1df082c hg-web
Remove playground stuff.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Mon, 19 Jan 2026 18:59:23 -0800 |
| 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 } |