7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
25#include <gimbal/gimbal_meta.h>
26#include <gimbal/gimbal_strings.h>
27#include <gimbal/gimbal_core.h>
29#include <gumball/types/gumball_font.h>
30#include <gumball/types/gumball_texture.h>
31#include <gumball/types/gumball_renderer.h>
34
35
36
37#define GUM_WIDGET_TYPE (GBL_TYPEID (GUM_Widget))
38#define GUM_WIDGET(self) (GBL_CAST (GUM_Widget, self))
39#define GUM_WIDGET_CLASS(klass) (GBL_CLASS_CAST (GUM_Widget, klass))
40#define GUM_WIDGET_CLASSOF(self) (GBL_CLASSOF (GUM_Widget, self))
43#define GBL_SELF_TYPE GUM_Widget
46GBL_FORWARD_DECLARE_STRUCT(GUM_Widget);
50
51
52
53
54
55
57GBL_CLASS_DERIVE(GUM_Widget, GblObject)
58 GBL_RESULT (*pFnActivate) (GBL_SELF);
59 GBL_RESULT (*pFnDeactivate) (GBL_SELF);
60 GBL_RESULT (*pFnUpdate) (GBL_SELF);
61 GBL_RESULT (*pFnDraw) (GBL_SELF, GUM_Renderer *pRenderer);
67
68
69
72
73
74
75
77GBL_INSTANCE_DERIVE(GUM_Widget, GblObject)
113GBL_PROPERTIES(GUM_Widget,
114 (x, GBL_GENERIC, (READ, WRITE), GBL_FLOAT_TYPE),
115 (y, GBL_GENERIC, (READ, WRITE), GBL_FLOAT_TYPE),
116 (w, GBL_GENERIC, (READ, WRITE), GBL_FLOAT_TYPE),
117 (h, GBL_GENERIC, (READ, WRITE), GBL_FLOAT_TYPE),
118 (isRelative, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
119 (color, GBL_GENERIC, (READ, WRITE), GBL_UINT32_TYPE),
120 (border_color, GBL_GENERIC, (READ, WRITE), GBL_UINT32_TYPE),
121 (font_border_color, GBL_GENERIC, (READ, WRITE), GBL_UINT32_TYPE),
122 (r, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
123 (g, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
124 (b, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
125 (a, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
126 (border_r, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
127 (border_g, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
128 (border_b, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
129 (border_a, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
130 (border_width, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
131 (border_radius, GBL_GENERIC, (READ, WRITE), GBL_FLOAT_TYPE),
132 (border_highlight, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
133 (label, GBL_GENERIC, (READ, WRITE), GBL_STRING_TYPE),
134 (texture, GBL_GENERIC, (READ, WRITE), GUM_TEXTURE_TYPE),
135 (textAlignment, GBL_GENERIC, (READ, WRITE), GUM_TEXT_ALIGNMENT_TYPE),
136 (font, GBL_GENERIC, (READ, WRITE), GUM_FONT_TYPE),
137 (font_size, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
138 (font_r, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
139 (font_g, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
140 (font_b, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
141 (font_a, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
142 (font_border_r, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
143 (font_border_g, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
144 (font_border_b, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
145 (font_border_a, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
146 (font_border_thickness, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
147 (z_index, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE)
150GblType GUM_Widget_type(
void);
153GUM_Vector2 GUM_get_absolute_position_(GBL_SELF);
157#define GUM_Widget_create(...) GBL_NEW(GUM_Widget __VA_OPT__(,) __VA_ARGS__)