1 
2 //          Copyright Mateusz Muszyński 2019.
3 // Distributed under the Boost Software License, Version 1.0.
4 //    (See accompanying file LICENSE_1_0.txt or copy at
5 //          http://www.boost.org/LICENSE_1_0.txt)
6 
7 module bindbc.nuklear.binddynamic;
8 
9 version(BindNuklear_Static) {}
10 else version = BindNuklear_Dynamic;
11 
12 version(BindNuklear_Dynamic):
13 
14 import bindbc.loader;
15 import bindbc.nuklear.types;
16 
17 version (NK_ALL)
18 {
19     version = NK_INCLUDE_FIXED_TYPES;
20     version = NK_INCLUDE_DEFAULT_ALLOCATOR;
21     version = NK_INCLUDE_STANDARD_IO;
22     version = NK_INCLUDE_STANDARD_VARARGS;
23     version = NK_INCLUDE_VERTEX_BUFFER_OUTPUT;
24     version = NK_INCLUDE_FONT_BAKING;
25     version = NK_INCLUDE_DEFAULT_FONT;
26     version = NK_INCLUDE_COMMAND_USERDATA;
27     version = NK_BUTTON_TRIGGER_ON_RELEASE;
28     version = NK_ZERO_COMMAND_MEMORY;
29     version = NK_UINT_DRAW_INDEX;
30 }
31 
32 version(NK_INCLUDE_STANDARD_VARARGS) {
33     import core.stdc.stdarg;
34 } 
35 
36 extern(C) @nogc nothrow {
37     version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
38         alias pnk_init_default = int function(nk_context*, const(nk_user_font)*);
39     }
40     alias pnk_init_fixed = int function(nk_context*, void* memory, nk_size size, const(nk_user_font)*);
41     alias pnk_init = int function(nk_context*, nk_allocator*, const(nk_user_font)*);
42     alias pnk_init_custom = int function(nk_context*, nk_buffer* cmds, nk_buffer* pool, const(nk_user_font)*);
43     alias pnk_clear = void function(nk_context*);
44     alias pnk_free = void function(nk_context*);
45     version(NK_INCLUDE_COMMAND_USERDATA) {
46         alias pnk_set_user_data = void function(nk_context*, nk_handle handle);
47     }
48     alias pnk_input_begin = void function(nk_context*);
49     alias pnk_input_motion = void function(nk_context*, int x, int y);
50     alias pnk_input_key = void function(nk_context*, nk_keys, int down);
51     alias pnk_input_button = void function(nk_context*, nk_buttons, int x, int y, int down);
52     alias pnk_input_scroll = void function(nk_context*, nk_vec2 val);
53     alias pnk_input_char = void function(nk_context*, char);
54     alias pnk_input_glyph = void function(nk_context*, const(char)*);
55     alias pnk_input_unicode = void function(nk_context*, nk_rune);
56     alias pnk_input_end = void function(nk_context*);
57     alias pnk__begin = const(nk_command)* function(nk_context*);
58     alias pnk__next = const(nk_command)* function(nk_context*, const(nk_command)*);
59     version(NK_INCLUDE_VERTEX_BUFFER_OUTPUT) {
60         alias pnk_convert = nk_flags function(nk_context*, nk_buffer* cmds, nk_buffer* vertices, nk_buffer* elements, const(nk_convert_config)*);
61         alias pnk__draw_begin = const(nk_draw_command)* function(const(nk_context)*, const(nk_buffer)*);
62         alias pnk__draw_end = const(nk_draw_command)* function(const(nk_context)*, const(nk_buffer)*);
63         alias pnk__draw_next = const(nk_draw_command)* function(const(nk_draw_command)*, const(nk_buffer)*, const(nk_context)*);
64     }
65     alias pnk_begin = int function(nk_context* ctx, const(char)* title, nk_rect bounds, nk_flags flags);
66     alias pnk_begin_titled = int function(nk_context* ctx, const(char)* name, const(char)* title, nk_rect bounds, nk_flags flags);
67     alias pnk_end = void function(nk_context* ctx);
68     alias pnk_window_find = nk_window* function(nk_context* ctx, const(char)* name);
69     alias pnk_window_get_bounds = nk_rect function(const(nk_context)* ctx);
70     alias pnk_window_get_position = nk_vec2 function(const(nk_context)* ctx);
71     alias pnk_window_get_size = nk_vec2 function(const(nk_context)*);
72     alias pnk_window_get_width = float function(const(nk_context)*);
73     alias pnk_window_get_height = float function(const(nk_context)*);
74     alias pnk_window_get_panel = nk_panel* function(nk_context*);
75     alias pnk_window_get_content_region = nk_rect function(nk_context*);
76     alias pnk_window_get_content_region_min = nk_vec2 function(nk_context*);
77     alias pnk_window_get_content_region_max = nk_vec2 function(nk_context*);
78     alias pnk_window_get_content_region_size = nk_vec2 function(nk_context*);
79     alias pnk_window_get_canvas = nk_command_buffer* function(nk_context*);
80     alias pnk_window_get_scroll = void function(nk_context*, nk_uint *offset_x, nk_uint *offset_y);  // 4.01.0
81     alias pnk_window_has_focus = int function(const(nk_context)*);
82     alias pnk_window_is_hovered = int function(nk_context*);
83     alias pnk_window_is_collapsed = int function(nk_context* ctx, const(char)* name);
84     alias pnk_window_is_closed = int function(nk_context*, const(char)*);
85     alias pnk_window_is_hidden = int function(nk_context*, const(char)*);
86     alias pnk_window_is_active = int function(nk_context*, const(char)*);
87     alias pnk_window_is_any_hovered = int function(nk_context*);
88     alias pnk_item_is_any_active = int function(nk_context*);
89     alias pnk_window_set_bounds = void function(nk_context*, const(char)* name, nk_rect bounds);
90     alias pnk_window_set_position = void function(nk_context*, const(char)* name, nk_vec2 pos);
91     alias pnk_window_set_size = void function(nk_context*, const(char)* name, nk_vec2);
92     alias pnk_window_set_focus = void function(nk_context*, const(char)* name);
93     alias pnk_window_set_scroll = void function(nk_context*, nk_uint offset_x, nk_uint offset_y); // 4.01.0
94     alias pnk_window_close = void function(nk_context* ctx, const(char)* name);
95     alias pnk_window_collapse = void function(nk_context*, const(char)* name, nk_collapse_states state);
96     alias pnk_window_collapse_if = void function(nk_context*, const(char)* name, nk_collapse_states, int cond);
97     alias pnk_window_show = void function(nk_context*, const(char)* name, nk_show_states);
98     alias pnk_window_show_if = void function(nk_context*, const(char)* name, nk_show_states, int cond);
99     alias pnk_layout_set_min_row_height = void function(nk_context*, float height);
100     alias pnk_layout_reset_min_row_height = void function(nk_context*);
101     alias pnk_layout_widget_bounds = nk_rect function(nk_context*);
102     alias pnk_layout_ratio_from_pixel = float function(nk_context*, float pixel_width);
103     alias pnk_layout_row_dynamic = void function(nk_context* ctx, float height, int cols);
104     alias pnk_layout_row_static = void function(nk_context* ctx, float height, int item_width, int cols);
105     alias pnk_layout_row_begin = void function(nk_context* ctx, nk_layout_format fmt, float row_height, int cols);
106     alias pnk_layout_row_push = void function(nk_context*, float value);
107     alias pnk_layout_row_end = void function(nk_context*);
108     alias pnk_layout_row = void function(nk_context*, nk_layout_format, float height, int cols, const(float)* ratio);
109     alias pnk_layout_row_template_begin = void function(nk_context*, float row_height);
110     alias pnk_layout_row_template_push_dynamic = void function(nk_context*);
111     alias pnk_layout_row_template_push_variable = void function(nk_context*, float min_width);
112     alias pnk_layout_row_template_push_static = void function(nk_context*, float width);
113     alias pnk_layout_row_template_end = void function(nk_context*);
114     alias pnk_layout_space_begin = void function(nk_context*, nk_layout_format, float height, int widget_count);
115     alias pnk_layout_space_push = void function(nk_context*, nk_rect bounds);
116     alias pnk_layout_space_end = void function(nk_context*);
117     alias pnk_layout_space_bounds = nk_rect function(nk_context*);
118     alias pnk_layout_space_to_screen = nk_vec2 function(nk_context*, nk_vec2);
119     alias pnk_layout_space_to_local = nk_vec2 function(nk_context*, nk_vec2);
120     alias pnk_layout_space_rect_to_screen = nk_rect function(nk_context*, nk_rect);
121     alias pnk_layout_space_rect_to_local = nk_rect function(nk_context*, nk_rect);
122     alias pnk_group_begin = int function(nk_context*, const(char)* title, nk_flags);
123     alias pnk_group_begin_titled = int function(nk_context*, const(char)* name, const(char)* title, nk_flags);
124     alias pnk_group_end = void function(nk_context*);
125     alias pnk_group_scrolled_offset_begin = int function(nk_context*, nk_uint* x_offset, nk_uint* y_offset, const(char)* title, nk_flags flags);
126     alias pnk_group_scrolled_begin = int function(nk_context*, nk_scroll* off, const(char)* title, nk_flags);
127     alias pnk_group_scrolled_end = void function(nk_context*);
128     alias pnk_group_get_scroll = void function(nk_context*, const(char)* id, nk_uint* x_offset, nk_uint* y_offset); // 4.01.0
129     alias pnk_group_set_scroll = void function(nk_context*, const(char)* id, nk_uint x_offset, nk_uint y_offset); // 4.01.0
130     alias pnk_tree_push_hashed = int function(nk_context*, nk_tree_type, const(char)* title, nk_collapse_states initial_state, const(char)* hash, int len, int seed);
131     alias pnk_tree_image_push_hashed = int function(nk_context*, nk_tree_type, nk_image, const(char)* title, nk_collapse_states initial_state, const(char)* hash, int len, int seed);
132     alias pnk_tree_pop = void function(nk_context*);
133     alias pnk_tree_state_push = int function(nk_context*, nk_tree_type, const(char)* title, nk_collapse_states* state);
134     alias pnk_tree_state_image_push = int function(nk_context*, nk_tree_type, nk_image, const(char)* title, nk_collapse_states* state);
135     alias pnk_tree_state_pop = void function(nk_context*);
136     alias pnk_tree_element_push_hashed = int function(nk_context*, nk_tree_type, const(char)* title, nk_collapse_states initial_state, int* selected, const(char)* hash, int len, int seed);
137     alias pnk_tree_element_image_push_hashed = int function(nk_context*, nk_tree_type, nk_image, const(char)* title, nk_collapse_states initial_state, int* selected, const(char)* hash, int len, int seed);
138     alias pnk_tree_element_pop = void function(nk_context*);
139     alias pnk_list_view_begin = int function(nk_context*, nk_list_view* out_, const(char)* id, nk_flags, int row_height, int row_count);
140     alias pnk_list_view_end = void function(nk_list_view*);
141     alias pnk_widget = nk_widget_layout_states function(nk_rect*, const(nk_context)*);
142     alias pnk_widget_fitting = nk_widget_layout_states function(nk_rect*, nk_context*, nk_vec2);
143     alias pnk_widget_bounds = nk_rect function(nk_context*);
144     alias pnk_widget_position = nk_vec2 function(nk_context*);
145     alias pnk_widget_size = nk_vec2 function(nk_context*);
146     alias pnk_widget_width = float function(nk_context*);
147     alias pnk_widget_height = float function(nk_context*);
148     alias pnk_widget_is_hovered = int function(nk_context*);
149     alias pnk_widget_is_mouse_clicked = int function(nk_context*, nk_buttons);
150     alias pnk_widget_has_mouse_click_down = int function(nk_context*, nk_buttons, int down);
151     alias pnk_spacing = void function(nk_context*, int cols);
152     alias pnk_text = void function(nk_context*, const(char)*, int, nk_flags);
153     alias pnk_text_colored = void function(nk_context*, const(char)*, int, nk_flags, nk_color);
154     alias pnk_text_wrap = void function(nk_context*, const(char)*, int);
155     alias pnk_text_wrap_colored = void function(nk_context*, const(char)*, int, nk_color);
156     alias pnk_label = void function(nk_context*, const(char)*, nk_flags align_);
157     alias pnk_label_colored = void function(nk_context*, const(char)*, nk_flags align_, nk_color);
158     alias pnk_label_wrap = void function(nk_context*, const(char)*);
159     alias pnk_label_colored_wrap = void function(nk_context*, const(char)*, nk_color);
160     alias pnk_image = void function(nk_context*, nk_image);
161     alias pnk_image_color = void function(nk_context*, nk_image, nk_color);
162     version(NK_INCLUDE_STANDARD_VARARGS) {
163         alias pnk_labelf = void function(nk_context*, nk_flags, const(char)*, ...);
164         alias pnk_labelf_colored = void function(nk_context*, nk_flags, nk_color, const(char)*, ...);
165         alias pnk_labelf_wrap = void function(nk_context*, const(char)*, ...);
166         alias pnk_labelf_colored_wrap = void function(nk_context*, nk_color, const(char)*, ...);
167         alias pnk_labelfv = void function(nk_context*, nk_flags, const(char)*, va_list);
168         alias pnk_labelfv_colored = void function(nk_context*, nk_flags, nk_color, const(char)*, va_list);
169         alias pnk_labelfv_wrap = void function(nk_context*, const(char)*, va_list);
170         alias pnk_labelfv_colored_wrap = void function(nk_context*, nk_color, const(char)*, va_list);
171         alias pnk_value_bool = void function(nk_context*, const(char)* prefix, int);
172         alias pnk_value_int = void function(nk_context*, const(char)* prefix, int);
173         alias pnk_value_uint = void function(nk_context*, const(char)* prefix, uint);
174         alias pnk_value_float = void function(nk_context*, const(char)* prefix, float);
175         alias pnk_value_color_byte = void function(nk_context*, const(char)* prefix, nk_color);
176         alias pnk_value_color_float = void function(nk_context*, const(char)* prefix, nk_color);
177         alias pnk_value_color_hex = void function(nk_context*, const(char)* prefix, nk_color);
178     }
179     alias pnk_button_text = int function(nk_context*, const(char)* title, int len);
180     alias pnk_button_label = int function(nk_context*, const(char)* title);
181     alias pnk_button_color = int function(nk_context*, nk_color);
182     alias pnk_button_symbol = int function(nk_context*, nk_symbol_type);
183     alias pnk_button_image = int function(nk_context*, nk_image img);
184     alias pnk_button_symbol_label = int function(nk_context*, nk_symbol_type, const(char)*, nk_flags text_alignment);
185     alias pnk_button_symbol_text = int function(nk_context*, nk_symbol_type, const(char)*, int, nk_flags alignment);
186     alias pnk_button_image_label = int function(nk_context*, nk_image img, const(char)*, nk_flags text_alignment);
187     alias pnk_button_image_text = int function(nk_context*, nk_image img, const(char)*, int, nk_flags alignment);
188     alias pnk_button_text_styled = int function(nk_context*, const(nk_style_button)*, const(char)* title, int len);
189     alias pnk_button_label_styled = int function(nk_context*, const(nk_style_button)*, const(char)* title);
190     alias pnk_button_symbol_styled = int function(nk_context*, const(nk_style_button)*, nk_symbol_type);
191     alias pnk_button_image_styled = int function(nk_context*, const(nk_style_button)*, nk_image img);
192     alias pnk_button_symbol_text_styled = int function(nk_context*, const(nk_style_button)*, nk_symbol_type, const(char)*, int, nk_flags alignment);
193     alias pnk_button_symbol_label_styled = int function(nk_context* ctx, const(nk_style_button)* style, nk_symbol_type symbol, const(char)* title, nk_flags align_);
194     alias pnk_button_image_label_styled = int function(nk_context*, const(nk_style_button)*, nk_image img, const(char)*, nk_flags text_alignment);
195     alias pnk_button_image_text_styled = int function(nk_context*, const(nk_style_button)*, nk_image img, const(char)*, int, nk_flags alignment);
196     alias pnk_button_set_behavior = void function(nk_context*, nk_button_behavior);
197     alias pnk_button_push_behavior = int function(nk_context*, nk_button_behavior);
198     alias pnk_button_pop_behavior = int function(nk_context*);
199     alias pnk_check_label = int function(nk_context*, const(char)*, int active);
200     alias pnk_check_text = int function(nk_context*, const(char)*, int, int active);
201     alias pnk_check_flags_label = uint function(nk_context*, const(char)*, uint flags, uint value);
202     alias pnk_check_flags_text = uint function(nk_context*, const(char)*, int, uint flags, uint value);
203     alias pnk_checkbox_label = int function(nk_context*, const(char)*, int* active);
204     alias pnk_checkbox_text = int function(nk_context*, const(char)*, int, int* active);
205     alias pnk_checkbox_flags_label = int function(nk_context*, const(char)*, uint* flags, uint value);
206     alias pnk_checkbox_flags_text = int function(nk_context*, const(char)*, int, uint* flags, uint value);
207     alias pnk_radio_label = int function(nk_context*, const(char)*, int* active);
208     alias pnk_radio_text = int function(nk_context*, const(char)*, int, int* active);
209     alias pnk_option_label = int function(nk_context*, const(char)*, int active);
210     alias pnk_option_text = int function(nk_context*, const(char)*, int, int active);
211     alias pnk_selectable_label = int function(nk_context*, const(char)*, nk_flags align_, int* value);
212     alias pnk_selectable_text = int function(nk_context*, const(char)*, int, nk_flags align_, int* value);
213     alias pnk_selectable_image_label = int function(nk_context*, nk_image, const(char)*, nk_flags align_, int* value);
214     alias pnk_selectable_image_text = int function(nk_context*, nk_image, const(char)*, int, nk_flags align_, int* value);
215     alias pnk_selectable_symbol_label = int function(nk_context*, nk_symbol_type, const(char)*, nk_flags align_, int* value);
216     alias pnk_selectable_symbol_text = int function(nk_context*, nk_symbol_type, const(char)*, int, nk_flags align_, int* value);
217     alias pnk_select_label = int function(nk_context*, const(char)*, nk_flags align_, int value);
218     alias pnk_select_text = int function(nk_context*, const(char)*, int, nk_flags align_, int value);
219     alias pnk_select_image_label = int function(nk_context*, nk_image, const(char)*, nk_flags align_, int value);
220     alias pnk_select_image_text = int function(nk_context*, nk_image, const(char)*, int, nk_flags align_, int value);
221     alias pnk_select_symbol_label = int function(nk_context*, nk_symbol_type, const(char)*, nk_flags align_, int value);
222     alias pnk_select_symbol_text = int function(nk_context*, nk_symbol_type, const(char)*, int, nk_flags align_, int value);
223     alias pnk_slide_float = float function(nk_context*, float min, float val, float max, float step);
224     alias pnk_slide_int = int function(nk_context*, int min, int val, int max, int step);
225     alias pnk_slider_float = int function(nk_context*, float min, float* val, float max, float step);
226     alias pnk_slider_int = int function(nk_context*, int min, int* val, int max, int step);
227     alias pnk_progress = int function(nk_context*, nk_size* cur, nk_size max, int modifyable);
228     alias pnk_prog = nk_size function(nk_context*, nk_size cur, nk_size max, int modifyable);
229     alias pnk_color_picker = nk_colorf function(nk_context*, nk_colorf, nk_color_format);
230     alias pnk_color_pick = int function(nk_context*, nk_colorf*, nk_color_format);
231     alias pnk_property_int = void function(nk_context*, const(char)* name, int min, int* val, int max, int step, float inc_per_pixel);
232     alias pnk_property_float = void function(nk_context*, const(char)* name, float min, float* val, float max, float step, float inc_per_pixel);
233     alias pnk_property_double = void function(nk_context*, const(char)* name, double min, double* val, double max, double step, float inc_per_pixel);
234     alias pnk_propertyi = int function(nk_context*, const(char)* name, int min, int val, int max, int step, float inc_per_pixel);
235     alias pnk_propertyf = float function(nk_context*, const(char)* name, float min, float val, float max, float step, float inc_per_pixel);
236     alias pnk_propertyd = double function(nk_context*, const(char)* name, double min, double val, double max, double step, float inc_per_pixel);
237     alias pnk_edit_string = nk_flags function(nk_context*, nk_flags, char* buffer, int* len, int max, nk_plugin_filter);
238     alias pnk_edit_string_zero_terminated = nk_flags function(nk_context*, nk_flags, char* buffer, int max, nk_plugin_filter);
239     alias pnk_edit_buffer = nk_flags function(nk_context*, nk_flags, nk_text_edit*, nk_plugin_filter);
240     alias pnk_edit_focus = void function(nk_context*, nk_flags flags);
241     alias pnk_edit_unfocus = void function(nk_context*);
242     alias pnk_chart_begin = int function(nk_context*, nk_chart_type, int num, float min, float max);
243     alias pnk_chart_begin_colored = int function(nk_context*, nk_chart_type, nk_color, nk_color active, int num, float min, float max);
244     alias pnk_chart_add_slot = void function(nk_context* ctx, const(nk_chart_type), int count, float min_value, float max_value);
245     alias pnk_chart_add_slot_colored = void function(nk_context* ctx, const(nk_chart_type), nk_color, nk_color active, int count, float min_value, float max_value);
246     alias pnk_chart_push = nk_flags function(nk_context*, float);
247     alias pnk_chart_push_slot = nk_flags function(nk_context*, float, int);
248     alias pnk_chart_end = void function(nk_context*);
249     alias pnk_plot = void function(nk_context*, nk_chart_type, const(float)* values, int count, int offset);
250     alias pnk_plot_function = void function(nk_context*, nk_chart_type, void *userdata, float function(void* user, int index), int count, int offset);
251     alias pnk_popup_begin = int function(nk_context*, nk_popup_type, const(char)*, nk_flags, nk_rect bounds);
252     alias pnk_popup_close = void function(nk_context*);
253     alias pnk_popup_end = void function(nk_context*);
254     alias pnk_popup_get_scroll = void function(nk_context* , nk_uint* offset_x, nk_uint* offset_y); // 4.01.0
255     alias pnk_popup_set_scroll = void function(nk_context* , nk_uint offset_x, nk_uint offset_y); // 4.01.0
256     alias pnk_combo = int function(nk_context*, const(char)** items, int count, int selected, int item_height, nk_vec2 size);
257     alias pnk_combo_separator = int function(nk_context*, const(char)* items_separated_by_separator, int separator, int selected, int count, int item_height, nk_vec2 size);
258     alias pnk_combo_string = int function(nk_context*, const(char)* items_separated_by_zeros, int selected, int count, int item_height, nk_vec2 size);
259     alias pnk_combo_callback = int function(nk_context*, void function(void*, int, const(char) **), void *userdata, int selected, int count, int item_height, nk_vec2 size);
260     alias pnk_combobox = void function(nk_context*, const(char)** items, int count, int* selected, int item_height, nk_vec2 size);
261     alias pnk_combobox_string = void function(nk_context*, const(char)* items_separated_by_zeros, int* selected, int count, int item_height, nk_vec2 size);
262     alias pnk_combobox_separator = void function(nk_context*, const(char)* items_separated_by_separator, int separator, int* selected, int count, int item_height, nk_vec2 size);
263     alias pnk_combobox_callback = void function(nk_context*, void function(void*, int, const(char) **), void*, int *selected, int count, int item_height, nk_vec2 size);;
264     alias pnk_combo_begin_text = int function(nk_context*, const(char)* selected, int, nk_vec2 size);
265     alias pnk_combo_begin_label = int function(nk_context*, const(char)* selected, nk_vec2 size);
266     alias pnk_combo_begin_color = int function(nk_context*, nk_color color, nk_vec2 size);
267     alias pnk_combo_begin_symbol = int function(nk_context*, nk_symbol_type, nk_vec2 size);
268     alias pnk_combo_begin_symbol_label = int function(nk_context*, const(char)* selected, nk_symbol_type, nk_vec2 size);
269     alias pnk_combo_begin_symbol_text = int function(nk_context*, const(char)* selected, int, nk_symbol_type, nk_vec2 size);
270     alias pnk_combo_begin_image = int function(nk_context*, nk_image img, nk_vec2 size);
271     alias pnk_combo_begin_image_label = int function(nk_context*, const(char)* selected, nk_image, nk_vec2 size);
272     alias pnk_combo_begin_image_text = int function(nk_context*, const(char)* selected, int, nk_image, nk_vec2 size);
273     alias pnk_combo_item_label = int function(nk_context*, const(char)*, nk_flags alignment);
274     alias pnk_combo_item_text = int function(nk_context*, const(char)*, int, nk_flags alignment);
275     alias pnk_combo_item_image_label = int function(nk_context*, nk_image, const(char)*, nk_flags alignment);
276     alias pnk_combo_item_image_text = int function(nk_context*, nk_image, const(char)*, int, nk_flags alignment);
277     alias pnk_combo_item_symbol_label = int function(nk_context*, nk_symbol_type, const(char)*, nk_flags alignment);
278     alias pnk_combo_item_symbol_text = int function(nk_context*, nk_symbol_type, const(char)*, int, nk_flags alignment);
279     alias pnk_combo_close = void function(nk_context*);
280     alias pnk_combo_end = void function(nk_context*);
281     alias pnk_contextual_begin = int function(nk_context*, nk_flags, nk_vec2, nk_rect trigger_bounds);
282     alias pnk_contextual_item_text = int function(nk_context*, const(char)*, int, nk_flags align_);
283     alias pnk_contextual_item_label = int function(nk_context*, const(char)*, nk_flags align_);
284     alias pnk_contextual_item_image_label = int function(nk_context*, nk_image, const(char)*, nk_flags alignment);
285     alias pnk_contextual_item_image_text = int function(nk_context*, nk_image, const(char)*, int len, nk_flags alignment);
286     alias pnk_contextual_item_symbol_label = int function(nk_context*, nk_symbol_type, const(char)*, nk_flags alignment);
287     alias pnk_contextual_item_symbol_text = int function(nk_context*, nk_symbol_type, const(char)*, int, nk_flags alignment);
288     alias pnk_contextual_close = void function(nk_context*);
289     alias pnk_contextual_end = void function(nk_context*);
290     alias pnk_tooltip = void function(nk_context*, const(char)*);
291     version(NK_INCLUDE_STANDARD_VARARGS) {
292         alias pnk_tooltipf = void function(nk_context*, const(char)*, ...);
293         alias pnk_tooltipfv = void function(nk_context*, const(char)*, va_list);
294     }
295     alias pnk_tooltip_begin = int function(nk_context*, float width);
296     alias pnk_tooltip_end = void function(nk_context*);
297     alias pnk_menubar_begin = void function(nk_context*);
298     alias pnk_menubar_end = void function(nk_context*);
299     alias pnk_menu_begin_text = int function(nk_context*, const(char)* title, int title_len, nk_flags align_, nk_vec2 size);
300     alias pnk_menu_begin_label = int function(nk_context*, const(char)*, nk_flags align_, nk_vec2 size);
301     alias pnk_menu_begin_image = int function(nk_context*, const(char)*, nk_image, nk_vec2 size);
302     alias pnk_menu_begin_image_text = int function(nk_context*, const(char)*, int, nk_flags align_, nk_image, nk_vec2 size);
303     alias pnk_menu_begin_image_label = int function(nk_context*, const(char)*, nk_flags align_, nk_image, nk_vec2 size);
304     alias pnk_menu_begin_symbol = int function(nk_context*, const(char)*, nk_symbol_type, nk_vec2 size);
305     alias pnk_menu_begin_symbol_text = int function(nk_context*, const(char)*, int, nk_flags align_, nk_symbol_type, nk_vec2 size);
306     alias pnk_menu_begin_symbol_label = int function(nk_context*, const(char)*, nk_flags align_, nk_symbol_type, nk_vec2 size);
307     alias pnk_menu_item_text = int function(nk_context*, const(char)*, int, nk_flags align_);
308     alias pnk_menu_item_label = int function(nk_context*, const(char)*, nk_flags alignment);
309     alias pnk_menu_item_image_label = int function(nk_context*, nk_image, const(char)*, nk_flags alignment);
310     alias pnk_menu_item_image_text = int function(nk_context*, nk_image, const(char)*, int len, nk_flags alignment);
311     alias pnk_menu_item_symbol_text = int function(nk_context*, nk_symbol_type, const(char)*, int, nk_flags alignment);
312     alias pnk_menu_item_symbol_label = int function(nk_context*, nk_symbol_type, const(char)*, nk_flags alignment);
313     alias pnk_menu_close = void function(nk_context*);
314     alias pnk_menu_end = void function(nk_context*);
315     alias pnk_style_default = void function(nk_context*);
316     alias pnk_style_from_table = void function(nk_context*, const(nk_color)*);
317     alias pnk_style_load_cursor = void function(nk_context*, nk_style_cursor, const(nk_cursor)*);
318     alias pnk_style_load_all_cursors = void function(nk_context*, nk_cursor*);
319     alias pnk_style_get_color_by_name = const(char)* function(nk_style_colors);
320     alias pnk_style_set_font = void function(nk_context*, const(nk_user_font)*);
321     alias pnk_style_set_cursor = int function(nk_context*, nk_style_cursor);
322     alias pnk_style_show_cursor = void function(nk_context*);
323     alias pnk_style_hide_cursor = void function(nk_context*);
324     alias pnk_style_push_font = int function(nk_context*, const(nk_user_font)*);
325     alias pnk_style_push_float = int function(nk_context*, float*, float);
326     alias pnk_style_push_vec2 = int function(nk_context*, nk_vec2*, nk_vec2);
327     alias pnk_style_push_style_item = int function(nk_context*, nk_style_item*, nk_style_item);
328     alias pnk_style_push_flags = int function(nk_context*, nk_flags*, nk_flags);
329     alias pnk_style_push_color = int function(nk_context*, nk_color*, nk_color);
330     alias pnk_style_pop_font = int function(nk_context*);
331     alias pnk_style_pop_float = int function(nk_context*);
332     alias pnk_style_pop_vec2 = int function(nk_context*);
333     alias pnk_style_pop_style_item = int function(nk_context*);
334     alias pnk_style_pop_flags = int function(nk_context*);
335     alias pnk_style_pop_color = int function(nk_context*);
336     alias pnk_rgb = nk_color function(int r, int g, int b);
337     alias pnk_rgb_iv = nk_color function(const(int)* rgb);
338     alias pnk_rgb_bv = nk_color function(const(nk_byte)* rgb);
339     alias pnk_rgb_f = nk_color function(float r, float g, float b);
340     alias pnk_rgb_fv = nk_color function(const(float)* rgb);
341     alias pnk_rgb_cf = nk_color function(nk_colorf c);
342     alias pnk_rgb_hex = nk_color function(const(char)* rgb);
343     alias pnk_rgba = nk_color function(int r, int g, int b, int a);
344     alias pnk_rgba_u32 = nk_color function(nk_uint);
345     alias pnk_rgba_iv = nk_color function(const(int)* rgba);
346     alias pnk_rgba_bv = nk_color function(const(nk_byte)* rgba);
347     alias pnk_rgba_f = nk_color function(float r, float g, float b, float a);
348     alias pnk_rgba_fv = nk_color function(const(float)* rgba);
349     alias pnk_rgba_cf = nk_color function(nk_colorf c);
350     alias pnk_rgba_hex = nk_color function(const(char)* rgb);
351     alias pnk_hsva_colorf = nk_colorf function(float h, float s, float v, float a);
352     alias pnk_hsva_colorfv = nk_colorf function(float* c);
353     alias pnk_colorf_hsva_f = void function(float* out_h, float* out_s, float* out_v, float* out_a, nk_colorf in_);
354     alias pnk_colorf_hsva_fv = void function(float* hsva, nk_colorf in_);
355     alias pnk_hsv = nk_color function(int h, int s, int v);
356     alias pnk_hsv_iv = nk_color function(const(int)* hsv);
357     alias pnk_hsv_bv = nk_color function(const(nk_byte)* hsv);
358     alias pnk_hsv_f = nk_color function(float h, float s, float v);
359     alias pnk_hsv_fv = nk_color function(const(float)* hsv);
360     alias pnk_hsva = nk_color function(int h, int s, int v, int a);
361     alias pnk_hsva_iv = nk_color function(const(int)* hsva);
362     alias pnk_hsva_bv = nk_color function(const(nk_byte)* hsva);
363     alias pnk_hsva_f = nk_color function(float h, float s, float v, float a);
364     alias pnk_hsva_fv = nk_color function(const(float)* hsva);
365     alias pnk_color_f = void function(float* r, float* g, float* b, float* a, nk_color);
366     alias pnk_color_fv = void function(float* rgba_out, nk_color);
367     alias pnk_color_cf = nk_colorf function(nk_color);
368     alias pnk_color_d = void function(double* r, double* g, double* b, double* a, nk_color);
369     alias pnk_color_dv = void function(double* rgba_out, nk_color);
370     alias pnk_color_u32 = nk_uint function(nk_color);
371     alias pnk_color_hex_rgba = void function(char* output, nk_color);
372     alias pnk_color_hex_rgb = void function(char* output, nk_color);
373     alias pnk_color_hsv_i = void function(int* out_h, int* out_s, int* out_v, nk_color);
374     alias pnk_color_hsv_b = void function(nk_byte* out_h, nk_byte* out_s, nk_byte* out_v, nk_color);
375     alias pnk_color_hsv_iv = void function(int* hsv_out, nk_color);
376     alias pnk_color_hsv_bv = void function(nk_byte* hsv_out, nk_color);
377     alias pnk_color_hsv_f = void function(float* out_h, float* out_s, float* out_v, nk_color);
378     alias pnk_color_hsv_fv = void function(float* hsv_out, nk_color);
379     alias pnk_color_hsva_i = void function(int* h, int* s, int* v, int* a, nk_color);
380     alias pnk_color_hsva_b = void function(nk_byte* h, nk_byte* s, nk_byte* v, nk_byte* a, nk_color);
381     alias pnk_color_hsva_iv = void function(int* hsva_out, nk_color);
382     alias pnk_color_hsva_bv = void function(nk_byte* hsva_out, nk_color);
383     alias pnk_color_hsva_f = void function(float* out_h, float* out_s, float* out_v, float* out_a, nk_color);
384     alias pnk_color_hsva_fv = void function(float* hsva_out, nk_color);
385     alias pnk_handle_ptr = nk_handle function(void*);
386     alias pnk_handle_id = nk_handle function(int);
387     alias pnk_image_handle = nk_image function(nk_handle);
388     alias pnk_image_ptr = nk_image function(void*);
389     alias pnk_image_id = nk_image function(int);
390     alias pnk_image_is_subimage = int function(const(nk_image)* img);
391     alias pnk_subimage_ptr = nk_image function(void*, ushort w, ushort h, nk_rect sub_region);
392     alias pnk_subimage_id = nk_image function(int, ushort w, ushort h, nk_rect sub_region);
393     alias pnk_subimage_handle = nk_image function(nk_handle, ushort w, ushort h, nk_rect sub_region);
394     alias pnk_murmur_hash = nk_hash function(const(void)* key, int len, nk_hash seed);
395     alias pnk_triangle_from_direction = void function(nk_vec2* result, nk_rect r, float pad_x, float pad_y, nk_heading);
396     alias pnk_vec2 = nk_vec2 function(float x, float y);
397     alias pnk_vec2i = nk_vec2 function(int x, int y);
398     alias pnk_vec2v = nk_vec2 function(const(float)* xy);
399     alias pnk_vec2iv = nk_vec2 function(const(int)* xy);
400     alias pnk_get_null_rect = nk_rect function();
401     alias pnk_rect = nk_rect function(float x, float y, float w, float h);
402     alias pnk_recti = nk_rect function(int x, int y, int w, int h);
403     alias pnk_recta = nk_rect function(nk_vec2 pos, nk_vec2 size);
404     alias pnk_rectv = nk_rect function(const(float)* xywh);
405     alias pnk_rectiv = nk_rect function(const(int)* xywh);
406     alias pnk_rect_pos = nk_vec2 function(nk_rect);
407     alias pnk_rect_size = nk_vec2 function(nk_rect);
408     alias pnk_strlen = int function(const(char)* str);
409     alias pnk_stricmp = int function(const(char)* s1, const(char)* s2);
410     alias pnk_stricmpn = int function(const(char)* s1, const(char)* s2, int n);
411     alias pnk_strtoi = int function(const(char)* str, const(char)** endptr);
412     alias pnk_strtof = float function(const(char)* str, const(char)** endptr);
413     alias pnk_strtod = double function(const(char)* str, const(char)** endptr);
414     alias pnk_strfilter = int function(const(char)* text, const(char)* regexp);
415     alias pnk_strmatch_fuzzy_string = int function(const(char)* str, const(char)* pattern, int* out_score);
416     alias pnk_strmatch_fuzzy_text = int function(const(char)* txt, int txt_len, const(char)* pattern, int* out_score);
417     alias pnk_utf_decode = int function(const(char)*, nk_rune*, int);
418     alias pnk_utf_encode = int function(nk_rune, char*, int);
419     alias pnk_utf_len = int function(const(char)*, int byte_len);
420     alias pnk_utf_at = const(char)* function(const(char)* buffer, int length, int index, nk_rune* unicode, int* len);
421     version(NK_INCLUDE_FONT_BAKING) {
422         alias pnk_font_default_glyph_ranges = const(nk_rune)* function();
423         alias pnk_font_chinese_glyph_ranges = const(nk_rune)* function();
424         alias pnk_font_cyrillic_glyph_ranges = const(nk_rune)* function();
425         alias pnk_font_korean_glyph_ranges = const(nk_rune)* function();
426         version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
427             alias pnk_font_atlas_init_default = void function(nk_font_atlas*);
428         }
429         alias pnk_font_atlas_init = void function(nk_font_atlas*, nk_allocator*);
430         alias pnk_font_atlas_init_custom = void function(nk_font_atlas*, nk_allocator* persistent, nk_allocator* transient);
431         alias pnk_font_atlas_begin = void function(nk_font_atlas*);
432         alias pnk_font_config = nk_font_config function(float pixel_height);
433         alias pnk_font_atlas_add = nk_font* function(nk_font_atlas*, const(nk_font_config)*);
434         version(NK_INCLUDE_DEFAULT_FONT) {
435             alias pnk_font_atlas_add_default = nk_font* function(nk_font_atlas*, float height, const(nk_font_config)*);
436         }
437         alias pnk_font_atlas_add_from_memory = nk_font* function(nk_font_atlas* atlas, void* memory, nk_size size, float height, const(nk_font_config)* config);
438         version(NK_INCLUDE_STANDARD_IO) {
439             alias pnk_font_atlas_add_from_file = nk_font* function(nk_font_atlas* atlas, const(char)* file_path, float height, const(nk_font_config)*);
440         }
441         alias pnk_font_atlas_add_compressed = nk_font* function(nk_font_atlas*, void* memory, nk_size size, float height, const(nk_font_config)*);
442         alias pnk_font_atlas_add_compressed_base85 = nk_font* function(nk_font_atlas*, const(char)* data, float height, const(nk_font_config)* config);
443         alias pnk_font_atlas_bake = const(void)* function(nk_font_atlas*, int* width, int* height, nk_font_atlas_format);
444         alias pnk_font_atlas_end = void function(nk_font_atlas*, nk_handle tex, nk_draw_null_texture*);
445         alias pnk_font_find_glyph = const(nk_font_glyph)* function(nk_font*, nk_rune unicode);
446         alias pnk_font_atlas_cleanup = void function(nk_font_atlas* atlas);
447         alias pnk_font_atlas_clear = void function(nk_font_atlas*);
448     }
449     version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
450         alias pnk_buffer_init_default = void function(nk_buffer*);
451     }
452     alias pnk_buffer_init = void function(nk_buffer*, const(nk_allocator)*, nk_size size);
453     alias pnk_buffer_init_fixed = void function(nk_buffer*, void* memory, nk_size size);
454     alias pnk_buffer_info = void function(nk_memory_status*, nk_buffer*);
455     alias pnk_buffer_push = void function(nk_buffer*, nk_buffer_allocation_type type, const(void)* memory, nk_size size, nk_size align_);
456     alias pnk_buffer_mark = void function(nk_buffer*, nk_buffer_allocation_type type);
457     alias pnk_buffer_reset = void function(nk_buffer*, nk_buffer_allocation_type type);
458     alias pnk_buffer_clear = void function(nk_buffer*);
459     alias pnk_buffer_free = void function(nk_buffer*);
460     alias pnk_buffer_memory = void* function(nk_buffer*);
461     alias pnk_buffer_memory_const = const(void)* function(const(nk_buffer)*);
462     alias pnk_buffer_total = nk_size function(nk_buffer*);
463     version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
464         alias pnk_str_init_default = void function(nk_str*);
465     }
466     alias pnk_str_init = void function(nk_str*, const(nk_allocator)*, nk_size size);
467     alias pnk_str_init_fixed = void function(nk_str*, void* memory, nk_size size);
468     alias pnk_str_clear = void function(nk_str*);
469     alias pnk_str_free = void function(nk_str*);
470     alias pnk_str_append_text_char = int function(nk_str*, const(char)*, int);
471     alias pnk_str_append_str_char = int function(nk_str*, const(char)*);
472     alias pnk_str_append_text_utf8 = int function(nk_str*, const(char)*, int);
473     alias pnk_str_append_str_utf8 = int function(nk_str*, const(char)*);
474     alias pnk_str_append_text_runes = int function(nk_str*, const(nk_rune)*, int);
475     alias pnk_str_append_str_runes = int function(nk_str*, const(nk_rune)*);
476     alias pnk_str_insert_at_char = int function(nk_str*, int pos, const(char)*, int);
477     alias pnk_str_insert_at_rune = int function(nk_str*, int pos, const(char)*, int);
478     alias pnk_str_insert_text_char = int function(nk_str*, int pos, const(char)*, int);
479     alias pnk_str_insert_str_char = int function(nk_str*, int pos, const(char)*);
480     alias pnk_str_insert_text_utf8 = int function(nk_str*, int pos, const(char)*, int);
481     alias pnk_str_insert_str_utf8 = int function(nk_str*, int pos, const(char)*);
482     alias pnk_str_insert_text_runes = int function(nk_str*, int pos, const(nk_rune)*, int);
483     alias pnk_str_insert_str_runes = int function(nk_str*, int pos, const(nk_rune)*);
484     alias pnk_str_remove_chars = void function(nk_str*, int len);
485     alias pnk_str_remove_runes = void function(nk_str* str, int len);
486     alias pnk_str_delete_chars = void function(nk_str*, int pos, int len);
487     alias pnk_str_delete_runes = void function(nk_str*, int pos, int len);
488     alias pnk_str_at_char = char* function(nk_str*, int pos);
489     alias pnk_str_at_rune = char* function(nk_str*, int pos, nk_rune* unicode, int* len);
490     alias pnk_str_rune_at = nk_rune function(const(nk_str)*, int pos);
491     alias pnk_str_at_char_const = const(char)* function(const(nk_str)*, int pos);
492     alias pnk_str_at_const = const(char)* function(const(nk_str)*, int pos, nk_rune* unicode, int* len);
493     alias pnk_str_get = char* function(nk_str*);
494     alias pnk_str_get_const = const(char)* function(const(nk_str)*);
495     alias pnk_str_len = int function(nk_str*);
496     alias pnk_str_len_char = int function(nk_str*);
497     alias pnk_filter_default = int function(const(nk_text_edit)*, nk_rune unicode);
498     alias pnk_filter_ascii = int function(const(nk_text_edit)*, nk_rune unicode);
499     alias pnk_filter_float = int function(const(nk_text_edit)*, nk_rune unicode);
500     alias pnk_filter_decimal = int function(const(nk_text_edit)*, nk_rune unicode);
501     alias pnk_filter_hex = int function(const(nk_text_edit)*, nk_rune unicode);
502     alias pnk_filter_oct = int function(const(nk_text_edit)*, nk_rune unicode);
503     alias pnk_filter_binary = int function(const(nk_text_edit)*, nk_rune unicode);
504     version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
505         alias pnk_textedit_init_default = void function(nk_text_edit*);
506     }
507     alias pnk_textedit_init = void function(nk_text_edit*, nk_allocator*, nk_size size);
508     alias pnk_textedit_init_fixed = void function(nk_text_edit*, void* memory, nk_size size);
509     alias pnk_textedit_free = void function(nk_text_edit*);
510     alias pnk_textedit_text = void function(nk_text_edit*, const(char)*, int total_len);
511     alias pnk_textedit_delete = void function(nk_text_edit*, int where, int len);
512     alias pnk_textedit_delete_selection = void function(nk_text_edit*);
513     alias pnk_textedit_select_all = void function(nk_text_edit*);
514     alias pnk_textedit_cut = int function(nk_text_edit*);
515     alias pnk_textedit_paste = int function(nk_text_edit*, const(char)*, int);
516     alias pnk_textedit_undo = void function(nk_text_edit*);
517     alias pnk_textedit_redo = void function(nk_text_edit*);
518     alias pnk_stroke_line = void function(nk_command_buffer* b, float x0, float y0, float x1, float y1, float line_thickness, nk_color);
519     alias pnk_stroke_curve = void function(nk_command_buffer*, float, float, float, float, float, float, float, float, float line_thickness, nk_color);
520     alias pnk_stroke_rect = void function(nk_command_buffer*, nk_rect, float rounding, float line_thickness, nk_color);
521     alias pnk_stroke_circle = void function(nk_command_buffer*, nk_rect, float line_thickness, nk_color);
522     alias pnk_stroke_arc = void function(nk_command_buffer*, float cx, float cy, float radius, float a_min, float a_max, float line_thickness, nk_color);
523     alias pnk_stroke_triangle = void function(nk_command_buffer*, float, float, float, float, float, float, float line_thichness, nk_color);
524     alias pnk_stroke_polyline = void function(nk_command_buffer*, float* points, int point_count, float line_thickness, nk_color col);
525     alias pnk_stroke_polygon = void function(nk_command_buffer*, float*, int point_count, float line_thickness, nk_color);
526     alias pnk_fill_rect = void function(nk_command_buffer*, nk_rect, float rounding, nk_color);
527     alias pnk_fill_rect_multi_color = void function(nk_command_buffer*, nk_rect, nk_color left, nk_color top, nk_color right, nk_color bottom);
528     alias pnk_fill_circle = void function(nk_command_buffer*, nk_rect, nk_color);
529     alias pnk_fill_arc = void function(nk_command_buffer*, float cx, float cy, float radius, float a_min, float a_max, nk_color);
530     alias pnk_fill_triangle = void function(nk_command_buffer*, float x0, float y0, float x1, float y1, float x2, float y2, nk_color);
531     alias pnk_fill_polygon = void function(nk_command_buffer*, float*, int point_count, nk_color);
532     alias pnk_draw_image = void function(nk_command_buffer*, nk_rect, const(nk_image)*, nk_color);
533     alias pnk_draw_text = void function(nk_command_buffer*, nk_rect, const(char)* text, int len, const(nk_user_font)*, nk_color, nk_color);
534     alias pnk_push_scissor = void function(nk_command_buffer*, nk_rect);
535     alias pnk_push_custom = void function(nk_command_buffer*, nk_rect, nk_command_custom_callback, nk_handle usr);
536     alias pnk_input_has_mouse_click = int function(const(nk_input)*, nk_buttons);
537     alias pnk_input_has_mouse_click_in_rect = int function(const(nk_input)*, nk_buttons, nk_rect);
538     alias pnk_input_has_mouse_click_down_in_rect = int function(const(nk_input)*, nk_buttons, nk_rect, int down);
539     alias pnk_input_is_mouse_click_in_rect = int function(const(nk_input)*, nk_buttons, nk_rect);
540     alias pnk_input_is_mouse_click_down_in_rect = int function(const(nk_input)* i, nk_buttons id, nk_rect b, int down);
541     alias pnk_input_any_mouse_click_in_rect = int function(const(nk_input)*, nk_rect);
542     alias pnk_input_is_mouse_prev_hovering_rect = int function(const(nk_input)*, nk_rect);
543     alias pnk_input_is_mouse_hovering_rect = int function(const(nk_input)*, nk_rect);
544     alias pnk_input_mouse_clicked = int function(const(nk_input)*, nk_buttons, nk_rect);
545     alias pnk_input_is_mouse_down = int function(const(nk_input)*, nk_buttons);
546     alias pnk_input_is_mouse_pressed = int function(const(nk_input)*, nk_buttons);
547     alias pnk_input_is_mouse_released = int function(const(nk_input)*, nk_buttons);
548     alias pnk_input_is_key_pressed = int function(const(nk_input)*, nk_keys);
549     alias pnk_input_is_key_released = int function(const(nk_input)*, nk_keys);
550     alias pnk_input_is_key_down = int function(const(nk_input)*, nk_keys);
551     version(NK_INCLUDE_VERTEX_BUFFER_OUTPUT) {
552         alias pnk_draw_list_init = void function(nk_draw_list*);
553         alias pnk_draw_list_setup = void function(nk_draw_list*, const(nk_convert_config)*, nk_buffer* cmds, nk_buffer* vertices, nk_buffer* elements, nk_anti_aliasing line_aa, nk_anti_aliasing shape_aa);
554         alias pnk__draw_list_begin = const(nk_draw_command)* function(const(nk_draw_list)*, const(nk_buffer)*);
555         alias pnk__draw_list_next = const(nk_draw_command)* function(const(nk_draw_command)*, const(nk_buffer)*, const(nk_draw_list)*);
556         alias pnk__draw_list_end = const(nk_draw_command)* function(const(nk_draw_list)*, const(nk_buffer)*);
557         alias pnk_draw_list_path_clear = void function(nk_draw_list*);
558         alias pnk_draw_list_path_line_to = void function(nk_draw_list*, nk_vec2 pos);
559         alias pnk_draw_list_path_arc_to_fast = void function(nk_draw_list*, nk_vec2 center, float radius, int a_min, int a_max);
560         alias pnk_draw_list_path_arc_to = void function(nk_draw_list*, nk_vec2 center, float radius, float a_min, float a_max, uint segments);
561         alias pnk_draw_list_path_rect_to = void function(nk_draw_list*, nk_vec2 a, nk_vec2 b, float rounding);
562         alias pnk_draw_list_path_curve_to = void function(nk_draw_list*, nk_vec2 p2, nk_vec2 p3, nk_vec2 p4, uint num_segments);
563         alias pnk_draw_list_path_fill = void function(nk_draw_list*, nk_color);
564         alias pnk_draw_list_path_stroke = void function(nk_draw_list*, nk_color, nk_draw_list_stroke closed, float thickness);
565         alias pnk_draw_list_stroke_line = void function(nk_draw_list*, nk_vec2 a, nk_vec2 b, nk_color, float thickness);
566         alias pnk_draw_list_stroke_rect = void function(nk_draw_list*, nk_rect rect, nk_color, float rounding, float thickness);
567         alias pnk_draw_list_stroke_triangle = void function(nk_draw_list*, nk_vec2 a, nk_vec2 b, nk_vec2 c, nk_color, float thickness);
568         alias pnk_draw_list_stroke_circle = void function(nk_draw_list*, nk_vec2 center, float radius, nk_color, uint segs, float thickness);
569         alias pnk_draw_list_stroke_curve = void function(nk_draw_list*, nk_vec2 p0, nk_vec2 cp0, nk_vec2 cp1, nk_vec2 p1, nk_color, uint segments, float thickness);
570         alias pnk_draw_list_stroke_poly_line = void function(nk_draw_list*, const(nk_vec2)* pnts, const(uint) cnt, nk_color, nk_draw_list_stroke, float thickness, nk_anti_aliasing);
571         alias pnk_draw_list_fill_rect = void function(nk_draw_list*, nk_rect rect, nk_color, float rounding);
572         alias pnk_draw_list_fill_rect_multi_color = void function(nk_draw_list*, nk_rect rect, nk_color left, nk_color top, nk_color right, nk_color bottom);
573         alias pnk_draw_list_fill_triangle = void function(nk_draw_list*, nk_vec2 a, nk_vec2 b, nk_vec2 c, nk_color);
574         alias pnk_draw_list_fill_circle = void function(nk_draw_list*, nk_vec2 center, float radius, nk_color col, uint segs);
575         alias pnk_draw_list_fill_poly_convex = void function(nk_draw_list*, const(nk_vec2)* points, const(uint) count, nk_color, nk_anti_aliasing);
576         alias pnk_draw_list_add_image = void function(nk_draw_list*, nk_image texture, nk_rect rect, nk_color);
577         alias pnk_draw_list_add_text = void function(nk_draw_list*, const(nk_user_font)*, nk_rect, const(char)* text, int len, float font_height, nk_color);
578         version(NK_INCLUDE_COMMAND_USERDATA) {
579             alias pnk_draw_list_push_userdata = void function(nk_draw_list*, nk_handle userdata);
580         }
581     }
582     alias pnk_style_item_image = nk_style_item function(nk_image img);
583     alias pnk_style_item_color = nk_style_item function(nk_color);
584     alias pnk_style_item_hide = nk_style_item function();
585 
586     __gshared {
587         version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
588             pnk_init_default nk_init_default;
589         }
590         pnk_init_fixed nk_init_fixed;
591         pnk_init nk_init;
592         pnk_init_custom nk_init_custom;
593         pnk_clear nk_clear;
594         pnk_free nk_free;
595         version(NK_INCLUDE_COMMAND_USERDATA) {
596             pnk_set_user_data nk_set_user_data;
597         }
598         pnk_input_begin nk_input_begin;
599         pnk_input_motion nk_input_motion;
600         pnk_input_key nk_input_key;
601         pnk_input_button nk_input_button;
602         pnk_input_scroll nk_input_scroll;
603         pnk_input_char nk_input_char;
604         pnk_input_glyph nk_input_glyph;
605         pnk_input_unicode nk_input_unicode;
606         pnk_input_end nk_input_end;
607         pnk__begin nk__begin;
608         pnk__next nk__next;
609         version(NK_INCLUDE_VERTEX_BUFFER_OUTPUT) {
610             pnk_convert nk_convert;
611             pnk__draw_begin nk__draw_begin;
612             pnk__draw_end nk__draw_end;
613             pnk__draw_next nk__draw_next;
614         }
615         pnk_begin nk_begin;
616         pnk_begin_titled nk_begin_titled;
617         pnk_end nk_end;
618         pnk_window_find nk_window_find;
619         pnk_window_get_bounds nk_window_get_bounds;
620         pnk_window_get_position nk_window_get_position;
621         pnk_window_get_size nk_window_get_size;
622         pnk_window_get_width nk_window_get_width;
623         pnk_window_get_height nk_window_get_height;
624         pnk_window_get_panel nk_window_get_panel;
625         pnk_window_get_content_region nk_window_get_content_region;
626         pnk_window_get_content_region_min nk_window_get_content_region_min;
627         pnk_window_get_content_region_max nk_window_get_content_region_max;
628         pnk_window_get_content_region_size nk_window_get_content_region_size;
629         pnk_window_get_canvas nk_window_get_canvas;
630         pnk_window_get_scroll nk_window_get_scroll; // 4.01.0
631         pnk_window_has_focus nk_window_has_focus;
632         pnk_window_is_hovered nk_window_is_hovered;
633         pnk_window_is_collapsed nk_window_is_collapsed;
634         pnk_window_is_closed nk_window_is_closed;
635         pnk_window_is_hidden nk_window_is_hidden;
636         pnk_window_is_active nk_window_is_active;
637         pnk_window_is_any_hovered nk_window_is_any_hovered;
638         pnk_item_is_any_active nk_item_is_any_active;
639         pnk_window_set_bounds nk_window_set_bounds;
640         pnk_window_set_position nk_window_set_position;
641         pnk_window_set_size nk_window_set_size;
642         pnk_window_set_focus nk_window_set_focus;
643         pnk_window_set_scroll nk_window_set_scroll; // 4.01.0
644         pnk_window_close nk_window_close;
645         pnk_window_collapse nk_window_collapse;
646         pnk_window_collapse_if nk_window_collapse_if;
647         pnk_window_show nk_window_show;
648         pnk_window_show_if nk_window_show_if;
649         pnk_layout_set_min_row_height nk_layout_set_min_row_height;
650         pnk_layout_reset_min_row_height nk_layout_reset_min_row_height;
651         pnk_layout_widget_bounds nk_layout_widget_bounds;
652         pnk_layout_ratio_from_pixel nk_layout_ratio_from_pixel;
653         pnk_layout_row_dynamic nk_layout_row_dynamic;
654         pnk_layout_row_static nk_layout_row_static;
655         pnk_layout_row_begin nk_layout_row_begin;
656         pnk_layout_row_push nk_layout_row_push;
657         pnk_layout_row_end nk_layout_row_end;
658         pnk_layout_row nk_layout_row;
659         pnk_layout_row_template_begin nk_layout_row_template_begin;
660         pnk_layout_row_template_push_dynamic nk_layout_row_template_push_dynamic;
661         pnk_layout_row_template_push_variable nk_layout_row_template_push_variable;
662         pnk_layout_row_template_push_static nk_layout_row_template_push_static;
663         pnk_layout_row_template_end nk_layout_row_template_end;
664         pnk_layout_space_begin nk_layout_space_begin;
665         pnk_layout_space_push nk_layout_space_push;
666         pnk_layout_space_end nk_layout_space_end;
667         pnk_layout_space_bounds nk_layout_space_bounds;
668         pnk_layout_space_to_screen nk_layout_space_to_screen;
669         pnk_layout_space_to_local nk_layout_space_to_local;
670         pnk_layout_space_rect_to_screen nk_layout_space_rect_to_screen;
671         pnk_layout_space_rect_to_local nk_layout_space_rect_to_local;
672         pnk_group_begin nk_group_begin;
673         pnk_group_begin_titled nk_group_begin_titled;
674         pnk_group_end nk_group_end;
675         pnk_group_scrolled_offset_begin nk_group_scrolled_offset_begin;
676         pnk_group_scrolled_begin nk_group_scrolled_begin;
677         pnk_group_scrolled_end nk_group_scrolled_end;
678         pnk_group_get_scroll nk_group_get_scroll; // 4.01.0
679         pnk_group_set_scroll nk_group_set_scroll; // 4.01.0
680         pnk_tree_push_hashed nk_tree_push_hashed;
681         pnk_tree_image_push_hashed nk_tree_image_push_hashed;
682         pnk_tree_pop nk_tree_pop;
683         pnk_tree_state_push nk_tree_state_push;
684         pnk_tree_state_image_push nk_tree_state_image_push;
685         pnk_tree_state_pop nk_tree_state_pop;
686         pnk_tree_element_push_hashed nk_tree_element_push_hashed;
687         pnk_tree_element_image_push_hashed nk_tree_element_image_push_hashed;
688         pnk_tree_element_pop nk_tree_element_pop;
689         pnk_list_view_begin nk_list_view_begin;
690         pnk_list_view_end nk_list_view_end;
691         pnk_widget nk_widget;
692         pnk_widget_fitting nk_widget_fitting;
693         pnk_widget_bounds nk_widget_bounds;
694         pnk_widget_position nk_widget_position;
695         pnk_widget_size nk_widget_size;
696         pnk_widget_width nk_widget_width;
697         pnk_widget_height nk_widget_height;
698         pnk_widget_is_hovered nk_widget_is_hovered;
699         pnk_widget_is_mouse_clicked nk_widget_is_mouse_clicked;
700         pnk_widget_has_mouse_click_down nk_widget_has_mouse_click_down;
701         pnk_spacing nk_spacing;
702         pnk_text nk_text;
703         pnk_text_colored nk_text_colored;
704         pnk_text_wrap nk_text_wrap;
705         pnk_text_wrap_colored nk_text_wrap_colored;
706         pnk_label nk_label;
707         pnk_label_colored nk_label_colored;
708         pnk_label_wrap nk_label_wrap;
709         pnk_label_colored_wrap nk_label_colored_wrap;
710         pnk_image nk_image_;
711         pnk_image_color nk_image_color;
712         version(NK_INCLUDE_STANDARD_VARARGS) {
713             pnk_labelf nk_labelf;
714             pnk_labelf_colored nk_labelf_colored;
715             pnk_labelf_wrap nk_labelf_wrap;
716             pnk_labelf_colored_wrap nk_labelf_colored_wrap;
717             pnk_labelfv nk_labelfv;
718             pnk_labelfv_colored nk_labelfv_colored;
719             pnk_labelfv_wrap nk_labelfv_wrap;
720             pnk_labelfv_colored_wrap nk_labelfv_colored_wrap;
721             pnk_value_bool nk_value_bool;
722             pnk_value_int nk_value_int;
723             pnk_value_uint nk_value_uint;
724             pnk_value_float nk_value_float;
725             pnk_value_color_byte nk_value_color_byte;
726             pnk_value_color_float nk_value_color_float;
727             pnk_value_color_hex nk_value_color_hex;
728         }
729         pnk_button_text nk_button_text;
730         pnk_button_label nk_button_label;
731         pnk_button_color nk_button_color;
732         pnk_button_symbol nk_button_symbol;
733         pnk_button_image nk_button_image;
734         pnk_button_symbol_label nk_button_symbol_label;
735         pnk_button_symbol_text nk_button_symbol_text;
736         pnk_button_image_label nk_button_image_label;
737         pnk_button_image_text nk_button_image_text;
738         pnk_button_text_styled nk_button_text_styled;
739         pnk_button_label_styled nk_button_label_styled;
740         pnk_button_symbol_styled nk_button_symbol_styled;
741         pnk_button_image_styled nk_button_image_styled;
742         pnk_button_symbol_text_styled nk_button_symbol_text_styled;
743         pnk_button_symbol_label_styled nk_button_symbol_label_styled;
744         pnk_button_image_label_styled nk_button_image_label_styled;
745         pnk_button_image_text_styled nk_button_image_text_styled;
746         pnk_button_set_behavior nk_button_set_behavior;
747         pnk_button_push_behavior nk_button_push_behavior;
748         pnk_button_pop_behavior nk_button_pop_behavior;
749         pnk_check_label nk_check_label;
750         pnk_check_text nk_check_text;
751         pnk_check_flags_label nk_check_flags_label;
752         pnk_check_flags_text nk_check_flags_text;
753         pnk_checkbox_label nk_checkbox_label;
754         pnk_checkbox_text nk_checkbox_text;
755         pnk_checkbox_flags_label nk_checkbox_flags_label;
756         pnk_checkbox_flags_text nk_checkbox_flags_text;
757         pnk_radio_label nk_radio_label;
758         pnk_radio_text nk_radio_text;
759         pnk_option_label nk_option_label;
760         pnk_option_text nk_option_text;
761         pnk_selectable_label nk_selectable_label;
762         pnk_selectable_text nk_selectable_text;
763         pnk_selectable_image_label nk_selectable_image_label;
764         pnk_selectable_image_text nk_selectable_image_text;
765         pnk_selectable_symbol_label nk_selectable_symbol_label;
766         pnk_selectable_symbol_text nk_selectable_symbol_text;
767         pnk_select_label nk_select_label;
768         pnk_select_text nk_select_text;
769         pnk_select_image_label nk_select_image_label;
770         pnk_select_image_text nk_select_image_text;
771         pnk_select_symbol_label nk_select_symbol_label;
772         pnk_select_symbol_text nk_select_symbol_text;
773         pnk_slide_float nk_slide_float;
774         pnk_slide_int nk_slide_int;
775         pnk_slider_float nk_slider_float;
776         pnk_slider_int nk_slider_int;
777         pnk_progress nk_progress;
778         pnk_prog nk_prog;
779         pnk_color_picker nk_color_picker;
780         pnk_color_pick nk_color_pick;
781         pnk_property_int nk_property_int;
782         pnk_property_float nk_property_float;
783         pnk_property_double nk_property_double;
784         pnk_propertyi nk_propertyi;
785         pnk_propertyf nk_propertyf;
786         pnk_propertyd nk_propertyd;
787         pnk_edit_string nk_edit_string;
788         pnk_edit_string_zero_terminated nk_edit_string_zero_terminated;
789         pnk_edit_buffer nk_edit_buffer;
790         pnk_edit_focus nk_edit_focus;
791         pnk_edit_unfocus nk_edit_unfocus;
792         pnk_chart_begin nk_chart_begin;
793         pnk_chart_begin_colored nk_chart_begin_colored;
794         pnk_chart_add_slot nk_chart_add_slot;
795         pnk_chart_add_slot_colored nk_chart_add_slot_colored;
796         pnk_chart_push nk_chart_push;
797         pnk_chart_push_slot nk_chart_push_slot;
798         pnk_chart_end nk_chart_end;
799         pnk_plot nk_plot;
800         pnk_plot_function nk_plot_function;
801         pnk_popup_begin nk_popup_begin;
802         pnk_popup_close nk_popup_close;
803         pnk_popup_end nk_popup_end;
804         pnk_popup_get_scroll nk_popup_get_scroll; // 4.01.0
805         pnk_popup_set_scroll nk_popup_set_scroll; // 4.01.0
806         pnk_combo nk_combo;
807         pnk_combo_separator nk_combo_separator;
808         pnk_combo_string nk_combo_string;
809         pnk_combo_callback nk_combo_callback;
810         pnk_combobox nk_combobox;
811         pnk_combobox_string nk_combobox_string;
812         pnk_combobox_separator nk_combobox_separator;
813         pnk_combobox_callback nk_combobox_callback;
814         pnk_combo_begin_text nk_combo_begin_text;
815         pnk_combo_begin_label nk_combo_begin_label;
816         pnk_combo_begin_color nk_combo_begin_color;
817         pnk_combo_begin_symbol nk_combo_begin_symbol;
818         pnk_combo_begin_symbol_label nk_combo_begin_symbol_label;
819         pnk_combo_begin_symbol_text nk_combo_begin_symbol_text;
820         pnk_combo_begin_image nk_combo_begin_image;
821         pnk_combo_begin_image_label nk_combo_begin_image_label;
822         pnk_combo_begin_image_text nk_combo_begin_image_text;
823         pnk_combo_item_label nk_combo_item_label;
824         pnk_combo_item_text nk_combo_item_text;
825         pnk_combo_item_image_label nk_combo_item_image_label;
826         pnk_combo_item_image_text nk_combo_item_image_text;
827         pnk_combo_item_symbol_label nk_combo_item_symbol_label;
828         pnk_combo_item_symbol_text nk_combo_item_symbol_text;
829         pnk_combo_close nk_combo_close;
830         pnk_combo_end nk_combo_end;
831         pnk_contextual_begin nk_contextual_begin;
832         pnk_contextual_item_text nk_contextual_item_text;
833         pnk_contextual_item_label nk_contextual_item_label;
834         pnk_contextual_item_image_label nk_contextual_item_image_label;
835         pnk_contextual_item_image_text nk_contextual_item_image_text;
836         pnk_contextual_item_symbol_label nk_contextual_item_symbol_label;
837         pnk_contextual_item_symbol_text nk_contextual_item_symbol_text;
838         pnk_contextual_close nk_contextual_close;
839         pnk_contextual_end nk_contextual_end;
840         pnk_tooltip nk_tooltip;
841         version(NK_INCLUDE_STANDARD_VARARGS) {
842             pnk_tooltipf nk_tooltipf;
843             pnk_tooltipfv nk_tooltipfv;
844         }
845         pnk_tooltip_begin nk_tooltip_begin;
846         pnk_tooltip_end nk_tooltip_end;
847         pnk_menubar_begin nk_menubar_begin;
848         pnk_menubar_end nk_menubar_end;
849         pnk_menu_begin_text nk_menu_begin_text;
850         pnk_menu_begin_label nk_menu_begin_label;
851         pnk_menu_begin_image nk_menu_begin_image;
852         pnk_menu_begin_image_text nk_menu_begin_image_text;
853         pnk_menu_begin_image_label nk_menu_begin_image_label;
854         pnk_menu_begin_symbol nk_menu_begin_symbol;
855         pnk_menu_begin_symbol_text nk_menu_begin_symbol_text;
856         pnk_menu_begin_symbol_label nk_menu_begin_symbol_label;
857         pnk_menu_item_text nk_menu_item_text;
858         pnk_menu_item_label nk_menu_item_label;
859         pnk_menu_item_image_label nk_menu_item_image_label;
860         pnk_menu_item_image_text nk_menu_item_image_text;
861         pnk_menu_item_symbol_text nk_menu_item_symbol_text;
862         pnk_menu_item_symbol_label nk_menu_item_symbol_label;
863         pnk_menu_close nk_menu_close;
864         pnk_menu_end nk_menu_end;
865         pnk_style_default nk_style_default;
866         pnk_style_from_table nk_style_from_table;
867         pnk_style_load_cursor nk_style_load_cursor;
868         pnk_style_load_all_cursors nk_style_load_all_cursors;
869         pnk_style_get_color_by_name nk_style_get_color_by_name;
870         pnk_style_set_font nk_style_set_font;
871         pnk_style_set_cursor nk_style_set_cursor;
872         pnk_style_show_cursor nk_style_show_cursor;
873         pnk_style_hide_cursor nk_style_hide_cursor;
874         pnk_style_push_font nk_style_push_font;
875         pnk_style_push_float nk_style_push_float;
876         pnk_style_push_vec2 nk_style_push_vec2;
877         pnk_style_push_style_item nk_style_push_style_item;
878         pnk_style_push_flags nk_style_push_flags;
879         pnk_style_push_color nk_style_push_color;
880         pnk_style_pop_font nk_style_pop_font;
881         pnk_style_pop_float nk_style_pop_float;
882         pnk_style_pop_vec2 nk_style_pop_vec2;
883         pnk_style_pop_style_item nk_style_pop_style_item;
884         pnk_style_pop_flags nk_style_pop_flags;
885         pnk_style_pop_color nk_style_pop_color;
886         pnk_rgb nk_rgb;
887         pnk_rgb_iv nk_rgb_iv;
888         pnk_rgb_bv nk_rgb_bv;
889         pnk_rgb_f nk_rgb_f;
890         pnk_rgb_fv nk_rgb_fv;
891         pnk_rgb_cf nk_rgb_cf;
892         pnk_rgb_hex nk_rgb_hex;
893         pnk_rgba nk_rgba;
894         pnk_rgba_u32 nk_rgba_u32;
895         pnk_rgba_iv nk_rgba_iv;
896         pnk_rgba_bv nk_rgba_bv;
897         pnk_rgba_f nk_rgba_f;
898         pnk_rgba_fv nk_rgba_fv;
899         pnk_rgba_cf nk_rgba_cf;
900         pnk_rgba_hex nk_rgba_hex;
901         pnk_hsva_colorf nk_hsva_colorf;
902         pnk_hsva_colorfv nk_hsva_colorfv;
903         pnk_colorf_hsva_f nk_colorf_hsva_f;
904         pnk_colorf_hsva_fv nk_colorf_hsva_fv;
905         pnk_hsv nk_hsv;
906         pnk_hsv_iv nk_hsv_iv;
907         pnk_hsv_bv nk_hsv_bv;
908         pnk_hsv_f nk_hsv_f;
909         pnk_hsv_fv nk_hsv_fv;
910         pnk_hsva nk_hsva;
911         pnk_hsva_iv nk_hsva_iv;
912         pnk_hsva_bv nk_hsva_bv;
913         pnk_hsva_f nk_hsva_f;
914         pnk_hsva_fv nk_hsva_fv;
915         pnk_color_f nk_color_f;
916         pnk_color_fv nk_color_fv;
917         pnk_color_cf nk_color_cf;
918         pnk_color_d nk_color_d;
919         pnk_color_dv nk_color_dv;
920         pnk_color_u32 nk_color_u32;
921         pnk_color_hex_rgba nk_color_hex_rgba;
922         pnk_color_hex_rgb nk_color_hex_rgb;
923         pnk_color_hsv_i nk_color_hsv_i;
924         pnk_color_hsv_b nk_color_hsv_b;
925         pnk_color_hsv_iv nk_color_hsv_iv;
926         pnk_color_hsv_bv nk_color_hsv_bv;
927         pnk_color_hsv_f nk_color_hsv_f;
928         pnk_color_hsv_fv nk_color_hsv_fv;
929         pnk_color_hsva_i nk_color_hsva_i;
930         pnk_color_hsva_b nk_color_hsva_b;
931         pnk_color_hsva_iv nk_color_hsva_iv;
932         pnk_color_hsva_bv nk_color_hsva_bv;
933         pnk_color_hsva_f nk_color_hsva_f;
934         pnk_color_hsva_fv nk_color_hsva_fv;
935         pnk_handle_ptr nk_handle_ptr;
936         pnk_handle_id nk_handle_id;
937         pnk_image_handle nk_image_handle;
938         pnk_image_ptr nk_image_ptr;
939         pnk_image_id nk_image_id;
940         pnk_image_is_subimage nk_image_is_subimage;
941         pnk_subimage_ptr nk_subimage_ptr;
942         pnk_subimage_id nk_subimage_id;
943         pnk_subimage_handle nk_subimage_handle;
944         pnk_murmur_hash nk_murmur_hash;
945         pnk_triangle_from_direction nk_triangle_from_direction;
946         pnk_vec2 nk_vec2_;
947         pnk_vec2i nk_vec2i_;
948         pnk_vec2v nk_vec2v;
949         pnk_vec2iv nk_vec2iv;
950         pnk_get_null_rect nk_get_null_rect;
951         pnk_rect nk_rect_;
952         pnk_recti nk_recti;
953         pnk_recta nk_recta;
954         pnk_rectv nk_rectv;
955         pnk_rectiv nk_rectiv;
956         pnk_rect_pos nk_rect_pos;
957         pnk_rect_size nk_rect_size;
958         pnk_strlen nk_strlen;
959         pnk_stricmp nk_stricmp;
960         pnk_stricmpn nk_stricmpn;
961         pnk_strtoi nk_strtoi;
962         pnk_strtof nk_strtof;
963         pnk_strtod nk_strtod;
964         pnk_strfilter nk_strfilter;
965         pnk_strmatch_fuzzy_string nk_strmatch_fuzzy_string;
966         pnk_strmatch_fuzzy_text nk_strmatch_fuzzy_text;
967         pnk_utf_decode nk_utf_decode;
968         pnk_utf_encode nk_utf_encode;
969         pnk_utf_len nk_utf_len;
970         pnk_utf_at nk_utf_at;
971         version(NK_INCLUDE_FONT_BAKING) {
972             pnk_font_default_glyph_ranges nk_font_default_glyph_ranges;
973             pnk_font_chinese_glyph_ranges nk_font_chinese_glyph_ranges;
974             pnk_font_cyrillic_glyph_ranges nk_font_cyrillic_glyph_ranges;
975             pnk_font_korean_glyph_ranges nk_font_korean_glyph_ranges;
976             version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
977                 pnk_font_atlas_init_default nk_font_atlas_init_default;
978             }
979             pnk_font_atlas_init nk_font_atlas_init;
980             pnk_font_atlas_init_custom nk_font_atlas_init_custom;
981             pnk_font_atlas_begin nk_font_atlas_begin;
982             pnk_font_config nk_font_config_;
983             pnk_font_atlas_add nk_font_atlas_add;
984             version(NK_INCLUDE_DEFAULT_FONT) {
985                 pnk_font_atlas_add_default nk_font_atlas_add_default;
986             }
987             pnk_font_atlas_add_from_memory nk_font_atlas_add_from_memory;
988             version(NK_INCLUDE_STANDARD_IO) {
989                 pnk_font_atlas_add_from_file nk_font_atlas_add_from_file;
990             }
991             pnk_font_atlas_add_compressed nk_font_atlas_add_compressed;
992             pnk_font_atlas_add_compressed_base85 nk_font_atlas_add_compressed_base85;
993             pnk_font_atlas_bake nk_font_atlas_bake;
994             pnk_font_atlas_end nk_font_atlas_end;
995             pnk_font_find_glyph nk_font_find_glyph;
996             pnk_font_atlas_cleanup nk_font_atlas_cleanup;
997             pnk_font_atlas_clear nk_font_atlas_clear;
998         }
999         version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
1000             pnk_buffer_init_default nk_buffer_init_default;
1001         }
1002         pnk_buffer_init nk_buffer_init;
1003         pnk_buffer_init_fixed nk_buffer_init_fixed;
1004         pnk_buffer_info nk_buffer_info;
1005         pnk_buffer_push nk_buffer_push;
1006         pnk_buffer_mark nk_buffer_mark;
1007         pnk_buffer_reset nk_buffer_reset;
1008         pnk_buffer_clear nk_buffer_clear;
1009         pnk_buffer_free nk_buffer_free;
1010         pnk_buffer_memory nk_buffer_memory;
1011         pnk_buffer_memory_const nk_buffer_memory_const;
1012         pnk_buffer_total nk_buffer_total;
1013         version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
1014             pnk_str_init_default nk_str_init_default;
1015         }
1016         pnk_str_init nk_str_init;
1017         pnk_str_init_fixed nk_str_init_fixed;
1018         pnk_str_clear nk_str_clear;
1019         pnk_str_free nk_str_free;
1020         pnk_str_append_text_char nk_str_append_text_char;
1021         pnk_str_append_str_char nk_str_append_str_char;
1022         pnk_str_append_text_utf8 nk_str_append_text_utf8;
1023         pnk_str_append_str_utf8 nk_str_append_str_utf8;
1024         pnk_str_append_text_runes nk_str_append_text_runes;
1025         pnk_str_append_str_runes nk_str_append_str_runes;
1026         pnk_str_insert_at_char nk_str_insert_at_char;
1027         pnk_str_insert_at_rune nk_str_insert_at_rune;
1028         pnk_str_insert_text_char nk_str_insert_text_char;
1029         pnk_str_insert_str_char nk_str_insert_str_char;
1030         pnk_str_insert_text_utf8 nk_str_insert_text_utf8;
1031         pnk_str_insert_str_utf8 nk_str_insert_str_utf8;
1032         pnk_str_insert_text_runes nk_str_insert_text_runes;
1033         pnk_str_insert_str_runes nk_str_insert_str_runes;
1034         pnk_str_remove_chars nk_str_remove_chars;
1035         pnk_str_remove_runes nk_str_remove_runes;
1036         pnk_str_delete_chars nk_str_delete_chars;
1037         pnk_str_delete_runes nk_str_delete_runes;
1038         pnk_str_at_char nk_str_at_char;
1039         pnk_str_at_rune nk_str_at_rune;
1040         pnk_str_rune_at nk_str_rune_at;
1041         pnk_str_at_char_const nk_str_at_char_const;
1042         pnk_str_at_const nk_str_at_const;
1043         pnk_str_get nk_str_get;
1044         pnk_str_get_const nk_str_get_const;
1045         pnk_str_len nk_str_len;
1046         pnk_str_len_char nk_str_len_char;
1047         pnk_filter_default nk_filter_default_fptr;
1048         pnk_filter_ascii   nk_filter_ascii_fptr;
1049         pnk_filter_float   nk_filter_float_fptr;
1050         pnk_filter_decimal nk_filter_decimal_fptr;
1051         pnk_filter_hex     nk_filter_hex_fptr;
1052         pnk_filter_oct     nk_filter_oct_fptr;
1053         pnk_filter_binary  nk_filter_binary_fptr;
1054 
1055         int nk_filter_default(const(nk_text_edit)* e, nk_rune unicode)
1056         {
1057             return nk_filter_default_fptr(e, unicode);
1058         }
1059 
1060         int nk_filter_ascii(const(nk_text_edit)* e, nk_rune unicode)
1061         {
1062             return nk_filter_ascii_fptr(e, unicode);
1063         }
1064 
1065         int nk_filter_float(const(nk_text_edit)* e, nk_rune unicode)
1066         {
1067             return nk_filter_float_fptr(e, unicode);
1068         }
1069 
1070         int nk_filter_decimal(const(nk_text_edit)* e, nk_rune unicode)
1071         {
1072             return nk_filter_decimal_fptr(e, unicode);
1073         }
1074 
1075         int nk_filter_hex(const(nk_text_edit)* e, nk_rune unicode)
1076         {
1077             return nk_filter_hex_fptr(e, unicode);
1078         }
1079 
1080         int nk_filter_oct(const(nk_text_edit)* e, nk_rune unicode)
1081         {
1082             return nk_filter_oct_fptr(e, unicode);
1083         }
1084 
1085         int nk_filter_binary(const(nk_text_edit)* e, nk_rune unicode)
1086         {
1087             return nk_filter_binary_fptr(e, unicode);
1088         }
1089 
1090         version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
1091             pnk_textedit_init_default nk_textedit_init_default;
1092         }
1093         pnk_textedit_init nk_textedit_init;
1094         pnk_textedit_init_fixed nk_textedit_init_fixed;
1095         pnk_textedit_free nk_textedit_free;
1096         pnk_textedit_text nk_textedit_text;
1097         pnk_textedit_delete nk_textedit_delete;
1098         pnk_textedit_delete_selection nk_textedit_delete_selection;
1099         pnk_textedit_select_all nk_textedit_select_all;
1100         pnk_textedit_cut nk_textedit_cut;
1101         pnk_textedit_paste nk_textedit_paste;
1102         pnk_textedit_undo nk_textedit_undo;
1103         pnk_textedit_redo nk_textedit_redo;
1104         pnk_stroke_line nk_stroke_line;
1105         pnk_stroke_curve nk_stroke_curve;
1106         pnk_stroke_rect nk_stroke_rect;
1107         pnk_stroke_circle nk_stroke_circle;
1108         pnk_stroke_arc nk_stroke_arc;
1109         pnk_stroke_triangle nk_stroke_triangle;
1110         pnk_stroke_polyline nk_stroke_polyline;
1111         pnk_stroke_polygon nk_stroke_polygon;
1112         pnk_fill_rect nk_fill_rect;
1113         pnk_fill_rect_multi_color nk_fill_rect_multi_color;
1114         pnk_fill_circle nk_fill_circle;
1115         pnk_fill_arc nk_fill_arc;
1116         pnk_fill_triangle nk_fill_triangle;
1117         pnk_fill_polygon nk_fill_polygon;
1118         pnk_draw_image nk_draw_image;
1119         pnk_draw_text nk_draw_text;
1120         pnk_push_scissor nk_push_scissor;
1121         pnk_push_custom nk_push_custom;
1122         pnk_input_has_mouse_click nk_input_has_mouse_click;
1123         pnk_input_has_mouse_click_in_rect nk_input_has_mouse_click_in_rect;
1124         pnk_input_has_mouse_click_down_in_rect nk_input_has_mouse_click_down_in_rect;
1125         pnk_input_is_mouse_click_in_rect nk_input_is_mouse_click_in_rect;
1126         pnk_input_is_mouse_click_down_in_rect nk_input_is_mouse_click_down_in_rect;
1127         pnk_input_any_mouse_click_in_rect nk_input_any_mouse_click_in_rect;
1128         pnk_input_is_mouse_prev_hovering_rect nk_input_is_mouse_prev_hovering_rect;
1129         pnk_input_is_mouse_hovering_rect nk_input_is_mouse_hovering_rect;
1130         pnk_input_mouse_clicked nk_input_mouse_clicked;
1131         pnk_input_is_mouse_down nk_input_is_mouse_down;
1132         pnk_input_is_mouse_pressed nk_input_is_mouse_pressed;
1133         pnk_input_is_mouse_released nk_input_is_mouse_released;
1134         pnk_input_is_key_pressed nk_input_is_key_pressed;
1135         pnk_input_is_key_released nk_input_is_key_released;
1136         pnk_input_is_key_down nk_input_is_key_down;
1137         version(NK_INCLUDE_VERTEX_BUFFER_OUTPUT) {
1138             pnk_draw_list_init nk_draw_list_init;
1139             pnk_draw_list_setup nk_draw_list_setup;
1140             pnk__draw_list_begin nk__draw_list_begin;
1141             pnk__draw_list_next nk__draw_list_next;
1142             pnk__draw_list_end nk__draw_list_end;
1143             pnk_draw_list_path_clear nk_draw_list_path_clear;
1144             pnk_draw_list_path_line_to nk_draw_list_path_line_to;
1145             pnk_draw_list_path_arc_to_fast nk_draw_list_path_arc_to_fast;
1146             pnk_draw_list_path_arc_to nk_draw_list_path_arc_to;
1147             pnk_draw_list_path_rect_to nk_draw_list_path_rect_to;
1148             pnk_draw_list_path_curve_to nk_draw_list_path_curve_to;
1149             pnk_draw_list_path_fill nk_draw_list_path_fill;
1150             pnk_draw_list_path_stroke nk_draw_list_path_stroke;
1151             pnk_draw_list_stroke_line nk_draw_list_stroke_line;
1152             pnk_draw_list_stroke_rect nk_draw_list_stroke_rect;
1153             pnk_draw_list_stroke_triangle nk_draw_list_stroke_triangle;
1154             pnk_draw_list_stroke_circle nk_draw_list_stroke_circle;
1155             pnk_draw_list_stroke_curve nk_draw_list_stroke_curve;
1156             pnk_draw_list_stroke_poly_line nk_draw_list_stroke_poly_line;
1157             pnk_draw_list_fill_rect nk_draw_list_fill_rect;
1158             pnk_draw_list_fill_rect_multi_color nk_draw_list_fill_rect_multi_color;
1159             pnk_draw_list_fill_triangle nk_draw_list_fill_triangle;
1160             pnk_draw_list_fill_circle nk_draw_list_fill_circle;
1161             pnk_draw_list_fill_poly_convex nk_draw_list_fill_poly_convex;
1162             pnk_draw_list_add_image nk_draw_list_add_image;
1163             pnk_draw_list_add_text nk_draw_list_add_text;
1164             version(NK_INCLUDE_COMMAND_USERDATA) {
1165                 pnk_draw_list_push_userdata nk_draw_list_push_userdata;
1166             }
1167         }
1168         pnk_style_item_image nk_style_item_image;
1169         pnk_style_item_color nk_style_item_color;
1170         pnk_style_item_hide nk_style_item_hide;
1171     }
1172 }
1173 private {
1174     SharedLib lib;
1175     NuklearSupport loadedVersion;
1176 }
1177 
1178 void unloadNuklear()
1179 {
1180     if(lib != invalidHandle) {
1181         lib.unload();
1182     }
1183 }
1184 
1185 NuklearSupport loadedNuklearVersion() { return loadedVersion; }
1186 bool isNuklearLoaded() { return lib != invalidHandle; }
1187 
1188 NuklearSupport loadNuklear()
1189 {
1190     version(Windows) {
1191         const(char)[][1] libNames = ["nuklear.dll"];
1192     }
1193     else version(OSX) {
1194         const(char)[][1] libNames = ["nuklear.dylib"];
1195     }
1196     else version(Posix) {
1197         const(char)[][2] libNames = [
1198             "nuklear.so",
1199             "/usr/local/lib/nuklear.so",
1200         ];
1201     }
1202     else static assert(0, "bindbc-nuklear is not yet supported on this platform.");
1203 
1204     NuklearSupport ret;
1205     foreach(name; libNames) {
1206         ret = loadNuklear(name.ptr);
1207         if(ret != NuklearSupport.noLibrary) break;
1208     }
1209     return ret;
1210 }
1211 
1212 NuklearSupport loadNuklear(const(char)* libName)
1213 {
1214     lib = load(libName);
1215     if(lib == invalidHandle) {
1216         return NuklearSupport.noLibrary;
1217     }
1218 
1219     auto errCount = errorCount();
1220     loadedVersion = NuklearSupport.badLibrary;
1221 
1222     version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
1223         lib.bindSymbol(cast(void**)&nk_init_default,"nk_init_default");
1224     }
1225     lib.bindSymbol(cast(void**)&nk_init_fixed,"nk_init_fixed");
1226     lib.bindSymbol(cast(void**)&nk_init,"nk_init");
1227     lib.bindSymbol(cast(void**)&nk_init_custom,"nk_init_custom");
1228     lib.bindSymbol(cast(void**)&nk_clear,"nk_clear");
1229     lib.bindSymbol(cast(void**)&nk_free,"nk_free");
1230     version(NK_INCLUDE_COMMAND_USERDATA) {
1231         lib.bindSymbol(cast(void**)&nk_set_user_data,"nk_set_user_data");
1232     }
1233     lib.bindSymbol(cast(void**)&nk_input_begin,"nk_input_begin");
1234     lib.bindSymbol(cast(void**)&nk_input_motion,"nk_input_motion");
1235     lib.bindSymbol(cast(void**)&nk_input_key,"nk_input_key");
1236     lib.bindSymbol(cast(void**)&nk_input_button,"nk_input_button");
1237     lib.bindSymbol(cast(void**)&nk_input_scroll,"nk_input_scroll");
1238     lib.bindSymbol(cast(void**)&nk_input_char,"nk_input_char");
1239     lib.bindSymbol(cast(void**)&nk_input_glyph,"nk_input_glyph");
1240     lib.bindSymbol(cast(void**)&nk_input_unicode,"nk_input_unicode");
1241     lib.bindSymbol(cast(void**)&nk_input_end,"nk_input_end");
1242     lib.bindSymbol(cast(void**)&nk__begin,"nk__begin");
1243     lib.bindSymbol(cast(void**)&nk__next,"nk__next");
1244     version(NK_INCLUDE_VERTEX_BUFFER_OUTPUT) {
1245         lib.bindSymbol(cast(void**)&nk_convert,"nk_convert");
1246         lib.bindSymbol(cast(void**)&nk__draw_begin,"nk__draw_begin");
1247         lib.bindSymbol(cast(void**)&nk__draw_end,"nk__draw_end");
1248         lib.bindSymbol(cast(void**)&nk__draw_next,"nk__draw_next");
1249     }
1250     lib.bindSymbol(cast(void**)&nk_begin,"nk_begin");
1251     lib.bindSymbol(cast(void**)&nk_begin_titled,"nk_begin_titled");
1252     lib.bindSymbol(cast(void**)&nk_end,"nk_end");
1253     lib.bindSymbol(cast(void**)&nk_window_find,"nk_window_find");
1254     lib.bindSymbol(cast(void**)&nk_window_get_bounds,"nk_window_get_bounds");
1255     lib.bindSymbol(cast(void**)&nk_window_get_position,"nk_window_get_position");
1256     lib.bindSymbol(cast(void**)&nk_window_get_size,"nk_window_get_size");
1257     lib.bindSymbol(cast(void**)&nk_window_get_width,"nk_window_get_width");
1258     lib.bindSymbol(cast(void**)&nk_window_get_height,"nk_window_get_height");
1259     lib.bindSymbol(cast(void**)&nk_window_get_panel,"nk_window_get_panel");
1260     lib.bindSymbol(cast(void**)&nk_window_get_content_region,"nk_window_get_content_region");
1261     lib.bindSymbol(cast(void**)&nk_window_get_content_region_min,"nk_window_get_content_region_min");
1262     lib.bindSymbol(cast(void**)&nk_window_get_content_region_max,"nk_window_get_content_region_max");
1263     lib.bindSymbol(cast(void**)&nk_window_get_content_region_size,"nk_window_get_content_region_size");
1264     lib.bindSymbol(cast(void**)&nk_window_get_canvas,"nk_window_get_canvas");
1265     lib.bindSymbol(cast(void**)&nk_window_get_scroll,"nk_window_get_scroll"); // 4.01.0
1266     lib.bindSymbol(cast(void**)&nk_window_has_focus,"nk_window_has_focus");
1267     lib.bindSymbol(cast(void**)&nk_window_is_hovered,"nk_window_is_hovered");
1268     lib.bindSymbol(cast(void**)&nk_window_is_collapsed,"nk_window_is_collapsed");
1269     lib.bindSymbol(cast(void**)&nk_window_is_closed,"nk_window_is_closed");
1270     lib.bindSymbol(cast(void**)&nk_window_is_hidden,"nk_window_is_hidden");
1271     lib.bindSymbol(cast(void**)&nk_window_is_active,"nk_window_is_active");
1272     lib.bindSymbol(cast(void**)&nk_window_is_any_hovered,"nk_window_is_any_hovered");
1273     lib.bindSymbol(cast(void**)&nk_item_is_any_active,"nk_item_is_any_active");
1274     lib.bindSymbol(cast(void**)&nk_window_set_bounds,"nk_window_set_bounds");
1275     lib.bindSymbol(cast(void**)&nk_window_set_position,"nk_window_set_position");
1276     lib.bindSymbol(cast(void**)&nk_window_set_size,"nk_window_set_size");
1277     lib.bindSymbol(cast(void**)&nk_window_set_focus,"nk_window_set_focus");
1278     lib.bindSymbol(cast(void**)&nk_window_set_scroll,"nk_window_set_scroll"); // 4.01.0
1279     lib.bindSymbol(cast(void**)&nk_window_close,"nk_window_close");
1280     lib.bindSymbol(cast(void**)&nk_window_collapse,"nk_window_collapse");
1281     lib.bindSymbol(cast(void**)&nk_window_collapse_if,"nk_window_collapse_if");
1282     lib.bindSymbol(cast(void**)&nk_window_show,"nk_window_show");
1283     lib.bindSymbol(cast(void**)&nk_window_show_if,"nk_window_show_if");
1284     lib.bindSymbol(cast(void**)&nk_layout_set_min_row_height,"nk_layout_set_min_row_height");
1285     lib.bindSymbol(cast(void**)&nk_layout_reset_min_row_height,"nk_layout_reset_min_row_height");
1286     lib.bindSymbol(cast(void**)&nk_layout_widget_bounds,"nk_layout_widget_bounds");
1287     lib.bindSymbol(cast(void**)&nk_layout_ratio_from_pixel,"nk_layout_ratio_from_pixel");
1288     lib.bindSymbol(cast(void**)&nk_layout_row_dynamic,"nk_layout_row_dynamic");
1289     lib.bindSymbol(cast(void**)&nk_layout_row_static,"nk_layout_row_static");
1290     lib.bindSymbol(cast(void**)&nk_layout_row_begin,"nk_layout_row_begin");
1291     lib.bindSymbol(cast(void**)&nk_layout_row_push,"nk_layout_row_push");
1292     lib.bindSymbol(cast(void**)&nk_layout_row_end,"nk_layout_row_end");
1293     lib.bindSymbol(cast(void**)&nk_layout_row,"nk_layout_row");
1294     lib.bindSymbol(cast(void**)&nk_layout_row_template_begin,"nk_layout_row_template_begin");
1295     lib.bindSymbol(cast(void**)&nk_layout_row_template_push_dynamic,"nk_layout_row_template_push_dynamic");
1296     lib.bindSymbol(cast(void**)&nk_layout_row_template_push_variable,"nk_layout_row_template_push_variable");
1297     lib.bindSymbol(cast(void**)&nk_layout_row_template_push_static,"nk_layout_row_template_push_static");
1298     lib.bindSymbol(cast(void**)&nk_layout_row_template_end,"nk_layout_row_template_end");
1299     lib.bindSymbol(cast(void**)&nk_layout_space_begin,"nk_layout_space_begin");
1300     lib.bindSymbol(cast(void**)&nk_layout_space_push,"nk_layout_space_push");
1301     lib.bindSymbol(cast(void**)&nk_layout_space_end,"nk_layout_space_end");
1302     lib.bindSymbol(cast(void**)&nk_layout_space_bounds,"nk_layout_space_bounds");
1303     lib.bindSymbol(cast(void**)&nk_layout_space_to_screen,"nk_layout_space_to_screen");
1304     lib.bindSymbol(cast(void**)&nk_layout_space_to_local,"nk_layout_space_to_local");
1305     lib.bindSymbol(cast(void**)&nk_layout_space_rect_to_screen,"nk_layout_space_rect_to_screen");
1306     lib.bindSymbol(cast(void**)&nk_layout_space_rect_to_local,"nk_layout_space_rect_to_local");
1307     lib.bindSymbol(cast(void**)&nk_group_begin,"nk_group_begin");
1308     lib.bindSymbol(cast(void**)&nk_group_begin_titled,"nk_group_begin_titled");
1309     lib.bindSymbol(cast(void**)&nk_group_end,"nk_group_end");
1310     lib.bindSymbol(cast(void**)&nk_group_scrolled_offset_begin,"nk_group_scrolled_offset_begin");
1311     lib.bindSymbol(cast(void**)&nk_group_scrolled_begin,"nk_group_scrolled_begin");
1312     lib.bindSymbol(cast(void**)&nk_group_scrolled_end,"nk_group_scrolled_end");
1313     lib.bindSymbol(cast(void**)&nk_group_get_scroll,"nk_group_get_scroll"); // 4.01.0
1314     lib.bindSymbol(cast(void**)&nk_group_set_scroll,"nk_group_set_scroll"); // 4.01.0
1315     lib.bindSymbol(cast(void**)&nk_tree_push_hashed,"nk_tree_push_hashed");
1316     lib.bindSymbol(cast(void**)&nk_tree_image_push_hashed,"nk_tree_image_push_hashed");
1317     lib.bindSymbol(cast(void**)&nk_tree_pop,"nk_tree_pop");
1318     lib.bindSymbol(cast(void**)&nk_tree_state_push,"nk_tree_state_push");
1319     lib.bindSymbol(cast(void**)&nk_tree_state_image_push,"nk_tree_state_image_push");
1320     lib.bindSymbol(cast(void**)&nk_tree_state_pop,"nk_tree_state_pop");
1321     lib.bindSymbol(cast(void**)&nk_tree_element_push_hashed,"nk_tree_element_push_hashed");
1322     lib.bindSymbol(cast(void**)&nk_tree_element_image_push_hashed,"nk_tree_element_image_push_hashed");
1323     lib.bindSymbol(cast(void**)&nk_tree_element_pop,"nk_tree_element_pop");
1324     lib.bindSymbol(cast(void**)&nk_list_view_begin,"nk_list_view_begin");
1325     lib.bindSymbol(cast(void**)&nk_list_view_end,"nk_list_view_end");
1326     lib.bindSymbol(cast(void**)&nk_widget,"nk_widget");
1327     lib.bindSymbol(cast(void**)&nk_widget_fitting,"nk_widget_fitting");
1328     lib.bindSymbol(cast(void**)&nk_widget_bounds,"nk_widget_bounds");
1329     lib.bindSymbol(cast(void**)&nk_widget_position,"nk_widget_position");
1330     lib.bindSymbol(cast(void**)&nk_widget_size,"nk_widget_size");
1331     lib.bindSymbol(cast(void**)&nk_widget_width,"nk_widget_width");
1332     lib.bindSymbol(cast(void**)&nk_widget_height,"nk_widget_height");
1333     lib.bindSymbol(cast(void**)&nk_widget_is_hovered,"nk_widget_is_hovered");
1334     lib.bindSymbol(cast(void**)&nk_widget_is_mouse_clicked,"nk_widget_is_mouse_clicked");
1335     lib.bindSymbol(cast(void**)&nk_widget_has_mouse_click_down,"nk_widget_has_mouse_click_down");
1336     lib.bindSymbol(cast(void**)&nk_spacing,"nk_spacing");
1337     lib.bindSymbol(cast(void**)&nk_text,"nk_text");
1338     lib.bindSymbol(cast(void**)&nk_text_colored,"nk_text_colored");
1339     lib.bindSymbol(cast(void**)&nk_text_wrap,"nk_text_wrap");
1340     lib.bindSymbol(cast(void**)&nk_text_wrap_colored,"nk_text_wrap_colored");
1341     lib.bindSymbol(cast(void**)&nk_label,"nk_label");
1342     lib.bindSymbol(cast(void**)&nk_label_colored,"nk_label_colored");
1343     lib.bindSymbol(cast(void**)&nk_label_wrap,"nk_label_wrap");
1344     lib.bindSymbol(cast(void**)&nk_label_colored_wrap,"nk_label_colored_wrap");
1345     lib.bindSymbol(cast(void**)&nk_image_,"nk_image");
1346     lib.bindSymbol(cast(void**)&nk_image_color,"nk_image_color");
1347     version(NK_INCLUDE_STANDARD_VARARGS) {
1348         lib.bindSymbol(cast(void**)&nk_labelf,"nk_labelf");
1349         lib.bindSymbol(cast(void**)&nk_labelf_colored,"nk_labelf_colored");
1350         lib.bindSymbol(cast(void**)&nk_labelf_wrap,"nk_labelf_wrap");
1351         lib.bindSymbol(cast(void**)&nk_labelf_colored_wrap,"nk_labelf_colored_wrap");
1352         lib.bindSymbol(cast(void**)&nk_labelfv,"nk_labelfv");
1353         lib.bindSymbol(cast(void**)&nk_labelfv_colored,"nk_labelfv_colored");
1354         lib.bindSymbol(cast(void**)&nk_labelfv_wrap,"nk_labelfv_wrap");
1355         lib.bindSymbol(cast(void**)&nk_labelfv_colored_wrap,"nk_labelfv_colored_wrap");
1356         lib.bindSymbol(cast(void**)&nk_value_bool,"nk_value_bool");
1357         lib.bindSymbol(cast(void**)&nk_value_int,"nk_value_int");
1358         lib.bindSymbol(cast(void**)&nk_value_uint,"nk_value_uint");
1359         lib.bindSymbol(cast(void**)&nk_value_float,"nk_value_float");
1360         lib.bindSymbol(cast(void**)&nk_value_color_byte,"nk_value_color_byte");
1361         lib.bindSymbol(cast(void**)&nk_value_color_float,"nk_value_color_float");
1362         lib.bindSymbol(cast(void**)&nk_value_color_hex,"nk_value_color_hex");
1363     }
1364     lib.bindSymbol(cast(void**)&nk_button_text,"nk_button_text");
1365     lib.bindSymbol(cast(void**)&nk_button_label,"nk_button_label");
1366     lib.bindSymbol(cast(void**)&nk_button_color,"nk_button_color");
1367     lib.bindSymbol(cast(void**)&nk_button_symbol,"nk_button_symbol");
1368     lib.bindSymbol(cast(void**)&nk_button_image,"nk_button_image");
1369     lib.bindSymbol(cast(void**)&nk_button_symbol_label,"nk_button_symbol_label");
1370     lib.bindSymbol(cast(void**)&nk_button_symbol_text,"nk_button_symbol_text");
1371     lib.bindSymbol(cast(void**)&nk_button_image_label,"nk_button_image_label");
1372     lib.bindSymbol(cast(void**)&nk_button_image_text,"nk_button_image_text");
1373     lib.bindSymbol(cast(void**)&nk_button_text_styled,"nk_button_text_styled");
1374     lib.bindSymbol(cast(void**)&nk_button_label_styled,"nk_button_label_styled");
1375     lib.bindSymbol(cast(void**)&nk_button_symbol_styled,"nk_button_symbol_styled");
1376     lib.bindSymbol(cast(void**)&nk_button_image_styled,"nk_button_image_styled");
1377     lib.bindSymbol(cast(void**)&nk_button_symbol_text_styled,"nk_button_symbol_text_styled");
1378     lib.bindSymbol(cast(void**)&nk_button_symbol_label_styled,"nk_button_symbol_label_styled");
1379     lib.bindSymbol(cast(void**)&nk_button_image_label_styled,"nk_button_image_label_styled");
1380     lib.bindSymbol(cast(void**)&nk_button_image_text_styled,"nk_button_image_text_styled");
1381     lib.bindSymbol(cast(void**)&nk_button_set_behavior,"nk_button_set_behavior");
1382     lib.bindSymbol(cast(void**)&nk_button_push_behavior,"nk_button_push_behavior");
1383     lib.bindSymbol(cast(void**)&nk_button_pop_behavior,"nk_button_pop_behavior");
1384     lib.bindSymbol(cast(void**)&nk_check_label,"nk_check_label");
1385     lib.bindSymbol(cast(void**)&nk_check_text,"nk_check_text");
1386     lib.bindSymbol(cast(void**)&nk_check_flags_label,"nk_check_flags_label");
1387     lib.bindSymbol(cast(void**)&nk_check_flags_text,"nk_check_flags_text");
1388     lib.bindSymbol(cast(void**)&nk_checkbox_label,"nk_checkbox_label");
1389     lib.bindSymbol(cast(void**)&nk_checkbox_text,"nk_checkbox_text");
1390     lib.bindSymbol(cast(void**)&nk_checkbox_flags_label,"nk_checkbox_flags_label");
1391     lib.bindSymbol(cast(void**)&nk_checkbox_flags_text,"nk_checkbox_flags_text");
1392     lib.bindSymbol(cast(void**)&nk_radio_label,"nk_radio_label");
1393     lib.bindSymbol(cast(void**)&nk_radio_text,"nk_radio_text");
1394     lib.bindSymbol(cast(void**)&nk_option_label,"nk_option_label");
1395     lib.bindSymbol(cast(void**)&nk_option_text,"nk_option_text");
1396     lib.bindSymbol(cast(void**)&nk_selectable_label,"nk_selectable_label");
1397     lib.bindSymbol(cast(void**)&nk_selectable_text,"nk_selectable_text");
1398     lib.bindSymbol(cast(void**)&nk_selectable_image_label,"nk_selectable_image_label");
1399     lib.bindSymbol(cast(void**)&nk_selectable_image_text,"nk_selectable_image_text");
1400     lib.bindSymbol(cast(void**)&nk_selectable_symbol_label,"nk_selectable_symbol_label");
1401     lib.bindSymbol(cast(void**)&nk_selectable_symbol_text,"nk_selectable_symbol_text");
1402     lib.bindSymbol(cast(void**)&nk_select_label,"nk_select_label");
1403     lib.bindSymbol(cast(void**)&nk_select_text,"nk_select_text");
1404     lib.bindSymbol(cast(void**)&nk_select_image_label,"nk_select_image_label");
1405     lib.bindSymbol(cast(void**)&nk_select_image_text,"nk_select_image_text");
1406     lib.bindSymbol(cast(void**)&nk_select_symbol_label,"nk_select_symbol_label");
1407     lib.bindSymbol(cast(void**)&nk_select_symbol_text,"nk_select_symbol_text");
1408     lib.bindSymbol(cast(void**)&nk_slide_float,"nk_slide_float");
1409     lib.bindSymbol(cast(void**)&nk_slide_int,"nk_slide_int");
1410     lib.bindSymbol(cast(void**)&nk_slider_float,"nk_slider_float");
1411     lib.bindSymbol(cast(void**)&nk_slider_int,"nk_slider_int");
1412     lib.bindSymbol(cast(void**)&nk_progress,"nk_progress");
1413     lib.bindSymbol(cast(void**)&nk_prog,"nk_prog");
1414     lib.bindSymbol(cast(void**)&nk_color_picker,"nk_color_picker");
1415     lib.bindSymbol(cast(void**)&nk_color_pick,"nk_color_pick");
1416     lib.bindSymbol(cast(void**)&nk_property_int,"nk_property_int");
1417     lib.bindSymbol(cast(void**)&nk_property_float,"nk_property_float");
1418     lib.bindSymbol(cast(void**)&nk_property_double,"nk_property_double");
1419     lib.bindSymbol(cast(void**)&nk_propertyi,"nk_propertyi");
1420     lib.bindSymbol(cast(void**)&nk_propertyf,"nk_propertyf");
1421     lib.bindSymbol(cast(void**)&nk_propertyd,"nk_propertyd");
1422     lib.bindSymbol(cast(void**)&nk_edit_string,"nk_edit_string");
1423     lib.bindSymbol(cast(void**)&nk_edit_string_zero_terminated,"nk_edit_string_zero_terminated");
1424     lib.bindSymbol(cast(void**)&nk_edit_buffer,"nk_edit_buffer");
1425     lib.bindSymbol(cast(void**)&nk_edit_focus,"nk_edit_focus");
1426     lib.bindSymbol(cast(void**)&nk_edit_unfocus,"nk_edit_unfocus");
1427     lib.bindSymbol(cast(void**)&nk_chart_begin,"nk_chart_begin");
1428     lib.bindSymbol(cast(void**)&nk_chart_begin_colored,"nk_chart_begin_colored");
1429     lib.bindSymbol(cast(void**)&nk_chart_add_slot,"nk_chart_add_slot");
1430     lib.bindSymbol(cast(void**)&nk_chart_add_slot_colored,"nk_chart_add_slot_colored");
1431     lib.bindSymbol(cast(void**)&nk_chart_push,"nk_chart_push");
1432     lib.bindSymbol(cast(void**)&nk_chart_push_slot,"nk_chart_push_slot");
1433     lib.bindSymbol(cast(void**)&nk_chart_end,"nk_chart_end");
1434     lib.bindSymbol(cast(void**)&nk_plot,"nk_plot");
1435     lib.bindSymbol(cast(void**)&nk_plot_function,"nk_plot_function");
1436     lib.bindSymbol(cast(void**)&nk_popup_begin,"nk_popup_begin");
1437     lib.bindSymbol(cast(void**)&nk_popup_close,"nk_popup_close");
1438     lib.bindSymbol(cast(void**)&nk_popup_end,"nk_popup_end");
1439     lib.bindSymbol(cast(void**)&nk_popup_get_scroll,"nk_popup_get_scroll"); // 4.01.0
1440     lib.bindSymbol(cast(void**)&nk_popup_set_scroll,"nk_popup_set_scroll"); // 4.01.0
1441     lib.bindSymbol(cast(void**)&nk_combo,"nk_combo");
1442     lib.bindSymbol(cast(void**)&nk_combo_separator,"nk_combo_separator");
1443     lib.bindSymbol(cast(void**)&nk_combo_string,"nk_combo_string");
1444     lib.bindSymbol(cast(void**)&nk_combo_callback,"nk_combo_callback");
1445     lib.bindSymbol(cast(void**)&nk_combobox,"nk_combobox");
1446     lib.bindSymbol(cast(void**)&nk_combobox_string,"nk_combobox_string");
1447     lib.bindSymbol(cast(void**)&nk_combobox_separator,"nk_combobox_separator");
1448     lib.bindSymbol(cast(void**)&nk_combobox_callback,"nk_combobox_callback");
1449     lib.bindSymbol(cast(void**)&nk_combo_begin_text,"nk_combo_begin_text");
1450     lib.bindSymbol(cast(void**)&nk_combo_begin_label,"nk_combo_begin_label");
1451     lib.bindSymbol(cast(void**)&nk_combo_begin_color,"nk_combo_begin_color");
1452     lib.bindSymbol(cast(void**)&nk_combo_begin_symbol,"nk_combo_begin_symbol");
1453     lib.bindSymbol(cast(void**)&nk_combo_begin_symbol_label,"nk_combo_begin_symbol_label");
1454     lib.bindSymbol(cast(void**)&nk_combo_begin_symbol_text,"nk_combo_begin_symbol_text");
1455     lib.bindSymbol(cast(void**)&nk_combo_begin_image,"nk_combo_begin_image");
1456     lib.bindSymbol(cast(void**)&nk_combo_begin_image_label,"nk_combo_begin_image_label");
1457     lib.bindSymbol(cast(void**)&nk_combo_begin_image_text,"nk_combo_begin_image_text");
1458     lib.bindSymbol(cast(void**)&nk_combo_item_label,"nk_combo_item_label");
1459     lib.bindSymbol(cast(void**)&nk_combo_item_text,"nk_combo_item_text");
1460     lib.bindSymbol(cast(void**)&nk_combo_item_image_label,"nk_combo_item_image_label");
1461     lib.bindSymbol(cast(void**)&nk_combo_item_image_text,"nk_combo_item_image_text");
1462     lib.bindSymbol(cast(void**)&nk_combo_item_symbol_label,"nk_combo_item_symbol_label");
1463     lib.bindSymbol(cast(void**)&nk_combo_item_symbol_text,"nk_combo_item_symbol_text");
1464     lib.bindSymbol(cast(void**)&nk_combo_close,"nk_combo_close");
1465     lib.bindSymbol(cast(void**)&nk_combo_end,"nk_combo_end");
1466     lib.bindSymbol(cast(void**)&nk_contextual_begin,"nk_contextual_begin");
1467     lib.bindSymbol(cast(void**)&nk_contextual_item_text,"nk_contextual_item_text");
1468     lib.bindSymbol(cast(void**)&nk_contextual_item_label,"nk_contextual_item_label");
1469     lib.bindSymbol(cast(void**)&nk_contextual_item_image_label,"nk_contextual_item_image_label");
1470     lib.bindSymbol(cast(void**)&nk_contextual_item_image_text,"nk_contextual_item_image_text");
1471     lib.bindSymbol(cast(void**)&nk_contextual_item_symbol_label,"nk_contextual_item_symbol_label");
1472     lib.bindSymbol(cast(void**)&nk_contextual_item_symbol_text,"nk_contextual_item_symbol_text");
1473     lib.bindSymbol(cast(void**)&nk_contextual_close,"nk_contextual_close");
1474     lib.bindSymbol(cast(void**)&nk_contextual_end,"nk_contextual_end");
1475     lib.bindSymbol(cast(void**)&nk_tooltip,"nk_tooltip");
1476     version(NK_INCLUDE_STANDARD_VARARGS) {
1477         lib.bindSymbol(cast(void**)&nk_tooltipf,"nk_tooltipf");
1478         lib.bindSymbol(cast(void**)&nk_tooltipfv,"nk_tooltipfv");
1479     }
1480     lib.bindSymbol(cast(void**)&nk_tooltip_begin,"nk_tooltip_begin");
1481     lib.bindSymbol(cast(void**)&nk_tooltip_end,"nk_tooltip_end");
1482     lib.bindSymbol(cast(void**)&nk_menubar_begin,"nk_menubar_begin");
1483     lib.bindSymbol(cast(void**)&nk_menubar_end,"nk_menubar_end");
1484     lib.bindSymbol(cast(void**)&nk_menu_begin_text,"nk_menu_begin_text");
1485     lib.bindSymbol(cast(void**)&nk_menu_begin_label,"nk_menu_begin_label");
1486     lib.bindSymbol(cast(void**)&nk_menu_begin_image,"nk_menu_begin_image");
1487     lib.bindSymbol(cast(void**)&nk_menu_begin_image_text,"nk_menu_begin_image_text");
1488     lib.bindSymbol(cast(void**)&nk_menu_begin_image_label,"nk_menu_begin_image_label");
1489     lib.bindSymbol(cast(void**)&nk_menu_begin_symbol,"nk_menu_begin_symbol");
1490     lib.bindSymbol(cast(void**)&nk_menu_begin_symbol_text,"nk_menu_begin_symbol_text");
1491     lib.bindSymbol(cast(void**)&nk_menu_begin_symbol_label,"nk_menu_begin_symbol_label");
1492     lib.bindSymbol(cast(void**)&nk_menu_item_text,"nk_menu_item_text");
1493     lib.bindSymbol(cast(void**)&nk_menu_item_label,"nk_menu_item_label");
1494     lib.bindSymbol(cast(void**)&nk_menu_item_image_label,"nk_menu_item_image_label");
1495     lib.bindSymbol(cast(void**)&nk_menu_item_image_text,"nk_menu_item_image_text");
1496     lib.bindSymbol(cast(void**)&nk_menu_item_symbol_text,"nk_menu_item_symbol_text");
1497     lib.bindSymbol(cast(void**)&nk_menu_item_symbol_label,"nk_menu_item_symbol_label");
1498     lib.bindSymbol(cast(void**)&nk_menu_close,"nk_menu_close");
1499     lib.bindSymbol(cast(void**)&nk_menu_end,"nk_menu_end");
1500     lib.bindSymbol(cast(void**)&nk_style_default,"nk_style_default");
1501     lib.bindSymbol(cast(void**)&nk_style_from_table,"nk_style_from_table");
1502     lib.bindSymbol(cast(void**)&nk_style_load_cursor,"nk_style_load_cursor");
1503     lib.bindSymbol(cast(void**)&nk_style_load_all_cursors,"nk_style_load_all_cursors");
1504     lib.bindSymbol(cast(void**)&nk_style_get_color_by_name,"nk_style_get_color_by_name");
1505     lib.bindSymbol(cast(void**)&nk_style_set_font,"nk_style_set_font");
1506     lib.bindSymbol(cast(void**)&nk_style_set_cursor,"nk_style_set_cursor");
1507     lib.bindSymbol(cast(void**)&nk_style_show_cursor,"nk_style_show_cursor");
1508     lib.bindSymbol(cast(void**)&nk_style_hide_cursor,"nk_style_hide_cursor");
1509     lib.bindSymbol(cast(void**)&nk_style_push_font,"nk_style_push_font");
1510     lib.bindSymbol(cast(void**)&nk_style_push_float,"nk_style_push_float");
1511     lib.bindSymbol(cast(void**)&nk_style_push_vec2,"nk_style_push_vec2");
1512     lib.bindSymbol(cast(void**)&nk_style_push_style_item,"nk_style_push_style_item");
1513     lib.bindSymbol(cast(void**)&nk_style_push_flags,"nk_style_push_flags");
1514     lib.bindSymbol(cast(void**)&nk_style_push_color,"nk_style_push_color");
1515     lib.bindSymbol(cast(void**)&nk_style_pop_font,"nk_style_pop_font");
1516     lib.bindSymbol(cast(void**)&nk_style_pop_float,"nk_style_pop_float");
1517     lib.bindSymbol(cast(void**)&nk_style_pop_vec2,"nk_style_pop_vec2");
1518     lib.bindSymbol(cast(void**)&nk_style_pop_style_item,"nk_style_pop_style_item");
1519     lib.bindSymbol(cast(void**)&nk_style_pop_flags,"nk_style_pop_flags");
1520     lib.bindSymbol(cast(void**)&nk_style_pop_color,"nk_style_pop_color");
1521     lib.bindSymbol(cast(void**)&nk_rgb,"nk_rgb");
1522     lib.bindSymbol(cast(void**)&nk_rgb_iv,"nk_rgb_iv");
1523     lib.bindSymbol(cast(void**)&nk_rgb_bv,"nk_rgb_bv");
1524     lib.bindSymbol(cast(void**)&nk_rgb_f,"nk_rgb_f");
1525     lib.bindSymbol(cast(void**)&nk_rgb_fv,"nk_rgb_fv");
1526     lib.bindSymbol(cast(void**)&nk_rgb_cf,"nk_rgb_cf");
1527     lib.bindSymbol(cast(void**)&nk_rgb_hex,"nk_rgb_hex");
1528     lib.bindSymbol(cast(void**)&nk_rgba,"nk_rgba");
1529     lib.bindSymbol(cast(void**)&nk_rgba_u32,"nk_rgba_u32");
1530     lib.bindSymbol(cast(void**)&nk_rgba_iv,"nk_rgba_iv");
1531     lib.bindSymbol(cast(void**)&nk_rgba_bv,"nk_rgba_bv");
1532     lib.bindSymbol(cast(void**)&nk_rgba_f,"nk_rgba_f");
1533     lib.bindSymbol(cast(void**)&nk_rgba_fv,"nk_rgba_fv");
1534     lib.bindSymbol(cast(void**)&nk_rgba_cf,"nk_rgba_cf");
1535     lib.bindSymbol(cast(void**)&nk_rgba_hex,"nk_rgba_hex");
1536     lib.bindSymbol(cast(void**)&nk_hsva_colorf,"nk_hsva_colorf");
1537     lib.bindSymbol(cast(void**)&nk_hsva_colorfv,"nk_hsva_colorfv");
1538     lib.bindSymbol(cast(void**)&nk_colorf_hsva_f,"nk_colorf_hsva_f");
1539     lib.bindSymbol(cast(void**)&nk_colorf_hsva_fv,"nk_colorf_hsva_fv");
1540     lib.bindSymbol(cast(void**)&nk_hsv,"nk_hsv");
1541     lib.bindSymbol(cast(void**)&nk_hsv_iv,"nk_hsv_iv");
1542     lib.bindSymbol(cast(void**)&nk_hsv_bv,"nk_hsv_bv");
1543     lib.bindSymbol(cast(void**)&nk_hsv_f,"nk_hsv_f");
1544     lib.bindSymbol(cast(void**)&nk_hsv_fv,"nk_hsv_fv");
1545     lib.bindSymbol(cast(void**)&nk_hsva,"nk_hsva");
1546     lib.bindSymbol(cast(void**)&nk_hsva_iv,"nk_hsva_iv");
1547     lib.bindSymbol(cast(void**)&nk_hsva_bv,"nk_hsva_bv");
1548     lib.bindSymbol(cast(void**)&nk_hsva_f,"nk_hsva_f");
1549     lib.bindSymbol(cast(void**)&nk_hsva_fv,"nk_hsva_fv");
1550     lib.bindSymbol(cast(void**)&nk_color_f,"nk_color_f");
1551     lib.bindSymbol(cast(void**)&nk_color_fv,"nk_color_fv");
1552     lib.bindSymbol(cast(void**)&nk_color_cf,"nk_color_cf");
1553     lib.bindSymbol(cast(void**)&nk_color_d,"nk_color_d");
1554     lib.bindSymbol(cast(void**)&nk_color_dv,"nk_color_dv");
1555     lib.bindSymbol(cast(void**)&nk_color_u32,"nk_color_u32");
1556     lib.bindSymbol(cast(void**)&nk_color_hex_rgba,"nk_color_hex_rgba");
1557     lib.bindSymbol(cast(void**)&nk_color_hex_rgb,"nk_color_hex_rgb");
1558     lib.bindSymbol(cast(void**)&nk_color_hsv_i,"nk_color_hsv_i");
1559     lib.bindSymbol(cast(void**)&nk_color_hsv_b,"nk_color_hsv_b");
1560     lib.bindSymbol(cast(void**)&nk_color_hsv_iv,"nk_color_hsv_iv");
1561     lib.bindSymbol(cast(void**)&nk_color_hsv_bv,"nk_color_hsv_bv");
1562     lib.bindSymbol(cast(void**)&nk_color_hsv_f,"nk_color_hsv_f");
1563     lib.bindSymbol(cast(void**)&nk_color_hsv_fv,"nk_color_hsv_fv");
1564     lib.bindSymbol(cast(void**)&nk_color_hsva_i,"nk_color_hsva_i");
1565     lib.bindSymbol(cast(void**)&nk_color_hsva_b,"nk_color_hsva_b");
1566     lib.bindSymbol(cast(void**)&nk_color_hsva_iv,"nk_color_hsva_iv");
1567     lib.bindSymbol(cast(void**)&nk_color_hsva_bv,"nk_color_hsva_bv");
1568     lib.bindSymbol(cast(void**)&nk_color_hsva_f,"nk_color_hsva_f");
1569     lib.bindSymbol(cast(void**)&nk_color_hsva_fv,"nk_color_hsva_fv");
1570     lib.bindSymbol(cast(void**)&nk_handle_ptr,"nk_handle_ptr");
1571     lib.bindSymbol(cast(void**)&nk_handle_id,"nk_handle_id");
1572     lib.bindSymbol(cast(void**)&nk_image_handle,"nk_image_handle");
1573     lib.bindSymbol(cast(void**)&nk_image_ptr,"nk_image_ptr");
1574     lib.bindSymbol(cast(void**)&nk_image_id,"nk_image_id");
1575     lib.bindSymbol(cast(void**)&nk_image_is_subimage,"nk_image_is_subimage");
1576     lib.bindSymbol(cast(void**)&nk_subimage_ptr,"nk_subimage_ptr");
1577     lib.bindSymbol(cast(void**)&nk_subimage_id,"nk_subimage_id");
1578     lib.bindSymbol(cast(void**)&nk_subimage_handle,"nk_subimage_handle");
1579     lib.bindSymbol(cast(void**)&nk_murmur_hash,"nk_murmur_hash");
1580     lib.bindSymbol(cast(void**)&nk_triangle_from_direction,"nk_triangle_from_direction");
1581     lib.bindSymbol(cast(void**)&nk_vec2_,"nk_vec2");
1582     lib.bindSymbol(cast(void**)&nk_vec2i_,"nk_vec2i");
1583     lib.bindSymbol(cast(void**)&nk_vec2v,"nk_vec2v");
1584     lib.bindSymbol(cast(void**)&nk_vec2iv,"nk_vec2iv");
1585     lib.bindSymbol(cast(void**)&nk_get_null_rect,"nk_get_null_rect");
1586     lib.bindSymbol(cast(void**)&nk_rect_,"nk_rect");
1587     lib.bindSymbol(cast(void**)&nk_recti,"nk_recti");
1588     lib.bindSymbol(cast(void**)&nk_recta,"nk_recta");
1589     lib.bindSymbol(cast(void**)&nk_rectv,"nk_rectv");
1590     lib.bindSymbol(cast(void**)&nk_rectiv,"nk_rectiv");
1591     lib.bindSymbol(cast(void**)&nk_rect_pos,"nk_rect_pos");
1592     lib.bindSymbol(cast(void**)&nk_rect_size,"nk_rect_size");
1593     lib.bindSymbol(cast(void**)&nk_strlen,"nk_strlen");
1594     lib.bindSymbol(cast(void**)&nk_stricmp,"nk_stricmp");
1595     lib.bindSymbol(cast(void**)&nk_stricmpn,"nk_stricmpn");
1596     lib.bindSymbol(cast(void**)&nk_strtoi,"nk_strtoi");
1597     lib.bindSymbol(cast(void**)&nk_strtof,"nk_strtof");
1598     lib.bindSymbol(cast(void**)&nk_strtod,"nk_strtod");
1599     lib.bindSymbol(cast(void**)&nk_strfilter,"nk_strfilter");
1600     lib.bindSymbol(cast(void**)&nk_strmatch_fuzzy_string,"nk_strmatch_fuzzy_string");
1601     lib.bindSymbol(cast(void**)&nk_strmatch_fuzzy_text,"nk_strmatch_fuzzy_text");
1602     lib.bindSymbol(cast(void**)&nk_utf_decode,"nk_utf_decode");
1603     lib.bindSymbol(cast(void**)&nk_utf_encode,"nk_utf_encode");
1604     lib.bindSymbol(cast(void**)&nk_utf_len,"nk_utf_len");
1605     lib.bindSymbol(cast(void**)&nk_utf_at,"nk_utf_at");
1606     version(NK_INCLUDE_FONT_BAKING) {
1607         lib.bindSymbol(cast(void**)&nk_font_default_glyph_ranges,"nk_font_default_glyph_ranges");
1608         lib.bindSymbol(cast(void**)&nk_font_chinese_glyph_ranges,"nk_font_chinese_glyph_ranges");
1609         lib.bindSymbol(cast(void**)&nk_font_cyrillic_glyph_ranges,"nk_font_cyrillic_glyph_ranges");
1610         lib.bindSymbol(cast(void**)&nk_font_korean_glyph_ranges,"nk_font_korean_glyph_ranges");
1611         version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
1612             lib.bindSymbol(cast(void**)&nk_font_atlas_init_default,"nk_font_atlas_init_default");
1613         }
1614         lib.bindSymbol(cast(void**)&nk_font_atlas_init,"nk_font_atlas_init");
1615         lib.bindSymbol(cast(void**)&nk_font_atlas_init_custom,"nk_font_atlas_init_custom");
1616         lib.bindSymbol(cast(void**)&nk_font_atlas_begin,"nk_font_atlas_begin");
1617         lib.bindSymbol(cast(void**)&nk_font_config_,"nk_font_config");
1618         lib.bindSymbol(cast(void**)&nk_font_atlas_add,"nk_font_atlas_add");
1619         version(NK_INCLUDE_DEFAULT_FONT) {
1620             lib.bindSymbol(cast(void**)&nk_font_atlas_add_default,"nk_font_atlas_add_default");
1621         }
1622         lib.bindSymbol(cast(void**)&nk_font_atlas_add_from_memory,"nk_font_atlas_add_from_memory");
1623         version(NK_INCLUDE_STANDARD_IO) {
1624             lib.bindSymbol(cast(void**)&nk_font_atlas_add_from_file,"nk_font_atlas_add_from_file");
1625         }
1626         lib.bindSymbol(cast(void**)&nk_font_atlas_add_compressed,"nk_font_atlas_add_compressed");
1627         lib.bindSymbol(cast(void**)&nk_font_atlas_add_compressed_base85,"nk_font_atlas_add_compressed_base85");
1628         lib.bindSymbol(cast(void**)&nk_font_atlas_bake,"nk_font_atlas_bake");
1629         lib.bindSymbol(cast(void**)&nk_font_atlas_end,"nk_font_atlas_end");
1630         lib.bindSymbol(cast(void**)&nk_font_find_glyph,"nk_font_find_glyph");
1631         lib.bindSymbol(cast(void**)&nk_font_atlas_cleanup,"nk_font_atlas_cleanup");
1632         lib.bindSymbol(cast(void**)&nk_font_atlas_clear,"nk_font_atlas_clear");
1633     }
1634     version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
1635         lib.bindSymbol(cast(void**)&nk_buffer_init_default,"nk_buffer_init_default");
1636     }
1637     lib.bindSymbol(cast(void**)&nk_buffer_init,"nk_buffer_init");
1638     lib.bindSymbol(cast(void**)&nk_buffer_init_fixed,"nk_buffer_init_fixed");
1639     lib.bindSymbol(cast(void**)&nk_buffer_info,"nk_buffer_info");
1640     lib.bindSymbol(cast(void**)&nk_buffer_push,"nk_buffer_push");
1641     lib.bindSymbol(cast(void**)&nk_buffer_mark,"nk_buffer_mark");
1642     lib.bindSymbol(cast(void**)&nk_buffer_reset,"nk_buffer_reset");
1643     lib.bindSymbol(cast(void**)&nk_buffer_clear,"nk_buffer_clear");
1644     lib.bindSymbol(cast(void**)&nk_buffer_free,"nk_buffer_free");
1645     lib.bindSymbol(cast(void**)&nk_buffer_memory,"nk_buffer_memory");
1646     lib.bindSymbol(cast(void**)&nk_buffer_memory_const,"nk_buffer_memory_const");
1647     lib.bindSymbol(cast(void**)&nk_buffer_total,"nk_buffer_total");
1648     version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
1649         lib.bindSymbol(cast(void**)&nk_str_init_default,"nk_str_init_default");
1650     }
1651     lib.bindSymbol(cast(void**)&nk_str_init,"nk_str_init");
1652     lib.bindSymbol(cast(void**)&nk_str_init_fixed,"nk_str_init_fixed");
1653     lib.bindSymbol(cast(void**)&nk_str_clear,"nk_str_clear");
1654     lib.bindSymbol(cast(void**)&nk_str_free,"nk_str_free");
1655     lib.bindSymbol(cast(void**)&nk_str_append_text_char,"nk_str_append_text_char");
1656     lib.bindSymbol(cast(void**)&nk_str_append_str_char,"nk_str_append_str_char");
1657     lib.bindSymbol(cast(void**)&nk_str_append_text_utf8,"nk_str_append_text_utf8");
1658     lib.bindSymbol(cast(void**)&nk_str_append_str_utf8,"nk_str_append_str_utf8");
1659     lib.bindSymbol(cast(void**)&nk_str_append_text_runes,"nk_str_append_text_runes");
1660     lib.bindSymbol(cast(void**)&nk_str_append_str_runes,"nk_str_append_str_runes");
1661     lib.bindSymbol(cast(void**)&nk_str_insert_at_char,"nk_str_insert_at_char");
1662     lib.bindSymbol(cast(void**)&nk_str_insert_at_rune,"nk_str_insert_at_rune");
1663     lib.bindSymbol(cast(void**)&nk_str_insert_text_char,"nk_str_insert_text_char");
1664     lib.bindSymbol(cast(void**)&nk_str_insert_str_char,"nk_str_insert_str_char");
1665     lib.bindSymbol(cast(void**)&nk_str_insert_text_utf8,"nk_str_insert_text_utf8");
1666     lib.bindSymbol(cast(void**)&nk_str_insert_str_utf8,"nk_str_insert_str_utf8");
1667     lib.bindSymbol(cast(void**)&nk_str_insert_text_runes,"nk_str_insert_text_runes");
1668     lib.bindSymbol(cast(void**)&nk_str_insert_str_runes,"nk_str_insert_str_runes");
1669     lib.bindSymbol(cast(void**)&nk_str_remove_chars,"nk_str_remove_chars");
1670     lib.bindSymbol(cast(void**)&nk_str_remove_runes,"nk_str_remove_runes");
1671     lib.bindSymbol(cast(void**)&nk_str_delete_chars,"nk_str_delete_chars");
1672     lib.bindSymbol(cast(void**)&nk_str_delete_runes,"nk_str_delete_runes");
1673     lib.bindSymbol(cast(void**)&nk_str_at_char,"nk_str_at_char");
1674     lib.bindSymbol(cast(void**)&nk_str_at_rune,"nk_str_at_rune");
1675     lib.bindSymbol(cast(void**)&nk_str_rune_at,"nk_str_rune_at");
1676     lib.bindSymbol(cast(void**)&nk_str_at_char_const,"nk_str_at_char_const");
1677     lib.bindSymbol(cast(void**)&nk_str_at_const,"nk_str_at_const");
1678     lib.bindSymbol(cast(void**)&nk_str_get,"nk_str_get");
1679     lib.bindSymbol(cast(void**)&nk_str_get_const,"nk_str_get_const");
1680     lib.bindSymbol(cast(void**)&nk_str_len,"nk_str_len");
1681     lib.bindSymbol(cast(void**)&nk_str_len_char,"nk_str_len_char");
1682     lib.bindSymbol(cast(void**)&nk_filter_default_fptr,"nk_filter_default");
1683     lib.bindSymbol(cast(void**)&nk_filter_ascii_fptr,"nk_filter_ascii");
1684     lib.bindSymbol(cast(void**)&nk_filter_float_fptr,"nk_filter_float");
1685     lib.bindSymbol(cast(void**)&nk_filter_decimal_fptr,"nk_filter_decimal");
1686     lib.bindSymbol(cast(void**)&nk_filter_hex_fptr,"nk_filter_hex");
1687     lib.bindSymbol(cast(void**)&nk_filter_oct_fptr,"nk_filter_oct");
1688     lib.bindSymbol(cast(void**)&nk_filter_binary_fptr,"nk_filter_binary");
1689     version(NK_INCLUDE_DEFAULT_ALLOCATOR) {
1690         lib.bindSymbol(cast(void**)&nk_textedit_init_default,"nk_textedit_init_default");
1691     }
1692     lib.bindSymbol(cast(void**)&nk_textedit_init,"nk_textedit_init");
1693     lib.bindSymbol(cast(void**)&nk_textedit_init_fixed,"nk_textedit_init_fixed");
1694     lib.bindSymbol(cast(void**)&nk_textedit_free,"nk_textedit_free");
1695     lib.bindSymbol(cast(void**)&nk_textedit_text,"nk_textedit_text");
1696     lib.bindSymbol(cast(void**)&nk_textedit_delete,"nk_textedit_delete");
1697     lib.bindSymbol(cast(void**)&nk_textedit_delete_selection,"nk_textedit_delete_selection");
1698     lib.bindSymbol(cast(void**)&nk_textedit_select_all,"nk_textedit_select_all");
1699     lib.bindSymbol(cast(void**)&nk_textedit_cut,"nk_textedit_cut");
1700     lib.bindSymbol(cast(void**)&nk_textedit_paste,"nk_textedit_paste");
1701     lib.bindSymbol(cast(void**)&nk_textedit_undo,"nk_textedit_undo");
1702     lib.bindSymbol(cast(void**)&nk_textedit_redo,"nk_textedit_redo");
1703     lib.bindSymbol(cast(void**)&nk_stroke_line,"nk_stroke_line");
1704     lib.bindSymbol(cast(void**)&nk_stroke_curve,"nk_stroke_curve");
1705     lib.bindSymbol(cast(void**)&nk_stroke_rect,"nk_stroke_rect");
1706     lib.bindSymbol(cast(void**)&nk_stroke_circle,"nk_stroke_circle");
1707     lib.bindSymbol(cast(void**)&nk_stroke_arc,"nk_stroke_arc");
1708     lib.bindSymbol(cast(void**)&nk_stroke_triangle,"nk_stroke_triangle");
1709     lib.bindSymbol(cast(void**)&nk_stroke_polyline,"nk_stroke_polyline");
1710     lib.bindSymbol(cast(void**)&nk_stroke_polygon,"nk_stroke_polygon");
1711     lib.bindSymbol(cast(void**)&nk_fill_rect,"nk_fill_rect");
1712     lib.bindSymbol(cast(void**)&nk_fill_rect_multi_color,"nk_fill_rect_multi_color");
1713     lib.bindSymbol(cast(void**)&nk_fill_circle,"nk_fill_circle");
1714     lib.bindSymbol(cast(void**)&nk_fill_arc,"nk_fill_arc");
1715     lib.bindSymbol(cast(void**)&nk_fill_triangle,"nk_fill_triangle");
1716     lib.bindSymbol(cast(void**)&nk_fill_polygon,"nk_fill_polygon");
1717     lib.bindSymbol(cast(void**)&nk_draw_image,"nk_draw_image");
1718     lib.bindSymbol(cast(void**)&nk_draw_text,"nk_draw_text");
1719     lib.bindSymbol(cast(void**)&nk_push_scissor,"nk_push_scissor");
1720     lib.bindSymbol(cast(void**)&nk_push_custom,"nk_push_custom");
1721     lib.bindSymbol(cast(void**)&nk_input_has_mouse_click,"nk_input_has_mouse_click");
1722     lib.bindSymbol(cast(void**)&nk_input_has_mouse_click_in_rect,"nk_input_has_mouse_click_in_rect");
1723     lib.bindSymbol(cast(void**)&nk_input_has_mouse_click_down_in_rect,"nk_input_has_mouse_click_down_in_rect");
1724     lib.bindSymbol(cast(void**)&nk_input_is_mouse_click_in_rect,"nk_input_is_mouse_click_in_rect");
1725     lib.bindSymbol(cast(void**)&nk_input_is_mouse_click_down_in_rect,"nk_input_is_mouse_click_down_in_rect");
1726     lib.bindSymbol(cast(void**)&nk_input_any_mouse_click_in_rect,"nk_input_any_mouse_click_in_rect");
1727     lib.bindSymbol(cast(void**)&nk_input_is_mouse_prev_hovering_rect,"nk_input_is_mouse_prev_hovering_rect");
1728     lib.bindSymbol(cast(void**)&nk_input_is_mouse_hovering_rect,"nk_input_is_mouse_hovering_rect");
1729     lib.bindSymbol(cast(void**)&nk_input_mouse_clicked,"nk_input_mouse_clicked");
1730     lib.bindSymbol(cast(void**)&nk_input_is_mouse_down,"nk_input_is_mouse_down");
1731     lib.bindSymbol(cast(void**)&nk_input_is_mouse_pressed,"nk_input_is_mouse_pressed");
1732     lib.bindSymbol(cast(void**)&nk_input_is_mouse_released,"nk_input_is_mouse_released");
1733     lib.bindSymbol(cast(void**)&nk_input_is_key_pressed,"nk_input_is_key_pressed");
1734     lib.bindSymbol(cast(void**)&nk_input_is_key_released,"nk_input_is_key_released");
1735     lib.bindSymbol(cast(void**)&nk_input_is_key_down,"nk_input_is_key_down");
1736     version(NK_INCLUDE_VERTEX_BUFFER_OUTPUT) {
1737         lib.bindSymbol(cast(void**)&nk_draw_list_init,"nk_draw_list_init");
1738         lib.bindSymbol(cast(void**)&nk_draw_list_setup,"nk_draw_list_setup");
1739         lib.bindSymbol(cast(void**)&nk__draw_list_begin,"nk__draw_list_begin");
1740         lib.bindSymbol(cast(void**)&nk__draw_list_next,"nk__draw_list_next");
1741         lib.bindSymbol(cast(void**)&nk__draw_list_end,"nk__draw_list_end");
1742         lib.bindSymbol(cast(void**)&nk_draw_list_path_clear,"nk_draw_list_path_clear");
1743         lib.bindSymbol(cast(void**)&nk_draw_list_path_line_to,"nk_draw_list_path_line_to");
1744         lib.bindSymbol(cast(void**)&nk_draw_list_path_arc_to_fast,"nk_draw_list_path_arc_to_fast");
1745         lib.bindSymbol(cast(void**)&nk_draw_list_path_arc_to,"nk_draw_list_path_arc_to");
1746         lib.bindSymbol(cast(void**)&nk_draw_list_path_rect_to,"nk_draw_list_path_rect_to");
1747         lib.bindSymbol(cast(void**)&nk_draw_list_path_curve_to,"nk_draw_list_path_curve_to");
1748         lib.bindSymbol(cast(void**)&nk_draw_list_path_fill,"nk_draw_list_path_fill");
1749         lib.bindSymbol(cast(void**)&nk_draw_list_path_stroke,"nk_draw_list_path_stroke");
1750         lib.bindSymbol(cast(void**)&nk_draw_list_stroke_line,"nk_draw_list_stroke_line");
1751         lib.bindSymbol(cast(void**)&nk_draw_list_stroke_rect,"nk_draw_list_stroke_rect");
1752         lib.bindSymbol(cast(void**)&nk_draw_list_stroke_triangle,"nk_draw_list_stroke_triangle");
1753         lib.bindSymbol(cast(void**)&nk_draw_list_stroke_circle,"nk_draw_list_stroke_circle");
1754         lib.bindSymbol(cast(void**)&nk_draw_list_stroke_curve,"nk_draw_list_stroke_curve");
1755         lib.bindSymbol(cast(void**)&nk_draw_list_stroke_poly_line,"nk_draw_list_stroke_poly_line");
1756         lib.bindSymbol(cast(void**)&nk_draw_list_fill_rect,"nk_draw_list_fill_rect");
1757         lib.bindSymbol(cast(void**)&nk_draw_list_fill_rect_multi_color,"nk_draw_list_fill_rect_multi_color");
1758         lib.bindSymbol(cast(void**)&nk_draw_list_fill_triangle,"nk_draw_list_fill_triangle");
1759         lib.bindSymbol(cast(void**)&nk_draw_list_fill_circle,"nk_draw_list_fill_circle");
1760         lib.bindSymbol(cast(void**)&nk_draw_list_fill_poly_convex,"nk_draw_list_fill_poly_convex");
1761         lib.bindSymbol(cast(void**)&nk_draw_list_add_image,"nk_draw_list_add_image");
1762         lib.bindSymbol(cast(void**)&nk_draw_list_add_text,"nk_draw_list_add_text");
1763         version(NK_INCLUDE_COMMAND_USERDATA) {
1764             lib.bindSymbol(cast(void**)&nk_draw_list_push_userdata,"nk_draw_list_push_userdata");
1765         }
1766     }
1767     lib.bindSymbol(cast(void**)&nk_style_item_image,"nk_style_item_image");
1768     lib.bindSymbol(cast(void**)&nk_style_item_color,"nk_style_item_color");
1769     lib.bindSymbol(cast(void**)&nk_style_item_hide,"nk_style_item_hide");
1770 
1771     loadedVersion = NuklearSupport.Nuklear4;
1772 
1773     if(errorCount() != errCount) return NuklearSupport.badLibrary;
1774 
1775     return loadedVersion;
1776 }