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     void Text(Args...)(scope const(char)* fmt, Args args) @trusted
741     {
742         igText(fmt, args);
743     }
744 
745     void TextV(Args...)(scope const(char)* fmt, Args args) @trusted
746     {
747         igTextV(fmt, args);
748     }
749 
750     void TextColored(Args...)(ImVec4 col, scope const(char)* fmt, Args args) @trusted
751     {
752         igTextColored(col, fmt, args);
753     }
754 
755     void TextColoredV(Args...)(ImVec4 col, scope const(char)* fmt, Args args) @trusted
756     {
757         igTextColoredV(col, fmt, args);
758     }
759 
760     void TextDisabled(Args...)(
761         scope const(char)* fmt, Args args) @trusted
762     {
763         igTextDisabled(fmt, args);
764     }
765 
766     void TextDisabledV(Args...)(scope const(char)* fmt, Args args) @trusted
767     {
768         igTextDisabledV(fmt, args);
769     }
770 
771     void TextWrapped(Args...)(
772         scope const(char)* fmt, Args args) @trusted
773     {
774         igTextWrapped(fmt, args);
775     }
776 
777     void TextWrappedV(Args...)(scope const(char)* fmt, Args args) @trusted
778     {
779         igTextWrappedV(fmt, args);
780     }
781 
782     void LabelText(Args...)(scope const(char)* label, scope const(char)* fmt, Args args) @trusted
783     {
784         igLabelText(label, fmt, args);
785     }
786 
787     void LabelTextV(Args...)(scope const(char)* label, scope const(char)* fmt, Args args) @trusted
788     {
789         igLabelTextV(label, fmt, args);
790     }
791 
792     void BulletText(
793         scope const(char)* fmt) @trusted
794     {
795         igBulletText(fmt);
796     }
797 
798     void BulletTextV(Args...)(scope const(char)* fmt, Args args) @trusted
799     {
800         igBulletTextV(fmt, args);
801     }
802 
803     void SeparatorText(
804         scope const(char)* label) @trusted
805     {
806         igSeparatorText(label);
807     }
808 
809     bool Button(
810         scope const(char)* label) @trusted
811     {
812         return igButton(label);
813     }
814 
815     bool ButtonEx(scope const(char)* label, ImVec2 size) @trusted
816     {
817         return igButtonEx(label, size);
818     }
819 
820     bool SmallButton(
821         scope const(char)* label) @trusted
822     {
823         return igSmallButton(
824             label);
825     }
826 
827     bool InvisibleButton(scope const(char)* str_id, ImVec2 size, ImGuiButtonFlags flags) @trusted
828     {
829         return igInvisibleButton(str_id, size, flags);
830     }
831 
832     bool ArrowButton(scope const(char)* str_id, ImGuiDir dir) @trusted
833     {
834         return igArrowButton(str_id, dir);
835     }
836 
837     bool Checkbox(scope const(char)* label, scope bool* v) @trusted
838     {
839         return igCheckbox(label, v);
840     }
841 
842     bool CheckboxFlagsIntPtr(scope const(char)* label, scope int* flags, int flags_value) @trusted
843     {
844         return igCheckboxFlagsIntPtr(label, flags, flags_value);
845     }
846 
847     bool CheckboxFlagsUintPtr(scope const(char)* label, scope uint* flags, uint flags_value) @trusted
848     {
849         return igCheckboxFlagsUintPtr(label, flags, flags_value);
850     }
851 
852     bool RadioButton(scope const(char)* label, bool active) @trusted
853     {
854         return igRadioButton(label, active);
855     }
856 
857     bool RadioButtonIntPtr(scope const(char)* label, scope int* v, int v_button) @trusted
858     {
859         return igRadioButtonIntPtr(label, v, v_button);
860     }
861 
862     void ProgressBar(float fraction, ImVec2 size_arg, scope const(char)* overlay) @trusted
863     {
864         igProgressBar(fraction, size_arg, overlay);
865     }
866 
867     void Bullet() @trusted
868     {
869         igBullet();
870     }
871 
872     bool TextLink(
873         scope const(char)* label) @trusted
874     {
875         return igTextLink(label);
876     }
877 
878     void TextLinkOpenURL(
879         scope const(char)* label) @trusted
880     {
881         igTextLinkOpenURL(label);
882     }
883 
884     void TextLinkOpenURLEx(scope const(char)* label, scope const(char)* url) @trusted
885     {
886         igTextLinkOpenURLEx(label, url);
887     }
888 
889     void Image(ImTextureID user_texture_id, ImVec2 image_size) @trusted
890     {
891         igImage(user_texture_id, image_size);
892     }
893 
894     void ImageEx(ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1) @trusted
895     {
896         igImageEx(user_texture_id, image_size, uv0, uv1);
897     }
898 
899     void ImageWithBg(ImTextureID user_texture_id, ImVec2 image_size) @trusted
900     {
901         igImageWithBg(user_texture_id, image_size);
902     }
903 
904     void ImageWithBgEx(ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1, ImVec4 bg_col, ImVec4 tint_col) @trusted
905     {
906         igImageWithBgEx(user_texture_id, image_size, uv0, uv1, bg_col, tint_col);
907     }
908 
909     bool ImageButton(scope const(char)* str_id, ImTextureID user_texture_id, ImVec2 image_size) @trusted
910     {
911         return igImageButton(str_id, user_texture_id, image_size);
912     }
913 
914     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
915     {
916         return igImageButtonEx(str_id, user_texture_id, image_size, uv0, uv1, bg_col, tint_col);
917     }
918 
919     bool BeginCombo(scope const(char)* label, scope const(char)* preview_value, ImGuiComboFlags flags) @trusted
920     {
921         return igBeginCombo(label, preview_value, flags);
922     }
923 
924     void EndCombo() @trusted
925     {
926         igEndCombo();
927     }
928 
929     bool ComboChar(scope const(char)* label, scope int* current_item, scope const(char)** items, int items_count) @trusted
930     {
931         return igComboChar(label, current_item, items, items_count);
932     }
933 
934     bool ComboCharEx(scope const(char)* label, scope int* current_item, scope const(char)** items, int items_count, int popup_max_height_in_items) @trusted
935     {
936         return igComboCharEx(label, current_item, items, items_count, popup_max_height_in_items);
937     }
938 
939     bool Combo(scope const(char)* label, scope int* current_item, scope const(char)* items_separated_by_zeros) @trusted
940     {
941         return igCombo(label, current_item, items_separated_by_zeros);
942     }
943 
944     bool ComboEx(scope const(char)* label, scope int* current_item, scope const(char)* items_separated_by_zeros, int popup_max_height_in_items) @trusted
945     {
946         return igComboEx(label, current_item, items_separated_by_zeros, popup_max_height_in_items);
947     }
948 
949     bool ComboCallback(scope const(char)* label, scope int* current_item, ImGuiGetterFunc getter, scope
950         void* user_data, int items_count) @trusted
951     {
952         return igComboCallback(label, current_item, getter, user_data, items_count);
953     }
954 
955     bool ComboCallbackEx(scope const(char)* label, scope int* current_item, ImGuiGetterFunc getter, scope
956         void* user_data, int items_count, int popup_max_height_in_items) @trusted
957     {
958         return igComboCallbackEx(label, current_item, getter, user_data, items_count, popup_max_height_in_items);
959     }
960 
961     bool DragFloat(scope const(char)* label, scope float* v) @trusted
962     {
963         return igDragFloat(label, v);
964     }
965 
966     bool DragFloatEx(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope
967         char* format, ImGuiSliderFlags flags) @trusted
968     {
969         return igDragFloatEx(label, v, v_speed, v_min, v_max, format, flags);
970     }
971 
972     bool DragFloat2(scope const(char)* label, scope float* v) @trusted
973     {
974         return igDragFloat2(label, v);
975     }
976 
977     bool DragFloat2Ex(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope
978         char* format, ImGuiSliderFlags flags) @trusted
979     {
980         return igDragFloat2Ex(label, v, v_speed, v_min, v_max, format, flags);
981     }
982 
983     bool DragFloat3(scope const(char)* label, scope float* v) @trusted
984     {
985         return igDragFloat3(label, v);
986     }
987 
988     bool DragFloat3Ex(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope
989         char* format, ImGuiSliderFlags flags) @trusted
990     {
991         return igDragFloat3Ex(label, v, v_speed, v_min, v_max, format, flags);
992     }
993 
994     bool DragFloat4(scope const(char)* label, scope float* v) @trusted
995     {
996         return igDragFloat4(label, v);
997     }
998 
999     bool DragFloat4Ex(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope
1000         char* format, ImGuiSliderFlags flags) @trusted
1001     {
1002         return igDragFloat4Ex(label, v, v_speed, v_min, v_max, format, flags);
1003     }
1004 
1005     bool DragFloatRange2(scope const(char)* label, scope float* v_current_min, scope
1006         float* v_current_max) @trusted
1007     {
1008         return igDragFloatRange2(label, v_current_min, v_current_max);
1009     }
1010 
1011     bool DragFloatRange2Ex(scope const(char)* label, scope float* v_current_min, scope
1012         float* v_current_max, float v_speed, float v_min, float v_max, scope const(char)* format, scope
1013         char* format_max, ImGuiSliderFlags flags) @trusted
1014     {
1015         return igDragFloatRange2Ex(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max, flags);
1016     }
1017 
1018     bool DragInt(scope const(char)* label, scope int* v) @trusted
1019     {
1020         return igDragInt(label, v);
1021     }
1022 
1023     bool DragIntEx(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope
1024         char* format, ImGuiSliderFlags flags) @trusted
1025     {
1026         return igDragIntEx(label, v, v_speed, v_min, v_max, format, flags);
1027     }
1028 
1029     bool DragInt2(scope const(char)* label, scope int* v) @trusted
1030     {
1031         return igDragInt2(label, v);
1032     }
1033 
1034     bool DragInt2Ex(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope
1035         char* format, ImGuiSliderFlags flags) @trusted
1036     {
1037         return igDragInt2Ex(label, v, v_speed, v_min, v_max, format, flags);
1038     }
1039 
1040     bool DragInt3(scope const(char)* label, scope int* v) @trusted
1041     {
1042         return igDragInt3(label, v);
1043     }
1044 
1045     bool DragInt3Ex(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope
1046         char* format, ImGuiSliderFlags flags) @trusted
1047     {
1048         return igDragInt3Ex(label, v, v_speed, v_min, v_max, format, flags);
1049     }
1050 
1051     bool DragInt4(scope const(char)* label, scope int* v) @trusted
1052     {
1053         return igDragInt4(label, v);
1054     }
1055 
1056     bool DragInt4Ex(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope
1057         char* format, ImGuiSliderFlags flags) @trusted
1058     {
1059         return igDragInt4Ex(label, v, v_speed, v_min, v_max, format, flags);
1060     }
1061 
1062     bool DragIntRange2(scope const(char)* label, scope int* v_current_min, scope int* v_current_max) @trusted
1063     {
1064         return igDragIntRange2(label, v_current_min, v_current_max);
1065     }
1066 
1067     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
1068         char* format, scope const(char)* format_max, ImGuiSliderFlags flags) @trusted
1069     {
1070         return igDragIntRange2Ex(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max, flags);
1071     }
1072 
1073     bool DragScalar(scope const(char)* label, ImGuiDataType data_type, scope void* p_data) @trusted
1074     {
1075         return igDragScalar(label, data_type, p_data);
1076     }
1077 
1078     bool DragScalarEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, float v_speed, scope void* p_min, scope
1079         void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1080     {
1081         return igDragScalarEx(label, data_type, p_data, v_speed, p_min, p_max, format, flags);
1082     }
1083 
1084     bool DragScalarN(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components) @trusted
1085     {
1086         return igDragScalarN(label, data_type, p_data, components);
1087     }
1088 
1089     bool DragScalarNEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components, float v_speed, scope
1090         void* p_min, scope void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1091     {
1092         return igDragScalarNEx(label, data_type, p_data, components, v_speed, p_min, p_max, format, flags);
1093     }
1094 
1095     bool SliderFloat(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted
1096     {
1097         return igSliderFloat(label, v, v_min, v_max);
1098     }
1099 
1100     bool SliderFloatEx(scope const(char)* label, scope float* v, float v_min, float v_max, scope
1101         char* format, ImGuiSliderFlags flags) @trusted
1102     {
1103         return igSliderFloatEx(label, v, v_min, v_max, format, flags);
1104     }
1105 
1106     bool SliderFloat2(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted
1107     {
1108         return igSliderFloat2(label, v, v_min, v_max);
1109     }
1110 
1111     bool SliderFloat2Ex(scope const(char)* label, scope float* v, float v_min, float v_max, scope
1112         char* format, ImGuiSliderFlags flags) @trusted
1113     {
1114         return igSliderFloat2Ex(label, v, v_min, v_max, format, flags);
1115     }
1116 
1117     bool SliderFloat3(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted
1118     {
1119         return igSliderFloat3(label, v, v_min, v_max);
1120     }
1121 
1122     bool SliderFloat3Ex(scope const(char)* label, scope float* v, float v_min, float v_max, scope
1123         char* format, ImGuiSliderFlags flags) @trusted
1124     {
1125         return igSliderFloat3Ex(label, v, v_min, v_max, format, flags);
1126     }
1127 
1128     bool SliderFloat4(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted
1129     {
1130         return igSliderFloat4(label, v, v_min, v_max);
1131     }
1132 
1133     bool SliderFloat4Ex(scope const(char)* label, scope float* v, float v_min, float v_max, scope
1134         char* format, ImGuiSliderFlags flags) @trusted
1135     {
1136         return igSliderFloat4Ex(label, v, v_min, v_max, format, flags);
1137     }
1138 
1139     bool SliderAngle(scope const(char)* label, scope float* v_rad) @trusted
1140     {
1141         return igSliderAngle(label, v_rad);
1142     }
1143 
1144     bool SliderAngleEx(scope const(char)* label, scope float* v_rad, float v_degrees_min, float v_degrees_max, scope
1145         char* format, ImGuiSliderFlags flags) @trusted
1146     {
1147         return igSliderAngleEx(label, v_rad, v_degrees_min, v_degrees_max, format, flags);
1148     }
1149 
1150     bool SliderInt(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted
1151     {
1152         return igSliderInt(label, v, v_min, v_max);
1153     }
1154 
1155     bool SliderIntEx(scope const(char)* label, scope int* v, int v_min, int v_max, scope
1156         char* format, ImGuiSliderFlags flags) @trusted
1157     {
1158         return igSliderIntEx(label, v, v_min, v_max, format, flags);
1159     }
1160 
1161     bool SliderInt2(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted
1162     {
1163         return igSliderInt2(label, v, v_min, v_max);
1164     }
1165 
1166     bool SliderInt2Ex(scope const(char)* label, scope int* v, int v_min, int v_max, scope
1167         char* format, ImGuiSliderFlags flags) @trusted
1168     {
1169         return igSliderInt2Ex(label, v, v_min, v_max, format, flags);
1170     }
1171 
1172     bool SliderInt3(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted
1173     {
1174         return igSliderInt3(label, v, v_min, v_max);
1175     }
1176 
1177     bool SliderInt3Ex(scope const(char)* label, scope int* v, int v_min, int v_max, scope
1178         char* format, ImGuiSliderFlags flags) @trusted
1179     {
1180         return igSliderInt3Ex(label, v, v_min, v_max, format, flags);
1181     }
1182 
1183     bool SliderInt4(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted
1184     {
1185         return igSliderInt4(label, v, v_min, v_max);
1186     }
1187 
1188     bool SliderInt4Ex(scope const(char)* label, scope int* v, int v_min, int v_max, scope
1189         char* format, ImGuiSliderFlags flags) @trusted
1190     {
1191         return igSliderInt4Ex(label, v, v_min, v_max, format, flags);
1192     }
1193 
1194     bool SliderScalar(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, scope
1195         void* p_min, scope void* p_max) @trusted
1196     {
1197         return igSliderScalar(label, data_type, p_data, p_min, p_max);
1198     }
1199 
1200     bool SliderScalarEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, scope void* p_min, scope
1201         void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1202     {
1203         return igSliderScalarEx(label, data_type, p_data, p_min, p_max, format, flags);
1204     }
1205 
1206     bool SliderScalarN(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components, scope
1207         void* p_min, scope void* p_max) @trusted
1208     {
1209         return igSliderScalarN(label, data_type, p_data, components, p_min, p_max);
1210     }
1211 
1212     bool SliderScalarNEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components, scope void* p_min, scope
1213         void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1214     {
1215         return igSliderScalarNEx(label, data_type, p_data, components, p_min, p_max, format, flags);
1216     }
1217 
1218     bool VSliderFloat(scope const(char)* label, ImVec2 size, scope float* v, float v_min, float v_max) @trusted
1219     {
1220         return igVSliderFloat(label, size, v, v_min, v_max);
1221     }
1222 
1223     bool VSliderFloatEx(scope const(char)* label, ImVec2 size, scope float* v, float v_min, float v_max, scope
1224         char* format, ImGuiSliderFlags flags) @trusted
1225     {
1226         return igVSliderFloatEx(label, size, v, v_min, v_max, format, flags);
1227     }
1228 
1229     bool VSliderInt(scope const(char)* label, ImVec2 size, scope int* v, int v_min, int v_max) @trusted
1230     {
1231         return igVSliderInt(label, size, v, v_min, v_max);
1232     }
1233 
1234     bool VSliderIntEx(scope const(char)* label, ImVec2 size, scope int* v, int v_min, int v_max, scope
1235         char* format, ImGuiSliderFlags flags) @trusted
1236     {
1237         return igVSliderIntEx(label, size, v, v_min, v_max, format, flags);
1238     }
1239 
1240     bool VSliderScalar(scope const(char)* label, ImVec2 size, ImGuiDataType data_type, scope
1241         void* p_data, scope void* p_min, scope void* p_max) @trusted
1242     {
1243         return igVSliderScalar(label, size, data_type, p_data, p_min, p_max);
1244     }
1245 
1246     bool VSliderScalarEx(scope const(char)* label, ImVec2 size, ImGuiDataType data_type, scope
1247         void* p_data, scope void* p_min, scope void* p_max, scope const(char)* format, ImGuiSliderFlags flags) @trusted
1248     {
1249         return igVSliderScalarEx(label, size, data_type, p_data, p_min, p_max, format, flags);
1250     }
1251 
1252     bool InputText(scope const(char)* label, scope char* buf, size_t buf_size, ImGuiInputTextFlags flags) @trusted
1253     {
1254         return igInputText(label, buf, buf_size, flags);
1255     }
1256 
1257     bool InputTextEx(scope const(char)* label, scope char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, scope
1258         void* user_data) @trusted
1259     {
1260         return igInputTextEx(label, buf, buf_size, flags, callback, user_data);
1261     }
1262 
1263     bool InputTextMultiline(scope const(char)* label, scope char* buf, size_t buf_size) @trusted
1264     {
1265         return igInputTextMultiline(label, buf, buf_size);
1266     }
1267 
1268     bool InputTextMultilineEx(scope const(char)* label, scope char* buf, size_t buf_size, ImVec2 size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, scope
1269         void* user_data) @trusted
1270     {
1271         return igInputTextMultilineEx(label, buf, buf_size, size, flags, callback, user_data);
1272     }
1273 
1274     bool InputTextWithHint(scope const(char)* label, scope const(char)* hint, scope char* buf, size_t buf_size, ImGuiInputTextFlags flags) @trusted
1275     {
1276         return igInputTextWithHint(label, hint, buf, buf_size, flags);
1277     }
1278 
1279     bool InputTextWithHintEx(scope const(char)* label, scope const(char)* hint, scope char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, scope
1280         void* user_data) @trusted
1281     {
1282         return igInputTextWithHintEx(label, hint, buf, buf_size, flags, callback, user_data);
1283     }
1284 
1285     bool InputFloat(scope const(char)* label, scope float* v) @trusted
1286     {
1287         return igInputFloat(label, v);
1288     }
1289 
1290     bool InputFloatEx(scope const(char)* label, scope float* v, float step, float step_fast, scope
1291         char* format, ImGuiInputTextFlags flags) @trusted
1292     {
1293         return igInputFloatEx(label, v, step, step_fast, format, flags);
1294     }
1295 
1296     bool InputFloat2(scope const(char)* label, scope float* v) @trusted
1297     {
1298         return igInputFloat2(label, v);
1299     }
1300 
1301     bool InputFloat2Ex(scope const(char)* label, scope float* v, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1302     {
1303         return igInputFloat2Ex(label, v, format, flags);
1304     }
1305 
1306     bool InputFloat3(scope const(char)* label, scope float* v) @trusted
1307     {
1308         return igInputFloat3(label, v);
1309     }
1310 
1311     bool InputFloat3Ex(scope const(char)* label, scope float* v, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1312     {
1313         return igInputFloat3Ex(label, v, format, flags);
1314     }
1315 
1316     bool InputFloat4(scope const(char)* label, scope float* v) @trusted
1317     {
1318         return igInputFloat4(label, v);
1319     }
1320 
1321     bool InputFloat4Ex(scope const(char)* label, scope float* v, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1322     {
1323         return igInputFloat4Ex(label, v, format, flags);
1324     }
1325 
1326     bool InputInt(scope const(char)* label, scope int* v) @trusted
1327     {
1328         return igInputInt(label, v);
1329     }
1330 
1331     bool InputIntEx(scope const(char)* label, scope int* v, int step, int step_fast, ImGuiInputTextFlags flags) @trusted
1332     {
1333         return igInputIntEx(label, v, step, step_fast, flags);
1334     }
1335 
1336     bool InputInt2(scope const(char)* label, scope int* v, ImGuiInputTextFlags flags) @trusted
1337     {
1338         return igInputInt2(label, v, flags);
1339     }
1340 
1341     bool InputInt3(scope const(char)* label, scope int* v, ImGuiInputTextFlags flags) @trusted
1342     {
1343         return igInputInt3(label, v, flags);
1344     }
1345 
1346     bool InputInt4(scope const(char)* label, scope int* v, ImGuiInputTextFlags flags) @trusted
1347     {
1348         return igInputInt4(label, v, flags);
1349     }
1350 
1351     bool InputDouble(scope const(char)* label, scope double* v) @trusted
1352     {
1353         return igInputDouble(label, v);
1354     }
1355 
1356     bool InputDoubleEx(scope const(char)* label, scope double* v, double step, double step_fast, scope
1357         char* format, ImGuiInputTextFlags flags) @trusted
1358     {
1359         return igInputDoubleEx(label, v, step, step_fast, format, flags);
1360     }
1361 
1362     bool InputScalar(scope const(char)* label, ImGuiDataType data_type, scope void* p_data) @trusted
1363     {
1364         return igInputScalar(label, data_type, p_data);
1365     }
1366 
1367     bool InputScalarEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, scope void* p_step, scope
1368         void* p_step_fast, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1369     {
1370         return igInputScalarEx(label, data_type, p_data, p_step, p_step_fast, format, flags);
1371     }
1372 
1373     bool InputScalarN(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components) @trusted
1374     {
1375         return igInputScalarN(label, data_type, p_data, components);
1376     }
1377 
1378     bool InputScalarNEx(scope const(char)* label, ImGuiDataType data_type, scope void* p_data, int components, scope void* p_step, scope
1379         void* p_step_fast, scope const(char)* format, ImGuiInputTextFlags flags) @trusted
1380     {
1381         return igInputScalarNEx(label, data_type, p_data, components, p_step, p_step_fast, format, flags);
1382     }
1383 
1384     bool ColorEdit3(scope const(char)* label, scope float* col, ImGuiColorEditFlags flags) @trusted
1385     {
1386         return igColorEdit3(label, col, flags);
1387     }
1388 
1389     bool ColorEdit4(scope const(char)* label, scope float* col, ImGuiColorEditFlags flags) @trusted
1390     {
1391         return igColorEdit4(label, col, flags);
1392     }
1393 
1394     bool ColorPicker3(scope const(char)* label, scope float* col, ImGuiColorEditFlags flags) @trusted
1395     {
1396         return igColorPicker3(label, col, flags);
1397     }
1398 
1399     bool ColorPicker4(scope const(char)* label, scope float* col, ImGuiColorEditFlags flags, scope
1400         float* ref_col) @trusted
1401     {
1402         return igColorPicker4(label, col, flags, ref_col);
1403     }
1404 
1405     bool ColorButton(scope const(char)* desc_id, ImVec4 col, ImGuiColorEditFlags flags) @trusted
1406     {
1407         return igColorButton(desc_id, col, flags);
1408     }
1409 
1410     bool ColorButtonEx(scope const(char)* desc_id, ImVec4 col, ImGuiColorEditFlags flags, ImVec2 size) @trusted
1411     {
1412         return igColorButtonEx(desc_id, col, flags, size);
1413     }
1414 
1415     void SetColorEditOptions(
1416         ImGuiColorEditFlags flags) @trusted
1417     {
1418         igSetColorEditOptions(
1419             flags);
1420     }
1421 
1422     bool TreeNode(
1423         scope const(char)* label) @trusted
1424     {
1425         return igTreeNode(label);
1426     }
1427 
1428     bool TreeNodeStr(scope const(char)* str_id, scope const(char)* fmt) @trusted
1429     {
1430         return igTreeNodeStr(str_id, fmt);
1431     }
1432 
1433     bool TreeNodePtr(scope void* ptr_id, scope const(char)* fmt) @trusted
1434     {
1435         return igTreeNodePtr(ptr_id, fmt);
1436     }
1437 
1438     bool TreeNodeV(Args...)(scope const(char)* str_id, scope const(char)* fmt, Args args) @trusted
1439     {
1440         return igTreeNodeV(str_id, fmt, args);
1441     }
1442 
1443     bool TreeNodeVPtr(Args...)(scope void* ptr_id, scope const(char)* fmt, Args args) @trusted
1444     {
1445         return igTreeNodeVPtr(ptr_id, fmt, args);
1446     }
1447 
1448     bool TreeNodeEx(scope const(char)* label, ImGuiTreeNodeFlags flags) @trusted
1449     {
1450         return igTreeNodeEx(label, flags);
1451     }
1452 
1453     bool TreeNodeExStr(scope const(char)* str_id, ImGuiTreeNodeFlags flags, scope const(char)* fmt) @trusted
1454     {
1455         return igTreeNodeExStr(str_id, flags, fmt);
1456     }
1457 
1458     bool TreeNodeExPtr(scope void* ptr_id, ImGuiTreeNodeFlags flags, scope const(char)* fmt) @trusted
1459     {
1460         return igTreeNodeExPtr(ptr_id, flags, fmt);
1461     }
1462 
1463     bool TreeNodeExV(Args...)(scope const(char)* str_id, ImGuiTreeNodeFlags flags, scope const(char)* fmt, Args args) @trusted
1464     {
1465         return igTreeNodeExV(str_id, flags, fmt, args);
1466     }
1467 
1468     bool TreeNodeExVPtr(Args...)(scope void* ptr_id, ImGuiTreeNodeFlags flags, scope const(char)* fmt, Args args) @trusted
1469     {
1470         return igTreeNodeExVPtr(ptr_id, flags, fmt, args);
1471     }
1472 
1473     void TreePush(
1474         scope const(char)* str_id) @trusted
1475     {
1476         igTreePush(str_id);
1477     }
1478 
1479     void TreePushPtr(
1480         scope void* ptr_id) @trusted
1481     {
1482         igTreePushPtr(ptr_id);
1483     }
1484 
1485     void TreePop() @trusted
1486     {
1487         igTreePop();
1488     }
1489 
1490     float GetTreeNodeToLabelSpacing() @trusted
1491     {
1492         return igGetTreeNodeToLabelSpacing();
1493     }
1494 
1495     bool CollapsingHeader(scope const(char)* label, ImGuiTreeNodeFlags flags) @trusted
1496     {
1497         return igCollapsingHeader(label, flags);
1498     }
1499 
1500     bool CollapsingHeaderBoolPtr(scope const(char)* label, scope bool* p_visible, ImGuiTreeNodeFlags flags) @trusted
1501     {
1502         return igCollapsingHeaderBoolPtr(label, p_visible, flags);
1503     }
1504 
1505     void SetNextItemOpen(bool is_open, ImGuiCond cond) @trusted
1506     {
1507         igSetNextItemOpen(is_open, cond);
1508     }
1509 
1510     void SetNextItemStorageID(
1511         ImGuiID storage_id) @trusted
1512     {
1513         igSetNextItemStorageID(
1514             storage_id);
1515     }
1516 
1517     bool Selectable(
1518         scope const(char)* label) @trusted
1519     {
1520         return igSelectable(
1521             label);
1522     }
1523 
1524     bool SelectableEx(scope const(char)* label, bool selected, ImGuiSelectableFlags flags, ImVec2 size) @trusted
1525     {
1526         return igSelectableEx(label, selected, flags, size);
1527     }
1528 
1529     bool SelectableBoolPtr(scope const(char)* label, scope bool* p_selected, ImGuiSelectableFlags flags) @trusted
1530     {
1531         return igSelectableBoolPtr(label, p_selected, flags);
1532     }
1533 
1534     bool SelectableBoolPtrEx(scope const(char)* label, scope bool* p_selected, ImGuiSelectableFlags flags, ImVec2 size) @trusted
1535     {
1536         return igSelectableBoolPtrEx(label, p_selected, flags, size);
1537     }
1538 
1539     scope ImGuiMultiSelectIO* BeginMultiSelect(
1540         ImGuiMultiSelectFlags flags) @trusted
1541     {
1542         return igBeginMultiSelect(
1543             flags);
1544     }
1545 
1546     scope ImGuiMultiSelectIO* BeginMultiSelectEx(
1547         ImGuiMultiSelectFlags flags, int selection_size, int items_count) @trusted
1548     {
1549         return igBeginMultiSelectEx(flags, selection_size, items_count);
1550     }
1551 
1552     scope ImGuiMultiSelectIO* EndMultiSelect() @trusted
1553     {
1554         return igEndMultiSelect();
1555     }
1556 
1557     void SetNextItemSelectionUserData(
1558         ImGuiSelectionUserData selection_user_data) @trusted
1559     {
1560         igSetNextItemSelectionUserData(
1561             selection_user_data);
1562     }
1563 
1564     bool IsItemToggledSelection() @trusted
1565     {
1566         return igIsItemToggledSelection();
1567     }
1568 
1569     bool BeginListBox(scope const(char)* label, ImVec2 size) @trusted
1570     {
1571         return igBeginListBox(label, size);
1572     }
1573 
1574     void EndListBox() @trusted
1575     {
1576         igEndListBox();
1577     }
1578 
1579     bool ListBox(scope const(char)* label, scope int* current_item, scope const(char)** items, int items_count, int height_in_items) @trusted
1580     {
1581         return igListBox(label, current_item, items, items_count, height_in_items);
1582     }
1583 
1584     bool ListBoxCallback(scope const(char)* label, scope int* current_item, ImGuiGetterFunc getter, scope
1585         void* user_data, int items_count) @trusted
1586     {
1587         return igListBoxCallback(label, current_item, getter, user_data, items_count);
1588     }
1589 
1590     bool ListBoxCallbackEx(scope const(char)* label, scope int* current_item, ImGuiGetterFunc getter, scope
1591         void* user_data, int items_count, int height_in_items) @trusted
1592     {
1593         return igListBoxCallbackEx(label, current_item, getter, user_data, items_count, height_in_items);
1594     }
1595 
1596     void PlotLines(scope const(char)* label, scope const(float)* values, int values_count) @trusted
1597     {
1598         igPlotLines(label, values, values_count);
1599     }
1600 
1601     void PlotLinesEx(scope const(char)* label, scope const(float)* values, int values_count, int values_offset, scope
1602         char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) @trusted
1603     {
1604         igPlotLinesEx(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride);
1605     }
1606 
1607     void PlotLinesCallback(scope const(char)* label, ImGuiValues_getterFunc values_getter, scope
1608         void* data, int values_count) @trusted
1609     {
1610         igPlotLinesCallback(label, values_getter, data, values_count);
1611     }
1612 
1613     void PlotLinesCallbackEx(scope const(char)* label, ImGuiValues_getterFunc values_getter, scope
1614         void* data, int values_count, int values_offset, scope const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) @trusted
1615     {
1616         igPlotLinesCallbackEx(label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size);
1617     }
1618 
1619     void PlotHistogram(scope const(char)* label, scope const(float)* values, int values_count) @trusted
1620     {
1621         igPlotHistogram(label, values, values_count);
1622     }
1623 
1624     void PlotHistogramEx(scope const(char)* label, scope const(float)* values, int values_count, int values_offset, scope
1625         char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) @trusted
1626     {
1627         igPlotHistogramEx(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride);
1628     }
1629 
1630     void PlotHistogramCallback(scope const(char)* label, ImGuiValues_getterFunc values_getter, scope
1631         void* data, int values_count) @trusted
1632     {
1633         igPlotHistogramCallback(label, values_getter, data, values_count);
1634     }
1635 
1636     void PlotHistogramCallbackEx(scope const(char)* label, ImGuiValues_getterFunc values_getter, scope
1637         void* data, int values_count, int values_offset, scope const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) @trusted
1638     {
1639         igPlotHistogramCallbackEx(label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size);
1640     }
1641 
1642     bool BeginMenuBar() @trusted
1643     {
1644         return igBeginMenuBar();
1645     }
1646 
1647     void EndMenuBar() @trusted
1648     {
1649         igEndMenuBar();
1650     }
1651 
1652     bool BeginMainMenuBar() @trusted
1653     {
1654         return igBeginMainMenuBar();
1655     }
1656 
1657     void EndMainMenuBar() @trusted
1658     {
1659         igEndMainMenuBar();
1660     }
1661 
1662     bool BeginMenu(
1663         scope const(char)* label) @trusted
1664     {
1665         return igBeginMenu(
1666             label);
1667     }
1668 
1669     bool BeginMenuEx(scope const(char)* label, bool enabled) @trusted
1670     {
1671         return igBeginMenuEx(label, enabled);
1672     }
1673 
1674     void EndMenu() @trusted
1675     {
1676         igEndMenu();
1677     }
1678 
1679     bool MenuItem(
1680         scope const(char)* label) @trusted
1681     {
1682         return igMenuItem(label);
1683     }
1684 
1685     bool MenuItemEx(scope const(char)* label, scope const(char)* shortcut, bool selected, bool enabled) @trusted
1686     {
1687         return igMenuItemEx(label, shortcut, selected, enabled);
1688     }
1689 
1690     bool MenuItemBoolPtr(scope const(char)* label, scope const(char)* shortcut, scope bool* p_selected, bool enabled) @trusted
1691     {
1692         return igMenuItemBoolPtr(label, shortcut, p_selected, enabled);
1693     }
1694 
1695     bool BeginTooltip() @trusted
1696     {
1697         return igBeginTooltip();
1698     }
1699 
1700     void EndTooltip() @trusted
1701     {
1702         igEndTooltip();
1703     }
1704 
1705     void SetTooltip(
1706         scope const(char)* fmt) @trusted
1707     {
1708         igSetTooltip(fmt);
1709     }
1710 
1711     void SetTooltipV(Args...)(scope const(char)* fmt, Args args) @trusted
1712     {
1713         igSetTooltipV(fmt, args);
1714     }
1715 
1716     bool BeginItemTooltip() @trusted
1717     {
1718         return igBeginItemTooltip();
1719     }
1720 
1721     void SetItemTooltip(
1722         scope const(char)* fmt) @trusted
1723     {
1724         igSetItemTooltip(fmt);
1725     }
1726 
1727     void SetItemTooltipV(Args...)(scope const(char)* fmt, Args args) @trusted
1728     {
1729         igSetItemTooltipV(fmt, args);
1730     }
1731 
1732     bool BeginPopup(scope const(char)* str_id, ImGuiWindowFlags flags) @trusted
1733     {
1734         return igBeginPopup(str_id, flags);
1735     }
1736 
1737     bool BeginPopupModal(scope const(char)* name, scope bool* p_open, ImGuiWindowFlags flags) @trusted
1738     {
1739         return igBeginPopupModal(name, p_open, flags);
1740     }
1741 
1742     void EndPopup() @trusted
1743     {
1744         igEndPopup();
1745     }
1746 
1747     void OpenPopup(scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1748     {
1749         igOpenPopup(str_id, popup_flags);
1750     }
1751 
1752     void OpenPopupID(ImGuiID id, ImGuiPopupFlags popup_flags) @trusted
1753     {
1754         igOpenPopupID(id, popup_flags);
1755     }
1756 
1757     void OpenPopupOnItemClick(scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1758     {
1759         igOpenPopupOnItemClick(str_id, popup_flags);
1760     }
1761 
1762     void CloseCurrentPopup() @trusted
1763     {
1764         igCloseCurrentPopup();
1765     }
1766 
1767     bool BeginPopupContextItem() @trusted
1768     {
1769         return igBeginPopupContextItem();
1770     }
1771 
1772     bool BeginPopupContextItemEx(scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1773     {
1774         return igBeginPopupContextItemEx(str_id, popup_flags);
1775     }
1776 
1777     bool BeginPopupContextWindow() @trusted
1778     {
1779         return igBeginPopupContextWindow();
1780     }
1781 
1782     bool BeginPopupContextWindowEx(
1783         scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1784     {
1785         return igBeginPopupContextWindowEx(str_id, popup_flags);
1786     }
1787 
1788     bool BeginPopupContextVoid() @trusted
1789     {
1790         return igBeginPopupContextVoid();
1791     }
1792 
1793     bool BeginPopupContextVoidEx(scope const(char)* str_id, ImGuiPopupFlags popup_flags) @trusted
1794     {
1795         return igBeginPopupContextVoidEx(str_id, popup_flags);
1796     }
1797 
1798     bool IsPopupOpen(scope const(char)* str_id, ImGuiPopupFlags flags) @trusted
1799     {
1800         return igIsPopupOpen(str_id, flags);
1801     }
1802 
1803     bool BeginTable(scope const(char)* str_id, int columns, ImGuiTableFlags flags) @trusted
1804     {
1805         return igBeginTable(str_id, columns, flags);
1806     }
1807 
1808     bool BeginTableEx(scope const(char)* str_id, int columns, ImGuiTableFlags flags, ImVec2 outer_size, float inner_width) @trusted
1809     {
1810         return igBeginTableEx(str_id, columns, flags, outer_size, inner_width);
1811     }
1812 
1813     void EndTable() @trusted
1814     {
1815         igEndTable();
1816     }
1817 
1818     void TableNextRow() @trusted
1819     {
1820         igTableNextRow();
1821     }
1822 
1823     void TableNextRowEx(
1824         ImGuiTableRowFlags row_flags, float min_row_height) @trusted
1825     {
1826         igTableNextRowEx(row_flags, min_row_height);
1827     }
1828 
1829     bool TableNextColumn() @trusted
1830     {
1831         return igTableNextColumn();
1832     }
1833 
1834     bool TableSetColumnIndex(
1835         int column_n) @trusted
1836     {
1837         return igTableSetColumnIndex(
1838             column_n);
1839     }
1840 
1841     void TableSetupColumn(scope const(char)* label, ImGuiTableColumnFlags flags) @trusted
1842     {
1843         igTableSetupColumn(label, flags);
1844     }
1845 
1846     void TableSetupColumnEx(scope const(char)* label, ImGuiTableColumnFlags flags, float init_width_or_weight, ImGuiID user_id) @trusted
1847     {
1848         igTableSetupColumnEx(label, flags, init_width_or_weight, user_id);
1849     }
1850 
1851     void TableSetupScrollFreeze(int cols, int rows) @trusted
1852     {
1853         igTableSetupScrollFreeze(cols, rows);
1854     }
1855 
1856     void TableHeader(
1857         scope const(char)* label) @trusted
1858     {
1859         igTableHeader(label);
1860     }
1861 
1862     void TableHeadersRow() @trusted
1863     {
1864         igTableHeadersRow();
1865     }
1866 
1867     void TableAngledHeadersRow() @trusted
1868     {
1869         igTableAngledHeadersRow();
1870     }
1871 
1872     scope ImGuiTableSortSpecs* TableGetSortSpecs() @trusted
1873     {
1874         return igTableGetSortSpecs();
1875     }
1876 
1877     int TableGetColumnCount() @trusted
1878     {
1879         return igTableGetColumnCount();
1880     }
1881 
1882     int TableGetColumnIndex() @trusted
1883     {
1884         return igTableGetColumnIndex();
1885     }
1886 
1887     int TableGetRowIndex() @trusted
1888     {
1889         return igTableGetRowIndex();
1890     }
1891 
1892     scope const(char)* TableGetColumnName(
1893         int column_n) @trusted
1894     {
1895         return igTableGetColumnName(
1896             column_n);
1897     }
1898 
1899     ImGuiTableColumnFlags TableGetColumnFlags(
1900         int column_n) @trusted
1901     {
1902         return igTableGetColumnFlags(
1903             column_n);
1904     }
1905 
1906     void TableSetColumnEnabled(int column_n, bool v) @trusted
1907     {
1908         igTableSetColumnEnabled(column_n, v);
1909     }
1910 
1911     int TableGetHoveredColumn() @trusted
1912     {
1913         return igTableGetHoveredColumn();
1914     }
1915 
1916     void TableSetBgColor(ImGuiTableBgTarget target, ImU32 color, int column_n) @trusted
1917     {
1918         igTableSetBgColor(target, color, column_n);
1919     }
1920 
1921     void Columns() @trusted
1922     {
1923         igColumns();
1924     }
1925 
1926     void ColumnsEx(int count, scope const(char)* id, bool borders) @trusted
1927     {
1928         igColumnsEx(count, id, borders);
1929     }
1930 
1931     void NextColumn() @trusted
1932     {
1933         igNextColumn();
1934     }
1935 
1936     int GetColumnIndex() @trusted
1937     {
1938         return igGetColumnIndex();
1939     }
1940 
1941     float GetColumnWidth(
1942         int column_index) @trusted
1943     {
1944         return igGetColumnWidth(
1945             column_index);
1946     }
1947 
1948     void SetColumnWidth(int column_index, float width) @trusted
1949     {
1950         igSetColumnWidth(column_index, width);
1951     }
1952 
1953     float GetColumnOffset(
1954         int column_index) @trusted
1955     {
1956         return igGetColumnOffset(
1957             column_index);
1958     }
1959 
1960     void SetColumnOffset(int column_index, float offset_x) @trusted
1961     {
1962         igSetColumnOffset(column_index, offset_x);
1963     }
1964 
1965     int GetColumnsCount() @trusted
1966     {
1967         return igGetColumnsCount();
1968     }
1969 
1970     bool BeginTabBar(scope const(char)* str_id, ImGuiTabBarFlags flags) @trusted
1971     {
1972         return igBeginTabBar(str_id, flags);
1973     }
1974 
1975     void EndTabBar() @trusted
1976     {
1977         igEndTabBar();
1978     }
1979 
1980     bool BeginTabItem(scope const(char)* label, scope bool* p_open, ImGuiTabItemFlags flags) @trusted
1981     {
1982         return igBeginTabItem(label, p_open, flags);
1983     }
1984 
1985     void EndTabItem() @trusted
1986     {
1987         igEndTabItem();
1988     }
1989 
1990     bool TabItemButton(scope const(char)* label, ImGuiTabItemFlags flags) @trusted
1991     {
1992         return igTabItemButton(label, flags);
1993     }
1994 
1995     void SetTabItemClosed(
1996         scope const(char)* tab_or_docked_window_label) @trusted
1997     {
1998         igSetTabItemClosed(
1999             tab_or_docked_window_label);
2000     }
2001 
2002     void LogToTTY(
2003         int auto_open_depth) @trusted
2004     {
2005         igLogToTTY(
2006             auto_open_depth);
2007     }
2008 
2009     void LogToFile(int auto_open_depth, scope const(char)* filename) @trusted
2010     {
2011         igLogToFile(auto_open_depth, filename);
2012     }
2013 
2014     void LogToClipboard(
2015         int auto_open_depth) @trusted
2016     {
2017         igLogToClipboard(
2018             auto_open_depth);
2019     }
2020 
2021     void LogFinish() @trusted
2022     {
2023         igLogFinish();
2024     }
2025 
2026     void LogButtons() @trusted
2027     {
2028         igLogButtons();
2029     }
2030 
2031     void LogText(scope const(char)* fmt) @trusted
2032     {
2033         igLogText(fmt);
2034     }
2035 
2036     void LogTextV(Args...)(scope const(char)* fmt, Args args) @trusted
2037     {
2038         igLogTextV(fmt, args);
2039     }
2040 
2041     bool BeginDragDropSource(
2042         ImGuiDragDropFlags flags) @trusted
2043     {
2044         return igBeginDragDropSource(
2045             flags);
2046     }
2047 
2048     bool SetDragDropPayload(scope const(char)* type, scope void* data, size_t sz, ImGuiCond cond) @trusted
2049     {
2050         return igSetDragDropPayload(type, data, sz, cond);
2051     }
2052 
2053     void EndDragDropSource() @trusted
2054     {
2055         igEndDragDropSource();
2056     }
2057 
2058     bool BeginDragDropTarget() @trusted
2059     {
2060         return igBeginDragDropTarget();
2061     }
2062 
2063     scope ImGuiPayload* AcceptDragDropPayload(
2064         scope const(char)* type, ImGuiDragDropFlags flags) @trusted
2065     {
2066         return igAcceptDragDropPayload(type, flags);
2067     }
2068 
2069     void EndDragDropTarget() @trusted
2070     {
2071         igEndDragDropTarget();
2072     }
2073 
2074     scope ImGuiPayload* GetDragDropPayload() @trusted
2075     {
2076         return igGetDragDropPayload();
2077     }
2078 
2079     void BeginDisabled(
2080         bool disabled) @trusted
2081     {
2082         igBeginDisabled(
2083             disabled);
2084     }
2085 
2086     void EndDisabled() @trusted
2087     {
2088         igEndDisabled();
2089     }
2090 
2091     void PushClipRect(ImVec2 clip_rect_min, ImVec2 clip_rect_max, bool intersect_with_current_clip_rect) @trusted
2092     {
2093         igPushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect);
2094     }
2095 
2096     void PopClipRect() @trusted
2097     {
2098         igPopClipRect();
2099     }
2100 
2101     void SetItemDefaultFocus() @trusted
2102     {
2103         igSetItemDefaultFocus();
2104     }
2105 
2106     void SetKeyboardFocusHere() @trusted
2107     {
2108         igSetKeyboardFocusHere();
2109     }
2110 
2111     void SetKeyboardFocusHereEx(
2112         int offset) @trusted
2113     {
2114         igSetKeyboardFocusHereEx(
2115             offset);
2116     }
2117 
2118     void SetNavCursorVisible(
2119         bool visible) @trusted
2120     {
2121         igSetNavCursorVisible(
2122             visible);
2123     }
2124 
2125     void SetNextItemAllowOverlap() @trusted
2126     {
2127         igSetNextItemAllowOverlap();
2128     }
2129 
2130     bool IsItemHovered(
2131         ImGuiHoveredFlags flags) @trusted
2132     {
2133         return igIsItemHovered(
2134             flags);
2135     }
2136 
2137     bool IsItemActive() @trusted
2138     {
2139         return igIsItemActive();
2140     }
2141 
2142     bool IsItemFocused() @trusted
2143     {
2144         return igIsItemFocused();
2145     }
2146 
2147     bool IsItemClicked() @trusted
2148     {
2149         return igIsItemClicked();
2150     }
2151 
2152     bool IsItemClickedEx(
2153         ImGuiMouseButton mouse_button) @trusted
2154     {
2155         return igIsItemClickedEx(
2156             mouse_button);
2157     }
2158 
2159     bool IsItemVisible() @trusted
2160     {
2161         return igIsItemVisible();
2162     }
2163 
2164     bool IsItemEdited() @trusted
2165     {
2166         return igIsItemEdited();
2167     }
2168 
2169     bool IsItemActivated() @trusted
2170     {
2171         return igIsItemActivated();
2172     }
2173 
2174     bool IsItemDeactivated() @trusted
2175     {
2176         return igIsItemDeactivated();
2177     }
2178 
2179     bool IsItemDeactivatedAfterEdit() @trusted
2180     {
2181         return igIsItemDeactivatedAfterEdit();
2182     }
2183 
2184     bool IsItemToggledOpen() @trusted
2185     {
2186         return igIsItemToggledOpen();
2187     }
2188 
2189     bool IsAnyItemHovered() @trusted
2190     {
2191         return igIsAnyItemHovered();
2192     }
2193 
2194     bool IsAnyItemActive() @trusted
2195     {
2196         return igIsAnyItemActive();
2197     }
2198 
2199     bool IsAnyItemFocused() @trusted
2200     {
2201         return igIsAnyItemFocused();
2202     }
2203 
2204     ImGuiID GetItemID() @trusted
2205     {
2206         return igGetItemID();
2207     }
2208 
2209     ImVec2 GetItemRectMin() @trusted
2210     {
2211         return igGetItemRectMin();
2212     }
2213 
2214     ImVec2 GetItemRectMax() @trusted
2215     {
2216         return igGetItemRectMax();
2217     }
2218 
2219     ImVec2 GetItemRectSize() @trusted
2220     {
2221         return igGetItemRectSize();
2222     }
2223 
2224     scope ImGuiViewport* GetMainViewport() @trusted
2225     {
2226         return igGetMainViewport();
2227     }
2228 
2229     scope ImDrawList* GetBackgroundDrawList() @trusted
2230     {
2231         return igGetBackgroundDrawList();
2232     }
2233 
2234     scope ImDrawList* GetForegroundDrawList() @trusted
2235     {
2236         return igGetForegroundDrawList();
2237     }
2238 
2239     bool IsRectVisibleBySize(
2240         ImVec2 size) @trusted
2241     {
2242         return igIsRectVisibleBySize(
2243             size);
2244     }
2245 
2246     bool IsRectVisible(ImVec2 rect_min, ImVec2 rect_max) @trusted
2247     {
2248         return igIsRectVisible(rect_min, rect_max);
2249     }
2250 
2251     double GetTime() @trusted
2252     {
2253         return igGetTime();
2254     }
2255 
2256     int GetFrameCount() @trusted
2257     {
2258         return igGetFrameCount();
2259     }
2260 
2261     scope ImDrawListSharedData* GetDrawListSharedData() @trusted
2262     {
2263         return igGetDrawListSharedData();
2264     }
2265 
2266     scope const(char)* GetStyleColorName(
2267         ImGuiCol idx) @trusted
2268     {
2269         return igGetStyleColorName(
2270             idx);
2271     }
2272 
2273     void SetStateStorage(
2274         scope ImGuiStorage* storage) @trusted
2275     {
2276         igSetStateStorage(
2277             storage);
2278     }
2279 
2280     scope ImGuiStorage* GetStateStorage() @trusted
2281     {
2282         return igGetStateStorage();
2283     }
2284 
2285     ImVec2 CalcTextSize(
2286         scope const(char)* text) @trusted
2287     {
2288         return igCalcTextSize(
2289             text);
2290     }
2291 
2292     ImVec2 CalcTextSizeEx(scope const(char)* text, scope const(char)* text_end, bool hide_text_after_double_hash, float wrap_width) @trusted
2293     {
2294         return igCalcTextSizeEx(text, text_end, hide_text_after_double_hash, wrap_width);
2295     }
2296 
2297     ImVec4 ColorConvertU32ToFloat4(
2298         ImU32 in_) @trusted
2299     {
2300         return igColorConvertU32ToFloat4(
2301             in_);
2302     }
2303 
2304     ImU32 ColorConvertFloat4ToU32(
2305         ImVec4 in_) @trusted
2306     {
2307         return igColorConvertFloat4ToU32(
2308             in_);
2309     }
2310 
2311     void ColorConvertRGBtoHSV(float r, float g, float b, scope float* out_h, scope
2312         float* out_s, scope float* out_v) @trusted
2313     {
2314         igColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v);
2315     }
2316 
2317     void ColorConvertHSVtoRGB(float h, float s, float v, scope float* out_r, scope
2318         float* out_g, scope float* out_b) @trusted
2319     {
2320         igColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b);
2321     }
2322 
2323     bool IsKeyDown(ImGuiKey key) @trusted
2324     {
2325         return igIsKeyDown(key);
2326     }
2327 
2328     bool IsKeyPressed(
2329         ImGuiKey key) @trusted
2330     {
2331         return igIsKeyPressed(
2332             key);
2333     }
2334 
2335     bool IsKeyPressedEx(ImGuiKey key, bool repeat) @trusted
2336     {
2337         return igIsKeyPressedEx(key, repeat);
2338     }
2339 
2340     bool IsKeyReleased(
2341         ImGuiKey key) @trusted
2342     {
2343         return igIsKeyReleased(
2344             key);
2345     }
2346 
2347     bool IsKeyChordPressed(
2348         ImGuiKeyChord key_chord) @trusted
2349     {
2350         return igIsKeyChordPressed(
2351             key_chord);
2352     }
2353 
2354     int GetKeyPressedAmount(ImGuiKey key, float repeat_delay, float rate) @trusted
2355     {
2356         return igGetKeyPressedAmount(key, repeat_delay, rate);
2357     }
2358 
2359     scope const(char)* GetKeyName(
2360         ImGuiKey key) @trusted
2361     {
2362         return igGetKeyName(key);
2363     }
2364 
2365     void SetNextFrameWantCaptureKeyboard(
2366         bool want_capture_keyboard) @trusted
2367     {
2368         igSetNextFrameWantCaptureKeyboard(
2369             want_capture_keyboard);
2370     }
2371 
2372     bool Shortcut(ImGuiKeyChord key_chord, ImGuiInputFlags flags) @trusted
2373     {
2374         return igShortcut(key_chord, flags);
2375     }
2376 
2377     void SetNextItemShortcut(
2378         ImGuiKeyChord key_chord, ImGuiInputFlags flags) @trusted
2379     {
2380         igSetNextItemShortcut(key_chord, flags);
2381     }
2382 
2383     void SetItemKeyOwner(
2384         ImGuiKey key) @trusted
2385     {
2386         igSetItemKeyOwner(key);
2387     }
2388 
2389     bool IsMouseDown(
2390         ImGuiMouseButton button) @trusted
2391     {
2392         return igIsMouseDown(
2393             button);
2394     }
2395 
2396     bool IsMouseClicked(
2397         ImGuiMouseButton button) @trusted
2398     {
2399         return igIsMouseClicked(
2400             button);
2401     }
2402 
2403     bool IsMouseClickedEx(ImGuiMouseButton button, bool repeat) @trusted
2404     {
2405         return igIsMouseClickedEx(button, repeat);
2406     }
2407 
2408     bool IsMouseReleased(
2409         ImGuiMouseButton button) @trusted
2410     {
2411         return igIsMouseReleased(
2412             button);
2413     }
2414 
2415     bool IsMouseDoubleClicked(
2416         ImGuiMouseButton button) @trusted
2417     {
2418         return igIsMouseDoubleClicked(
2419             button);
2420     }
2421 
2422     bool IsMouseReleasedWithDelay(
2423         ImGuiMouseButton button, float delay) @trusted
2424     {
2425         return igIsMouseReleasedWithDelay(button, delay);
2426     }
2427 
2428     int GetMouseClickedCount(
2429         ImGuiMouseButton button) @trusted
2430     {
2431         return igGetMouseClickedCount(
2432             button);
2433     }
2434 
2435     bool IsMouseHoveringRect(ImVec2 r_min, ImVec2 r_max) @trusted
2436     {
2437         return igIsMouseHoveringRect(r_min, r_max);
2438     }
2439 
2440     bool IsMouseHoveringRectEx(ImVec2 r_min, ImVec2 r_max, bool clip) @trusted
2441     {
2442         return igIsMouseHoveringRectEx(r_min, r_max, clip);
2443     }
2444 
2445     bool IsMousePosValid(
2446         scope ImVec2* mouse_pos) @trusted
2447     {
2448         return igIsMousePosValid(
2449             mouse_pos);
2450     }
2451 
2452     bool IsAnyMouseDown() @trusted
2453     {
2454         return igIsAnyMouseDown();
2455     }
2456 
2457     ImVec2 GetMousePos() @trusted
2458     {
2459         return igGetMousePos();
2460     }
2461 
2462     ImVec2 GetMousePosOnOpeningCurrentPopup() @trusted
2463     {
2464         return igGetMousePosOnOpeningCurrentPopup();
2465     }
2466 
2467     bool IsMouseDragging(ImGuiMouseButton button, float lock_threshold) @trusted
2468     {
2469         return igIsMouseDragging(button, lock_threshold);
2470     }
2471 
2472     ImVec2 GetMouseDragDelta(
2473         ImGuiMouseButton button, float lock_threshold) @trusted
2474     {
2475         return igGetMouseDragDelta(button, lock_threshold);
2476     }
2477 
2478     void ResetMouseDragDelta() @trusted
2479     {
2480         igResetMouseDragDelta();
2481     }
2482 
2483     void ResetMouseDragDeltaEx(
2484         ImGuiMouseButton button) @trusted
2485     {
2486         igResetMouseDragDeltaEx(
2487             button);
2488     }
2489 
2490     ImGuiMouseCursor GetMouseCursor() @trusted
2491     {
2492         return igGetMouseCursor();
2493     }
2494 
2495     void SetMouseCursor(
2496         ImGuiMouseCursor cursor_type) @trusted
2497     {
2498         igSetMouseCursor(
2499             cursor_type);
2500     }
2501 
2502     void SetNextFrameWantCaptureMouse(
2503         bool want_capture_mouse) @trusted
2504     {
2505         igSetNextFrameWantCaptureMouse(
2506             want_capture_mouse);
2507     }
2508 
2509     scope const(char)* GetClipboardText() @trusted
2510     {
2511         return igGetClipboardText();
2512     }
2513 
2514     void SetClipboardText(
2515         scope const(char)* text) @trusted
2516     {
2517         igSetClipboardText(text);
2518     }
2519 
2520     void LoadIniSettingsFromDisk(
2521         scope const(char)* ini_filename) @trusted
2522     {
2523         igLoadIniSettingsFromDisk(
2524             ini_filename);
2525     }
2526 
2527     void LoadIniSettingsFromMemory(
2528         scope const(char)* ini_data, size_t ini_size) @trusted
2529     {
2530         igLoadIniSettingsFromMemory(ini_data, ini_size);
2531     }
2532 
2533     void SaveIniSettingsToDisk(
2534         scope const(char)* ini_filename) @trusted
2535     {
2536         igSaveIniSettingsToDisk(
2537             ini_filename);
2538     }
2539 
2540     scope const(char)* SaveIniSettingsToMemory(
2541         scope size_t* out_ini_size) @trusted
2542     {
2543         return igSaveIniSettingsToMemory(
2544             out_ini_size);
2545     }
2546 
2547     void DebugTextEncoding(
2548         scope const(char)* text) @trusted
2549     {
2550         igDebugTextEncoding(
2551             text);
2552     }
2553 
2554     void DebugFlashStyleColor(
2555         ImGuiCol idx) @trusted
2556     {
2557         igDebugFlashStyleColor(
2558             idx);
2559     }
2560 
2561     void DebugStartItemPicker() @trusted
2562     {
2563         igDebugStartItemPicker();
2564     }
2565 
2566     bool DebugCheckVersionAndDataLayout(
2567         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
2568     {
2569         return igDebugCheckVersionAndDataLayout(
2570             version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx);
2571     }
2572 
2573     void DebugLog(
2574         scope const(char)* fmt) @trusted
2575     {
2576         igDebugLog(fmt);
2577     }
2578 
2579     void DebugLogV(Args...)(scope const(char)* fmt, Args args) @trusted
2580     {
2581         igDebugLogV(fmt, args);
2582     }
2583 
2584     void SetAllocatorFunctions(
2585         ImGuiMemAllocFunc alloc_func, ImGuiMemFreeFunc free_func, scope
2586         void* user_data) @trusted
2587     {
2588         igSetAllocatorFunctions(alloc_func, free_func, user_data);
2589     }
2590 
2591     void GetAllocatorFunctions(
2592         scope ImGuiMemAllocFunc* p_alloc_func, scope
2593         ImGuiMemFreeFunc* p_free_func, scope void** p_user_data) @trusted
2594     {
2595         igGetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data);
2596     }
2597 
2598     scope void* MemAlloc(
2599         size_t size) @trusted
2600     {
2601         return igMemAlloc(size);
2602     }
2603 
2604     void MemFree(scope void* ptr) @trusted
2605     {
2606         igMemFree(ptr);
2607     }
2608 
2609     void ImageImVec4(ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1, ImVec4 tint_col, ImVec4 border_col) @trusted
2610     {
2611         igImageImVec4(user_texture_id, image_size, uv0, uv1, tint_col, border_col);
2612     }
2613 
2614     void PushButtonRepeat(
2615         bool repeat) @trusted
2616     {
2617         igPushButtonRepeat(
2618             repeat);
2619     }
2620 
2621     void PopButtonRepeat() @trusted
2622     {
2623         igPopButtonRepeat();
2624     }
2625 
2626     void PushTabStop(
2627         bool tab_stop) @trusted
2628     {
2629         igPushTabStop(tab_stop);
2630     }
2631 
2632     void PopTabStop() @trusted
2633     {
2634         igPopTabStop();
2635     }
2636 
2637     ImVec2 GetContentRegionMax() @trusted
2638     {
2639         return igGetContentRegionMax();
2640     }
2641 
2642     ImVec2 GetWindowContentRegionMin() @trusted
2643     {
2644         return igGetWindowContentRegionMin();
2645     }
2646 
2647     ImVec2 GetWindowContentRegionMax() @trusted
2648     {
2649         return igGetWindowContentRegionMax();
2650     }
2651 
2652     bool BeginChildFrame(ImGuiID id, ImVec2 size) @trusted
2653     {
2654         return igBeginChildFrame(id, size);
2655     }
2656 
2657     bool BeginChildFrameEx(ImGuiID id, ImVec2 size, ImGuiWindowFlags window_flags) @trusted
2658     {
2659         return igBeginChildFrameEx(id, size, window_flags);
2660     }
2661 
2662     void EndChildFrame() @trusted
2663     {
2664         igEndChildFrame();
2665     }
2666 
2667     void ShowStackToolWindow(
2668         scope bool* p_open) @trusted
2669     {
2670         igShowStackToolWindow(
2671             p_open);
2672     }
2673 
2674     bool ComboObsolete(scope const(char)* label, scope int* current_item, ImGuiOld_callbackFunc old_callback, scope
2675         void* user_data, int items_count) @trusted
2676     {
2677         return igComboObsolete(label, current_item, old_callback, user_data, items_count);
2678     }
2679 
2680     bool ComboObsoleteEx(scope const(char)* label, scope int* current_item, ImGuiOld_callbackFunc old_callback, scope
2681         void* user_data, int items_count, int popup_max_height_in_items) @trusted
2682     {
2683         return igComboObsoleteEx(label, current_item, old_callback, user_data, items_count, popup_max_height_in_items);
2684     }
2685 
2686     bool ListBoxObsolete(scope const(char)* label, scope int* current_item, ImGuiOld_callbackFunc old_callback, scope
2687         void* user_data, int items_count) @trusted
2688     {
2689         return igListBoxObsolete(label, current_item, old_callback, user_data, items_count);
2690     }
2691 
2692     bool ListBoxObsoleteEx(scope const(char)* label, scope int* current_item, ImGuiOld_callbackFunc old_callback, scope
2693         void* user_data, int items_count, int height_in_items) @trusted
2694     {
2695         return igListBoxObsoleteEx(label, current_item, old_callback, user_data, items_count, height_in_items);
2696     }
2697 
2698     void SetItemAllowOverlap() @trusted
2699     {
2700         igSetItemAllowOverlap();
2701     }
2702 
2703     void PushAllowKeyboardFocus(
2704         bool tab_stop) @trusted
2705     {
2706         igPushAllowKeyboardFocus(
2707             tab_stop);
2708     }
2709 
2710     void PopAllowKeyboardFocus() @trusted
2711     {
2712         igPopAllowKeyboardFocus();
2713     }
2714 
2715 }