galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
LuaNuklear.cpp
Go to the documentation of this file.
1
7
8#include <sol/sol.hpp>
9
10#include "galaxy/core/ServiceLocator.hpp"
12
13#include "Lua.hpp"
14
15namespace galaxy
16{
17 namespace lua
18 {
20 {
21 auto& lua = core::ServiceLocator<sol::state>::ref();
22
23 auto nui_type = lua.new_usertype<ui::NuklearUI>("NuklearUI", sol::no_constructor);
24 nui_type["ctx"] = &ui::NuklearUI::ctx;
25 nui_type["toggle_input"] = &ui::NuklearUI::toggle_input;
26 nui_type["set_font"] = &ui::NuklearUI::set_font;
27 nui_type["begin_input"] = &ui::NuklearUI::begin_input;
28 nui_type["end_input"] = &ui::NuklearUI::end_input;
29 nui_type["poll_input"] = &ui::NuklearUI::poll_input;
30 nui_type["show_building_atlas"] = &ui::NuklearUI::show_building_atlas;
31 nui_type["show_loading_bar"] = &ui::NuklearUI::show_loading_bar;
32
33 // clang-format off
34 lua.new_enum<nk_heading>("nk_heading",
35 {
36 {"NK_UP", NK_UP},
37 {"NK_RIGHT", NK_RIGHT},
38 {"NK_DOWN", NK_DOWN},
39 {"NK_LEFT",NK_LEFT}
40 });
41
42 lua.new_enum<enum nk_button_behavior>("nk_button_behavior",
43 {
44 {"NK_BUTTON_DEFAULT", NK_BUTTON_DEFAULT},
45 {"NK_BUTTON_REPEATER", NK_BUTTON_REPEATER}
46 });
47
48 lua.new_enum<nk_modify>("nk_modify",
49 {
50 {"NK_FIXED", NK_FIXED},
51 {"NK_MODIFIABLE", NK_MODIFIABLE}
52 });
53
54 lua.new_enum<nk_orientation>("nk_orientation",
55 {
56 {"NK_VERTICAL", NK_VERTICAL},
57 {"NK_HORIZONTAL", NK_HORIZONTAL}
58 });
59
60 lua.new_enum<nk_collapse_states>("nk_collapse_states",
61 {
62 {"NK_MINIMIZED", NK_MINIMIZED},
63 {"NK_MAXIMIZED", NK_MAXIMIZED}
64 });
65
66 lua.new_enum<nk_show_states>("nk_show_states",
67 {
68 {"NK_HIDDEN", NK_HIDDEN},
69 {"NK_SHOWN", NK_SHOWN}
70 });
71
72 lua.new_enum<nk_chart_type>("nk_chart_type",
73 {
74 {"NK_CHART_LINES", NK_CHART_LINES},
75 {"NK_CHART_COLUMN", NK_CHART_COLUMN},
76 {"NK_CHART_MAX", NK_CHART_MAX}
77 });
78
79 lua.new_enum<nk_chart_event>("nk_chart_event",
80 {
81 {"NK_CHART_HOVERING", NK_CHART_HOVERING},
82 {"NK_CHART_CLICKED", NK_CHART_CLICKED}
83 });
84
85 lua.new_enum<nk_color_format>("nk_color_format",
86 {
87 {"NK_RGB", NK_RGB},
88 {"NK_RGBA", NK_RGBA}
89 });
90
91 lua.new_enum<nk_popup_type>("nk_popup_type",
92 {
93 {"NK_POPUP_STATIC", NK_POPUP_STATIC},
94 {"NK_POPUP_DYNAMIC", NK_POPUP_DYNAMIC}
95 });
96
97 lua.new_enum<nk_layout_format>("nk_layout_format",
98 {
99 {"NK_DYNAMIC", NK_DYNAMIC},
100 {"NK_STATIC", NK_STATIC}
101 });
102
103 lua.new_enum<nk_tree_type>("nk_tree_type",
104 {
105 {"NK_TREE_NODE", NK_TREE_NODE},
106 {"NK_TREE_TAB", NK_TREE_TAB}
107 });
108
109 lua.new_enum<nk_symbol_type>("nk_symbol_type",
110 {
111 {"NK_SYMBOL_NONE", NK_SYMBOL_NONE},
112 {"NK_SYMBOL_X", NK_SYMBOL_X},
113 {"NK_SYMBOL_UNDERSCORE", NK_SYMBOL_UNDERSCORE},
114 {"NK_SYMBOL_CIRCLE_SOLID", NK_SYMBOL_CIRCLE_SOLID},
115 {"NK_SYMBOL_CIRCLE_OUTLINE", NK_SYMBOL_CIRCLE_OUTLINE},
116 {"NK_SYMBOL_RECT_SOLID", NK_SYMBOL_RECT_SOLID},
117 {"NK_SYMBOL_RECT_OUTLINE", NK_SYMBOL_RECT_OUTLINE},
118 {"NK_SYMBOL_TRIANGLE_UP", NK_SYMBOL_TRIANGLE_UP},
119 {"NK_SYMBOL_TRIANGLE_DOWN", NK_SYMBOL_TRIANGLE_DOWN},
120 {"NK_SYMBOL_TRIANGLE_LEFT", NK_SYMBOL_TRIANGLE_LEFT},
121 {"NK_SYMBOL_TRIANGLE_RIGHT", NK_SYMBOL_TRIANGLE_RIGHT},
122 {"NK_SYMBOL_PLUS", NK_SYMBOL_PLUS},
123 {"NK_SYMBOL_MINUS", NK_SYMBOL_MINUS},
124 {"NK_SYMBOL_MAX", NK_SYMBOL_MAX}
125 });
126
127 lua.new_enum<nk_keys>("nk_keys",
128 {
129 {"NK_KEY_NONE", NK_KEY_NONE},
130 {"NK_KEY_SHIFT", NK_KEY_SHIFT},
131 {"NK_KEY_CTRL", NK_KEY_CTRL},
132 {"NK_KEY_DEL", NK_KEY_DEL},
133 {"NK_KEY_ENTER", NK_KEY_ENTER},
134 {"NK_KEY_TAB", NK_KEY_TAB},
135 {"NK_KEY_BACKSPACE", NK_KEY_BACKSPACE},
136 {"NK_KEY_COPY", NK_KEY_COPY},
137 {"NK_KEY_CUT", NK_KEY_CUT},
138 {"NK_KEY_PASTE", NK_KEY_PASTE},
139 {"NK_KEY_UP", NK_KEY_UP},
140 {"NK_KEY_DOWN", NK_KEY_DOWN},
141 {"NK_KEY_LEFT", NK_KEY_LEFT},
142 {"NK_KEY_RIGHT", NK_KEY_RIGHT},
143 {"NK_KEY_TEXT_INSERT_MODE", NK_KEY_TEXT_INSERT_MODE},
144 {"NK_KEY_TEXT_REPLACE_MODE", NK_KEY_TEXT_REPLACE_MODE},
145 {"NK_KEY_TEXT_RESET_MODE", NK_KEY_TEXT_RESET_MODE},
146 {"NK_KEY_TEXT_LINE_START", NK_KEY_TEXT_LINE_START},
147 {"NK_KEY_TEXT_LINE_END", NK_KEY_TEXT_LINE_END},
148 {"NK_KEY_TEXT_START", NK_KEY_TEXT_START},
149 {"NK_KEY_TEXT_END", NK_KEY_TEXT_END},
150 {"NK_KEY_TEXT_UNDO", NK_KEY_TEXT_UNDO},
151 {"NK_KEY_TEXT_REDO", NK_KEY_TEXT_REDO},
152 {"NK_KEY_TEXT_SELECT_ALL", NK_KEY_TEXT_SELECT_ALL},
153 {"NK_KEY_TEXT_WORD_LEFT", NK_KEY_TEXT_WORD_LEFT},
154 {"NK_KEY_TEXT_WORD_RIGHT", NK_KEY_TEXT_WORD_RIGHT},
155 {"NK_KEY_SCROLL_START", NK_KEY_SCROLL_START},
156 {"NK_KEY_SCROLL_END", NK_KEY_SCROLL_END},
157 {"NK_KEY_SCROLL_DOWN", NK_KEY_SCROLL_DOWN},
158 {"NK_KEY_SCROLL_UP", NK_KEY_SCROLL_UP},
159 {"NK_KEY_MAX", NK_KEY_MAX}
160 });
161
162 lua.new_enum<nk_buttons>("nk_buttons",
163 {
164 {"NK_BUTTON_LEFT", NK_BUTTON_LEFT},
165 {"NK_BUTTON_MIDDLE", NK_BUTTON_MIDDLE},
166 {"NK_BUTTON_RIGHT", NK_BUTTON_RIGHT},
167 {"NK_BUTTON_DOUBLE", NK_BUTTON_DOUBLE},
168 {"NK_BUTTON_MAX", NK_BUTTON_MAX}
169 });
170
171 lua.new_enum<nk_anti_aliasing>("nk_anti_aliasing",
172 {
173 {"NK_ANTI_ALIASING_OFF", NK_ANTI_ALIASING_OFF},
174 {"NK_ANTI_ALIASING_ON", NK_ANTI_ALIASING_ON}
175 });
176
177 lua.new_enum<nk_convert_result>("nk_convert_result",
178 {
179 {"NK_CONVERT_SUCCESS", NK_CONVERT_SUCCESS},
180 {"NK_CONVERT_INVALID_PARAM", NK_CONVERT_INVALID_PARAM},
181 {"NK_CONVERT_COMMAND_BUFFER_FULL", NK_CONVERT_COMMAND_BUFFER_FULL},
182 {"NK_CONVERT_VERTEX_BUFFER_FULL", NK_CONVERT_VERTEX_BUFFER_FULL},
183 {"NK_CONVERT_ELEMENT_BUFFER_FULL", NK_CONVERT_ELEMENT_BUFFER_FULL}
184 });
185
186 lua.new_enum<nk_panel_flags>("nk_panel_flags",
187 {
188 {"NK_WINDOW_BORDER", NK_WINDOW_BORDER},
189 {"NK_WINDOW_MOVABLE", NK_WINDOW_MOVABLE},
190 {"NK_WINDOW_SCALABLE", NK_WINDOW_SCALABLE},
191 {"NK_WINDOW_CLOSABLE", NK_WINDOW_CLOSABLE},
192 {"NK_WINDOW_MINIMIZABLE", NK_WINDOW_MINIMIZABLE},
193 {"NK_WINDOW_NO_SCROLLBAR", NK_WINDOW_NO_SCROLLBAR},
194 {"NK_WINDOW_TITLE", NK_WINDOW_TITLE},
195 {"NK_WINDOW_SCROLL_AUTO_HIDE", NK_WINDOW_SCROLL_AUTO_HIDE},
196 {"NK_WINDOW_BACKGROUND", NK_WINDOW_BACKGROUND},
197 {"NK_WINDOW_SCALE_LEFT", NK_WINDOW_SCALE_LEFT},
198 {"NK_WINDOW_NO_INPUT", NK_WINDOW_NO_INPUT}
199 });
200
201 lua.new_enum<nk_widget_layout_states>("nk_widget_layout_states",
202 {
203 {"NK_WIDGET_INVALID", NK_WIDGET_INVALID},
204 {"NK_WIDGET_VALID", NK_WIDGET_VALID},
205 {"NK_WIDGET_ROM", NK_WIDGET_ROM}
206 });
207
208 lua.new_enum<nk_widget_states>("nk_widget_states",
209 {
210 {"NK_WIDGET_STATE_MODIFIED", NK_WIDGET_STATE_MODIFIED},
211 {"NK_WIDGET_STATE_INACTIVE", NK_WIDGET_STATE_INACTIVE},
212 {"NK_WIDGET_STATE_ENTERED", NK_WIDGET_STATE_ENTERED},
213 {"NK_WIDGET_STATE_HOVER", NK_WIDGET_STATE_HOVER},
214 {"NK_WIDGET_STATE_ACTIVED", NK_WIDGET_STATE_ACTIVED},
215 {"NK_WIDGET_STATE_LEFT", NK_WIDGET_STATE_LEFT},
216 {"NK_WIDGET_STATE_HOVERED", NK_WIDGET_STATE_HOVERED},
217 {"NK_WIDGET_STATE_ACTIVE", NK_WIDGET_STATE_ACTIVE}
218 });
219
220 lua.new_enum<nk_text_align>("nk_text_align",
221 {
222 {"NK_TEXT_ALIGN_LEFT", NK_TEXT_ALIGN_LEFT},
223 {"NK_TEXT_ALIGN_CENTERED", NK_TEXT_ALIGN_CENTERED},
224 {"NK_TEXT_ALIGN_RIGHT", NK_TEXT_ALIGN_RIGHT},
225 {"NK_TEXT_ALIGN_TOP", NK_TEXT_ALIGN_TOP},
226 {"NK_TEXT_ALIGN_MIDDLE", NK_TEXT_ALIGN_MIDDLE},
227 {"NK_TEXT_ALIGN_BOTTOM", NK_TEXT_ALIGN_BOTTOM}
228 });
229
230 lua.new_enum<nk_text_alignment>("nk_text_alignment",
231 {
232 {"NK_TEXT_LEFT", NK_TEXT_LEFT},
233 {"NK_TEXT_CENTERED", NK_TEXT_CENTERED},
234 {"NK_TEXT_RIGHT", NK_TEXT_RIGHT}
235 });
236
237 lua.new_enum<nk_edit_flags>("nk_edit_flags",
238 {
239 {"NK_EDIT_DEFAULT", NK_EDIT_DEFAULT},
240 {"NK_EDIT_READ_ONLY", NK_EDIT_READ_ONLY},
241 {"NK_EDIT_AUTO_SELECT", NK_EDIT_AUTO_SELECT},
242 {"NK_EDIT_SIG_ENTER", NK_EDIT_SIG_ENTER},
243 {"NK_EDIT_ALLOW_TAB", NK_EDIT_ALLOW_TAB},
244 {"NK_EDIT_NO_CURSOR", NK_EDIT_NO_CURSOR},
245 {"NK_EDIT_SELECTABLE", NK_EDIT_SELECTABLE},
246 {"NK_EDIT_CLIPBOARD", NK_EDIT_CLIPBOARD},
247 {"NK_EDIT_CTRL_ENTER_NEWLINE", NK_EDIT_CTRL_ENTER_NEWLINE},
248 {"NK_EDIT_NO_HORIZONTAL_SCROLL", NK_EDIT_NO_HORIZONTAL_SCROLL},
249 {"NK_EDIT_ALWAYS_INSERT_MODE", NK_EDIT_ALWAYS_INSERT_MODE},
250 {"NK_EDIT_MULTILINE", NK_EDIT_MULTILINE},
251 {"NK_EDIT_GOTO_END_ON_ACTIVATE", NK_EDIT_GOTO_END_ON_ACTIVATE}
252 });
253
254 lua.new_enum<nk_edit_types>("nk_edit_types",
255 {
256 {"NK_EDIT_SIMPLE", NK_EDIT_SIMPLE},
257 {"NK_EDIT_FIELD", NK_EDIT_FIELD},
258 {"NK_EDIT_BOX", NK_EDIT_BOX},
259 {"NK_EDIT_EDITOR", NK_EDIT_EDITOR}
260 });
261
262 lua.new_enum<nk_edit_events>("nk_edit_events",
263 {
264 {"NK_EDIT_ACTIVE", NK_EDIT_ACTIVE},
265 {"NK_EDIT_INACTIVE", NK_EDIT_INACTIVE},
266 {"NK_EDIT_ACTIVATED", NK_EDIT_ACTIVATED},
267 {"NK_EDIT_DEACTIVATED", NK_EDIT_DEACTIVATED},
268 {"NK_EDIT_COMMITED", NK_EDIT_COMMITED}
269 });
270
271 lua.new_enum<nk_style_colors>("nk_style_colors",
272 {
273 {"NK_COLOR_TEXT", NK_COLOR_TEXT},
274 {"NK_COLOR_WINDOW", NK_COLOR_WINDOW},
275 {"NK_COLOR_HEADER", NK_COLOR_HEADER},
276 {"NK_COLOR_BORDER", NK_COLOR_BORDER},
277 {"NK_COLOR_BUTTON", NK_COLOR_BUTTON},
278 {"NK_COLOR_BUTTON_HOVER", NK_COLOR_BUTTON_HOVER},
279 {"NK_COLOR_BUTTON_ACTIVE", NK_COLOR_BUTTON_ACTIVE},
280 {"NK_COLOR_TOGGLE", NK_COLOR_TOGGLE},
281 {"NK_COLOR_TOGGLE_HOVER", NK_COLOR_TOGGLE_HOVER},
282 {"NK_COLOR_TOGGLE_CURSOR", NK_COLOR_TOGGLE_CURSOR},
283 {"NK_COLOR_SELECT", NK_COLOR_SELECT},
284 {"NK_COLOR_SELECT_ACTIVE", NK_COLOR_SELECT_ACTIVE},
285 {"NK_COLOR_SLIDER", NK_COLOR_SLIDER},
286 {"NK_COLOR_SLIDER_CURSOR", NK_COLOR_SLIDER_CURSOR},
287 {"NK_COLOR_SLIDER_CURSOR_HOVER", NK_COLOR_SLIDER_CURSOR_HOVER},
288 {"NK_COLOR_SLIDER_CURSOR_ACTIVE", NK_COLOR_SLIDER_CURSOR_ACTIVE},
289 {"NK_COLOR_PROPERTY", NK_COLOR_PROPERTY},
290 {"NK_COLOR_EDIT", NK_COLOR_EDIT},
291 {"NK_COLOR_EDIT_CURSOR", NK_COLOR_EDIT_CURSOR},
292 {"NK_COLOR_COMBO", NK_COLOR_COMBO},
293 {"NK_COLOR_CHART", NK_COLOR_CHART},
294 {"NK_COLOR_CHART_COLOR", NK_COLOR_CHART_COLOR},
295 {"NK_COLOR_CHART_COLOR_HIGHLIGHT", NK_COLOR_CHART_COLOR_HIGHLIGHT},
296 {"NK_COLOR_SCROLLBAR", NK_COLOR_SCROLLBAR},
297 {"NK_COLOR_SCROLLBAR_CURSOR", NK_COLOR_SCROLLBAR_CURSOR},
298 {"NK_COLOR_SCROLLBAR_CURSOR_HOVER", NK_COLOR_SCROLLBAR_CURSOR_HOVER},
299 {"NK_COLOR_SCROLLBAR_CURSOR_ACTIVE", NK_COLOR_SCROLLBAR_CURSOR_ACTIVE},
300 {"NK_COLOR_TAB_HEADER", NK_COLOR_TAB_HEADER},
301 {"NK_COLOR_COUNT", NK_COLOR_COUNT}
302 });
303
304 lua.new_enum<nk_style_cursor>("nk_style_cursor",
305 {
306 {"NK_CURSOR_ARROW", NK_CURSOR_ARROW},
307 {"NK_CURSOR_TEXT", NK_CURSOR_TEXT},
308 {"NK_CURSOR_MOVE", NK_CURSOR_MOVE},
309 {"NK_CURSOR_RESIZE_VERTICAL", NK_CURSOR_RESIZE_VERTICAL},
310 {"NK_CURSOR_RESIZE_HORIZONTAL", NK_CURSOR_RESIZE_HORIZONTAL},
311 {"NK_CURSOR_RESIZE_TOP_LEFT_DOWN_RIGHT", NK_CURSOR_RESIZE_TOP_LEFT_DOWN_RIGHT},
312 {"NK_CURSOR_RESIZE_TOP_RIGHT_DOWN_LEFT", NK_CURSOR_RESIZE_TOP_RIGHT_DOWN_LEFT},
313 {"NK_CURSOR_COUNT", NK_CURSOR_COUNT}
314 });
315
316 lua.new_enum<nk_font_coord_type>("nk_font_coord_type",
317 {
318 {"NK_COORD_UV", NK_COORD_UV},
319 {"NK_COORD_PIXEL", NK_COORD_PIXEL}
320 });
321
322 lua.new_enum<nk_font_atlas_format>("nk_font_atlas_format",
323 {
324 {"NK_FONT_ATLAS_ALPHA8", NK_FONT_ATLAS_ALPHA8},
325 {"NK_FONT_ATLAS_RGBA32", NK_FONT_ATLAS_RGBA32}
326 });
327
328 lua.new_enum<nk_allocation_type>("nk_allocation_type",
329 {
330 {"NK_BUFFER_FIXED", NK_BUFFER_FIXED},
331 {"NK_BUFFER_DYNAMIC", NK_BUFFER_DYNAMIC}
332 });
333
334 lua.new_enum<nk_buffer_allocation_type>("nk_buffer_allocation_type",
335 {
336 {"NK_BUFFER_FRONT", NK_BUFFER_FRONT},
337 {"NK_BUFFER_BACK", NK_BUFFER_BACK},
338 {"NK_BUFFER_MAX", NK_BUFFER_MAX}
339 });
340
341 lua.new_enum<nk_text_edit_type>("nk_text_edit_type",
342 {
343 {"NK_TEXT_EDIT_SINGLE_LINE", NK_TEXT_EDIT_SINGLE_LINE},
344 {"NK_TEXT_EDIT_MULTI_LINE", NK_TEXT_EDIT_MULTI_LINE}
345 });
346
347 lua.new_enum<nk_text_edit_mode>("nk_text_edit_mode",
348 {
349 {"NK_TEXT_EDIT_MODE_VIEW", NK_TEXT_EDIT_MODE_VIEW},
350 {"NK_TEXT_EDIT_MODE_INSERT", NK_TEXT_EDIT_MODE_INSERT},
351 {"NK_TEXT_EDIT_MODE_REPLACE", NK_TEXT_EDIT_MODE_REPLACE}
352 });
353
354 lua.new_enum<nk_command_type>("nk_command_type",
355 {
356 {"NK_COMMAND_NOP,", NK_COMMAND_NOP},
357 {"NK_COMMAND_SCISSOR,", NK_COMMAND_SCISSOR},
358 {"NK_COMMAND_LINE,", NK_COMMAND_LINE},
359 {"NK_COMMAND_CURVE,", NK_COMMAND_CURVE},
360 {"NK_COMMAND_RECT,", NK_COMMAND_RECT},
361 {"NK_COMMAND_RECT_FILLED,", NK_COMMAND_RECT_FILLED},
362 {"NK_COMMAND_RECT_MULTI_COLOR,", NK_COMMAND_RECT_MULTI_COLOR},
363 {"NK_COMMAND_CIRCLE,", NK_COMMAND_CIRCLE},
364 {"NK_COMMAND_CIRCLE_FILLED,", NK_COMMAND_CIRCLE_FILLED},
365 {"NK_COMMAND_ARC,", NK_COMMAND_ARC},
366 {"NK_COMMAND_ARC_FILLED,", NK_COMMAND_ARC_FILLED},
367 {"NK_COMMAND_TRIANGLE,", NK_COMMAND_TRIANGLE},
368 {"NK_COMMAND_TRIANGLE_FILLED,", NK_COMMAND_TRIANGLE_FILLED},
369 {"NK_COMMAND_POLYGON,", NK_COMMAND_POLYGON},
370 {"NK_COMMAND_POLYGON_FILLED,", NK_COMMAND_POLYGON_FILLED},
371 {"NK_COMMAND_POLYLINE,", NK_COMMAND_POLYLINE},
372 {"NK_COMMAND_TEXT,", NK_COMMAND_TEXT},
373 {"NK_COMMAND_IMAGE,", NK_COMMAND_IMAGE},
374 {"NK_COMMAND_CUSTOM", NK_COMMAND_CUSTOM}
375 });
376
377 lua.new_enum<nk_command_clipping>("nk_command_clipping",
378 {
379 {"NK_CLIPPING_OFF", NK_CLIPPING_OFF},
380 {"NK_CLIPPING_ON", NK_CLIPPING_ON}
381 });
382
383 lua.new_enum<nk_draw_list_stroke>("nk_draw_list_stroke",
384 {
385 {"NK_STROKE_OPEN", NK_STROKE_OPEN},
386 {"NK_STROKE_CLOSED", NK_STROKE_CLOSED}
387 });
388
389 lua.new_enum<nk_draw_vertex_layout_attribute>("nk_draw_vertex_layout_attribute",
390 {
391 {"NK_VERTEX_POSITION", NK_VERTEX_POSITION},
392 {"NK_VERTEX_COLOR", NK_VERTEX_COLOR},
393 {"NK_VERTEX_TEXCOORD", NK_VERTEX_TEXCOORD},
394 {"NK_VERTEX_ATTRIBUTE_COUNT", NK_VERTEX_ATTRIBUTE_COUNT}
395 });
396
397 lua.new_enum<nk_draw_vertex_layout_format>("nk_draw_vertex_layout_format",
398 {
399 {"NK_FORMAT_SCHAR", NK_FORMAT_SCHAR},
400 {"NK_FORMAT_SSHORT", NK_FORMAT_SSHORT},
401 {"NK_FORMAT_SINT", NK_FORMAT_SINT},
402 {"NK_FORMAT_UCHAR", NK_FORMAT_UCHAR},
403 {"NK_FORMAT_USHORT", NK_FORMAT_USHORT},
404 {"NK_FORMAT_UINT", NK_FORMAT_UINT},
405 {"NK_FORMAT_FLOAT", NK_FORMAT_FLOAT},
406 {"NK_FORMAT_DOUBLE", NK_FORMAT_DOUBLE},
407 {"NK_FORMAT_COLOR_BEGIN", NK_FORMAT_COLOR_BEGIN},
408 {"NK_FORMAT_R8G8B8", NK_FORMAT_R8G8B8},
409 {"NK_FORMAT_R16G15B16", NK_FORMAT_R16G15B16},
410 {"NK_FORMAT_R32G32B32", NK_FORMAT_R32G32B32},
411 {"NK_FORMAT_R8G8B8A8", NK_FORMAT_R8G8B8A8},
412 {"NK_FORMAT_B8G8R8A8", NK_FORMAT_B8G8R8A8},
413 {"NK_FORMAT_R16G15B16A16", NK_FORMAT_R16G15B16A16},
414 {"NK_FORMAT_R32G32B32A32", NK_FORMAT_R32G32B32A32},
415 {"NK_FORMAT_R32G32B32A32_FLOAT", NK_FORMAT_R32G32B32A32_FLOAT},
416 {"NK_FORMAT_R32G32B32A32_DOUBLE", NK_FORMAT_R32G32B32A32_DOUBLE},
417 {"NK_FORMAT_RGB32", NK_FORMAT_RGB32},
418 {"NK_FORMAT_RGBA32", NK_FORMAT_RGBA32},
419 {"NK_FORMAT_COLOR_END", NK_FORMAT_COLOR_END},
420 {"NK_FORMAT_COUNT", NK_FORMAT_COUNT}
421 });
422
423 lua.new_enum<nk_style_item_type>("nk_style_item_type",
424 {
425 {"NK_STYLE_ITEM_COLOR", NK_STYLE_ITEM_COLOR},
426 {"NK_STYLE_ITEM_IMAGE", NK_STYLE_ITEM_IMAGE},
427 {"NK_STYLE_ITEM_NINE_SLICE", NK_STYLE_ITEM_NINE_SLICE}
428 });
429
430 lua.new_enum<nk_style_header_align>("nk_style_header_align",
431 {
432 {"NK_HEADER_LEFT", NK_HEADER_LEFT},
433 {"NK_HEADER_RIGHT", NK_HEADER_RIGHT}
434 });
435
436 lua.new_enum<nk_panel_type>("nk_panel_type",
437 {
438 {"NK_PANEL_NONE", NK_PANEL_NONE},
439 {"NK_PANEL_WINDOW", NK_PANEL_WINDOW},
440 {"NK_PANEL_GROUP", NK_PANEL_GROUP},
441 {"NK_PANEL_POPUP", NK_PANEL_POPUP},
442 {"NK_PANEL_CONTEXTUAL", NK_PANEL_CONTEXTUAL},
443 {"NK_PANEL_COMBO", NK_PANEL_COMBO},
444 {"NK_PANEL_MENU", NK_PANEL_MENU},
445 {"NK_PANEL_TOOLTIP", NK_PANEL_TOOLTIP}
446 });
447
448 lua.new_enum<nk_panel_set>("nk_panel_set",
449 {
450 {"NK_PANEL_SET_NONBLOCK", NK_PANEL_SET_NONBLOCK},
451 {"NK_PANEL_SET_POPUP", NK_PANEL_SET_POPUP},
452 {"NK_PANEL_SET_SUB", NK_PANEL_SET_SUB}
453 });
454
455 lua.new_enum<nk_panel_row_layout_type>("nk_panel_row_layout_type",
456 {
457 {"NK_LAYOUT_DYNAMIC_FIXED", NK_LAYOUT_DYNAMIC_FIXED},
458 {"NK_LAYOUT_DYNAMIC_ROW", NK_LAYOUT_DYNAMIC_ROW},
459 {"NK_LAYOUT_DYNAMIC_FREE", NK_LAYOUT_DYNAMIC_FREE},
460 {"NK_LAYOUT_DYNAMIC", NK_LAYOUT_DYNAMIC},
461 {"NK_LAYOUT_STATIC_FIXED", NK_LAYOUT_STATIC_FIXED},
462 {"NK_LAYOUT_STATIC_ROW", NK_LAYOUT_STATIC_ROW},
463 {"NK_LAYOUT_STATIC_FREE", NK_LAYOUT_STATIC_FREE},
464 {"NK_LAYOUT_STATIC", NK_LAYOUT_STATIC},
465 {"NK_LAYOUT_TEMPLATE", NK_LAYOUT_TEMPLATE},
466 {"NK_LAYOUT_COUNT", NK_LAYOUT_COUNT}
467 });
468
469 lua.new_enum<nk_window_flags>("nk_window_flags",
470 {
471 {"NK_WINDOW_PRIVATE", NK_WINDOW_PRIVATE},
472 {"NK_WINDOW_DYNAMIC", NK_WINDOW_DYNAMIC},
473 {"NK_WINDOW_ROM", NK_WINDOW_ROM},
474 {"NK_WINDOW_NOT_INTERACTIVE", NK_WINDOW_NOT_INTERACTIVE},
475 {"NK_WINDOW_HIDDEN", NK_WINDOW_HIDDEN},
476 {"NK_WINDOW_CLOSED", NK_WINDOW_CLOSED},
477 {"NK_WINDOW_MINIMIZED", NK_WINDOW_MINIMIZED},
478 {"NK_WINDOW_REMOVE_ROM", NK_WINDOW_REMOVE_ROM}
479 });
480 // clang-format on
481
482 lua.new_usertype<nk_context>("nk_context", sol::no_constructor);
483 lua.new_usertype<nk_style_item_data>("nk_style_item_data", sol::default_constructor);
484
485 auto nkrect_type = lua.new_usertype<struct nk_rect>("nk_rect", sol::default_constructor);
486 nkrect_type["x"] = &nk_rect::x;
487 nkrect_type["y"] = &nk_rect::y;
488 nkrect_type["w"] = &nk_rect::w;
489 nkrect_type["h"] = &nk_rect::h;
490
491 auto nknineslice_type = lua.new_usertype<nk_nine_slice>("nk_nine_slice", sol::default_constructor);
492 nknineslice_type["img"] = &nk_nine_slice::img;
493 nknineslice_type["r"] = &nk_nine_slice::r;
494 nknineslice_type["b"] = &nk_nine_slice::b;
495 nknineslice_type["l"] = &nk_nine_slice::l;
496 nknineslice_type["t"] = &nk_nine_slice::t;
497
498 auto nkimage_type = lua.new_usertype<struct nk_image>("nk_image", sol::default_constructor);
499 nkimage_type["w"] = &nk_image::w;
500 nkimage_type["h"] = &nk_image::h;
501
502 auto nkstyleitem_type = lua.new_usertype<nk_style_item>("nk_style_item", sol::default_constructor);
503 nkstyleitem_type["data"] = &nk_style_item::data;
504 nkstyleitem_type["type"] = &nk_style_item::type;
505
506 auto nkcolor_type = lua.new_usertype<nk_color>("nk_color", sol::default_constructor);
507 nkcolor_type["r"] = &nk_color::r;
508 nkcolor_type["g"] = &nk_color::g;
509 nkcolor_type["b"] = &nk_color::b;
510 nkcolor_type["a"] = &nk_color::a;
511
512 lua.set_function("nk_rect", &nk_rect);
513 lua.set_function("nk_begin", &nk_begin);
514 lua.set_function("nk_end", &nk_end);
515 lua.set_function("nk_layout_row_static", &nk_layout_row_static);
516 lua.set_function("nk_layout_row_dynamic", &nk_layout_row_dynamic);
517 lua.set_function("nk_layout_row_begin", &nk_layout_row_begin);
518 lua.set_function("nk_layout_row_end", &nk_layout_row_end);
519 lua.set_function("nk_image", &nk_image);
520 lua.set_function("nk_style_item_color", &nk_style_item_color);
521 lua.set_function("nk_rgb", &nk_rgb);
522 lua.set_function("nk_style_item_hide", &nk_style_item_hide);
523 lua.set_function("nk_style_item_image", &nk_style_item_image);
524 }
525 } // namespace lua
526} // namespace galaxy
Manages the nuklear ui state.
Definition NuklearUI.hpp:28
void show_building_atlas()
Part of the loading screen. Informs the user that the atlas is being built.
void poll_input() const
Calls begin, end and glfwPollEvents.
void toggle_input(const bool enable)
Control the input.
void show_loading_bar(const char *text, nk_size total, nk_size current)
Shows a progress bar for loading screens.
void end_input() const
Called after glfwPollEvents.
nk_context * ctx() const
Nuklear Context.
void begin_input() const
Called before glfwPollEvents.
Definition NuklearUI.cpp:97
void set_font(const std::string &id)
Change the active font.
void inject_nuklear()
Inject Nuklear into Lua.
Timer.hpp galaxy.
Definition Async.hpp:17