1 // Generated on 2025-04-19
2 /++
3 This is a D wrapper around the cimgui library (Dear ImGui).
4 It provides D bindings for the Dear ImGui immediate mode GUI library.
5 
6 Features:
7 - Full ImGui API coverage
8 - @trusted wrapper functions
9 - Preserves ImGui's original style and naming conventions
10 - Handles memory management and context safety
11 +/
12 module imgui;
13 version (has_imgui)
14 {
15     public import imgui.dcimgui;
16 
17 @nogc nothrow:
18 
19     // Callback function types
20     extern (C) alias ImGuiGetterFunc = const(char)* function(const(void)*, int);
21     extern (C) alias ImGuiValues_getterFunc = float function(void*, int);
22     extern (C) alias ImGuiOld_callbackFunc = bool function(void*, int, const(char)**);
23 
24     // D-friendly wrappers
25     scope ImGuiContext* CreateContext(scope ImFontAtlas* shared_font_atlas) @trusted
26     {
27         return igCreateContext(shared_font_atlas);
28     }
29 
30     void DestroyContext(scope ImGuiContext* ctx) @trusted
31     {
32         igDestroyContext(ctx);
33     }
34 
35     scope ImGuiContext* GetCurrentContext() @trusted
36     {
37         return igGetCurrentContext();
38     }
39 
40     void SetCurrentContext(scope ImGuiContext* ctx) @trusted
41     {
42         igSetCurrentContext(ctx);
43     }
44 
45     scope ImGuiIO* GetIO() @trusted
46     {
47         return igGetIO();
48     }
49 
50     scope ImGuiPlatformIO* GetPlatformIO() @trusted
51     {
52         return igGetPlatformIO();
53     }
54 
55     scope ImGuiStyle* GetStyle() @trusted
56     {
57         return igGetStyle();
58     }
59 
60     void NewFrame() @trusted
61     {
62         igNewFrame();
63     }
64 
65     void EndFrame() @trusted
66     {
67         igEndFrame();
68     }
69 
70     void Render() @trusted
71     {
72         igRender();
73     }
74 
75     scope ImDrawData* GetDrawData() @trusted
76     {
77         return igGetDrawData();
78     }
79 
80     void ShowDemoWindow(scope bool* p_open) @trusted
81     {
82         igShowDemoWindow(p_open);
83     }
84 
85     void ShowMetricsWindow(scope bool* p_open) @trusted
86     {
87         igShowMetricsWindow(p_open);
88     }
89 
90     void ShowDebugLogWindow(scope bool* p_open) @trusted
91     {
92         igShowDebugLogWindow(p_open);
93     }
94 
95     void ShowIDStackToolWindow() @trusted
96     {
97         igShowIDStackToolWindow();
98     }
99 
100     void ShowIDStackToolWindowEx(scope bool* p_open) @trusted
101     {
102         igShowIDStackToolWindowEx(p_open);
103     }
104 
105     void ShowAboutWindow(scope bool* p_open) @trusted
106     {
107         igShowAboutWindow(p_open);
108     }
109 
110     void ShowStyleEditor(scope ImGuiStyle* ref_) @trusted
111     {
112         igShowStyleEditor(ref_);
113     }
114 
115     bool ShowStyleSelector(scope const(char)* label) @trusted
116     {
117         return igShowStyleSelector(label);
118     }
119 
120     void ShowFontSelector(scope const(char)* label) @trusted
121     {
122         igShowFontSelector(label);
123     }
124 
125     void ShowUserGuide() @trusted
126     {
127         igShowUserGuide();
128     }
129 
130     scope const(char)* GetVersion() @trusted
131     {
132         return igGetVersion();
133     }
134 
135     void StyleColorsDark(
136         scope ImGuiStyle* dst) @trusted
137     {
138         igStyleColorsDark(dst);
139     }
140 
141     void StyleColorsLight(
142         scope ImGuiStyle* dst) @trusted
143     {
144         igStyleColorsLight(dst);
145     }
146 
147     void StyleColorsClassic(
148         scope ImGuiStyle* dst) @trusted
149     {
150         igStyleColorsClassic(dst);
151     }
152 
153     bool Begin(scope const(char)* name, scope bool* p_open, ImGuiWindowFlags flags) @trusted
154     {
155         return igBegin(name, p_open, flags);
156     }
157 
158     void End() @trusted
159     {
160         igEnd();
161     }
162 
163     bool BeginChild(scope const(char)* str_id, ImVec2 size, ImGuiChildFlags child_flags, ImGuiWindowFlags window_flags) @trusted
164     {
165         return igBeginChild(str_id, size, child_flags, window_flags);
166     }
167 
168     bool BeginChildID(ImGuiID id, ImVec2 size, ImGuiChildFlags child_flags, ImGuiWindowFlags window_flags) @trusted
169     {
170         return igBeginChildID(id, size, child_flags, window_flags);
171     }
172 
173     void EndChild() @trusted
174     {
175         igEndChild();
176     }
177 
178     bool IsWindowAppearing() @trusted
179     {
180         return igIsWindowAppearing();
181     }
182 
183     bool IsWindowCollapsed() @trusted
184     {
185         return igIsWindowCollapsed();
186     }
187 
188     bool IsWindowFocused(
189         ImGuiFocusedFlags flags) @trusted
190     {
191         return igIsWindowFocused(
192             flags);
193     }
194 
195     bool IsWindowHovered(
196         ImGuiHoveredFlags flags) @trusted
197     {
198         return igIsWindowHovered(
199             flags);
200     }
201 
202     scope ImDrawList* GetWindowDrawList() @trusted
203     {
204         return igGetWindowDrawList();
205     }
206 
207     ImVec2 GetWindowPos() @trusted
208     {
209         return igGetWindowPos();
210     }
211 
212     ImVec2 GetWindowSize() @trusted
213     {
214         return igGetWindowSize();
215     }
216 
217     float GetWindowWidth() @trusted
218     {
219         return igGetWindowWidth();
220     }
221 
222     float GetWindowHeight() @trusted
223     {
224         return igGetWindowHeight();
225     }
226 
227     void SetNextWindowPos(ImVec2 pos, ImGuiCond cond) @trusted
228     {
229         igSetNextWindowPos(pos, cond);
230     }
231 
232     void SetNextWindowPosEx(ImVec2 pos, ImGuiCond cond, ImVec2 pivot) @trusted
233     {
234         igSetNextWindowPosEx(pos, cond, pivot);
235     }
236 
237     void SetNextWindowSize(ImVec2 size, ImGuiCond cond) @trusted
238     {
239         igSetNextWindowSize(size, cond);
240     }
241 
242     void SetNextWindowSizeConstraints(ImVec2 size_min, ImVec2 size_max, ImGuiSizeCallback custom_callback, scope
243         void* custom_callback_data) @trusted
244     {
245         igSetNextWindowSizeConstraints(size_min, size_max, custom_callback, custom_callback_data);
246     }
247 
248     void SetNextWindowContentSize(
249         ImVec2 size) @trusted
250     {
251         igSetNextWindowContentSize(
252             size);
253     }
254 
255     void SetNextWindowCollapsed(bool collapsed, ImGuiCond cond) @trusted
256     {
257         igSetNextWindowCollapsed(collapsed, cond);
258     }
259 
260     void SetNextWindowFocus() @trusted
261     {
262         igSetNextWindowFocus();
263     }
264 
265     void SetNextWindowScroll(
266         ImVec2 scroll) @trusted
267     {
268         igSetNextWindowScroll(
269             scroll);
270     }
271 
272     void SetNextWindowBgAlpha(
273         float alpha) @trusted
274     {
275         igSetNextWindowBgAlpha(
276             alpha);
277     }
278 
279     void SetWindowPos(ImVec2 pos, ImGuiCond cond) @trusted
280     {
281         igSetWindowPos(pos, cond);
282     }
283 
284     void SetWindowSize(ImVec2 size, ImGuiCond cond) @trusted
285     {
286         igSetWindowSize(size, cond);
287     }
288 
289     void SetWindowCollapsed(bool collapsed, ImGuiCond cond) @trusted
290     {
291         igSetWindowCollapsed(collapsed, cond);
292     }
293 
294     void SetWindowFocus() @trusted
295     {
296         igSetWindowFocus();
297     }
298 
299     void SetWindowFontScale(
300         float scale) @trusted
301     {
302         igSetWindowFontScale(scale);
303     }
304 
305     void SetWindowPosStr(scope const(char)* name, ImVec2 pos, ImGuiCond cond) @trusted
306     {
307         igSetWindowPosStr(name, pos, cond);
308     }
309 
310     void SetWindowSizeStr(scope const(char)* name, ImVec2 size, ImGuiCond cond) @trusted
311     {
312         igSetWindowSizeStr(name, size, cond);
313     }
314 
315     void SetWindowCollapsedStr(scope const(char)* name, bool collapsed, ImGuiCond cond) @trusted
316     {
317         igSetWindowCollapsedStr(name, collapsed, cond);
318     }
319 
320     void SetWindowFocusStr(
321         scope const(char)* name) @trusted
322     {
323         igSetWindowFocusStr(name);
324     }
325 
326     float GetScrollX() @trusted
327     {
328         return igGetScrollX();
329     }
330 
331     float GetScrollY() @trusted
332     {
333         return igGetScrollY();
334     }
335 
336     void SetScrollX(float scroll_x) @trusted
337     {
338         igSetScrollX(scroll_x);
339     }
340 
341     void SetScrollY(float scroll_y) @trusted
342     {
343         igSetScrollY(scroll_y);
344     }
345 
346     float GetScrollMaxX() @trusted
347     {
348         return igGetScrollMaxX();
349     }
350 
351     float GetScrollMaxY() @trusted
352     {
353         return igGetScrollMaxY();
354     }
355 
356     void SetScrollHereX(
357         float center_x_ratio) @trusted
358     {
359         igSetScrollHereX(
360             center_x_ratio);
361     }
362 
363     void SetScrollHereY(
364         float center_y_ratio) @trusted
365     {
366         igSetScrollHereY(
367             center_y_ratio);
368     }
369 
370     void SetScrollFromPosX(float local_x, float center_x_ratio) @trusted
371     {
372         igSetScrollFromPosX(local_x, center_x_ratio);
373     }
374 
375     void SetScrollFromPosY(float local_y, float center_y_ratio) @trusted
376     {
377         igSetScrollFromPosY(local_y, center_y_ratio);
378     }
379 
380     void PushFont(scope ImFont* font) @trusted
381     {
382         igPushFont(font);
383     }
384 
385     void PopFont() @trusted
386     {
387         igPopFont();
388     }
389 
390     void PushStyleColor(ImGuiCol idx, ImU32 col) @trusted
391     {
392         igPushStyleColor(idx, col);
393     }
394 
395     void PushStyleColorImVec4(ImGuiCol idx, ImVec4 col) @trusted
396     {
397         igPushStyleColorImVec4(idx, col);
398     }
399 
400     void PopStyleColor() @trusted
401     {
402         igPopStyleColor();
403     }
404 
405     void PopStyleColorEx(int count) @trusted
406     {
407         igPopStyleColorEx(count);
408     }
409 
410     void PushStyleVar(ImGuiStyleVar idx, float val) @trusted
411     {
412         igPushStyleVar(idx, val);
413     }
414 
415     void PushStyleVarImVec2(ImGuiStyleVar idx, ImVec2 val) @trusted
416     {
417         igPushStyleVarImVec2(idx, val);
418     }
419 
420     void PushStyleVarX(ImGuiStyleVar idx, float val_x) @trusted
421     {
422         igPushStyleVarX(idx, val_x);
423     }
424 
425     void PushStyleVarY(ImGuiStyleVar idx, float val_y) @trusted
426     {
427         igPushStyleVarY(idx, val_y);
428     }
429 
430     void PopStyleVar() @trusted
431     {
432         igPopStyleVar();
433     }
434 
435     void PopStyleVarEx(int count) @trusted
436     {
437         igPopStyleVarEx(count);
438     }
439 
440     void PushItemFlag(ImGuiItemFlags option, bool enabled) @trusted
441     {
442         igPushItemFlag(option, enabled);
443     }
444 
445     void PopItemFlag() @trusted
446     {
447         igPopItemFlag();
448     }
449 
450     void PushItemWidth(
451         float item_width) @trusted
452     {
453         igPushItemWidth(item_width);
454     }
455 
456     void PopItemWidth() @trusted
457     {
458         igPopItemWidth();
459     }
460 
461     void SetNextItemWidth(
462         float item_width) @trusted
463     {
464         igSetNextItemWidth(
465             item_width);
466     }
467 
468     float CalcItemWidth() @trusted
469     {
470         return igCalcItemWidth();
471     }
472 
473     void PushTextWrapPos(
474         float wrap_local_pos_x) @trusted
475     {
476         igPushTextWrapPos(
477             wrap_local_pos_x);
478     }
479 
480     void PopTextWrapPos() @trusted
481     {
482         igPopTextWrapPos();
483     }
484 
485     scope ImFont* GetFont() @trusted
486     {
487         return igGetFont();
488     }
489 
490     float GetFontSize() @trusted
491     {
492         return igGetFontSize();
493     }
494 
495     ImVec2 GetFontTexUvWhitePixel() @trusted
496     {
497         return igGetFontTexUvWhitePixel();
498     }
499 
500     ImU32 GetColorU32(ImGuiCol idx) @trusted
501     {
502         return igGetColorU32(idx);
503     }
504 
505     ImU32 GetColorU32Ex(ImGuiCol idx, float alpha_mul) @trusted
506     {
507         return igGetColorU32Ex(idx, alpha_mul);
508     }
509 
510     ImU32 GetColorU32ImVec4(
511         ImVec4 col) @trusted
512     {
513         return igGetColorU32ImVec4(
514             col);
515     }
516 
517     ImU32 GetColorU32ImU32(
518         ImU32 col) @trusted
519     {
520         return igGetColorU32ImU32(
521             col);
522     }
523 
524     ImU32 GetColorU32ImU32Ex(ImU32 col, float alpha_mul) @trusted
525     {
526         return igGetColorU32ImU32Ex(col, alpha_mul);
527     }
528 
529     scope ImVec4* GetStyleColorVec4(
530         ImGuiCol idx) @trusted
531     {
532         return igGetStyleColorVec4(
533             idx);
534     }
535 
536     ImVec2 GetCursorScreenPos() @trusted
537     {
538         return igGetCursorScreenPos();
539     }
540 
541     void SetCursorScreenPos(
542         ImVec2 pos) @trusted
543     {
544         igSetCursorScreenPos(
545             pos);
546     }
547 
548     ImVec2 GetContentRegionAvail() @trusted
549     {
550         return igGetContentRegionAvail();
551     }
552 
553     ImVec2 GetCursorPos() @trusted
554     {
555         return igGetCursorPos();
556     }
557 
558     float GetCursorPosX() @trusted
559     {
560         return igGetCursorPosX();
561     }
562 
563     float GetCursorPosY() @trusted
564     {
565         return igGetCursorPosY();
566     }
567 
568     void SetCursorPos(
569         ImVec2 local_pos) @trusted
570     {
571         igSetCursorPos(
572             local_pos);
573     }
574 
575     void SetCursorPosX(
576         float local_x) @trusted
577     {
578         igSetCursorPosX(local_x);
579     }
580 
581     void SetCursorPosY(
582         float local_y) @trusted
583     {
584         igSetCursorPosY(local_y);
585     }
586 
587     ImVec2 GetCursorStartPos() @trusted
588     {
589         return igGetCursorStartPos();
590     }
591 
592     void Separator() @trusted
593     {
594         igSeparator();
595     }
596 
597     void SameLine() @trusted
598     {
599         igSameLine();
600     }
601 
602     void SameLineEx(float offset_from_start_x, float spacing) @trusted
603     {
604         igSameLineEx(offset_from_start_x, spacing);
605     }
606 
607     void NewLine() @trusted
608     {
609         igNewLine();
610     }
611 
612     void Spacing() @trusted
613     {
614         igSpacing();
615     }
616 
617     void Dummy(ImVec2 size) @trusted
618     {
619         igDummy(size);
620     }
621 
622     void Indent() @trusted
623     {
624         igIndent();
625     }
626 
627     void IndentEx(float indent_w) @trusted
628     {
629         igIndentEx(indent_w);
630     }
631 
632     void Unindent() @trusted
633     {
634         igUnindent();
635     }
636 
637     void UnindentEx(
638         float indent_w) @trusted
639     {
640         igUnindentEx(indent_w);
641     }
642 
643     void BeginGroup() @trusted
644     {
645         igBeginGroup();
646     }
647 
648     void EndGroup() @trusted
649     {
650         igEndGroup();
651     }
652 
653     void AlignTextToFramePadding() @trusted
654     {
655         igAlignTextToFramePadding();
656     }
657 
658     float GetTextLineHeight() @trusted
659     {
660         return igGetTextLineHeight();
661     }
662 
663     float GetTextLineHeightWithSpacing() @trusted
664     {
665         return igGetTextLineHeightWithSpacing();
666     }
667 
668     float GetFrameHeight() @trusted
669     {
670         return igGetFrameHeight();
671     }
672 
673     float GetFrameHeightWithSpacing() @trusted
674     {
675         return igGetFrameHeightWithSpacing();
676     }
677 
678     void PushID(
679         scope const(char)* str_id) @trusted
680     {
681         igPushID(str_id);
682     }
683 
684     void PushIDStr(scope const(char)* str_id_begin, scope const(char)* str_id_end) @trusted
685     {
686         igPushIDStr(str_id_begin, str_id_end);
687     }
688 
689     void PushIDPtr(
690         scope void* ptr_id) @trusted
691     {
692         igPushIDPtr(ptr_id);
693     }
694 
695     void PushIDInt(int int_id) @trusted
696     {
697         igPushIDInt(int_id);
698     }
699 
700     void PopID() @trusted
701     {
702         igPopID();
703     }
704 
705     ImGuiID GetID(
706         scope const(char)* str_id) @trusted
707     {
708         return igGetID(str_id);
709     }
710 
711     ImGuiID GetIDStr(scope const(char)* str_id_begin, scope const(char)* str_id_end) @trusted
712     {
713         return igGetIDStr(str_id_begin, str_id_end);
714     }
715 
716     ImGuiID GetIDPtr(
717         scope void* ptr_id) @trusted
718     {
719         return igGetIDPtr(
720             ptr_id);
721     }
722 
723     ImGuiID GetIDInt(int int_id) @trusted
724     {
725         return igGetIDInt(
726             int_id);
727     }
728 
729     void TextUnformatted(
730         scope const(char)* text) @trusted
731     {
732         igTextUnformatted(text);
733     }
734 
735     void TextUnformattedEx(scope const(char)* text, scope const(char)* text_end) @trusted
736     {
737         igTextUnformattedEx(text, text_end);
738     }
739 
740     alias Text = igText;
741 
742     void TextV(scope const(char)* fmt, __builtin_va_list args) @trusted
743     {
744         igTextV(fmt, args);
745     }
746 
747     void TextColored(ImVec4 col, scope const(char)* fmt) @trusted
748     {
749         igTextColored(col, fmt);
750     }
751 
752     void TextColoredV(ImVec4 col, scope const(char)* fmt, __builtin_va_list args) @trusted
753     {
754         igTextColoredV(col, fmt, args);
755     }
756 
757     void TextDisabled(
758         scope const(char)* fmt) @trusted
759     {
760         igTextDisabled(fmt);
761     }
762 
763     void TextDisabledV(scope const(char)* fmt, __builtin_va_list args) @trusted
764     {
765         igTextDisabledV(fmt, args);
766     }
767 
768     void TextWrapped(
769         scope const(char)* fmt) @trusted
770     {
771         igTextWrapped(fmt);
772     }
773 
774     void TextWrappedV(scope const(char)* fmt, __builtin_va_list args) @trusted
775     {
776         igTextWrappedV(fmt, args);
777     }
778 
779     void LabelText(scope const(char)* label, scope const(char)* fmt) @trusted
780     {
781         igLabelText(label, fmt);
782     }
783 
784     void LabelTextV(scope const(char)* label, scope const(char)* fmt, __builtin_va_list args) @trusted
785     {
786         igLabelTextV(label, fmt, args);
787     }
788 
789     void BulletText(
790         scope const(char)* fmt) @trusted
791     {
792         igBulletText(fmt);
793     }
794 
795     void BulletTextV(scope const(char)* fmt, __builtin_va_list args) @trusted
796     {
797         igBulletTextV(fmt, args);
798     }
799 
800     void SeparatorText(
801         scope const(char)* label) @trusted
802     {
803         igSeparatorText(label);
804     }
805 
806     bool Button(
807         scope const(char)* label) @trusted
808     {
809         return igButton(label);
810     }
811 
812     bool ButtonEx(scope const(char)* label, ImVec2 size) @trusted
813     {
814         return igButtonEx(label, size);
815     }
816 
817     bool SmallButton(
818         scope const(char)* label) @trusted
819     {
820         return igSmallButton(
821             label);
822     }
823 
824     bool InvisibleButton(scope const(char)* str_id, ImVec2 size, ImGuiButtonFlags flags) @trusted
825     {
826         return igInvisibleButton(str_id, size, flags);
827     }
828 
829     bool ArrowButton(scope const(char)* str_id, ImGuiDir dir) @trusted
830     {
831         return igArrowButton(str_id, dir);
832     }
833 
834     bool Checkbox(scope const(char)* label, scope bool* v) @trusted
835     {
836         return igCheckbox(label, v);
837     }
838 
839     bool CheckboxFlagsIntPtr(scope const(char)* label, scope int* flags, int flags_value) @trusted
840     {
841         return igCheckboxFlagsIntPtr(label, flags, flags_value);
842     }
843 
844     bool CheckboxFlagsUintPtr(scope const(char)* label, scope uint* flags, uint flags_value) @trusted
845     {
846         return igCheckboxFlagsUintPtr(label, flags, flags_value);
847     }
848 
849     bool RadioButton(scope const(char)* label, bool active) @trusted
850     {
851         return igRadioButton(label, active);
852     }
853 
854     bool RadioButtonIntPtr(scope const(char)* label, scope int* v, int v_button) @trusted
855     {
856         return igRadioButtonIntPtr(label, v, v_button);
857     }
858 
859     void ProgressBar(float fraction, ImVec2 size_arg, scope const(char)* overlay) @trusted
860     {
861         igProgressBar(fraction, size_arg, overlay);
862     }
863 
864     void Bullet() @trusted
865     {
866         igBullet();
867     }
868 
869     bool TextLink(
870         scope const(char)* label) @trusted
871     {
872         return igTextLink(label);
873     }
874 
875     void TextLinkOpenURL(
876         scope const(char)* label) @trusted
877     {
878         igTextLinkOpenURL(label);
879     }
880 
881     void TextLinkOpenURLEx(scope const(char)* label, scope const(char)* url) @trusted
882     {
883         igTextLinkOpenURLEx(label, url);
884     }
885 
886     void Image(ImTextureID user_texture_id, ImVec2 image_size) @trusted
887     {
888         igImage(user_texture_id, image_size);
889     }
890 
891     void ImageEx(ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1) @trusted
892     {
893         igImageEx(user_texture_id, image_size, uv0, uv1);
894     }
895 
896     void ImageWithBg(ImTextureID user_texture_id, ImVec2 image_size) @trusted
897     {
898         igImageWithBg(user_texture_id, image_size);
899     }
900 
901     void ImageWithBgEx(ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1, ImVec4 bg_col, ImVec4 tint_col) @trusted
902     {
903         igImageWithBgEx(user_texture_id, image_size, uv0, uv1, bg_col, tint_col);
904     }
905 
906     bool ImageButton(scope const(char)* str_id, ImTextureID user_texture_id, ImVec2 image_size) @trusted
907     {
908         return igImageButton(str_id, user_texture_id, image_size);
909     }
910 
911     bool ImageButtonEx(scope const(char)* str_id, ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1, ImVec4 bg_col, ImVec4 tint_col) @trusted
912     {
913         return igImageButtonEx(str_id, user_texture_id, image_size, uv0, uv1, bg_col, tint_col);
914     }
915 
916     bool BeginCombo(scope const(char)* label, scope const(char)* preview_value, ImGuiComboFlags flags) @trusted
917     {
918         return igBeginCombo(label, preview_value, flags);
919     }
920 
921     void EndCombo() @trusted
922     {
923         igEndCombo();
924     }
925 
926     bool ComboChar(scope const(char)* label, scope int* current_item, scope const(char)** items, int items_count) @trusted
927     {
928         return igComboChar(label, current_item, items, items_count);
929     }
930 
931     bool ComboCharEx(scope const(char)* label, scope int* current_item, scope const(char)** items, int items_count, int popup_max_height_in_items) @trusted
932     {
933         return igComboCharEx(label, current_item, items, items_count, popup_max_height_in_items);
934     }
935 
936     bool Combo(scope const(char)* label, scope int* current_item, scope const(char)* items_separated_by_zeros) @trusted
937     {
938         return igCombo(label, current_item, items_separated_by_zeros);
939     }
940 
941     bool ComboEx(scope const(char)* label, scope int* current_item, scope const(char)* items_separated_by_zeros, int popup_max_height_in_items) @trusted
942     {
943         return igComboEx(label, current_item, items_separated_by_zeros, popup_max_height_in_items);
944     }
945 
946     bool ComboCallback(scope const(char)* label, scope int* current_item, ImGuiGetterFunc getter, scope
947         void* user_data, int items_count) @trusted
948     {
949         return igComboCallback(label, current_item, getter, user_data, items_count);
950     }
951 
952     bool ComboCallbackEx(scope const(char)* label, scope int* current_item, ImGuiGetterFunc getter, scope
953         void* user_data, int items_count, int popup_max_height_in_items) @trusted
954     {
955         return igComboCallbackEx(label, current_item, getter, user_data, items_count, popup_max_height_in_items);
956     }
957 
958     bool DragFloat(scope const(char)* label, scope float* v) @trusted
959     {
960         return igDragFloat(label, v);
961     }
962 
963     bool DragFloatEx(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope
964         char* format, ImGuiSliderFlags flags) @trusted
965     {
966         return igDragFloatEx(label, v, v_speed, v_min, v_max, format, flags);
967     }
968 
969     bool DragFloat2(scope const(char)* label, scope float* v) @trusted
970     {
971         return igDragFloat2(label, v);
972     }
973 
974     bool DragFloat2Ex(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope
975         char* format, ImGuiSliderFlags flags) @trusted
976     {
977         return igDragFloat2Ex(label, v, v_speed, v_min, v_max, format, flags);
978     }
979 
980     bool DragFloat3(scope const(char)* label, scope float* v) @trusted
981     {
982         return igDragFloat3(label, v);
983     }
984 
985     bool DragFloat3Ex(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope
986         char* format, ImGuiSliderFlags flags) @trusted
987     {
988         return igDragFloat3Ex(label, v, v_speed, v_min, v_max, format, flags);
989     }
990 
991     bool DragFloat4(scope const(char)* label, scope float* v) @trusted
992     {
993         return igDragFloat4(label, v);
994     }
995 
996     bool DragFloat4Ex(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope
997         char* format, ImGuiSliderFlags flags) @trusted
998     {
999         return igDragFloat4Ex(label, v, v_speed, v_min, v_max, format, flags);
1000     }
1001 
1002     bool DragFloatRange2(scope const(char)* label, scope float* v_current_min, scope
1003         float* v_current_max) @trusted
1004     {
1005         return igDragFloatRange2(label, v_current_min, v_current_max);
1006     }
1007 
1008     bool DragFloatRange2Ex(scope const(char)* label, scope float* v_current_min, scope
1009         float* v_current_max, float v_speed, float v_min, float v_max, scope const(char)* format, scope
1010         char* format_max, ImGuiSliderFlags flags) @trusted
1011     {
1012         return igDragFloatRange2Ex(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max, flags);
1013     }
1014 
1015     bool DragInt(scope const(char)* label, scope int* v) @trusted
1016     {
1017         return igDragInt(label, v);
1018     }
1019 
1020     bool DragIntEx(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope
1021         char* format, ImGuiSliderFlags flags) @trusted
1022     {
1023         return igDragIntEx(label, v, v_speed, v_min, v_max, format, flags);
1024     }
1025 
1026     bool DragInt2(scope const(char)* label, scope int* v) @trusted
1027     {
1028         return igDragInt2(label, v);
1029     }
1030 
1031     bool DragInt2Ex(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope
1032         char* format, ImGuiSliderFlags flags) @trusted
1033     {
1034         return igDragInt2Ex(label, v, v_speed, v_min, v_max, format, flags);
1035     }
1036 
1037     bool DragInt3(scope const(char)* label, scope int* v) @trusted
1038     {
1039         return igDragInt3(label, v);
1040     }
1041 
1042     bool DragInt3Ex(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope
1043         char* format, ImGuiSliderFlags flags) @trusted
1044     {
1045         return igDragInt3Ex(label, v, v_speed, v_min, v_max, format, flags);
1046     }
1047 
1048     bool DragInt4(scope const(char)* label, scope int* v) @trusted
1049     {
1050         return igDragInt4(label, v);
1051     }
1052 
1053     bool DragInt4Ex(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope
1054         char* format, ImGuiSliderFlags flags) @trusted
1055     {
1056         return igDragInt4Ex(label, v, v_speed, v_min, v_max, format, flags);
1057     }
1058 
1059     bool DragIntRange2(scope const(char)* label, scope int* v_current_min, scope int* v_current_max) @trusted
1060     {
1061         return igDragIntRange2(label, v_current_min, v_current_max);
1062     }
1063 
1064     bool DragIntRange2Ex(scope const(char)* label, scope int* v_current_min, scope int* v_current_max, float v_speed, int v_min, int v_max, scope
1065         char* format, scope const(char)* format_max, ImGuiSliderFlags flags) @trusted
1066     {
1067         return igDragIntRange2Ex(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max, flags);
1068     }
1069 
1070     bool DragScalar(scope const(char)* label, ImGuiDataType data_type, scope void* p_data) @trusted
1071     {
1072         return igDragScalar(label, data_type, p_data);
1073     }
1074 
1075     bool DragScalarEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, float v_speed, scope void* p_min, scope
1076         void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1077     {
1078         return igDragScalarEx(label, data_type, p_data, v_speed, p_min, p_max, format, flags);
1079     }
1080 
1081     bool DragScalarN(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components) @trusted
1082     {
1083         return igDragScalarN(label, data_type, p_data, components);
1084     }
1085 
1086     bool DragScalarNEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components, float v_speed, scope
1087         void* p_min, scope void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1088     {
1089         return igDragScalarNEx(label, data_type, p_data, components, v_speed, p_min, p_max, format, flags);
1090     }
1091 
1092     bool SliderFloat(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted
1093     {
1094         return igSliderFloat(label, v, v_min, v_max);
1095     }
1096 
1097     bool SliderFloatEx(scope const(char)* label, scope float* v, float v_min, float v_max, scope
1098         char* format, ImGuiSliderFlags flags) @trusted
1099     {
1100         return igSliderFloatEx(label, v, v_min, v_max, format, flags);
1101     }
1102 
1103     bool SliderFloat2(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted
1104     {
1105         return igSliderFloat2(label, v, v_min, v_max);
1106     }
1107 
1108     bool SliderFloat2Ex(scope const(char)* label, scope float* v, float v_min, float v_max, scope
1109         char* format, ImGuiSliderFlags flags) @trusted
1110     {
1111         return igSliderFloat2Ex(label, v, v_min, v_max, format, flags);
1112     }
1113 
1114     bool SliderFloat3(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted
1115     {
1116         return igSliderFloat3(label, v, v_min, v_max);
1117     }
1118 
1119     bool SliderFloat3Ex(scope const(char)* label, scope float* v, float v_min, float v_max, scope
1120         char* format, ImGuiSliderFlags flags) @trusted
1121     {
1122         return igSliderFloat3Ex(label, v, v_min, v_max, format, flags);
1123     }
1124 
1125     bool SliderFloat4(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted
1126     {
1127         return igSliderFloat4(label, v, v_min, v_max);
1128     }
1129 
1130     bool SliderFloat4Ex(scope const(char)* label, scope float* v, float v_min, float v_max, scope
1131         char* format, ImGuiSliderFlags flags) @trusted
1132     {
1133         return igSliderFloat4Ex(label, v, v_min, v_max, format, flags);
1134     }
1135 
1136     bool SliderAngle(scope const(char)* label, scope float* v_rad) @trusted
1137     {
1138         return igSliderAngle(label, v_rad);
1139     }
1140 
1141     bool SliderAngleEx(scope const(char)* label, scope float* v_rad, float v_degrees_min, float v_degrees_max, scope
1142         char* format, ImGuiSliderFlags flags) @trusted
1143     {
1144         return igSliderAngleEx(label, v_rad, v_degrees_min, v_degrees_max, format, flags);
1145     }
1146 
1147     bool SliderInt(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted
1148     {
1149         return igSliderInt(label, v, v_min, v_max);
1150     }
1151 
1152     bool SliderIntEx(scope const(char)* label, scope int* v, int v_min, int v_max, scope
1153         char* format, ImGuiSliderFlags flags) @trusted
1154     {
1155         return igSliderIntEx(label, v, v_min, v_max, format, flags);
1156     }
1157 
1158     bool SliderInt2(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted
1159     {
1160         return igSliderInt2(label, v, v_min, v_max);
1161     }
1162 
1163     bool SliderInt2Ex(scope const(char)* label, scope int* v, int v_min, int v_max, scope
1164         char* format, ImGuiSliderFlags flags) @trusted
1165     {
1166         return igSliderInt2Ex(label, v, v_min, v_max, format, flags);
1167     }
1168 
1169     bool SliderInt3(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted
1170     {
1171         return igSliderInt3(label, v, v_min, v_max);
1172     }
1173 
1174     bool SliderInt3Ex(scope const(char)* label, scope int* v, int v_min, int v_max, scope
1175         char* format, ImGuiSliderFlags flags) @trusted
1176     {
1177         return igSliderInt3Ex(label, v, v_min, v_max, format, flags);
1178     }
1179 
1180     bool SliderInt4(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted
1181     {
1182         return igSliderInt4(label, v, v_min, v_max);
1183     }
1184 
1185     bool SliderInt4Ex(scope const(char)* label, scope int* v, int v_min, int v_max, scope
1186         char* format, ImGuiSliderFlags flags) @trusted
1187     {
1188         return igSliderInt4Ex(label, v, v_min, v_max, format, flags);
1189     }
1190 
1191     bool SliderScalar(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, scope
1192         void* p_min, scope void* p_max) @trusted
1193     {
1194         return igSliderScalar(label, data_type, p_data, p_min, p_max);
1195     }
1196 
1197     bool SliderScalarEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, scope void* p_min, scope
1198         void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1199     {
1200         return igSliderScalarEx(label, data_type, p_data, p_min, p_max, format, flags);
1201     }
1202 
1203     bool SliderScalarN(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components, scope
1204         void* p_min, scope void* p_max) @trusted
1205     {
1206         return igSliderScalarN(label, data_type, p_data, components, p_min, p_max);
1207     }
1208 
1209     bool SliderScalarNEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components, scope void* p_min, scope
1210         void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1211     {
1212         return igSliderScalarNEx(label, data_type, p_data, components, p_min, p_max, format, flags);
1213     }
1214 
1215     bool VSliderFloat(scope const(char)* label, ImVec2 size, scope float* v, float v_min, float v_max) @trusted
1216     {
1217         return igVSliderFloat(label, size, v, v_min, v_max);
1218     }
1219 
1220     bool VSliderFloatEx(scope const(char)* label, ImVec2 size, scope float* v, float v_min, float v_max, scope
1221         char* format, ImGuiSliderFlags flags) @trusted
1222     {
1223         return igVSliderFloatEx(label, size, v, v_min, v_max, format, flags);
1224     }
1225 
1226     bool VSliderInt(scope const(char)* label, ImVec2 size, scope int* v, int v_min, int v_max) @trusted
1227     {
1228         return igVSliderInt(label, size, v, v_min, v_max);
1229     }
1230 
1231     bool VSliderIntEx(scope const(char)* label, ImVec2 size, scope int* v, int v_min, int v_max, scope
1232         char* format, ImGuiSliderFlags flags) @trusted
1233     {
1234         return igVSliderIntEx(label, size, v, v_min, v_max, format, flags);
1235     }
1236 
1237     bool VSliderScalar(scope const(char)* label, ImVec2 size, ImGuiDataType data_type, scope
1238         void* p_data, scope void* p_min, scope void* p_max) @trusted
1239     {
1240         return igVSliderScalar(label, size, data_type, p_data, p_min, p_max);
1241     }
1242 
1243     bool VSliderScalarEx(scope const(char)* label, ImVec2 size, ImGuiDataType data_type, scope
1244         void* p_data, scope void* p_min, scope void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1245     {
1246         return igVSliderScalarEx(label, size, data_type, p_data, p_min, p_max, format, flags);
1247     }
1248 
1249     bool InputText(scope const(char)* label, scope char* buf, size_t buf_size, ImGuiInputTextFlags flags) @trusted
1250     {
1251         return igInputText(label, buf, buf_size, flags);
1252     }
1253 
1254     bool InputTextEx(scope const(char)* label, scope char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, scope
1255         void* user_data) @trusted
1256     {
1257         return igInputTextEx(label, buf, buf_size, flags, callback, user_data);
1258     }
1259 
1260     bool InputTextMultiline(scope const(char)* label, scope char* buf, size_t buf_size) @trusted
1261     {
1262         return igInputTextMultiline(label, buf, buf_size);
1263     }
1264 
1265     bool InputTextMultilineEx(scope const(char)* label, scope char* buf, size_t buf_size, ImVec2 size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, scope
1266         void* user_data) @trusted
1267     {
1268         return igInputTextMultilineEx(label, buf, buf_size, size, flags, callback, user_data);
1269     }
1270 
1271     bool InputTextWithHint(scope const(char)* label, scope const(char)* hint, scope char* buf, size_t buf_size, ImGuiInputTextFlags flags) @trusted
1272     {
1273         return igInputTextWithHint(label, hint, buf, buf_size, flags);
1274     }
1275 
1276     bool InputTextWithHintEx(scope const(char)* label, scope const(char)* hint, scope char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, scope
1277         void* user_data) @trusted
1278     {
1279         return igInputTextWithHintEx(label, hint, buf, buf_size, flags, callback, user_data);
1280     }
1281 
1282     bool InputFloat(scope const(char)* label, scope float* v) @trusted
1283     {
1284         return igInputFloat(label, v);
1285     }
1286 
1287     bool InputFloatEx(scope const(char)* label, scope float* v, float step, float step_fast, scope
1288         char* format, ImGuiInputTextFlags flags) @trusted
1289     {
1290         return igInputFloatEx(label, v, step, step_fast, format, flags);
1291     }
1292 
1293     bool InputFloat2(scope const(char)* label, scope float* v) @trusted
1294     {
1295         return igInputFloat2(label, v);
1296     }
1297 
1298     bool InputFloat2Ex(scope const(char)* label, scope float* v, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1299     {
1300         return igInputFloat2Ex(label, v, format, flags);
1301     }
1302 
1303     bool InputFloat3(scope const(char)* label, scope float* v) @trusted
1304     {
1305         return igInputFloat3(label, v);
1306     }
1307 
1308     bool InputFloat3Ex(scope const(char)* label, scope float* v, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1309     {
1310         return igInputFloat3Ex(label, v, format, flags);
1311     }
1312 
1313     bool InputFloat4(scope const(char)* label, scope float* v) @trusted
1314     {
1315         return igInputFloat4(label, v);
1316     }
1317 
1318     bool InputFloat4Ex(scope const(char)* label, scope float* v, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1319     {
1320         return igInputFloat4Ex(label, v, format, flags);
1321     }
1322 
1323     bool InputInt(scope const(char)* label, scope int* v) @trusted
1324     {
1325         return igInputInt(label, v);
1326     }
1327 
1328     bool InputIntEx(scope const(char)* label, scope int* v, int step, int step_fast, ImGuiInputTextFlags flags) @trusted
1329     {
1330         return igInputIntEx(label, v, step, step_fast, flags);
1331     }
1332 
1333     bool InputInt2(scope const(char)* label, scope int* v, ImGuiInputTextFlags flags) @trusted
1334     {
1335         return igInputInt2(label, v, flags);
1336     }
1337 
1338     bool InputInt3(scope const(char)* label, scope int* v, ImGuiInputTextFlags flags) @trusted
1339     {
1340         return igInputInt3(label, v, flags);
1341     }
1342 
1343     bool InputInt4(scope const(char)* label, scope int* v, ImGuiInputTextFlags flags) @trusted
1344     {
1345         return igInputInt4(label, v, flags);
1346     }
1347 
1348     bool InputDouble(scope const(char)* label, scope double* v) @trusted
1349     {
1350         return igInputDouble(label, v);
1351     }
1352 
1353     bool InputDoubleEx(scope const(char)* label, scope double* v, double step, double step_fast, scope
1354         char* format, ImGuiInputTextFlags flags) @trusted
1355     {
1356         return igInputDoubleEx(label, v, step, step_fast, format, flags);
1357     }
1358 
1359     bool InputScalar(scope const(char)* label, ImGuiDataType data_type, scope void* p_data) @trusted
1360     {
1361         return igInputScalar(label, data_type, p_data);
1362     }
1363 
1364     bool InputScalarEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, scope void* p_step, scope
1365         void* p_step_fast, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1366     {
1367         return igInputScalarEx(label, data_type, p_data, p_step, p_step_fast, format, flags);
1368     }
1369 
1370     bool InputScalarN(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components) @trusted
1371     {
1372         return igInputScalarN(label, data_type, p_data, components);
1373     }
1374 
1375     bool InputScalarNEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components, scope void* p_step, scope
1376         void* p_step_fast, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1377     {
1378         return igInputScalarNEx(label, data_type, p_data, components, p_step, p_step_fast, format, flags);
1379     }
1380 
1381     bool ColorEdit3(scope const(char)* label, scope float* col, ImGuiColorEditFlags flags) @trusted
1382     {
1383         return igColorEdit3(label, col, flags);
1384     }
1385 
1386     bool ColorEdit4(scope const(char)* label, scope float* col, ImGuiColorEditFlags flags) @trusted
1387     {
1388         return igColorEdit4(label, col, flags);
1389     }
1390 
1391     bool ColorPicker3(scope const(char)* label, scope float* col, ImGuiColorEditFlags flags) @trusted
1392     {
1393         return igColorPicker3(label, col, flags);
1394     }
1395 
1396     bool ColorPicker4(scope const(char)* label, scope float* col, ImGuiColorEditFlags flags, scope
1397         float* ref_col) @trusted
1398     {
1399         return igColorPicker4(label, col, flags, ref_col);
1400     }
1401 
1402     bool ColorButton(scope const(char)* desc_id, ImVec4 col, ImGuiColorEditFlags flags) @trusted
1403     {
1404         return igColorButton(desc_id, col, flags);
1405     }
1406 
1407     bool ColorButtonEx(scope const(char)* desc_id, ImVec4 col, ImGuiColorEditFlags flags, ImVec2 size) @trusted
1408     {
1409         return igColorButtonEx(desc_id, col, flags, size);
1410     }
1411 
1412     void SetColorEditOptions(
1413         ImGuiColorEditFlags flags) @trusted
1414     {
1415         igSetColorEditOptions(
1416             flags);
1417     }
1418 
1419     bool TreeNode(
1420         scope const(char)* label) @trusted
1421     {
1422         return igTreeNode(label);
1423     }
1424 
1425     bool TreeNodeStr(scope const(char)* str_id, scope const(char)* fmt) @trusted
1426     {
1427         return igTreeNodeStr(str_id, fmt);
1428     }
1429 
1430     bool TreeNodePtr(scope void* ptr_id, scope const(char)* fmt) @trusted
1431     {
1432         return igTreeNodePtr(ptr_id, fmt);
1433     }
1434 
1435     bool TreeNodeV(scope const(char)* str_id, scope const(char)* fmt, __builtin_va_list args) @trusted
1436     {
1437         return igTreeNodeV(str_id, fmt, args);
1438     }
1439 
1440     bool TreeNodeVPtr(scope void* ptr_id, scope const(char)* fmt, __builtin_va_list args) @trusted
1441     {
1442         return igTreeNodeVPtr(ptr_id, fmt, args);
1443     }
1444 
1445     bool TreeNodeEx(scope const(char)* label, ImGuiTreeNodeFlags flags) @trusted
1446     {
1447         return igTreeNodeEx(label, flags);
1448     }
1449 
1450     bool TreeNodeExStr(scope const(char)* str_id, ImGuiTreeNodeFlags flags, scope const(char)* fmt) @trusted
1451     {
1452         return igTreeNodeExStr(str_id, flags, fmt);
1453     }
1454 
1455     bool TreeNodeExPtr(scope void* ptr_id, ImGuiTreeNodeFlags flags, scope const(char)* fmt) @trusted
1456     {
1457         return igTreeNodeExPtr(ptr_id, flags, fmt);
1458     }
1459 
1460     bool TreeNodeExV(scope const(char)* str_id, ImGuiTreeNodeFlags flags, scope const(char)* fmt, __builtin_va_list args) @trusted
1461     {
1462         return igTreeNodeExV(str_id, flags, fmt, args);
1463     }
1464 
1465     bool TreeNodeExVPtr(scope void* ptr_id, ImGuiTreeNodeFlags flags, scope const(char)* fmt, __builtin_va_list args) @trusted
1466     {
1467         return igTreeNodeExVPtr(ptr_id, flags, fmt, args);
1468     }
1469 
1470     void TreePush(
1471         scope const(char)* str_id) @trusted
1472     {
1473         igTreePush(str_id);
1474     }
1475 
1476     void TreePushPtr(
1477         scope void* ptr_id) @trusted
1478     {
1479         igTreePushPtr(ptr_id);
1480     }
1481 
1482     void TreePop() @trusted
1483     {
1484         igTreePop();
1485     }
1486 
1487     float GetTreeNodeToLabelSpacing() @trusted
1488     {
1489         return igGetTreeNodeToLabelSpacing();
1490     }
1491 
1492     bool CollapsingHeader(scope const(char)* label, ImGuiTreeNodeFlags flags) @trusted
1493     {
1494         return igCollapsingHeader(label, flags);
1495     }
1496 
1497     bool CollapsingHeaderBoolPtr(scope const(char)* label, scope bool* p_visible, ImGuiTreeNodeFlags flags) @trusted
1498     {
1499         return igCollapsingHeaderBoolPtr(label, p_visible, flags);
1500     }
1501 
1502     void SetNextItemOpen(bool is_open, ImGuiCond cond) @trusted
1503     {
1504         igSetNextItemOpen(is_open, cond);
1505     }
1506 
1507     void SetNextItemStorageID(
1508         ImGuiID storage_id) @trusted
1509     {
1510         igSetNextItemStorageID(
1511             storage_id);
1512     }
1513 
1514     bool Selectable(
1515         scope const(char)* label) @trusted
1516     {
1517         return igSelectable(
1518             label);
1519     }
1520 
1521     bool SelectableEx(scope const(char)* label, bool selected, ImGuiSelectableFlags flags, ImVec2 size) @trusted
1522     {
1523         return igSelectableEx(label, selected, flags, size);
1524     }
1525 
1526     bool SelectableBoolPtr(scope const(char)* label, scope bool* p_selected, ImGuiSelectableFlags flags) @trusted
1527     {
1528         return igSelectableBoolPtr(label, p_selected, flags);
1529     }
1530 
1531     bool SelectableBoolPtrEx(scope const(char)* label, scope bool* p_selected, ImGuiSelectableFlags flags, ImVec2 size) @trusted
1532     {
1533         return igSelectableBoolPtrEx(label, p_selected, flags, size);
1534     }
1535 
1536     scope ImGuiMultiSelectIO* BeginMultiSelect(
1537         ImGuiMultiSelectFlags flags) @trusted
1538     {
1539         return igBeginMultiSelect(
1540             flags);
1541     }
1542 
1543     scope ImGuiMultiSelectIO* BeginMultiSelectEx(
1544         ImGuiMultiSelectFlags flags, int selection_size, int items_count) @trusted
1545     {
1546         return igBeginMultiSelectEx(flags, selection_size, items_count);
1547     }
1548 
1549     scope ImGuiMultiSelectIO* EndMultiSelect() @trusted
1550     {
1551         return igEndMultiSelect();
1552     }
1553 
1554     void SetNextItemSelectionUserData(
1555         ImGuiSelectionUserData selection_user_data) @trusted
1556     {
1557         igSetNextItemSelectionUserData(
1558             selection_user_data);
1559     }
1560 
1561     bool IsItemToggledSelection() @trusted
1562     {
1563         return igIsItemToggledSelection();
1564     }
1565 
1566     bool BeginListBox(scope const(char)* label, ImVec2 size) @trusted
1567     {
1568         return igBeginListBox(label, size);
1569     }
1570 
1571     void EndListBox() @trusted
1572     {
1573         igEndListBox();
1574     }
1575 
1576     bool ListBox(scope const(char)* label, scope int* current_item, scope const(char)** items, int items_count, int height_in_items) @trusted
1577     {
1578         return igListBox(label, current_item, items, items_count, height_in_items);
1579     }
1580 
1581     bool ListBoxCallback(scope const(char)* label, scope int* current_item, ImGuiGetterFunc getter, scope
1582         void* user_data, int items_count) @trusted
1583     {
1584         return igListBoxCallback(label, current_item, getter, user_data, items_count);
1585     }
1586 
1587     bool ListBoxCallbackEx(scope const(char)* label, scope int* current_item, ImGuiGetterFunc getter, scope
1588         void* user_data, int items_count, int height_in_items) @trusted
1589     {
1590         return igListBoxCallbackEx(label, current_item, getter, user_data, items_count, height_in_items);
1591     }
1592 
1593     void PlotLines(scope const(char)* label, scope const(float)* values, int values_count) @trusted
1594     {
1595         igPlotLines(label, values, values_count);
1596     }
1597 
1598     void PlotLinesEx(scope const(char)* label, scope const(float)* values, int values_count, int values_offset, scope
1599         char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) @trusted
1600     {
1601         igPlotLinesEx(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride);
1602     }
1603 
1604     void PlotLinesCallback(scope const(char)* label, ImGuiValues_getterFunc values_getter, scope
1605         void* data, int values_count) @trusted
1606     {
1607         igPlotLinesCallback(label, values_getter, data, values_count);
1608     }
1609 
1610     void PlotLinesCallbackEx(scope const(char)* label, ImGuiValues_getterFunc values_getter, scope
1611         void* data, int values_count, int values_offset, scope const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) @trusted
1612     {
1613         igPlotLinesCallbackEx(label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size);
1614     }
1615 
1616     void PlotHistogram(scope const(char)* label, scope const(float)* values, int values_count) @trusted
1617     {
1618         igPlotHistogram(label, values, values_count);
1619     }
1620 
1621     void PlotHistogramEx(scope const(char)* label, scope const(float)* values, int values_count, int values_offset, scope
1622         char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) @trusted
1623     {
1624         igPlotHistogramEx(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride);
1625     }
1626 
1627     void PlotHistogramCallback(scope const(char)* label, ImGuiValues_getterFunc values_getter, scope
1628         void* data, int values_count) @trusted
1629     {
1630         igPlotHistogramCallback(label, values_getter, data, values_count);
1631     }
1632 
1633     void PlotHistogramCallbackEx(scope const(char)* label, ImGuiValues_getterFunc values_getter, scope
1634         void* data, int values_count, int values_offset, scope const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) @trusted
1635     {
1636         igPlotHistogramCallbackEx(label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size);
1637     }
1638 
1639     bool BeginMenuBar() @trusted
1640     {
1641         return igBeginMenuBar();
1642     }
1643 
1644     void EndMenuBar() @trusted
1645     {
1646         igEndMenuBar();
1647     }
1648 
1649     bool BeginMainMenuBar() @trusted
1650     {
1651         return igBeginMainMenuBar();
1652     }
1653 
1654     void EndMainMenuBar() @trusted
1655     {
1656         igEndMainMenuBar();
1657     }
1658 
1659     bool BeginMenu(
1660         scope const(char)* label) @trusted
1661     {
1662         return igBeginMenu(
1663             label);
1664     }
1665 
1666     bool BeginMenuEx(scope const(char)* label, bool enabled) @trusted
1667     {
1668         return igBeginMenuEx(label, enabled);
1669     }
1670 
1671     void EndMenu() @trusted
1672     {
1673         igEndMenu();
1674     }
1675 
1676     bool MenuItem(
1677         scope const(char)* label) @trusted
1678     {
1679         return igMenuItem(label);
1680     }
1681 
1682     bool MenuItemEx(scope const(char)* label, scope const(char)* shortcut, bool selected, bool enabled) @trusted
1683     {
1684         return igMenuItemEx(label, shortcut, selected, enabled);
1685     }
1686 
1687     bool MenuItemBoolPtr(scope const(char)* label, scope const(char)* shortcut, scope bool* p_selected, bool enabled) @trusted
1688     {
1689         return igMenuItemBoolPtr(label, shortcut, p_selected, enabled);
1690     }
1691 
1692     bool BeginTooltip() @trusted
1693     {
1694         return igBeginTooltip();
1695     }
1696 
1697     void EndTooltip() @trusted
1698     {
1699         igEndTooltip();
1700     }
1701 
1702     void SetTooltip(
1703         scope const(char)* fmt) @trusted
1704     {
1705         igSetTooltip(fmt);
1706     }
1707 
1708     void SetTooltipV(scope const(char)* fmt, __builtin_va_list args) @trusted
1709     {
1710         igSetTooltipV(fmt, args);
1711     }
1712 
1713     bool BeginItemTooltip() @trusted
1714     {
1715         return igBeginItemTooltip();
1716     }
1717 
1718     void SetItemTooltip(
1719         scope const(char)* fmt) @trusted
1720     {
1721         igSetItemTooltip(fmt);
1722     }
1723 
1724     void SetItemTooltipV(scope const(char)* fmt, __builtin_va_list args) @trusted
1725     {
1726         igSetItemTooltipV(fmt, args);
1727     }
1728 
1729     bool BeginPopup(scope const(char)* str_id, ImGuiWindowFlags flags) @trusted
1730     {
1731         return igBeginPopup(str_id, flags);
1732     }
1733 
1734     bool BeginPopupModal(scope const(char)* name, scope bool* p_open, ImGuiWindowFlags flags) @trusted
1735     {
1736         return igBeginPopupModal(name, p_open, flags);
1737     }
1738 
1739     void EndPopup() @trusted
1740     {
1741         igEndPopup();
1742     }
1743 
1744     void OpenPopup(scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1745     {
1746         igOpenPopup(str_id, popup_flags);
1747     }
1748 
1749     void OpenPopupID(ImGuiID id, ImGuiPopupFlags popup_flags) @trusted
1750     {
1751         igOpenPopupID(id, popup_flags);
1752     }
1753 
1754     void OpenPopupOnItemClick(scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1755     {
1756         igOpenPopupOnItemClick(str_id, popup_flags);
1757     }
1758 
1759     void CloseCurrentPopup() @trusted
1760     {
1761         igCloseCurrentPopup();
1762     }
1763 
1764     bool BeginPopupContextItem() @trusted
1765     {
1766         return igBeginPopupContextItem();
1767     }
1768 
1769     bool BeginPopupContextItemEx(scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1770     {
1771         return igBeginPopupContextItemEx(str_id, popup_flags);
1772     }
1773 
1774     bool BeginPopupContextWindow() @trusted
1775     {
1776         return igBeginPopupContextWindow();
1777     }
1778 
1779     bool BeginPopupContextWindowEx(
1780         scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1781     {
1782         return igBeginPopupContextWindowEx(str_id, popup_flags);
1783     }
1784 
1785     bool BeginPopupContextVoid() @trusted
1786     {
1787         return igBeginPopupContextVoid();
1788     }
1789 
1790     bool BeginPopupContextVoidEx(scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1791     {
1792         return igBeginPopupContextVoidEx(str_id, popup_flags);
1793     }
1794 
1795     bool IsPopupOpen(scope const(char)* str_id, ImGuiPopupFlags flags) @trusted
1796     {
1797         return igIsPopupOpen(str_id, flags);
1798     }
1799 
1800     bool BeginTable(scope const(char)* str_id, int columns, ImGuiTableFlags flags) @trusted
1801     {
1802         return igBeginTable(str_id, columns, flags);
1803     }
1804 
1805     bool BeginTableEx(scope const(char)* str_id, int columns, ImGuiTableFlags flags, ImVec2 outer_size, float inner_width) @trusted
1806     {
1807         return igBeginTableEx(str_id, columns, flags, outer_size, inner_width);
1808     }
1809 
1810     void EndTable() @trusted
1811     {
1812         igEndTable();
1813     }
1814 
1815     void TableNextRow() @trusted
1816     {
1817         igTableNextRow();
1818     }
1819 
1820     void TableNextRowEx(
1821         ImGuiTableRowFlags row_flags, float min_row_height) @trusted
1822     {
1823         igTableNextRowEx(row_flags, min_row_height);
1824     }
1825 
1826     bool TableNextColumn() @trusted
1827     {
1828         return igTableNextColumn();
1829     }
1830 
1831     bool TableSetColumnIndex(
1832         int column_n) @trusted
1833     {
1834         return igTableSetColumnIndex(
1835             column_n);
1836     }
1837 
1838     void TableSetupColumn(scope const(char)* label, ImGuiTableColumnFlags flags) @trusted
1839     {
1840         igTableSetupColumn(label, flags);
1841     }
1842 
1843     void TableSetupColumnEx(scope const(char)* label, ImGuiTableColumnFlags flags, float init_width_or_weight, ImGuiID user_id) @trusted
1844     {
1845         igTableSetupColumnEx(label, flags, init_width_or_weight, user_id);
1846     }
1847 
1848     void TableSetupScrollFreeze(int cols, int rows) @trusted
1849     {
1850         igTableSetupScrollFreeze(cols, rows);
1851     }
1852 
1853     void TableHeader(
1854         scope const(char)* label) @trusted
1855     {
1856         igTableHeader(label);
1857     }
1858 
1859     void TableHeadersRow() @trusted
1860     {
1861         igTableHeadersRow();
1862     }
1863 
1864     void TableAngledHeadersRow() @trusted
1865     {
1866         igTableAngledHeadersRow();
1867     }
1868 
1869     scope ImGuiTableSortSpecs* TableGetSortSpecs() @trusted
1870     {
1871         return igTableGetSortSpecs();
1872     }
1873 
1874     int TableGetColumnCount() @trusted
1875     {
1876         return igTableGetColumnCount();
1877     }
1878 
1879     int TableGetColumnIndex() @trusted
1880     {
1881         return igTableGetColumnIndex();
1882     }
1883 
1884     int TableGetRowIndex() @trusted
1885     {
1886         return igTableGetRowIndex();
1887     }
1888 
1889     scope const(char)* TableGetColumnName(
1890         int column_n) @trusted
1891     {
1892         return igTableGetColumnName(
1893             column_n);
1894     }
1895 
1896     ImGuiTableColumnFlags TableGetColumnFlags(
1897         int column_n) @trusted
1898     {
1899         return igTableGetColumnFlags(
1900             column_n);
1901     }
1902 
1903     void TableSetColumnEnabled(int column_n, bool v) @trusted
1904     {
1905         igTableSetColumnEnabled(column_n, v);
1906     }
1907 
1908     int TableGetHoveredColumn() @trusted
1909     {
1910         return igTableGetHoveredColumn();
1911     }
1912 
1913     void TableSetBgColor(ImGuiTableBgTarget target, ImU32 color, int column_n) @trusted
1914     {
1915         igTableSetBgColor(target, color, column_n);
1916     }
1917 
1918     void Columns() @trusted
1919     {
1920         igColumns();
1921     }
1922 
1923     void ColumnsEx(int count, scope const(char)* id, bool borders) @trusted
1924     {
1925         igColumnsEx(count, id, borders);
1926     }
1927 
1928     void NextColumn() @trusted
1929     {
1930         igNextColumn();
1931     }
1932 
1933     int GetColumnIndex() @trusted
1934     {
1935         return igGetColumnIndex();
1936     }
1937 
1938     float GetColumnWidth(
1939         int column_index) @trusted
1940     {
1941         return igGetColumnWidth(
1942             column_index);
1943     }
1944 
1945     void SetColumnWidth(int column_index, float width) @trusted
1946     {
1947         igSetColumnWidth(column_index, width);
1948     }
1949 
1950     float GetColumnOffset(
1951         int column_index) @trusted
1952     {
1953         return igGetColumnOffset(
1954             column_index);
1955     }
1956 
1957     void SetColumnOffset(int column_index, float offset_x) @trusted
1958     {
1959         igSetColumnOffset(column_index, offset_x);
1960     }
1961 
1962     int GetColumnsCount() @trusted
1963     {
1964         return igGetColumnsCount();
1965     }
1966 
1967     bool BeginTabBar(scope const(char)* str_id, ImGuiTabBarFlags flags) @trusted
1968     {
1969         return igBeginTabBar(str_id, flags);
1970     }
1971 
1972     void EndTabBar() @trusted
1973     {
1974         igEndTabBar();
1975     }
1976 
1977     bool BeginTabItem(scope const(char)* label, scope bool* p_open, ImGuiTabItemFlags flags) @trusted
1978     {
1979         return igBeginTabItem(label, p_open, flags);
1980     }
1981 
1982     void EndTabItem() @trusted
1983     {
1984         igEndTabItem();
1985     }
1986 
1987     bool TabItemButton(scope const(char)* label, ImGuiTabItemFlags flags) @trusted
1988     {
1989         return igTabItemButton(label, flags);
1990     }
1991 
1992     void SetTabItemClosed(
1993         scope const(char)* tab_or_docked_window_label) @trusted
1994     {
1995         igSetTabItemClosed(
1996             tab_or_docked_window_label);
1997     }
1998 
1999     void LogToTTY(
2000         int auto_open_depth) @trusted
2001     {
2002         igLogToTTY(
2003             auto_open_depth);
2004     }
2005 
2006     void LogToFile(int auto_open_depth, scope const(char)* filename) @trusted
2007     {
2008         igLogToFile(auto_open_depth, filename);
2009     }
2010 
2011     void LogToClipboard(
2012         int auto_open_depth) @trusted
2013     {
2014         igLogToClipboard(
2015             auto_open_depth);
2016     }
2017 
2018     void LogFinish() @trusted
2019     {
2020         igLogFinish();
2021     }
2022 
2023     void LogButtons() @trusted
2024     {
2025         igLogButtons();
2026     }
2027 
2028     void LogText(scope const(char)* fmt) @trusted
2029     {
2030         igLogText(fmt);
2031     }
2032 
2033     void LogTextV(scope const(char)* fmt, __builtin_va_list args) @trusted
2034     {
2035         igLogTextV(fmt, args);
2036     }
2037 
2038     bool BeginDragDropSource(
2039         ImGuiDragDropFlags flags) @trusted
2040     {
2041         return igBeginDragDropSource(
2042             flags);
2043     }
2044 
2045     bool SetDragDropPayload(scope const(char)* type, scope void* data, size_t sz, ImGuiCond cond) @trusted
2046     {
2047         return igSetDragDropPayload(type, data, sz, cond);
2048     }
2049 
2050     void EndDragDropSource() @trusted
2051     {
2052         igEndDragDropSource();
2053     }
2054 
2055     bool BeginDragDropTarget() @trusted
2056     {
2057         return igBeginDragDropTarget();
2058     }
2059 
2060     scope ImGuiPayload* AcceptDragDropPayload(
2061         scope const(char)* type, ImGuiDragDropFlags flags) @trusted
2062     {
2063         return igAcceptDragDropPayload(type, flags);
2064     }
2065 
2066     void EndDragDropTarget() @trusted
2067     {
2068         igEndDragDropTarget();
2069     }
2070 
2071     scope ImGuiPayload* GetDragDropPayload() @trusted
2072     {
2073         return igGetDragDropPayload();
2074     }
2075 
2076     void BeginDisabled(
2077         bool disabled) @trusted
2078     {
2079         igBeginDisabled(
2080             disabled);
2081     }
2082 
2083     void EndDisabled() @trusted
2084     {
2085         igEndDisabled();
2086     }
2087 
2088     void PushClipRect(ImVec2 clip_rect_min, ImVec2 clip_rect_max, bool intersect_with_current_clip_rect) @trusted
2089     {
2090         igPushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect);
2091     }
2092 
2093     void PopClipRect() @trusted
2094     {
2095         igPopClipRect();
2096     }
2097 
2098     void SetItemDefaultFocus() @trusted
2099     {
2100         igSetItemDefaultFocus();
2101     }
2102 
2103     void SetKeyboardFocusHere() @trusted
2104     {
2105         igSetKeyboardFocusHere();
2106     }
2107 
2108     void SetKeyboardFocusHereEx(
2109         int offset) @trusted
2110     {
2111         igSetKeyboardFocusHereEx(
2112             offset);
2113     }
2114 
2115     void SetNavCursorVisible(
2116         bool visible) @trusted
2117     {
2118         igSetNavCursorVisible(
2119             visible);
2120     }
2121 
2122     void SetNextItemAllowOverlap() @trusted
2123     {
2124         igSetNextItemAllowOverlap();
2125     }
2126 
2127     bool IsItemHovered(
2128         ImGuiHoveredFlags flags) @trusted
2129     {
2130         return igIsItemHovered(
2131             flags);
2132     }
2133 
2134     bool IsItemActive() @trusted
2135     {
2136         return igIsItemActive();
2137     }
2138 
2139     bool IsItemFocused() @trusted
2140     {
2141         return igIsItemFocused();
2142     }
2143 
2144     bool IsItemClicked() @trusted
2145     {
2146         return igIsItemClicked();
2147     }
2148 
2149     bool IsItemClickedEx(
2150         ImGuiMouseButton mouse_button) @trusted
2151     {
2152         return igIsItemClickedEx(
2153             mouse_button);
2154     }
2155 
2156     bool IsItemVisible() @trusted
2157     {
2158         return igIsItemVisible();
2159     }
2160 
2161     bool IsItemEdited() @trusted
2162     {
2163         return igIsItemEdited();
2164     }
2165 
2166     bool IsItemActivated() @trusted
2167     {
2168         return igIsItemActivated();
2169     }
2170 
2171     bool IsItemDeactivated() @trusted
2172     {
2173         return igIsItemDeactivated();
2174     }
2175 
2176     bool IsItemDeactivatedAfterEdit() @trusted
2177     {
2178         return igIsItemDeactivatedAfterEdit();
2179     }
2180 
2181     bool IsItemToggledOpen() @trusted
2182     {
2183         return igIsItemToggledOpen();
2184     }
2185 
2186     bool IsAnyItemHovered() @trusted
2187     {
2188         return igIsAnyItemHovered();
2189     }
2190 
2191     bool IsAnyItemActive() @trusted
2192     {
2193         return igIsAnyItemActive();
2194     }
2195 
2196     bool IsAnyItemFocused() @trusted
2197     {
2198         return igIsAnyItemFocused();
2199     }
2200 
2201     ImGuiID GetItemID() @trusted
2202     {
2203         return igGetItemID();
2204     }
2205 
2206     ImVec2 GetItemRectMin() @trusted
2207     {
2208         return igGetItemRectMin();
2209     }
2210 
2211     ImVec2 GetItemRectMax() @trusted
2212     {
2213         return igGetItemRectMax();
2214     }
2215 
2216     ImVec2 GetItemRectSize() @trusted
2217     {
2218         return igGetItemRectSize();
2219     }
2220 
2221     scope ImGuiViewport* GetMainViewport() @trusted
2222     {
2223         return igGetMainViewport();
2224     }
2225 
2226     scope ImDrawList* GetBackgroundDrawList() @trusted
2227     {
2228         return igGetBackgroundDrawList();
2229     }
2230 
2231     scope ImDrawList* GetForegroundDrawList() @trusted
2232     {
2233         return igGetForegroundDrawList();
2234     }
2235 
2236     bool IsRectVisibleBySize(
2237         ImVec2 size) @trusted
2238     {
2239         return igIsRectVisibleBySize(
2240             size);
2241     }
2242 
2243     bool IsRectVisible(ImVec2 rect_min, ImVec2 rect_max) @trusted
2244     {
2245         return igIsRectVisible(rect_min, rect_max);
2246     }
2247 
2248     double GetTime() @trusted
2249     {
2250         return igGetTime();
2251     }
2252 
2253     int GetFrameCount() @trusted
2254     {
2255         return igGetFrameCount();
2256     }
2257 
2258     scope ImDrawListSharedData* GetDrawListSharedData() @trusted
2259     {
2260         return igGetDrawListSharedData();
2261     }
2262 
2263     scope const(char)* GetStyleColorName(
2264         ImGuiCol idx) @trusted
2265     {
2266         return igGetStyleColorName(
2267             idx);
2268     }
2269 
2270     void SetStateStorage(
2271         scope ImGuiStorage* storage) @trusted
2272     {
2273         igSetStateStorage(
2274             storage);
2275     }
2276 
2277     scope ImGuiStorage* GetStateStorage() @trusted
2278     {
2279         return igGetStateStorage();
2280     }
2281 
2282     ImVec2 CalcTextSize(
2283         scope const(char)* text) @trusted
2284     {
2285         return igCalcTextSize(
2286             text);
2287     }
2288 
2289     ImVec2 CalcTextSizeEx(scope const(char)* text, scope const(char)* text_end, bool hide_text_after_double_hash, float wrap_width) @trusted
2290     {
2291         return igCalcTextSizeEx(text, text_end, hide_text_after_double_hash, wrap_width);
2292     }
2293 
2294     ImVec4 ColorConvertU32ToFloat4(
2295         ImU32 in_) @trusted
2296     {
2297         return igColorConvertU32ToFloat4(
2298             in_);
2299     }
2300 
2301     ImU32 ColorConvertFloat4ToU32(
2302         ImVec4 in_) @trusted
2303     {
2304         return igColorConvertFloat4ToU32(
2305             in_);
2306     }
2307 
2308     void ColorConvertRGBtoHSV(float r, float g, float b, scope float* out_h, scope
2309         float* out_s, scope float* out_v) @trusted
2310     {
2311         igColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v);
2312     }
2313 
2314     void ColorConvertHSVtoRGB(float h, float s, float v, scope float* out_r, scope
2315         float* out_g, scope float* out_b) @trusted
2316     {
2317         igColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b);
2318     }
2319 
2320     bool IsKeyDown(ImGuiKey key) @trusted
2321     {
2322         return igIsKeyDown(key);
2323     }
2324 
2325     bool IsKeyPressed(
2326         ImGuiKey key) @trusted
2327     {
2328         return igIsKeyPressed(
2329             key);
2330     }
2331 
2332     bool IsKeyPressedEx(ImGuiKey key, bool repeat) @trusted
2333     {
2334         return igIsKeyPressedEx(key, repeat);
2335     }
2336 
2337     bool IsKeyReleased(
2338         ImGuiKey key) @trusted
2339     {
2340         return igIsKeyReleased(
2341             key);
2342     }
2343 
2344     bool IsKeyChordPressed(
2345         ImGuiKeyChord key_chord) @trusted
2346     {
2347         return igIsKeyChordPressed(
2348             key_chord);
2349     }
2350 
2351     int GetKeyPressedAmount(ImGuiKey key, float repeat_delay, float rate) @trusted
2352     {
2353         return igGetKeyPressedAmount(key, repeat_delay, rate);
2354     }
2355 
2356     scope const(char)* GetKeyName(
2357         ImGuiKey key) @trusted
2358     {
2359         return igGetKeyName(key);
2360     }
2361 
2362     void SetNextFrameWantCaptureKeyboard(
2363         bool want_capture_keyboard) @trusted
2364     {
2365         igSetNextFrameWantCaptureKeyboard(
2366             want_capture_keyboard);
2367     }
2368 
2369     bool Shortcut(ImGuiKeyChord key_chord, ImGuiInputFlags flags) @trusted
2370     {
2371         return igShortcut(key_chord, flags);
2372     }
2373 
2374     void SetNextItemShortcut(
2375         ImGuiKeyChord key_chord, ImGuiInputFlags flags) @trusted
2376     {
2377         igSetNextItemShortcut(key_chord, flags);
2378     }
2379 
2380     void SetItemKeyOwner(
2381         ImGuiKey key) @trusted
2382     {
2383         igSetItemKeyOwner(key);
2384     }
2385 
2386     bool IsMouseDown(
2387         ImGuiMouseButton button) @trusted
2388     {
2389         return igIsMouseDown(
2390             button);
2391     }
2392 
2393     bool IsMouseClicked(
2394         ImGuiMouseButton button) @trusted
2395     {
2396         return igIsMouseClicked(
2397             button);
2398     }
2399 
2400     bool IsMouseClickedEx(ImGuiMouseButton button, bool repeat) @trusted
2401     {
2402         return igIsMouseClickedEx(button, repeat);
2403     }
2404 
2405     bool IsMouseReleased(
2406         ImGuiMouseButton button) @trusted
2407     {
2408         return igIsMouseReleased(
2409             button);
2410     }
2411 
2412     bool IsMouseDoubleClicked(
2413         ImGuiMouseButton button) @trusted
2414     {
2415         return igIsMouseDoubleClicked(
2416             button);
2417     }
2418 
2419     bool IsMouseReleasedWithDelay(
2420         ImGuiMouseButton button, float delay) @trusted
2421     {
2422         return igIsMouseReleasedWithDelay(button, delay);
2423     }
2424 
2425     int GetMouseClickedCount(
2426         ImGuiMouseButton button) @trusted
2427     {
2428         return igGetMouseClickedCount(
2429             button);
2430     }
2431 
2432     bool IsMouseHoveringRect(ImVec2 r_min, ImVec2 r_max) @trusted
2433     {
2434         return igIsMouseHoveringRect(r_min, r_max);
2435     }
2436 
2437     bool IsMouseHoveringRectEx(ImVec2 r_min, ImVec2 r_max, bool clip) @trusted
2438     {
2439         return igIsMouseHoveringRectEx(r_min, r_max, clip);
2440     }
2441 
2442     bool IsMousePosValid(
2443         scope ImVec2* mouse_pos) @trusted
2444     {
2445         return igIsMousePosValid(
2446             mouse_pos);
2447     }
2448 
2449     bool IsAnyMouseDown() @trusted
2450     {
2451         return igIsAnyMouseDown();
2452     }
2453 
2454     ImVec2 GetMousePos() @trusted
2455     {
2456         return igGetMousePos();
2457     }
2458 
2459     ImVec2 GetMousePosOnOpeningCurrentPopup() @trusted
2460     {
2461         return igGetMousePosOnOpeningCurrentPopup();
2462     }
2463 
2464     bool IsMouseDragging(ImGuiMouseButton button, float lock_threshold) @trusted
2465     {
2466         return igIsMouseDragging(button, lock_threshold);
2467     }
2468 
2469     ImVec2 GetMouseDragDelta(
2470         ImGuiMouseButton button, float lock_threshold) @trusted
2471     {
2472         return igGetMouseDragDelta(button, lock_threshold);
2473     }
2474 
2475     void ResetMouseDragDelta() @trusted
2476     {
2477         igResetMouseDragDelta();
2478     }
2479 
2480     void ResetMouseDragDeltaEx(
2481         ImGuiMouseButton button) @trusted
2482     {
2483         igResetMouseDragDeltaEx(
2484             button);
2485     }
2486 
2487     ImGuiMouseCursor GetMouseCursor() @trusted
2488     {
2489         return igGetMouseCursor();
2490     }
2491 
2492     void SetMouseCursor(
2493         ImGuiMouseCursor cursor_type) @trusted
2494     {
2495         igSetMouseCursor(
2496             cursor_type);
2497     }
2498 
2499     void SetNextFrameWantCaptureMouse(
2500         bool want_capture_mouse) @trusted
2501     {
2502         igSetNextFrameWantCaptureMouse(
2503             want_capture_mouse);
2504     }
2505 
2506     scope const(char)* GetClipboardText() @trusted
2507     {
2508         return igGetClipboardText();
2509     }
2510 
2511     void SetClipboardText(
2512         scope const(char)* text) @trusted
2513     {
2514         igSetClipboardText(text);
2515     }
2516 
2517     void LoadIniSettingsFromDisk(
2518         scope const(char)* ini_filename) @trusted
2519     {
2520         igLoadIniSettingsFromDisk(
2521             ini_filename);
2522     }
2523 
2524     void LoadIniSettingsFromMemory(
2525         scope const(char)* ini_data, size_t ini_size) @trusted
2526     {
2527         igLoadIniSettingsFromMemory(ini_data, ini_size);
2528     }
2529 
2530     void SaveIniSettingsToDisk(
2531         scope const(char)* ini_filename) @trusted
2532     {
2533         igSaveIniSettingsToDisk(
2534             ini_filename);
2535     }
2536 
2537     scope const(char)* SaveIniSettingsToMemory(
2538         scope size_t* out_ini_size) @trusted
2539     {
2540         return igSaveIniSettingsToMemory(
2541             out_ini_size);
2542     }
2543 
2544     void DebugTextEncoding(
2545         scope const(char)* text) @trusted
2546     {
2547         igDebugTextEncoding(
2548             text);
2549     }
2550 
2551     void DebugFlashStyleColor(
2552         ImGuiCol idx) @trusted
2553     {
2554         igDebugFlashStyleColor(
2555             idx);
2556     }
2557 
2558     void DebugStartItemPicker() @trusted
2559     {
2560         igDebugStartItemPicker();
2561     }
2562 
2563     bool DebugCheckVersionAndDataLayout(
2564         scope const(char)* version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert, size_t sz_drawidx) @trusted
2565     {
2566         return igDebugCheckVersionAndDataLayout(
2567             version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx);
2568     }
2569 
2570     void DebugLog(
2571         scope const(char)* fmt) @trusted
2572     {
2573         igDebugLog(fmt);
2574     }
2575 
2576     void DebugLogV(scope const(char)* fmt, __builtin_va_list args) @trusted
2577     {
2578         igDebugLogV(fmt, args);
2579     }
2580 
2581     void SetAllocatorFunctions(
2582         ImGuiMemAllocFunc alloc_func, ImGuiMemFreeFunc free_func, scope
2583         void* user_data) @trusted
2584     {
2585         igSetAllocatorFunctions(alloc_func, free_func, user_data);
2586     }
2587 
2588     void GetAllocatorFunctions(
2589         scope ImGuiMemAllocFunc* p_alloc_func, scope
2590         ImGuiMemFreeFunc* p_free_func, scope void** p_user_data) @trusted
2591     {
2592         igGetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data);
2593     }
2594 
2595     scope void* MemAlloc(
2596         size_t size) @trusted
2597     {
2598         return igMemAlloc(size);
2599     }
2600 
2601     void MemFree(scope void* ptr) @trusted
2602     {
2603         igMemFree(ptr);
2604     }
2605 
2606     void ImageImVec4(ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1, ImVec4 tint_col, ImVec4 border_col) @trusted
2607     {
2608         igImageImVec4(user_texture_id, image_size, uv0, uv1, tint_col, border_col);
2609     }
2610 
2611     void PushButtonRepeat(
2612         bool repeat) @trusted
2613     {
2614         igPushButtonRepeat(
2615             repeat);
2616     }
2617 
2618     void PopButtonRepeat() @trusted
2619     {
2620         igPopButtonRepeat();
2621     }
2622 
2623     void PushTabStop(
2624         bool tab_stop) @trusted
2625     {
2626         igPushTabStop(tab_stop);
2627     }
2628 
2629     void PopTabStop() @trusted
2630     {
2631         igPopTabStop();
2632     }
2633 
2634     ImVec2 GetContentRegionMax() @trusted
2635     {
2636         return igGetContentRegionMax();
2637     }
2638 
2639     ImVec2 GetWindowContentRegionMin() @trusted
2640     {
2641         return igGetWindowContentRegionMin();
2642     }
2643 
2644     ImVec2 GetWindowContentRegionMax() @trusted
2645     {
2646         return igGetWindowContentRegionMax();
2647     }
2648 
2649     bool BeginChildFrame(ImGuiID id, ImVec2 size) @trusted
2650     {
2651         return igBeginChildFrame(id, size);
2652     }
2653 
2654     bool BeginChildFrameEx(ImGuiID id, ImVec2 size, ImGuiWindowFlags window_flags) @trusted
2655     {
2656         return igBeginChildFrameEx(id, size, window_flags);
2657     }
2658 
2659     void EndChildFrame() @trusted
2660     {
2661         igEndChildFrame();
2662     }
2663 
2664     void ShowStackToolWindow(
2665         scope bool* p_open) @trusted
2666     {
2667         igShowStackToolWindow(
2668             p_open);
2669     }
2670 
2671     bool ComboObsolete(scope const(char)* label, scope int* current_item, ImGuiOld_callbackFunc old_callback, scope
2672         void* user_data, int items_count) @trusted
2673     {
2674         return igComboObsolete(label, current_item, old_callback, user_data, items_count);
2675     }
2676 
2677     bool ComboObsoleteEx(scope const(char)* label, scope int* current_item, ImGuiOld_callbackFunc old_callback, scope
2678         void* user_data, int items_count, int popup_max_height_in_items) @trusted
2679     {
2680         return igComboObsoleteEx(label, current_item, old_callback, user_data, items_count, popup_max_height_in_items);
2681     }
2682 
2683     bool ListBoxObsolete(scope const(char)* label, scope int* current_item, ImGuiOld_callbackFunc old_callback, scope
2684         void* user_data, int items_count) @trusted
2685     {
2686         return igListBoxObsolete(label, current_item, old_callback, user_data, items_count);
2687     }
2688 
2689     bool ListBoxObsoleteEx(scope const(char)* label, scope int* current_item, ImGuiOld_callbackFunc old_callback, scope
2690         void* user_data, int items_count, int height_in_items) @trusted
2691     {
2692         return igListBoxObsoleteEx(label, current_item, old_callback, user_data, items_count, height_in_items);
2693     }
2694 
2695     void SetItemAllowOverlap() @trusted
2696     {
2697         igSetItemAllowOverlap();
2698     }
2699 
2700     void PushAllowKeyboardFocus(
2701         bool tab_stop) @trusted
2702     {
2703         igPushAllowKeyboardFocus(
2704             tab_stop);
2705     }
2706 
2707     void PopAllowKeyboardFocus() @trusted
2708     {
2709         igPopAllowKeyboardFocus();
2710     }
2711 
2712 }