1 /++ 2 This is a D wrapper around the C cimgui library (Dear ImGui). 3 It provides D bindings for the Dear ImGui immediate mode GUI library. 4 The bindings are generated using importC and manually curated. 5 6 Features: 7 - Full ImGui API coverage 8 - @trusted (unsafe/user-checked) wrapper functions 9 - Uses importC to directly interface with C code - @system (unsafe) functions by default 10 - Preserves ImGui's original style and naming conventions 11 - Handles memory management and context safety 12 +/ 13 14 module imgui; 15 public import imgui.dcimgui; 16 17 /++ 18 19 Index of this file: 20 // [SECTION] Header mess 21 // [SECTION] Forward declarations and basic types 22 // [SECTION] Dear ImGui end-user API functions 23 // [SECTION] Flags & Enumerations 24 // [SECTION] Tables API flags and structures (ImGuiTableFlags, ImGuiTableColumnFlags, ImGuiTableRowFlags, ImGuiTableBgTarget, ImGuiTableSortSpecs, ImGuiTableColumnSortSpecs) 25 // [SECTION] Helpers: Debug log, Memory allocations macros, ImVector<> 26 // [SECTION] ImGuiStyle 27 // [SECTION] ImGuiIO 28 // [SECTION] Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiPayload) 29 // [SECTION] Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, Math Operators, ImColor) 30 // [SECTION] Multi-Select API flags and structures (ImGuiMultiSelectFlags, ImGuiMultiSelectIO, ImGuiSelectionRequest, ImGuiSelectionBasicStorage, ImGuiSelectionExternalStorage) 31 // [SECTION] Drawing API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawFlags, ImDrawListFlags, ImDrawList, ImDrawData) 32 // [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontGlyphRangesBuilder, ImFontAtlasFlags, ImFontAtlas, ImFont) 33 // [SECTION] Viewports (ImGuiViewportFlags, ImGuiViewport) 34 // [SECTION] ImGuiPlatformIO + other Platform Dependent Interfaces (ImGuiPlatformImeData) 35 // [SECTION] Obsolete functions and types 36 37 +/ 38 39 /// Context creation and access 40 /// - Each context create its own ImFontAtlas by default. You may instance one yourself and pass it to CreateContext() to share a font atlas between contexts. 41 /// - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions() 42 /// for each static/DLL boundary you are calling from. Read "Context and Memory Allocators" section of imgui.cpp for details. 43 scope ImGuiContext_t* CreateContext(scope const(ImFontAtlas_t)* shared_font_atlas) @trusted 44 { 45 return igCreateContext(cast(ImFontAtlas_t*) shared_font_atlas); 46 } 47 48 void DestroyContext(scope ImGuiContext_t* ctx) @trusted 49 { 50 igDestroyContext(ctx); 51 } 52 53 scope ImGuiContext_t* GetCurrentContext() @trusted 54 { 55 return igGetCurrentContext(); 56 } 57 58 void SetCurrentContext(scope ImGuiContext_t* ctx) @trusted 59 { 60 igSetCurrentContext(ctx); 61 } 62 63 /// Main 64 65 /// access the ImGuiIO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags) 66 scope ImGuiIO_t* GetIO() @trusted 67 { 68 return igGetIO(); 69 } 70 /// access the ImGuiPlatformIO structure (mostly hooks/functions to connect to platform/renderer and OS Clipboard, IME etc.) 71 scope ImGuiPlatformIO_t* GetPlatformIO() @trusted 72 { 73 return igGetPlatformIO(); 74 } 75 /// access the Style structure (colors, sizes). Always use PushStyleColor(), PushStyleVar() to modify style mid-frame! 76 scope ImGuiStyle_t* GetStyle() @trusted 77 { 78 return igGetStyle(); 79 } 80 /// start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame(). 81 void NewFrame() @trusted 82 { 83 igNewFrame(); 84 } 85 /// ends the Dear ImGui frame. automatically called by Render(). If you don't need to render data (skipping rendering) you may call EndFrame() without Render()... 86 /// but you'll have wasted CPU already! If you don't need to render, better to not create any windows and not call NewFrame() at all! 87 void EndFrame() @trusted 88 { 89 igEndFrame(); 90 } 91 /// ends the Dear ImGui frame, finalize the draw data. You can then get call GetDrawData(). 92 void Render() @trusted 93 { 94 igRender(); 95 } 96 /// valid after Render() and until the next call to NewFrame(). this is what you have to render. 97 scope ImDrawData_t* GetDrawData() @trusted 98 { 99 return igGetDrawData(); 100 } 101 102 /// Demo, Debug, Information 103 104 /// create Demo window. demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application! 105 void ShowDemoWindow(scope bool* p_open) @trusted 106 { 107 igShowDemoWindow(p_open); 108 } 109 /// create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc. 110 void ShowMetricsWindow(scope bool* p_open) @trusted 111 { 112 igShowMetricsWindow(p_open); 113 } 114 /// create Debug Log window. display a simplified log of important dear imgui events. 115 void ShowDebugLogWindow(scope bool* p_open) @trusted 116 { 117 igShowDebugLogWindow(p_open); 118 } 119 /// Implied p_open = null 120 void ShowIDStackToolWindow() @trusted 121 { 122 igShowIDStackToolWindow(); 123 } 124 /// create Stack Tool window. hover items with mouse to query information about the source of their unique ID. 125 void ShowIDStackToolWindowEx(scope bool* p_open) @trusted 126 { 127 igShowIDStackToolWindowEx(p_open); 128 } 129 /// create About window. display Dear ImGui version, credits and build/system information. 130 void ShowAboutWindow(scope bool* p_open) @trusted 131 { 132 igShowAboutWindow(p_open); 133 } 134 /// add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) 135 void ShowStyleEditor(scope ImGuiStyle_t* reference) @trusted 136 { 137 igShowStyleEditor(reference); 138 } 139 /// add style selector block (not a window), essentially a combo listing the default styles. 140 bool ShowStyleSelector(scope const(char)* label) @trusted 141 { 142 return igShowStyleSelector(label); 143 } 144 /// add font selector block (not a window), essentially a combo listing the loaded fonts. 145 void ShowFontSelector(scope const(char)* label) @trusted 146 { 147 igShowFontSelector(label); 148 } 149 /// add basic help/info block (not a window): how to manipulate ImGui as an end-user (mouse/keyboard controls). 150 void ShowUserGuide() @trusted 151 { 152 igShowUserGuide(); 153 } 154 /// get the compiled version string e.g. "1.90" (essentially the value for IMGUI_VERSION from the compiled version of imgui.cpp) 155 scope const(char)* GetVersion() @trusted 156 { 157 return igGetVersion(); 158 } 159 160 /// Styles 161 162 /// new, recommended style (default) 163 void StyleColorsDark(scope ImGuiStyle_t* dst) @trusted 164 { 165 igStyleColorsDark(dst); 166 } 167 /// best used with borders and a custom, thicker font 168 void StyleColorsLight(scope ImGuiStyle_t* dst) @trusted 169 { 170 igStyleColorsLight(dst); 171 } 172 /// classic imgui style 173 void StyleColorsClassic(scope ImGuiStyle_t* dst) @trusted 174 { 175 igStyleColorsClassic(dst); 176 } 177 178 /// Windows 179 180 /// - Begin() = push window to the stack and start appending to it. End() = pop window from the stack. 181 /// - Passing 'bool* p_open != NULL' shows a window-closing widget in the upper-right corner of the window, 182 /// which clicking will set the boolean to false when clicked. 183 /// - You may append multiple times to the same window during the same frame by calling Begin()/End() pairs multiple times. 184 /// Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin(). 185 /// - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting 186 /// anything to the window. Always call a matching End() for each Begin() call, regardless of its return value! 187 /// [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions 188 /// such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding 189 /// BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.] 190 /// - Note that the bottom of window stack always contains a window called "Debug". 191 bool Begin(scope const(char)* name, scope bool* p_open, int flags) @trusted 192 { 193 return igBegin(name, p_open, flags); 194 } 195 196 void End() @trusted 197 { 198 igEnd(); 199 } 200 201 /// Child Windows 202 203 /// - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child. 204 /// - Before 1.90 (November 2023), the "ImGuiChildFlags child_flags = 0" parameter was "bool border = false". 205 /// This API is backward compatible with old code, as we guarantee that ImGuiChildFlags_Borders == true. 206 /// Consider updating your old code: 207 /// BeginChild("Name", size, false) -> Begin("Name", size, 0); or Begin("Name", size, ImGuiChildFlags_None); 208 /// BeginChild("Name", size, true) -> Begin("Name", size, ImGuiChildFlags_Borders); 209 /// - Manual sizing (each axis can use a different setting e.g. ImVec2(0.0f, 400.0f)): 210 /// == 0.0f: use remaining parent window size for this axis. 211 /// > 0.0f: use specified size for this axis. 212 /// < 0.0f: right/bottom-align to specified distance from available content boundaries. 213 /// - Specifying ImGuiChildFlags_AutoResizeX or ImGuiChildFlags_AutoResizeY makes the sizing automatic based on child contents. 214 /// Combining both ImGuiChildFlags_AutoResizeX _and_ ImGuiChildFlags_AutoResizeY defeats purpose of a scrolling region and is NOT recommended. 215 /// - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting 216 /// anything to the window. Always call a matching EndChild() for each BeginChild() call, regardless of its return value. 217 /// [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions 218 /// such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding 219 /// BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.] 220 bool BeginChild(scope const(char)* str_id, const ImVec2_t size, int child_flags, int window_flags) @trusted 221 { 222 return igBeginChild(str_id, size, child_flags, window_flags); 223 } 224 225 bool BeginChildID(uint id, const ImVec2_t size, int child_flags, int window_flags) @trusted 226 { 227 return igBeginChildID(id, size, child_flags, window_flags); 228 } 229 230 void EndChild() @trusted 231 { 232 igEndChild(); 233 } 234 235 /// Windows Utilities 236 /// - 'current window' = the window we are appending into while inside a Begin()/End() block. 'next window' = next window we will Begin() into. 237 238 bool IsWindowAppearing() @trusted 239 { 240 return igIsWindowAppearing(); 241 } 242 243 bool IsWindowCollapsed() @trusted 244 { 245 return igIsWindowCollapsed(); 246 } 247 248 bool IsWindowFocused(int flags) @trusted 249 { 250 return igIsWindowFocused(flags); 251 } 252 253 bool IsWindowHovered(int flags) @trusted 254 { 255 return igIsWindowHovered(flags); 256 } 257 258 scope const(ImDrawList_t)* GetWindowDrawList() @trusted 259 { 260 return igGetWindowDrawList(); 261 } 262 263 const(ImVec2_t) GetWindowPos() @trusted 264 { 265 return igGetWindowPos(); 266 } 267 268 const(ImVec2_t) GetWindowSize() @trusted 269 { 270 return igGetWindowSize(); 271 } 272 273 float GetWindowWidth() @trusted 274 { 275 return igGetWindowWidth(); 276 } 277 278 float GetWindowHeight() @trusted 279 { 280 return igGetWindowHeight(); 281 } 282 /// Window manipulation 283 /// - Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin). 284 void SetNextWindowPos(const(ImVec2_t) pos, int cond) @trusted 285 { 286 igSetNextWindowPos(pos, cond); 287 } 288 289 void SetNextWindowPosEx(const(ImVec2_t) pos, int cond, const ImVec2_t pivot) @trusted 290 { 291 igSetNextWindowPosEx(pos, cond, pivot); 292 } 293 294 void SetNextWindowSize(const(ImVec2_t) size, int cond) @trusted 295 { 296 igSetNextWindowSize(size, cond); 297 } 298 299 extern (C) void SetNextWindowSizeConstraints(const(ImVec2_t) size_min, const ImVec2_t size_max, void function( 300 scope ImGuiSizeCallbackData_t* data) custom_callback, scope void* custom_callback_data) @trusted 301 { 302 igSetNextWindowSizeConstraints(size_min, size_max, custom_callback, custom_callback_data); 303 } 304 305 void SetNextWindowContentSize(const(ImVec2_t) size) @trusted 306 { 307 igSetNextWindowContentSize(size); 308 } 309 310 void SetNextWindowCollapsed(bool collapsed, int cond) @trusted 311 { 312 igSetNextWindowCollapsed(collapsed, cond); 313 } 314 315 void SetNextWindowFocus() @trusted 316 { 317 igSetNextWindowFocus(); 318 } 319 320 void SetNextWindowScroll(const(ImVec2_t) scroll) @trusted 321 { 322 igSetNextWindowScroll(scroll); 323 } 324 325 void SetNextWindowBgAlpha(float alpha) @trusted 326 { 327 igSetNextWindowBgAlpha(alpha); 328 } 329 330 void SetWindowPos(const(ImVec2_t) pos, int cond) @trusted 331 { 332 igSetWindowPos(pos, cond); 333 } 334 335 void SetWindowSize(const(ImVec2_t) size, int cond) @trusted 336 { 337 igSetWindowSize(size, cond); 338 } 339 340 void SetWindowCollapsed(bool collapsed, int cond) @trusted 341 { 342 igSetWindowCollapsed(collapsed, cond); 343 } 344 345 void SetWindowFocus() @trusted 346 { 347 igSetWindowFocus(); 348 } 349 350 void SetWindowFontScale(float scale) @trusted 351 { 352 igSetWindowFontScale(scale); 353 } 354 355 void SetWindowPosStr(scope const(char)* name, const ImVec2_t pos, int cond) @trusted 356 { 357 igSetWindowPosStr(name, pos, cond); 358 } 359 360 void SetWindowSizeStr(scope const(char)* name, const ImVec2_t size, int cond) @trusted 361 { 362 igSetWindowSizeStr(name, size, cond); 363 } 364 365 void SetWindowCollapsedStr(scope const(char)* name, bool collapsed, int cond) @trusted 366 { 367 igSetWindowCollapsedStr(name, collapsed, cond); 368 } 369 370 void SetWindowFocusStr(scope const(char)* name) @trusted 371 { 372 igSetWindowFocusStr(name); 373 } 374 375 float GetScrollX() @trusted 376 { 377 return igGetScrollX(); 378 } 379 380 float GetScrollY() @trusted 381 { 382 return igGetScrollY(); 383 } 384 385 void SetScrollX(float scroll_x) @trusted 386 { 387 igSetScrollX(scroll_x); 388 } 389 390 void SetScrollY(float scroll_y) @trusted 391 { 392 igSetScrollY(scroll_y); 393 } 394 395 float GetScrollMaxX() @trusted 396 { 397 return igGetScrollMaxX(); 398 } 399 400 float GetScrollMaxY() @trusted 401 { 402 return igGetScrollMaxY(); 403 } 404 405 void SetScrollHereX(float center_x_ratio) @trusted 406 { 407 igSetScrollHereX(center_x_ratio); 408 } 409 410 void SetScrollHereY(float center_y_ratio) @trusted 411 { 412 igSetScrollHereY(center_y_ratio); 413 } 414 415 void SetScrollFromPosX(float local_x, float center_x_ratio) @trusted 416 { 417 igSetScrollFromPosX(local_x, center_x_ratio); 418 } 419 420 void SetScrollFromPosY(float local_y, float center_y_ratio) @trusted 421 { 422 igSetScrollFromPosY(local_y, center_y_ratio); 423 } 424 425 void PushFont(scope const(ImFont_t)* font) @trusted 426 { 427 igPushFont(cast(ImFont_t*) font); 428 } 429 430 void PopFont() @trusted 431 { 432 igPopFont(); 433 } 434 435 void PushStyleColor(int idx, uint col) @trusted 436 { 437 igPushStyleColor(idx, col); 438 } 439 440 void PushStyleColorImVec4(int idx, const ImVec4_t col) @trusted 441 { 442 igPushStyleColorImVec4(idx, col); 443 } 444 445 /// Layout cursor positioning 446 /// - By "cursor" we mean the current output position. 447 /// - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down. 448 /// - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceding widget. 449 /// - YOU CAN DO 99% OF WHAT YOU NEED WITH ONLY GetCursorScreenPos() and GetContentRegionAvail(). 450 /// - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API: 451 /// - Absolute coordinate: GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions. -> this is the preferred way forward. 452 /// - Window-local coordinates: SameLine(offset), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), PushTextWrapPos() 453 /// - Window-local coordinates: GetContentRegionMax(), GetWindowContentRegionMin(), GetWindowContentRegionMax() --> all obsoleted. YOU DON'T NEED THEM. 454 /// - GetCursorScreenPos() = GetCursorPos() + GetWindowPos(). GetWindowPos() is almost only ever useful to convert from window-local to absolute coordinates. Try not to use it. 455 456 void PopStyleColor() @trusted 457 { 458 igPopStyleColor(); 459 } 460 461 void PopStyleColorEx(int count) @trusted 462 { 463 igPopStyleColorEx(count); 464 } 465 466 void PushStyleVar(int idx, float val) @trusted 467 { 468 igPushStyleVar(idx, val); 469 } 470 471 void PushStyleVarImVec2(int idx, const ImVec2_t val) @trusted 472 { 473 igPushStyleVarImVec2(idx, val); 474 } 475 476 void PushStyleVarX(int idx, float val_x) @trusted 477 { 478 igPushStyleVarX(idx, val_x); 479 } 480 481 void PushStyleVarY(int idx, float val_y) @trusted 482 { 483 igPushStyleVarY(idx, val_y); 484 } 485 486 void PopStyleVar() @trusted 487 { 488 igPopStyleVar(); 489 } 490 491 void PopStyleVarEx(int count) @trusted 492 { 493 igPopStyleVarEx(count); 494 } 495 496 void PushItemFlag(int option, bool enabled) @trusted 497 { 498 igPushItemFlag(option, enabled); 499 } 500 501 void PopItemFlag() @trusted 502 { 503 igPopItemFlag(); 504 } 505 506 void PushItemWidth(float item_width) @trusted 507 { 508 igPushItemWidth(item_width); 509 } 510 511 void PopItemWidth() @trusted 512 { 513 igPopItemWidth(); 514 } 515 516 void SetNextItemWidth(float item_width) @trusted 517 { 518 igSetNextItemWidth(item_width); 519 } 520 521 float CalcItemWidth() @trusted 522 { 523 return igCalcItemWidth(); 524 } 525 526 void PushTextWrapPos(float wrap_local_pos_x) @trusted 527 { 528 igPushTextWrapPos(wrap_local_pos_x); 529 } 530 531 void PopTextWrapPos() @trusted 532 { 533 igPopTextWrapPos(); 534 } 535 536 const(ImFont_t*) GetFont() @trusted 537 { 538 return igGetFont(); 539 } 540 541 float GetFontSize() @trusted 542 { 543 return igGetFontSize(); 544 } 545 546 const(ImVec2_t) GetFontTexUvWhitePixel() @trusted 547 { 548 return igGetFontTexUvWhitePixel(); 549 } 550 551 uint GetColorU32(int idx) @trusted 552 { 553 return igGetColorU32(idx); 554 } 555 556 uint GetColorU32Ex(int idx, float alpha_mul) @trusted 557 { 558 return igGetColorU32Ex(idx, alpha_mul); 559 } 560 561 uint GetColorU32ImVec4(const ImVec4_t col) @trusted 562 { 563 return igGetColorU32ImVec4(col); 564 } 565 566 uint GetColorU32ImU32(uint col) @trusted 567 { 568 return igGetColorU32ImU32(col); 569 } 570 571 uint GetColorU32ImU32Ex(uint col, float alpha_mul) @trusted 572 { 573 return igGetColorU32ImU32Ex(col, alpha_mul); 574 } 575 576 const(ImVec4_t*) GetStyleColorVec4(int idx) @trusted 577 { 578 return igGetStyleColorVec4(idx); 579 } 580 581 const(ImVec2_t) GetCursorScreenPos() @trusted 582 { 583 return igGetCursorScreenPos(); 584 } 585 586 void SetCursorScreenPos(const(ImVec2_t) pos) @trusted 587 { 588 igSetCursorScreenPos(pos); 589 } 590 591 const(ImVec2_t) GetContentRegionAvail() @trusted 592 { 593 return igGetContentRegionAvail(); 594 } 595 596 const(ImVec2_t) GetCursorPos() @trusted 597 { 598 return igGetCursorPos(); 599 } 600 601 float GetCursorPosX() @trusted 602 { 603 return igGetCursorPosX(); 604 } 605 606 float GetCursorPosY() @trusted 607 { 608 return igGetCursorPosY(); 609 } 610 611 void SetCursorPos(const(ImVec2_t) local_pos) @trusted 612 { 613 igSetCursorPos(local_pos); 614 } 615 616 void SetCursorPosX(float local_x) @trusted 617 { 618 igSetCursorPosX(local_x); 619 } 620 621 void SetCursorPosY(float local_y) @trusted 622 { 623 igSetCursorPosY(local_y); 624 } 625 626 const(ImVec2_t) GetCursorStartPos() @trusted 627 { 628 return igGetCursorStartPos(); 629 } 630 631 void Separator() @trusted 632 { 633 igSeparator(); 634 } 635 636 void SameLine() @trusted 637 { 638 igSameLine(); 639 } 640 641 void SameLineEx(float offset_from_start_x, float spacing) @trusted 642 { 643 igSameLineEx(offset_from_start_x, spacing); 644 } 645 646 void NewLine() @trusted 647 { 648 igNewLine(); 649 } 650 651 void Spacing() @trusted 652 { 653 igSpacing(); 654 } 655 656 void Dummy(const(ImVec2_t) size) @trusted 657 { 658 igDummy(size); 659 } 660 661 void Indent() @trusted 662 { 663 igIndent(); 664 } 665 666 void IndentEx(float indent_w) @trusted 667 { 668 igIndentEx(indent_w); 669 } 670 671 void Unindent() @trusted 672 { 673 igUnindent(); 674 } 675 676 void UnindentEx(float indent_w) @trusted 677 { 678 igUnindentEx(indent_w); 679 } 680 681 void BeginGroup() @trusted 682 { 683 igBeginGroup(); 684 } 685 686 void EndGroup() @trusted 687 { 688 igEndGroup(); 689 } 690 691 void AlignTextToFramePadding() @trusted 692 { 693 igAlignTextToFramePadding(); 694 } 695 696 float GetTextLineHeight() @trusted 697 { 698 return igGetTextLineHeight(); 699 } 700 701 float GetTextLineHeightWithSpacing() @trusted 702 { 703 return igGetTextLineHeightWithSpacing(); 704 } 705 706 float GetFrameHeight() @trusted 707 { 708 return igGetFrameHeight(); 709 } 710 711 float GetFrameHeightWithSpacing() @trusted 712 { 713 return igGetFrameHeightWithSpacing(); 714 } 715 716 void PushID(scope const(char)* str_id) @trusted 717 { 718 igPushID(str_id); 719 } 720 721 void PushIDStr(scope const(char)* str_id_begin, scope const(char)* str_id_end) @trusted 722 { 723 igPushIDStr(str_id_begin, str_id_end); 724 } 725 726 void PushIDPtr(const(void)* ptr_id) @trusted 727 { 728 igPushIDPtr(ptr_id); 729 } 730 731 void PushIDInt(int int_id) @trusted 732 { 733 igPushIDInt(int_id); 734 } 735 736 void PopID() @trusted 737 { 738 igPopID(); 739 } 740 741 uint GetID(scope const(char)* str_id) @trusted 742 { 743 return igGetID(str_id); 744 } 745 746 uint GetIDStr(scope const(char)* str_id_begin, scope const(char)* str_id_end) @trusted 747 { 748 return igGetIDStr(str_id_begin, str_id_end); 749 } 750 751 uint GetIDPtr(const(void)* ptr_id) @trusted 752 { 753 return igGetIDPtr(ptr_id); 754 } 755 756 uint GetIDInt(int int_id) @trusted 757 { 758 return igGetIDInt(int_id); 759 } 760 761 void TextUnformatted(scope const(char)* text) @trusted 762 { 763 igTextUnformatted(text); 764 } 765 766 void TextUnformattedEx(scope const(char)* text, scope const(char)* text_end) @trusted 767 { 768 igTextUnformattedEx(text, text_end); 769 } 770 771 alias Text = igText; 772 773 void TextV(scope const(char)* fmt, __builtin_va_list args) @trusted 774 { 775 igTextV(fmt, args); 776 } 777 778 alias TextColored = igTextColored; 779 780 void TextColoredV(const ImVec4_t col, scope const(char)* fmt, __builtin_va_list args) @trusted 781 { 782 igTextColoredV(col, fmt, args); 783 } 784 785 alias TextDisabled = igTextDisabled; 786 787 void TextDisabledV(scope const(char)* fmt, __builtin_va_list args) @trusted 788 { 789 igTextDisabledV(fmt, args); 790 } 791 792 alias TextWrapped = igTextWrapped; 793 794 void TextWrappedV(scope const(char)* fmt, __builtin_va_list args) @trusted 795 { 796 igTextWrappedV(fmt, args); 797 } 798 799 alias LabelText = igLabelText; 800 801 void LabelTextV(scope const(char)* label, scope const(char)* fmt, __builtin_va_list args) @trusted 802 { 803 igLabelTextV(label, fmt, args); 804 } 805 806 alias BulletText = igBulletText; 807 808 void BulletTextV(scope const(char)* fmt, __builtin_va_list args) @trusted 809 { 810 igBulletTextV(fmt, args); 811 } 812 813 void SeparatorText(scope const(char)* label) @trusted 814 { 815 igSeparatorText(label); 816 } 817 818 bool Button(scope const(char)* label) @trusted 819 { 820 return igButton(label); 821 } 822 823 bool ButtonEx(scope const(char)* label, const ImVec2_t size) @trusted 824 { 825 return igButtonEx(label, size); 826 } 827 828 bool SmallButton(scope const(char)* label) @trusted 829 { 830 return igSmallButton(label); 831 } 832 833 bool InvisibleButton(scope const(char)* str_id, const ImVec2_t size, int flags) @trusted 834 { 835 return igInvisibleButton(str_id, size, flags); 836 } 837 838 bool ArrowButton(scope const(char)* str_id, int dir) @trusted 839 { 840 return igArrowButton(str_id, dir); 841 } 842 843 bool Checkbox(scope const(char)* label, scope bool* v) @trusted 844 { 845 return igCheckbox(label, v); 846 } 847 848 bool CheckboxFlagsIntPtr(scope const(char)* label, scope int* flags, int flags_value) @trusted 849 { 850 return igCheckboxFlagsIntPtr(label, flags, flags_value); 851 } 852 853 bool CheckboxFlagsUintPtr(scope const(char)* label, scope uint* flags, uint flags_value) @trusted 854 { 855 return igCheckboxFlagsUintPtr(label, flags, flags_value); 856 } 857 858 bool RadioButton(scope const(char)* label, bool active) @trusted 859 { 860 return igRadioButton(label, active); 861 } 862 863 bool RadioButtonIntPtr(scope const(char)* label, scope int* v, int v_button) @trusted 864 { 865 return igRadioButtonIntPtr(label, v, v_button); 866 } 867 868 void ProgressBar(float fraction, const ImVec2_t size_arg, scope const(char)* overlay) @trusted 869 { 870 igProgressBar(fraction, size_arg, overlay); 871 } 872 873 void Bullet() @trusted 874 { 875 igBullet(); 876 } 877 878 bool TextLink(scope const(char)* label) @trusted 879 { 880 return igTextLink(label); 881 } 882 883 void TextLinkOpenURL(scope const(char)* label) @trusted 884 { 885 igTextLinkOpenURL(label); 886 } 887 888 void TextLinkOpenURLEx(scope const(char)* label, scope const(char)* url) @trusted 889 { 890 igTextLinkOpenURLEx(label, url); 891 } 892 893 void Image(size_t user_texture_id, const ImVec2_t image_size) @trusted 894 { 895 igImage(user_texture_id, image_size); 896 } 897 898 void ImageEx(size_t user_texture_id, const ImVec2_t image_size, const ImVec2_t uv0, const ImVec2_t uv1, const ImVec4_t tint_col, const ImVec4_t border_col) @trusted 899 { 900 igImageEx(user_texture_id, image_size, uv0, uv1, tint_col, border_col); 901 } 902 903 bool ImageButton(scope const(char)* str_id, size_t user_texture_id, const ImVec2_t image_size) @trusted 904 { 905 return igImageButton(str_id, user_texture_id, image_size); 906 } 907 908 bool ImageButtonEx(scope const(char)* str_id, size_t user_texture_id, const ImVec2_t image_size, const ImVec2_t uv0, const ImVec2_t uv1, const ImVec4_t bg_col, const ImVec4_t tint_col) @trusted 909 { 910 return igImageButtonEx(str_id, user_texture_id, image_size, uv0, uv1, bg_col, tint_col); 911 } 912 913 bool BeginCombo(scope const(char)* label, scope const(char)* preview_value, int flags) @trusted 914 { 915 return igBeginCombo(label, preview_value, flags); 916 } 917 918 void EndCombo() @trusted 919 { 920 igEndCombo(); 921 } 922 923 bool ComboChar(scope const(char)* label, scope int* current_item, scope const(char*)[0] items, int items_count) @trusted 924 { 925 return igComboChar(label, current_item, cast(const(char*)*) items, items_count); 926 } 927 928 bool ComboCharEx(scope const(char)* label, scope int* current_item, scope const(char*)[0] items, int items_count, int popup_max_height_in_items) @trusted 929 { 930 return igComboCharEx(label, current_item, cast(const(char*)*) items, items_count, popup_max_height_in_items); 931 } 932 933 bool Combo(scope const(char)* label, scope int* current_item, scope const(char)* items_separated_by_zeros) @trusted 934 { 935 return igCombo(label, current_item, items_separated_by_zeros); 936 } 937 938 bool ComboEx(scope const(char)* label, scope int* current_item, scope const(char)* items_separated_by_zeros, int popup_max_height_in_items) @trusted 939 { 940 return igComboEx(label, current_item, items_separated_by_zeros, popup_max_height_in_items); 941 } 942 943 extern (C) bool ComboCallback(scope const(char)* label, scope int* current_item, scope const(char)* function( 944 scope void* user_data, int idx) getter, scope void* user_data, int items_count) @trusted 945 { 946 return igComboCallback(label, current_item, getter, user_data, items_count); 947 } 948 949 extern (C) bool ComboCallbackEx(scope const(char)* label, scope int* current_item, scope const(char)* function( 950 scope void* user_data, int idx) getter, scope void* user_data, int items_count, int popup_max_height_in_items) @trusted 951 { 952 return igComboCallbackEx(label, current_item, getter, user_data, items_count, popup_max_height_in_items); 953 } 954 955 bool DragFloat(scope const(char)* label, scope float* v) @trusted 956 { 957 return igDragFloat(label, v); 958 } 959 960 bool DragFloatEx(scope const(char)* label, scope float* v, float v_speed, float v_min, float v_max, scope const( 961 char)* format, int flags) @trusted 962 { 963 return igDragFloatEx(label, v, v_speed, v_min, v_max, format, flags); 964 } 965 966 bool DragFloat2(scope const(char)* label, float[2] v) @trusted 967 { 968 return igDragFloat2(label, &v[0]); 969 } 970 971 bool DragFloat2Ex(scope const(char)* label, float[2] v, float v_speed, float v_min, float v_max, scope const( 972 char)* format, int flags) @trusted 973 { 974 return igDragFloat2Ex(label, &v[0], v_speed, v_min, v_max, format, flags); 975 } 976 977 bool DragFloat3(scope const(char)* label, float[3] v) @trusted 978 { 979 return igDragFloat3(label, &v[0]); 980 } 981 982 bool DragFloat3Ex(scope const(char)* label, float[3] v, float v_speed, float v_min, float v_max, scope const( 983 char)* format, int flags) @trusted 984 { 985 return igDragFloat3Ex(label, &v[0], v_speed, v_min, v_max, format, flags); 986 } 987 988 bool DragFloat4(scope const(char)* label, float[4] v) @trusted 989 { 990 return igDragFloat4(label, &v[0]); 991 } 992 993 bool DragFloat4Ex(scope const(char)* label, float[4] v, float v_speed, float v_min, float v_max, scope const( 994 char)* format, int flags) @trusted 995 { 996 return igDragFloat4Ex(label, &v[0], v_speed, v_min, v_max, format, flags); 997 } 998 999 bool DragFloatRange2(scope const(char)* label, scope float* v_current_min, scope float* v_current_max) @trusted 1000 { 1001 return igDragFloatRange2(label, v_current_min, v_current_max); 1002 } 1003 1004 bool DragFloatRange2Ex(scope const(char)* label, scope float* v_current_min, scope float* v_current_max, float v_speed, float v_min, float v_max, scope const( 1005 char)* format, scope const(char)* format_max, int flags) @trusted 1006 { 1007 return igDragFloatRange2Ex(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max, flags); 1008 } 1009 1010 bool DragInt(scope const(char)* label, scope int* v) @trusted 1011 { 1012 return igDragInt(label, v); 1013 } 1014 1015 bool DragIntEx(scope const(char)* label, scope int* v, float v_speed, int v_min, int v_max, scope const( 1016 char)* format, int flags) @trusted 1017 { 1018 return igDragIntEx(label, v, v_speed, v_min, v_max, format, flags); 1019 } 1020 1021 bool DragInt2(scope const(char)* label, int[2] v) @trusted 1022 { 1023 return igDragInt2(label, &v[0]); 1024 } 1025 1026 bool DragInt2Ex(scope const(char)* label, int[2] v, float v_speed, int v_min, int v_max, scope const( 1027 char)* format, int flags) @trusted 1028 { 1029 return igDragInt2Ex(label, &v[0], v_speed, v_min, v_max, format, flags); 1030 } 1031 1032 bool DragInt3(scope const(char)* label, int[3] v) @trusted 1033 { 1034 return igDragInt3(label, &v[0]); 1035 } 1036 1037 bool DragInt3Ex(scope const(char)* label, int[3] v, float v_speed, int v_min, int v_max, scope const( 1038 char)* format, int flags) @trusted 1039 { 1040 return igDragInt3Ex(label, &v[0], v_speed, v_min, v_max, format, flags); 1041 } 1042 1043 bool DragInt4(scope const(char)* label, int[4] v) @trusted 1044 { 1045 return igDragInt4(label, &v[0]); 1046 } 1047 1048 bool DragInt4Ex(scope const(char)* label, int[4] v, float v_speed, int v_min, int v_max, scope const( 1049 char)* format, int flags) @trusted 1050 { 1051 return igDragInt4Ex(label, &v[0], v_speed, v_min, v_max, format, flags); 1052 } 1053 1054 bool DragIntRange2(scope const(char)* label, scope int* v_current_min, scope int* v_current_max) @trusted 1055 { 1056 return igDragIntRange2(label, v_current_min, v_current_max); 1057 } 1058 1059 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 const( 1060 char)* format, scope const(char)* format_max, int flags) @trusted 1061 { 1062 return igDragIntRange2Ex(label, v_current_min, v_current_max, v_speed, v_min, v_max, format, format_max, flags); 1063 } 1064 1065 bool DragScalar(scope const(char)* label, int data_type, scope void* p_data) @trusted 1066 { 1067 return igDragScalar(label, data_type, p_data); 1068 } 1069 1070 bool DragScalarEx(scope const(char)* label, int data_type, scope void* p_data, float v_speed, scope const( 1071 void)* p_min, scope const( 1072 void)* p_max, scope const(char)* format, int flags) @trusted 1073 { 1074 return igDragScalarEx(label, data_type, p_data, v_speed, p_min, p_max, format, flags); 1075 } 1076 1077 bool DragScalarN(scope const(char)* label, int data_type, scope void* p_data, int components) @trusted 1078 { 1079 return igDragScalarN(label, data_type, p_data, components); 1080 } 1081 1082 bool DragScalarNEx(scope const(char)* label, int data_type, scope void* p_data, int components, float v_speed, scope const( 1083 void)* p_min, scope const(void)* p_max, scope const(char)* format, int flags) @trusted 1084 { 1085 return igDragScalarNEx(label, data_type, p_data, components, v_speed, p_min, p_max, format, flags); 1086 } 1087 1088 bool SliderFloat(scope const(char)* label, scope float* v, float v_min, float v_max) @trusted 1089 { 1090 return igSliderFloat(label, v, v_min, v_max); 1091 } 1092 1093 bool SliderFloatEx(scope const(char)* label, scope float* v, float v_min, float v_max, scope const( 1094 char)* format, int flags) @trusted 1095 { 1096 return igSliderFloatEx(label, v, v_min, v_max, format, flags); 1097 } 1098 1099 bool SliderFloat2(scope const(char)* label, float[2] v, float v_min, float v_max) @trusted 1100 { 1101 return igSliderFloat2(label, &v[0], v_min, v_max); 1102 } 1103 1104 bool SliderFloat2Ex(scope const(char)* label, float[2] v, float v_min, float v_max, scope const( 1105 char)* format, int flags) @trusted 1106 { 1107 return igSliderFloat2Ex(label, &v[0], v_min, v_max, format, flags); 1108 } 1109 1110 bool SliderFloat3(scope const(char)* label, float[3] v, float v_min, float v_max) @trusted 1111 { 1112 return igSliderFloat3(label, &v[0], v_min, v_max); 1113 } 1114 1115 bool SliderFloat3Ex(scope const(char)* label, float[3] v, float v_min, float v_max, scope const( 1116 char)* format, int flags) @trusted 1117 { 1118 return igSliderFloat3Ex(label, &v[0], v_min, v_max, format, flags); 1119 } 1120 1121 bool SliderFloat4(scope const(char)* label, float[4] v, float v_min, float v_max) @trusted 1122 { 1123 return igSliderFloat4(label, &v[0], v_min, v_max); 1124 } 1125 1126 bool SliderFloat4Ex(scope const(char)* label, float[4] v, float v_min, float v_max, scope const( 1127 char)* format, int flags) @trusted 1128 { 1129 return igSliderFloat4Ex(label, &v[0], v_min, v_max, format, flags); 1130 } 1131 1132 bool SliderAngle(scope const(char)* label, scope float* v_rad) @trusted 1133 { 1134 return igSliderAngle(label, v_rad); 1135 } 1136 1137 bool SliderAngleEx(scope const(char)* label, scope float* v_rad, float v_degrees_min, float v_degrees_max, scope const( 1138 char)* format, int flags) @trusted 1139 { 1140 return igSliderAngleEx(label, v_rad, v_degrees_min, v_degrees_max, format, flags); 1141 } 1142 1143 bool SliderInt(scope const(char)* label, scope int* v, int v_min, int v_max) @trusted 1144 { 1145 return igSliderInt(label, v, v_min, v_max); 1146 } 1147 1148 bool SliderIntEx(scope const(char)* label, scope int* v, int v_min, int v_max, scope const(char)* format, int flags) @trusted 1149 { 1150 return igSliderIntEx(label, v, v_min, v_max, format, flags); 1151 } 1152 1153 bool SliderInt2(scope const(char)* label, int[2] v, int v_min, int v_max) @trusted 1154 { 1155 return igSliderInt2(label, &v[0], v_min, v_max); 1156 } 1157 1158 bool SliderInt2Ex(scope const(char)* label, int[2] v, int v_min, int v_max, scope const(char)* format, int flags) @trusted 1159 { 1160 return igSliderInt2Ex(label, &v[0], v_min, v_max, format, flags); 1161 } 1162 1163 bool SliderInt3(scope const(char)* label, int[3] v, int v_min, int v_max) @trusted 1164 { 1165 return igSliderInt3(label, &v[0], v_min, v_max); 1166 } 1167 1168 bool SliderInt3Ex(scope const(char)* label, int[3] v, int v_min, int v_max, scope const(char)* format, int flags) @trusted 1169 { 1170 return igSliderInt3Ex(label, &v[0], v_min, v_max, format, flags); 1171 } 1172 1173 bool SliderInt4(scope const(char)* label, int[4] v, int v_min, int v_max) @trusted 1174 { 1175 return igSliderInt4(label, &v[0], v_min, v_max); 1176 } 1177 1178 bool SliderInt4Ex(scope const(char)* label, int[4] v, int v_min, int v_max, scope const(char)* format, int flags) @trusted 1179 { 1180 return igSliderInt4Ex(label, &v[0], v_min, v_max, format, flags); 1181 } 1182 1183 bool SliderScalar(scope const(char)* label, int data_type, scope void* p_data, scope const(void)* p_min, scope const( 1184 void)* p_max) @trusted 1185 { 1186 return igSliderScalar(label, data_type, p_data, p_min, p_max); 1187 } 1188 1189 bool SliderScalarEx(scope const(char)* label, int data_type, scope void* p_data, scope const(void)* p_min, scope const( 1190 void)* p_max, scope const(char)* format, int flags) @trusted 1191 { 1192 return igSliderScalarEx(label, data_type, p_data, p_min, p_max, format, flags); 1193 } 1194 1195 bool SliderScalarN(scope const(char)* label, int data_type, scope void* p_data, int components, scope const( 1196 void)* p_min, scope const(void)* p_max) @trusted 1197 { 1198 return igSliderScalarN(label, data_type, p_data, components, p_min, p_max); 1199 } 1200 1201 bool SliderScalarNEx(scope const(char)* label, int data_type, scope void* p_data, int components, scope const( 1202 void)* p_min, scope const(void)* p_max, scope const(char)* format, int flags) @trusted 1203 { 1204 return igSliderScalarNEx(label, data_type, p_data, components, p_min, p_max, format, flags); 1205 } 1206 1207 bool VSliderFloat(scope const(char)* label, ImVec2_t size, scope float* v, float v_min, float v_max) @trusted 1208 { 1209 return igVSliderFloat(label, size, v, v_min, v_max); 1210 } 1211 1212 bool VSliderFloatEx(scope const(char)* label, ImVec2_t size, scope float* v, float v_min, float v_max, scope const( 1213 char)* format, int flags) @trusted 1214 { 1215 return igVSliderFloatEx(label, size, v, v_min, v_max, format, flags); 1216 } 1217 1218 bool VSliderInt(scope const(char)* label, ImVec2_t size, scope int* v, int v_min, int v_max) @trusted 1219 { 1220 return igVSliderInt(label, size, v, v_min, v_max); 1221 } 1222 1223 bool VSliderIntEx(scope const(char)* label, ImVec2_t size, scope int* v, int v_min, int v_max, scope const( 1224 char)* format, int flags) @trusted 1225 { 1226 return igVSliderIntEx(label, size, v, v_min, v_max, format, flags); 1227 } 1228 1229 bool VSliderScalar(scope const(char)* label, ImVec2_t size, int data_type, scope void* p_data, scope const( 1230 void)* p_min, scope const(void)* p_max) @trusted 1231 { 1232 return igVSliderScalar(label, size, data_type, p_data, p_min, p_max); 1233 } 1234 1235 bool VSliderScalarEx(scope const(char)* label, ImVec2_t size, int data_type, scope void* p_data, scope const( 1236 void)* p_min, scope const(void)* p_max, scope const(char)* format, int flags) @trusted 1237 { 1238 return igVSliderScalarEx(label, size, data_type, p_data, p_min, p_max, format, flags); 1239 } 1240 1241 bool InputText(scope const(char)* label, scope char* buf, size_t buf_size, int flags) @trusted 1242 { 1243 return igInputText(label, buf, buf_size, flags); 1244 } 1245 1246 extern (C) bool InputTextEx(scope const(char)* label, scope char* buf, size_t buf_size, int flags, int function( 1247 const ImGuiInputTextCallbackData_t* data) callback, scope void* user_data) @trusted 1248 { 1249 return igInputTextEx(label, buf, buf_size, flags, callback, user_data); 1250 } 1251 1252 bool InputTextMultiline(scope const(char)* label, scope char* buf, size_t buf_size) @trusted 1253 { 1254 return igInputTextMultiline(label, buf, buf_size); 1255 } 1256 1257 extern (C) bool InputTextMultilineEx(scope const(char)* label, scope char* buf, size_t buf_size, ImVec2_t size, int flags, int function( 1258 const ImGuiInputTextCallbackData_t* data) callback, scope void* user_data) @trusted 1259 { 1260 return igInputTextMultilineEx(label, buf, buf_size, size, flags, callback, user_data); 1261 } 1262 1263 bool InputTextWithHint(scope const(char)* label, scope const(char)* hint, scope char* buf, size_t buf_size, int flags) @trusted 1264 { 1265 return igInputTextWithHint(label, hint, buf, buf_size, flags); 1266 } 1267 1268 extern (C) bool InputTextWithHintEx(scope const(char)* label, scope const(char)* hint, scope char* buf, size_t buf_size, int flags, int function( 1269 const ImGuiInputTextCallbackData_t* data) callback, scope void* user_data) @trusted 1270 { 1271 return igInputTextWithHintEx(label, hint, buf, buf_size, flags, callback, user_data); 1272 } 1273 1274 bool InputFloat(scope const(char)* label, scope float* v) @trusted 1275 { 1276 return igInputFloat(label, v); 1277 } 1278 1279 bool InputFloatEx(scope const(char)* label, scope float* v, float step, float step_fast, scope const( 1280 char)* format, int flags) @trusted 1281 { 1282 return igInputFloatEx(label, v, step, step_fast, format, flags); 1283 } 1284 1285 bool InputFloat2(scope const(char)* label, float[2] v) @trusted 1286 { 1287 return igInputFloat2(label, &v[0]); 1288 } 1289 1290 bool InputFloat2Ex(scope const(char)* label, float[2] v, scope const(char)* format, int flags) @trusted 1291 { 1292 return igInputFloat2Ex(label, &v[0], format, flags); 1293 } 1294 1295 bool InputFloat3(scope const(char)* label, float[3] v) @trusted 1296 { 1297 return igInputFloat3(label, &v[0]); 1298 } 1299 1300 bool InputFloat3Ex(scope const(char)* label, float[3] v, scope const(char)* format, int flags) @trusted 1301 { 1302 return igInputFloat3Ex(label, &v[0], format, flags); 1303 } 1304 1305 bool InputFloat4(scope const(char)* label, float[4] v) @trusted 1306 { 1307 return igInputFloat4(label, &v[0]); 1308 } 1309 1310 bool InputFloat4Ex(scope const(char)* label, float[4] v, scope const(char)* format, int flags) @trusted 1311 { 1312 return igInputFloat4Ex(label, &v[0], format, flags); 1313 } 1314 1315 bool InputInt(scope const(char)* label, scope int* v) @trusted 1316 { 1317 return igInputInt(label, v); 1318 } 1319 1320 bool InputIntEx(scope const(char)* label, scope int* v, int step, int step_fast, int flags) @trusted 1321 { 1322 return igInputIntEx(label, v, step, step_fast, flags); 1323 } 1324 1325 bool InputInt2(scope const(char)* label, int[2] v, int flags) @trusted 1326 { 1327 return igInputInt2(label, &v[0], flags); 1328 } 1329 1330 bool InputInt3(scope const(char)* label, int[3] v, int flags) @trusted 1331 { 1332 return igInputInt3(label, &v[0], flags); 1333 } 1334 1335 bool InputInt4(scope const(char)* label, int[4] v, int flags) @trusted 1336 { 1337 return igInputInt4(label, &v[0], flags); 1338 } 1339 1340 bool InputDouble(scope const(char)* label, scope double* v) @trusted 1341 { 1342 return igInputDouble(label, v); 1343 } 1344 1345 bool InputDoubleEx(scope const(char)* label, scope double* v, double step, double step_fast, scope const( 1346 char)* format, int flags) @trusted 1347 { 1348 return igInputDoubleEx(label, v, step, step_fast, format, flags); 1349 } 1350 1351 bool InputScalar(scope const(char)* label, int data_type, scope void* p_data) @trusted 1352 { 1353 return igInputScalar(label, data_type, p_data); 1354 } 1355 1356 bool InputScalarEx(scope const(char)* label, int data_type, scope void* p_data, scope const(void)* p_step, scope const( 1357 void)* p_step_fast, scope const(char)* format, int flags) @trusted 1358 { 1359 return igInputScalarEx(label, data_type, p_data, p_step, p_step_fast, format, flags); 1360 } 1361 1362 bool InputScalarN(scope const(char)* label, int data_type, scope void* p_data, int components) @trusted 1363 { 1364 return igInputScalarN(label, data_type, p_data, components); 1365 } 1366 1367 bool InputScalarNEx(scope const(char)* label, int data_type, scope void* p_data, int components, scope const( 1368 void)* p_step, scope const(void)* p_step_fast, scope const(char)* format, int flags) @trusted 1369 { 1370 return igInputScalarNEx(label, data_type, p_data, components, p_step, p_step_fast, format, flags); 1371 } 1372 1373 bool ColorEdit3(scope const(char)* label, float[3] col, int flags) @trusted 1374 { 1375 return igColorEdit3(label, &col[0], flags); 1376 } 1377 1378 bool ColorEdit4(scope const(char)* label, float[4] col, int flags) @trusted 1379 { 1380 return igColorEdit4(label, &col[0], flags); 1381 } 1382 1383 bool ColorPicker3(scope const(char)* label, float[3] col, int flags) @trusted 1384 { 1385 return igColorPicker3(label, &col[0], flags); 1386 } 1387 1388 bool ColorPicker4(scope const(char)* label, float[4] col, int flags, scope const(float)* ref_col) @trusted 1389 { 1390 return igColorPicker4(label, &col[0], flags, ref_col); 1391 } 1392 1393 bool ColorButton(scope const(char)* desc_id, ImVec4_t col, int flags) @trusted 1394 { 1395 return igColorButton(desc_id, col, flags); 1396 } 1397 1398 bool ColorButtonEx(scope const(char)* desc_id, ImVec4_t col, int flags, ImVec2_t size) @trusted 1399 { 1400 return igColorButtonEx(desc_id, col, flags, size); 1401 } 1402 1403 void SetColorEditOptions(int flags) @trusted 1404 { 1405 igSetColorEditOptions(flags); 1406 } 1407 1408 bool TreeNode(scope const(char)* label) @trusted 1409 { 1410 return igTreeNode(label); 1411 } 1412 1413 alias TreeNodeStr = igTreeNodeStr; 1414 alias TreeNodePtr = igTreeNodePtr; 1415 1416 bool TreeNodeV(scope const(char)* str_id, scope const(char)* fmt, __builtin_va_list args) @trusted 1417 { 1418 return igTreeNodeV(str_id, fmt, args); 1419 } 1420 1421 bool TreeNodeVPtr(scope const(void)* ptr_id, scope const(char)* fmt, __builtin_va_list args) @trusted 1422 { 1423 return igTreeNodeVPtr(ptr_id, fmt, args); 1424 } 1425 1426 bool TreeNodeEx(scope const(char)* label, int flags) @trusted 1427 { 1428 return igTreeNodeEx(label, flags); 1429 } 1430 1431 alias TreeNodeExStr = igTreeNodeExStr; 1432 alias TreeNodeExPtr = igTreeNodeExPtr; 1433 1434 bool TreeNodeExV(scope const(char)* str_id, int flags, scope const(char)* fmt, __builtin_va_list args) @trusted 1435 { 1436 return igTreeNodeExV(str_id, flags, fmt, args); 1437 } 1438 1439 bool TreeNodeExVPtr(scope const(void)* ptr_id, int flags, scope const(char)* fmt, __builtin_va_list args) @trusted 1440 { 1441 return igTreeNodeExVPtr(ptr_id, flags, fmt, args); 1442 } 1443 1444 void TreePush(scope const(char)* str_id) @trusted 1445 { 1446 igTreePush(str_id); 1447 } 1448 1449 void TreePushPtr(scope const(void)* ptr_id) @trusted 1450 { 1451 igTreePushPtr(ptr_id); 1452 } 1453 1454 void TreePop() @trusted 1455 { 1456 igTreePop(); 1457 } 1458 1459 float GetTreeNodeToLabelSpacing() @trusted 1460 { 1461 return igGetTreeNodeToLabelSpacing(); 1462 } 1463 1464 bool CollapsingHeader(scope const(char)* label, int flags) @trusted 1465 { 1466 return igCollapsingHeader(label, flags); 1467 } 1468 1469 bool CollapsingHeaderBoolPtr(scope const(char)* label, scope bool* p_visible, int flags) @trusted 1470 { 1471 return igCollapsingHeaderBoolPtr(label, p_visible, flags); 1472 } 1473 1474 void SetNextItemOpen(bool is_open, int cond) @trusted 1475 { 1476 igSetNextItemOpen(is_open, cond); 1477 } 1478 1479 void SetNextItemStorageID(uint storage_id) @trusted 1480 { 1481 igSetNextItemStorageID(storage_id); 1482 } 1483 1484 bool Selectable(scope const(char)* label) @trusted 1485 { 1486 return igSelectable(label); 1487 } 1488 1489 bool SelectableEx(scope const(char)* label, bool selected, int flags, ImVec2_t size) @trusted 1490 { 1491 return igSelectableEx(label, selected, flags, size); 1492 } 1493 1494 bool SelectableBoolPtr(scope const(char)* label, scope bool* p_selected, int flags) @trusted 1495 { 1496 return igSelectableBoolPtr(label, p_selected, flags); 1497 } 1498 1499 bool SelectableBoolPtrEx(scope const(char)* label, scope bool* p_selected, int flags, ImVec2_t size) @trusted 1500 { 1501 return igSelectableBoolPtrEx(label, p_selected, flags, size); 1502 } 1503 1504 scope ImGuiMultiSelectIO_t* BeginMultiSelect(int flags) @trusted 1505 { 1506 return igBeginMultiSelect(flags); 1507 } 1508 1509 scope ImGuiMultiSelectIO_t* BeginMultiSelectEx(int flags, int selection_size, int items_count) @trusted 1510 { 1511 return igBeginMultiSelectEx(flags, selection_size, items_count); 1512 } 1513 1514 scope ImGuiMultiSelectIO_t* EndMultiSelect() @trusted 1515 { 1516 return igEndMultiSelect(); 1517 } 1518 1519 void SetNextItemSelectionUserData(long selection_user_data) @trusted 1520 { 1521 igSetNextItemSelectionUserData(selection_user_data); 1522 } 1523 1524 bool IsItemToggledSelection() @trusted 1525 { 1526 return igIsItemToggledSelection(); 1527 } 1528 1529 bool BeginListBox(scope const(char)* label, ImVec2_t size) @trusted 1530 { 1531 return igBeginListBox(label, size); 1532 } 1533 1534 void EndListBox() @trusted 1535 { 1536 igEndListBox(); 1537 } 1538 1539 bool ListBox(scope const(char)* label, scope int* current_item, scope const(char*)[0] items, int items_count, int height_in_items) @trusted 1540 { 1541 return igListBox(label, current_item, cast(const(char*)*) items, items_count, height_in_items); 1542 } 1543 1544 extern (C) bool ListBoxCallback(scope const(char)* label, scope int* current_item, scope const(char)* function( 1545 scope void* user_data, int idx) getter, scope void* user_data, int items_count) @trusted 1546 { 1547 return igListBoxCallback(label, current_item, getter, user_data, items_count); 1548 } 1549 1550 extern (C) bool ListBoxCallbackEx(scope const(char)* label, scope int* current_item, scope const( 1551 char)* function( 1552 scope void* user_data, int idx) getter, scope void* user_data, int items_count, int height_in_items) @trusted 1553 { 1554 return igListBoxCallbackEx(label, current_item, getter, user_data, items_count, height_in_items); 1555 } 1556 1557 void PlotLines(scope const(char)* label, scope const(float)* values, int values_count) @trusted 1558 { 1559 igPlotLines(label, values, values_count); 1560 } 1561 1562 void PlotLinesEx(scope const(char)* label, scope const(float)* values, int values_count, int values_offset, scope const( 1563 char)* overlay_text, float scale_min, float scale_max, const ImVec2_t graph_size, int stride) @trusted 1564 { 1565 igPlotLinesEx(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride); 1566 } 1567 1568 extern (C) void PlotLinesCallback(scope const(char)* label, float function(scope void* data, int idx) values_getter, scope void* data, int values_count) @trusted 1569 { 1570 igPlotLinesCallback(label, values_getter, data, values_count); 1571 } 1572 1573 extern (C) void PlotLinesCallbackEx(scope const(char)* label, float function(scope void* data, int idx) values_getter, scope void* data, int values_count, int values_offset, scope const( 1574 char)* overlay_text, float scale_min, float scale_max, const ImVec2_t graph_size) @trusted 1575 { 1576 igPlotLinesCallbackEx(label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); 1577 } 1578 1579 void PlotHistogram(scope const(char)* label, scope const(float)* values, int values_count) @trusted 1580 { 1581 igPlotHistogram(label, values, values_count); 1582 } 1583 1584 void PlotHistogramEx(scope const(char)* label, scope const(float)* values, int values_count, int values_offset, scope const( 1585 char)* overlay_text, float scale_min, float scale_max, const ImVec2_t graph_size, int stride) @trusted 1586 { 1587 igPlotHistogramEx(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride); 1588 } 1589 1590 extern (C) void PlotHistogramCallback(scope const(char)* label, float function( 1591 scope void* data, int idx) values_getter, scope void* data, int values_count) @trusted 1592 { 1593 igPlotHistogramCallback(label, values_getter, data, values_count); 1594 } 1595 1596 extern (C) void PlotHistogramCallbackEx(scope const(char)* label, float function(scope void* data, int idx) values_getter, scope void* data, int values_count, int values_offset, scope const( 1597 char)* overlay_text, float scale_min, float scale_max, const ImVec2_t graph_size) @trusted 1598 { 1599 igPlotHistogramCallbackEx(label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); 1600 } 1601 1602 bool BeginMenuBar() @trusted 1603 { 1604 return igBeginMenuBar(); 1605 } 1606 1607 void EndMenuBar() @trusted 1608 { 1609 igEndMenuBar(); 1610 } 1611 1612 bool BeginMainMenuBar() @trusted 1613 { 1614 return igBeginMainMenuBar(); 1615 } 1616 1617 void EndMainMenuBar() @trusted 1618 { 1619 igEndMainMenuBar(); 1620 } 1621 1622 bool BeginMenu(scope const(char)* label) @trusted 1623 { 1624 return igBeginMenu(label); 1625 } 1626 1627 bool BeginMenuEx(scope const(char)* label, bool enabled) @trusted 1628 { 1629 return igBeginMenuEx(label, enabled); 1630 } 1631 1632 void EndMenu() @trusted 1633 { 1634 igEndMenu(); 1635 } 1636 1637 bool MenuItem(scope const(char)* label) @trusted 1638 { 1639 return igMenuItem(label); 1640 } 1641 1642 bool MenuItemEx(scope const(char)* label, scope const(char)* shortcut, bool selected, bool enabled) @trusted 1643 { 1644 return igMenuItemEx(label, shortcut, selected, enabled); 1645 } 1646 1647 bool MenuItemBoolPtr(scope const(char)* label, scope const(char)* shortcut, scope bool* p_selected, bool enabled) @trusted 1648 { 1649 return igMenuItemBoolPtr(label, shortcut, p_selected, enabled); 1650 } 1651 1652 bool BeginTooltip() @trusted 1653 { 1654 return igBeginTooltip(); 1655 } 1656 1657 void EndTooltip() @trusted 1658 { 1659 igEndTooltip(); 1660 } 1661 1662 alias SetTooltip = igSetTooltip; 1663 1664 void SetTooltipV(scope const(char)* fmt, __builtin_va_list args) @trusted 1665 { 1666 igSetTooltipV(fmt, args); 1667 } 1668 1669 bool BeginItemTooltip() @trusted 1670 { 1671 return igBeginItemTooltip(); 1672 } 1673 1674 alias SetItemTooltip = igSetItemTooltip; 1675 1676 void SetItemTooltipV(scope const(char)* fmt, __builtin_va_list args) @trusted 1677 { 1678 igSetItemTooltipV(fmt, args); 1679 } 1680 1681 bool BeginPopup(scope const(char)* str_id, int flags) @trusted 1682 { 1683 return igBeginPopup(str_id, flags); 1684 } 1685 1686 bool BeginPopupModal(scope const(char)* name, scope bool* p_open, int flags) @trusted 1687 { 1688 return igBeginPopupModal(name, p_open, flags); 1689 } 1690 1691 void EndPopup() @trusted 1692 { 1693 igEndPopup(); 1694 } 1695 1696 void OpenPopup(scope const(char)* str_id, int popup_flags) @trusted 1697 { 1698 igOpenPopup(str_id, popup_flags); 1699 } 1700 1701 void OpenPopupID(uint id, int popup_flags) @trusted 1702 { 1703 igOpenPopupID(id, popup_flags); 1704 } 1705 1706 void OpenPopupOnItemClick(scope const(char)* str_id, int popup_flags) @trusted 1707 { 1708 igOpenPopupOnItemClick(str_id, popup_flags); 1709 } 1710 1711 void CloseCurrentPopup() @trusted 1712 { 1713 igCloseCurrentPopup(); 1714 } 1715 1716 bool BeginPopupContextItem() @trusted 1717 { 1718 return igBeginPopupContextItem(); 1719 } 1720 1721 bool BeginPopupContextItemEx(scope const(char)* str_id, int popup_flags) @trusted 1722 { 1723 return igBeginPopupContextItemEx(str_id, popup_flags); 1724 } 1725 1726 bool BeginPopupContextWindow() @trusted 1727 { 1728 return igBeginPopupContextWindow(); 1729 } 1730 1731 bool BeginPopupContextWindowEx(scope const(char)* str_id, int popup_flags) @trusted 1732 { 1733 return igBeginPopupContextWindowEx(str_id, popup_flags); 1734 } 1735 1736 bool BeginPopupContextVoid() @trusted 1737 { 1738 return igBeginPopupContextVoid(); 1739 } 1740 1741 bool BeginPopupContextVoidEx(scope const(char)* str_id, int popup_flags) @trusted 1742 { 1743 return igBeginPopupContextVoidEx(str_id, popup_flags); 1744 } 1745 1746 bool IsPopupOpen(scope const(char)* str_id, int flags) @trusted 1747 { 1748 return igIsPopupOpen(str_id, flags); 1749 } 1750 1751 bool BeginTable(scope const(char)* str_id, int columns, int flags) @trusted 1752 { 1753 return igBeginTable(str_id, columns, flags); 1754 } 1755 1756 bool BeginTableEx(scope const(char)* str_id, int columns, int flags, const ImVec2_t outer_size, float inner_width) @trusted 1757 { 1758 return igBeginTableEx(str_id, columns, flags, outer_size, inner_width); 1759 } 1760 1761 void EndTable() @trusted 1762 { 1763 igEndTable(); 1764 } 1765 1766 void TableNextRow() @trusted 1767 { 1768 igTableNextRow(); 1769 } 1770 1771 void TableNextRowEx(int row_flags, float min_row_height) @trusted 1772 { 1773 igTableNextRowEx(row_flags, min_row_height); 1774 } 1775 1776 bool TableNextColumn() @trusted 1777 { 1778 return igTableNextColumn(); 1779 } 1780 1781 bool TableSetColumnIndex(int column_n) @trusted 1782 { 1783 return igTableSetColumnIndex(column_n); 1784 } 1785 1786 void TableSetupColumn(scope const(char)* label, int flags) @trusted 1787 { 1788 igTableSetupColumn(label, flags); 1789 } 1790 1791 void TableSetupColumnEx(scope const(char)* label, int flags, float init_width_or_weight, uint user_id) @trusted 1792 { 1793 igTableSetupColumnEx(label, flags, init_width_or_weight, user_id); 1794 } 1795 1796 void TableSetupScrollFreeze(int cols, int rows) @trusted 1797 { 1798 igTableSetupScrollFreeze(cols, rows); 1799 } 1800 1801 void TableHeader(scope const(char)* label) @trusted 1802 { 1803 igTableHeader(label); 1804 } 1805 1806 void TableHeadersRow() @trusted 1807 { 1808 igTableHeadersRow(); 1809 } 1810 1811 void TableAngledHeadersRow() @trusted 1812 { 1813 igTableAngledHeadersRow(); 1814 } 1815 1816 scope ImGuiTableSortSpecs_t* TableGetSortSpecs() @trusted 1817 { 1818 return igTableGetSortSpecs(); 1819 } 1820 1821 int TableGetColumnCount() @trusted 1822 { 1823 return igTableGetColumnCount(); 1824 } 1825 1826 int TableGetColumnIndex() @trusted 1827 { 1828 return igTableGetColumnIndex(); 1829 } 1830 1831 int TableGetRowIndex() @trusted 1832 { 1833 return igTableGetRowIndex(); 1834 } 1835 1836 scope const(char)* TableGetColumnName(int column_n) @trusted 1837 { 1838 return igTableGetColumnName(column_n); 1839 } 1840 1841 int TableGetColumnFlags(int column_n) @trusted 1842 { 1843 return igTableGetColumnFlags(column_n); 1844 } 1845 1846 void TableSetColumnEnabled(int column_n, bool v) @trusted 1847 { 1848 igTableSetColumnEnabled(column_n, v); 1849 } 1850 1851 int TableGetHoveredColumn() @trusted 1852 { 1853 return igTableGetHoveredColumn(); 1854 } 1855 1856 void TableSetBgColor(int target, uint color, int column_n) @trusted 1857 { 1858 igTableSetBgColor(target, color, column_n); 1859 } 1860 1861 void Columns() @trusted 1862 { 1863 igColumns(); 1864 } 1865 1866 void ColumnsEx(int count, scope const(char)* id, bool borders) @trusted 1867 { 1868 igColumnsEx(count, id, borders); 1869 } 1870 1871 void NextColumn() @trusted 1872 { 1873 igNextColumn(); 1874 } 1875 1876 int GetColumnIndex() @trusted 1877 { 1878 return igGetColumnIndex(); 1879 } 1880 1881 float GetColumnWidth(int column_index) @trusted 1882 { 1883 return igGetColumnWidth(column_index); 1884 } 1885 1886 void SetColumnWidth(int column_index, float width) @trusted 1887 { 1888 igSetColumnWidth(column_index, width); 1889 } 1890 1891 float GetColumnOffset(int column_index) @trusted 1892 { 1893 return igGetColumnOffset(column_index); 1894 } 1895 1896 void SetColumnOffset(int column_index, float offset_x) @trusted 1897 { 1898 igSetColumnOffset(column_index, offset_x); 1899 } 1900 1901 int GetColumnsCount() @trusted 1902 { 1903 return igGetColumnsCount(); 1904 } 1905 1906 bool BeginTabBar(scope const(char)* str_id, int flags) @trusted 1907 { 1908 return igBeginTabBar(str_id, flags); 1909 } 1910 1911 void EndTabBar() @trusted 1912 { 1913 igEndTabBar(); 1914 } 1915 1916 bool BeginTabItem(scope const(char)* label, bool* p_open, int flags) @trusted 1917 { 1918 return igBeginTabItem(label, p_open, flags); 1919 } 1920 1921 void EndTabItem() @trusted 1922 { 1923 igEndTabItem(); 1924 } 1925 1926 bool TabItemButton(scope const(char)* label, int flags) @trusted 1927 { 1928 return igTabItemButton(label, flags); 1929 } 1930 1931 void SetTabItemClosed(scope const(char)* tab_or_docked_window_label) @trusted 1932 { 1933 igSetTabItemClosed(tab_or_docked_window_label); 1934 } 1935 1936 void LogToTTY(int auto_open_depth) @trusted 1937 { 1938 igLogToTTY(auto_open_depth); 1939 } 1940 1941 void LogToFile(int auto_open_depth, scope const(char)* filename) @trusted 1942 { 1943 igLogToFile(auto_open_depth, filename); 1944 } 1945 1946 void LogToClipboard(int auto_open_depth) @trusted 1947 { 1948 igLogToClipboard(auto_open_depth); 1949 } 1950 1951 void LogFinish() @trusted 1952 { 1953 igLogFinish(); 1954 } 1955 1956 void LogButtons() @trusted 1957 { 1958 igLogButtons(); 1959 } 1960 1961 alias LogText = igLogText; 1962 1963 void LogTextV(scope const(char)* fmt, __builtin_va_list args) @trusted 1964 { 1965 igLogTextV(fmt, args); 1966 } 1967 1968 bool BeginDragDropSource(int flags) @trusted 1969 { 1970 return igBeginDragDropSource(flags); 1971 } 1972 1973 bool SetDragDropPayload(scope const(char)* type, scope const(void)* data, size_t sz, int cond) @trusted 1974 { 1975 return igSetDragDropPayload(type, data, sz, cond); 1976 } 1977 1978 void EndDragDropSource() @trusted 1979 { 1980 igEndDragDropSource(); 1981 } 1982 1983 bool BeginDragDropTarget() @trusted 1984 { 1985 return igBeginDragDropTarget(); 1986 } 1987 1988 const(ImGuiPayload_t*) AcceptDragDropPayload(scope const(char)* type, int flags) @trusted 1989 { 1990 return igAcceptDragDropPayload(type, flags); 1991 } 1992 1993 void EndDragDropTarget() @trusted 1994 { 1995 igEndDragDropTarget(); 1996 } 1997 1998 const(ImGuiPayload_t*) GetDragDropPayload() @trusted 1999 { 2000 return igGetDragDropPayload(); 2001 } 2002 2003 void BeginDisabled(bool disabled) @trusted 2004 { 2005 igBeginDisabled(disabled); 2006 } 2007 2008 void EndDisabled() @trusted 2009 { 2010 igEndDisabled(); 2011 } 2012 2013 void PushClipRect(const(ImVec2_t) clip_rect_min, const ImVec2_t clip_rect_max, bool intersect_with_current_clip_rect) @trusted 2014 { 2015 igPushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect); 2016 } 2017 2018 void PopClipRect() @trusted 2019 { 2020 igPopClipRect(); 2021 } 2022 2023 void SetItemDefaultFocus() @trusted 2024 { 2025 igSetItemDefaultFocus(); 2026 } 2027 2028 void SetKeyboardFocusHere() @trusted 2029 { 2030 igSetKeyboardFocusHere(); 2031 } 2032 2033 void SetKeyboardFocusHereEx(int offset) @trusted 2034 { 2035 igSetKeyboardFocusHereEx(offset); 2036 } 2037 2038 void SetNavCursorVisible(bool visible) @trusted 2039 { 2040 igSetNavCursorVisible(visible); 2041 } 2042 2043 void SetNextItemAllowOverlap() @trusted 2044 { 2045 igSetNextItemAllowOverlap(); 2046 } 2047 2048 bool IsItemHovered(int flags) @trusted 2049 { 2050 return igIsItemHovered(flags); 2051 } 2052 2053 bool IsItemActive() @trusted 2054 { 2055 return igIsItemActive(); 2056 } 2057 2058 bool IsItemFocused() @trusted 2059 { 2060 return igIsItemFocused(); 2061 } 2062 2063 bool IsItemClicked() @trusted 2064 { 2065 return igIsItemClicked(); 2066 } 2067 2068 bool IsItemClickedEx(int mouse_button) @trusted 2069 { 2070 return igIsItemClickedEx(mouse_button); 2071 } 2072 2073 bool IsItemVisible() @trusted 2074 { 2075 return igIsItemVisible(); 2076 } 2077 2078 bool IsItemEdited() @trusted 2079 { 2080 return igIsItemEdited(); 2081 } 2082 2083 bool IsItemActivated() @trusted 2084 { 2085 return igIsItemActivated(); 2086 } 2087 2088 bool IsItemDeactivated() @trusted 2089 { 2090 return igIsItemDeactivated(); 2091 } 2092 2093 bool IsItemDeactivatedAfterEdit() @trusted 2094 { 2095 return igIsItemDeactivatedAfterEdit(); 2096 } 2097 2098 bool IsItemToggledOpen() @trusted 2099 { 2100 return igIsItemToggledOpen(); 2101 } 2102 2103 bool IsAnyItemHovered() @trusted 2104 { 2105 return igIsAnyItemHovered(); 2106 } 2107 2108 bool IsAnyItemActive() @trusted 2109 { 2110 return igIsAnyItemActive(); 2111 } 2112 2113 bool IsAnyItemFocused() @trusted 2114 { 2115 return igIsAnyItemFocused(); 2116 } 2117 2118 uint GetItemID() @trusted 2119 { 2120 return igGetItemID(); 2121 } 2122 2123 scope const(ImVec2_t) GetItemRectMin() @trusted 2124 { 2125 return igGetItemRectMin(); 2126 } 2127 2128 scope const(ImVec2_t) GetItemRectMax() @trusted 2129 { 2130 return igGetItemRectMax(); 2131 } 2132 2133 scope const(ImVec2_t) GetItemRectSize() @trusted 2134 { 2135 return igGetItemRectSize(); 2136 } 2137 2138 scope const(ImGuiViewport_t*) GetMainViewport() @trusted 2139 { 2140 return igGetMainViewport(); 2141 } 2142 2143 scope const(ImDrawList_t*) GetBackgroundDrawList() @trusted 2144 { 2145 return igGetBackgroundDrawList(); 2146 } 2147 2148 scope const(ImDrawList_t*) GetForegroundDrawList() @trusted 2149 { 2150 return igGetForegroundDrawList(); 2151 } 2152 2153 bool IsRectVisibleBySize(const(ImVec2_t) size) @trusted 2154 { 2155 return igIsRectVisibleBySize(size); 2156 } 2157 2158 bool IsRectVisible(const(ImVec2_t) rect_min, const ImVec2_t rect_max) @trusted 2159 { 2160 return igIsRectVisible(rect_min, rect_max); 2161 } 2162 2163 double GetTime() @trusted 2164 { 2165 return igGetTime(); 2166 } 2167 2168 int GetFrameCount() @trusted 2169 { 2170 return igGetFrameCount(); 2171 } 2172 2173 scope ImDrawListSharedData_t* GetDrawListSharedData() @trusted 2174 { 2175 return igGetDrawListSharedData(); 2176 } 2177 2178 scope const(char)* GetStyleColorName(int idx) @trusted 2179 { 2180 return igGetStyleColorName(idx); 2181 } 2182 2183 void SetStateStorage(scope const(ImGuiStorage_t)* storage) @trusted 2184 { 2185 igSetStateStorage(cast(ImGuiStorage_t*) storage); 2186 } 2187 2188 scope const(ImGuiStorage_t)* GetStateStorage() @trusted 2189 { 2190 return igGetStateStorage(); 2191 } 2192 2193 const(ImVec2_t) CalcTextSize(scope const(char)* text) @trusted 2194 { 2195 return igCalcTextSize(text); 2196 } 2197 2198 const(ImVec2_t) CalcTextSizeEx(scope const(char)* text, scope const(char)* text_end, bool hide_text_after_double_hash, float wrap_width) @trusted 2199 { 2200 return igCalcTextSizeEx(text, text_end, hide_text_after_double_hash, wrap_width); 2201 } 2202 2203 const(ImVec4_t) ColorConvertU32ToFloat4(uint input) @trusted 2204 { 2205 return igColorConvertU32ToFloat4(input); 2206 } 2207 2208 uint ColorConvertFloat4ToU32(const(ImVec4_t) input) @trusted 2209 { 2210 return igColorConvertFloat4ToU32(input); 2211 } 2212 2213 void ColorConvertRGBtoHSV(float r, float g, float b, scope float* out_h, scope float* out_s, scope float* out_v) @trusted 2214 { 2215 igColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v); 2216 } 2217 2218 void ColorConvertHSVtoRGB(float h, float s, float v, scope float* out_r, scope float* out_g, scope float* out_b) @trusted 2219 { 2220 igColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b); 2221 } 2222 2223 bool IsKeyDown(int key) @trusted 2224 { 2225 return igIsKeyDown(key); 2226 } 2227 2228 bool IsKeyPressed(int key) @trusted 2229 { 2230 return igIsKeyPressed(key); 2231 } 2232 2233 bool IsKeyPressedEx(int key, bool repeat) @trusted 2234 { 2235 return igIsKeyPressedEx(key, repeat); 2236 } 2237 2238 bool IsKeyReleased(int key) @trusted 2239 { 2240 return igIsKeyReleased(key); 2241 } 2242 2243 bool IsKeyChordPressed(int key_chord) @trusted 2244 { 2245 return igIsKeyChordPressed(key_chord); 2246 } 2247 2248 int GetKeyPressedAmount(int key, float repeat_delay, float rate) @trusted 2249 { 2250 return igGetKeyPressedAmount(key, repeat_delay, rate); 2251 } 2252 2253 const(char)* GetKeyName(int key) @trusted 2254 { 2255 return igGetKeyName(key); 2256 } 2257 2258 void SetNextFrameWantCaptureKeyboard(bool want_capture_keyboard) @trusted 2259 { 2260 igSetNextFrameWantCaptureKeyboard(want_capture_keyboard); 2261 } 2262 2263 bool Shortcut(int key_chord, int flags) @trusted 2264 { 2265 return igShortcut(key_chord, flags); 2266 } 2267 2268 void SetNextItemShortcut(int key_chord, int flags) @trusted 2269 { 2270 igSetNextItemShortcut(key_chord, flags); 2271 } 2272 2273 void SetItemKeyOwner(int key) @trusted 2274 { 2275 igSetItemKeyOwner(key); 2276 } 2277 2278 bool IsMouseDown(int button) @trusted 2279 { 2280 return igIsMouseDown(button); 2281 } 2282 2283 bool IsMouseClicked(int button) @trusted 2284 { 2285 return igIsMouseClicked(button); 2286 } 2287 2288 bool IsMouseClickedEx(int button, bool repeat) @trusted 2289 { 2290 return igIsMouseClickedEx(button, repeat); 2291 } 2292 2293 bool IsMouseReleased(int button) @trusted 2294 { 2295 return igIsMouseReleased(button); 2296 } 2297 2298 bool IsMouseDoubleClicked(int button) @trusted 2299 { 2300 return igIsMouseDoubleClicked(button); 2301 } 2302 2303 int GetMouseClickedCount(int button) @trusted 2304 { 2305 return igGetMouseClickedCount(button); 2306 } 2307 2308 bool IsMouseHoveringRect(const(ImVec2_t) r_min, const ImVec2_t r_max) @trusted 2309 { 2310 return igIsMouseHoveringRect(r_min, r_max); 2311 } 2312 2313 bool IsMouseHoveringRectEx(const(ImVec2_t) r_min, const ImVec2_t r_max, bool clip) @trusted 2314 { 2315 return igIsMouseHoveringRectEx(r_min, r_max, clip); 2316 } 2317 2318 bool IsMousePosValid(scope const(ImVec2_t)* mouse_pos) @trusted 2319 { 2320 return igIsMousePosValid(cast(ImVec2_t*) mouse_pos); 2321 } 2322 2323 bool IsAnyMouseDown() @trusted 2324 { 2325 return igIsAnyMouseDown(); 2326 } 2327 2328 const(ImVec2_t) GetMousePos() @trusted 2329 { 2330 return igGetMousePos(); 2331 } 2332 2333 const(ImVec2_t) GetMousePosOnOpeningCurrentPopup() @trusted 2334 { 2335 return igGetMousePosOnOpeningCurrentPopup(); 2336 } 2337 2338 bool IsMouseDragging(int button, float lock_threshold) @trusted 2339 { 2340 return igIsMouseDragging(button, lock_threshold); 2341 } 2342 2343 const(ImVec2_t) GetMouseDragDelta(int button, float lock_threshold) @trusted 2344 { 2345 return igGetMouseDragDelta(button, lock_threshold); 2346 } 2347 2348 void ResetMouseDragDelta() @trusted 2349 { 2350 igResetMouseDragDelta(); 2351 } 2352 2353 void ResetMouseDragDeltaEx(int button) @trusted 2354 { 2355 igResetMouseDragDeltaEx(button); 2356 } 2357 2358 int GetMouseCursor() @trusted 2359 { 2360 return igGetMouseCursor(); 2361 } 2362 2363 void SetMouseCursor(int cursor_type) @trusted 2364 { 2365 igSetMouseCursor(cursor_type); 2366 } 2367 2368 void SetNextFrameWantCaptureMouse(bool want_capture_mouse) @trusted 2369 { 2370 igSetNextFrameWantCaptureMouse(want_capture_mouse); 2371 } 2372 2373 scope const(char)* GetClipboardText() @trusted 2374 { 2375 return igGetClipboardText(); 2376 } 2377 2378 void SetClipboardText(scope const(char)* text) @trusted 2379 { 2380 igSetClipboardText(text); 2381 } 2382 2383 void LoadIniSettingsFromDisk(scope const(char)* ini_filename) @trusted 2384 { 2385 igLoadIniSettingsFromDisk(ini_filename); 2386 } 2387 2388 void LoadIniSettingsFromMemory(scope const(char)* ini_data, size_t ini_size) @trusted 2389 { 2390 igLoadIniSettingsFromMemory(ini_data, ini_size); 2391 } 2392 2393 void SaveIniSettingsToDisk(scope const(char)* ini_filename) @trusted 2394 { 2395 igSaveIniSettingsToDisk(ini_filename); 2396 } 2397 2398 scope const(char)* SaveIniSettingsToMemory(scope size_t* out_ini_size) @trusted 2399 { 2400 return igSaveIniSettingsToMemory(out_ini_size); 2401 } 2402 2403 void DebugTextEncoding(scope const(char)* text) @trusted 2404 { 2405 igDebugTextEncoding(text); 2406 } 2407 2408 void DebugFlashStyleColor(int idx) @trusted 2409 { 2410 igDebugFlashStyleColor(idx); 2411 } 2412 2413 void DebugStartItemPicker() @trusted 2414 { 2415 igDebugStartItemPicker(); 2416 } 2417 2418 bool DebugCheckVersionAndDataLayout(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 2419 { 2420 return igDebugCheckVersionAndDataLayout(version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx); 2421 } 2422 2423 alias DebugLog = igDebugLog; 2424 2425 void DebugLogV(scope const(char)* fmt, __builtin_va_list args) @trusted 2426 { 2427 igDebugLogV(fmt, args); 2428 } 2429 2430 extern (C) void SetAllocatorFunctions(scope void* function(size_t sz, void* user_data) alloc_func, void function( 2431 void* ptr, void* user_data) free_func, scope void* user_data) @trusted 2432 { 2433 igSetAllocatorFunctions(alloc_func, free_func, user_data); 2434 } 2435 2436 extern (C) void GetAllocatorFunctions(scope void* function(size_t sz, void* user_data)* p_alloc_func, void function( 2437 void* ptr, void* user_data)* p_free_func, scope void** p_user_data) @trusted 2438 { 2439 igGetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data); 2440 } 2441 2442 scope void* MemAlloc(size_t size) @trusted 2443 { 2444 return igMemAlloc(size); 2445 } 2446 2447 void MemFree(scope void* ptr) @trusted 2448 { 2449 igMemFree(ptr); 2450 } 2451 2452 void VectorConstruct(scope void* vector) @trusted 2453 { 2454 ImVector_Construct(vector); 2455 } 2456 2457 void VectorDestruct(scope void* vector) @trusted 2458 { 2459 ImVector_Destruct(vector); 2460 } 2461 2462 void StyleScaleAllSizes(scope ImGuiStyle_t* self, float scale_factor) @trusted 2463 { 2464 ImGuiStyle_ScaleAllSizes(self, scale_factor); 2465 } 2466 2467 void IOAddKeyEvent(scope ImGuiIO_t* self, int key, bool down) @trusted 2468 { 2469 ImGuiIO_AddKeyEvent(self, key, down); 2470 } 2471 2472 void IOAddKeyAnalogEvent(scope ImGuiIO_t* self, int key, bool down, float v) @trusted 2473 { 2474 ImGuiIO_AddKeyAnalogEvent(self, key, down, v); 2475 } 2476 2477 void IOAddMousePosEvent(scope ImGuiIO_t* self, float x, float y) @trusted 2478 { 2479 ImGuiIO_AddMousePosEvent(self, x, y); 2480 } 2481 2482 void IOAddMouseButtonEvent(scope ImGuiIO_t* self, int button, bool down) @trusted 2483 { 2484 ImGuiIO_AddMouseButtonEvent(self, button, down); 2485 } 2486 2487 void IOAddMouseWheelEvent(scope ImGuiIO_t* self, float wheel_x, float wheel_y) @trusted 2488 { 2489 ImGuiIO_AddMouseWheelEvent(self, wheel_x, wheel_y); 2490 } 2491 2492 void IOAddMouseSourceEvent(scope ImGuiIO_t* self, int source) @trusted 2493 { 2494 ImGuiIO_AddMouseSourceEvent(self, source); 2495 } 2496 2497 void IOAddFocusEvent(scope ImGuiIO_t* self, bool focused) @trusted 2498 { 2499 ImGuiIO_AddFocusEvent(self, focused); 2500 } 2501 2502 void IOAddInputCharacter(scope ImGuiIO_t* self, uint c) @trusted 2503 { 2504 ImGuiIO_AddInputCharacter(self, c); 2505 } 2506 2507 void IOAddInputCharacterUTF16(scope ImGuiIO_t* self, ushort c) @trusted 2508 { 2509 ImGuiIO_AddInputCharacterUTF16(self, c); 2510 } 2511 2512 void IOAddInputCharactersUTF8(scope ImGuiIO_t* self, scope const(char)* str) @trusted 2513 { 2514 ImGuiIO_AddInputCharactersUTF8(self, str); 2515 } 2516 2517 void IOSetKeyEventNativeData(scope ImGuiIO_t* self, int key, int native_keycode, int native_scancode) @trusted 2518 { 2519 ImGuiIO_SetKeyEventNativeData(self, key, native_keycode, native_scancode); 2520 } 2521 2522 void IOSetKeyEventNativeDataEx(scope ImGuiIO_t* self, int key, int native_keycode, int native_scancode, int native_legacy_index) @trusted 2523 { 2524 ImGuiIO_SetKeyEventNativeDataEx(self, key, native_keycode, native_scancode, native_legacy_index); 2525 } 2526 2527 void IOSetAppAcceptingEvents(scope ImGuiIO_t* self, bool accepting_events) @trusted 2528 { 2529 ImGuiIO_SetAppAcceptingEvents(self, accepting_events); 2530 } 2531 2532 void IOClearEventsQueue(scope ImGuiIO_t* self) @trusted 2533 { 2534 ImGuiIO_ClearEventsQueue(self); 2535 } 2536 2537 void IOClearInputKeys(scope ImGuiIO_t* self) @trusted 2538 { 2539 ImGuiIO_ClearInputKeys(self); 2540 } 2541 2542 void IOClearInputMouse(scope ImGuiIO_t* self) @trusted 2543 { 2544 ImGuiIO_ClearInputMouse(self); 2545 } 2546 2547 void IOClearInputCharacters(scope ImGuiIO_t* self) @trusted 2548 { 2549 ImGuiIO_ClearInputCharacters(self); 2550 } 2551 2552 void InputTextCallbackDataDeleteChars( 2553 scope const(ImGuiInputTextCallbackData_t)* self, int pos, int bytes_count) @trusted 2554 { 2555 ImGuiInputTextCallbackData_DeleteChars(cast(ImGuiInputTextCallbackData_t*) self, pos, bytes_count); 2556 } 2557 2558 void InputTextCallbackDataInsertChars(scope const(ImGuiInputTextCallbackData_t)* self, int pos, scope const( 2559 char)* text, scope const( 2560 char)* text_end) @trusted 2561 { 2562 ImGuiInputTextCallbackData_InsertChars(cast(ImGuiInputTextCallbackData_t*) self, pos, text, text_end); 2563 } 2564 2565 void InputTextCallbackDataSelectAll(scope const(ImGuiInputTextCallbackData_t)* self) @trusted 2566 { 2567 ImGuiInputTextCallbackData_SelectAll(cast(ImGuiInputTextCallbackData_t*) self); 2568 } 2569 2570 void InputTextCallbackDataClearSelection(scope const(ImGuiInputTextCallbackData_t)* self) @trusted 2571 { 2572 ImGuiInputTextCallbackData_ClearSelection(cast(ImGuiInputTextCallbackData_t*) self); 2573 } 2574 2575 bool InputTextCallbackDataHasSelection(scope const(ImGuiInputTextCallbackData_t)* self) @trusted 2576 { 2577 return ImGuiInputTextCallbackData_HasSelection(cast(ImGuiInputTextCallbackData_t*) self); 2578 } 2579 2580 void PayloadClear(scope const(ImGuiPayload_t*) self) @trusted 2581 { 2582 ImGuiPayload_Clear(cast(ImGuiPayload_t*) self); 2583 } 2584 2585 bool PayloadIsDataType(scope const(ImGuiPayload_t*) self, scope const(char)* type) @trusted 2586 { 2587 return ImGuiPayload_IsDataType(cast(ImGuiPayload_t*) self, type); 2588 } 2589 2590 bool PayloadIsPreview(scope const(ImGuiPayload_t*) self) @trusted 2591 { 2592 return ImGuiPayload_IsPreview(cast(ImGuiPayload_t*) self); 2593 } 2594 2595 bool PayloadIsDelivery(scope const(ImGuiPayload_t*) self) @trusted 2596 { 2597 return ImGuiPayload_IsDelivery(cast(ImGuiPayload_t*) self); 2598 } 2599 2600 bool TextFilterRangeEmpty(const(ImGuiTextFilter_ImGuiTextRange_t)* self) @trusted 2601 { 2602 return ImGuiTextFilter_ImGuiTextRange_empty(cast(ImGuiTextFilter_ImGuiTextRange_t*) self); 2603 } 2604 2605 void TextFilterRangeSplit(scope const(ImGuiTextFilter_ImGuiTextRange_t)* self, char separator, scope ImVector_ImGuiTextFilter_ImGuiTextRange_t* output) @trusted 2606 { 2607 ImGuiTextFilter_ImGuiTextRange_split(cast(ImGuiTextFilter_ImGuiTextRange_t*) self, separator, output); 2608 } 2609 2610 bool TextFilterDraw(scope const(ImGuiTextFilter_t)* self, scope const(char)* label, float width) @trusted 2611 { 2612 return ImGuiTextFilter_Draw(cast(ImGuiTextFilter_t*) self, label, width); 2613 } 2614 2615 bool TextFilterPassFilter(scope const(ImGuiTextFilter_t)* self, scope const(char)* text, scope const( 2616 char)* text_end) @trusted 2617 { 2618 return ImGuiTextFilter_PassFilter(cast(ImGuiTextFilter_t*) self, text, text_end); 2619 } 2620 2621 void TextFilterBuild(scope const(ImGuiTextFilter_t)* self) @trusted 2622 { 2623 ImGuiTextFilter_Build(cast(ImGuiTextFilter_t*) self); 2624 } 2625 2626 void TextFilterClear(scope const(ImGuiTextFilter_t)* self) @trusted 2627 { 2628 ImGuiTextFilter_Clear(cast(ImGuiTextFilter_t*) self); 2629 } 2630 2631 bool TextFilterIsActive(scope const(ImGuiTextFilter_t)* self) @trusted 2632 { 2633 return ImGuiTextFilter_IsActive(cast(ImGuiTextFilter_t*) self); 2634 } 2635 2636 const(char)* TextBufferBegin(scope const(ImGuiTextBuffer_t)* self) @trusted 2637 { 2638 return ImGuiTextBuffer_begin(cast(ImGuiTextBuffer_t*) self); 2639 } 2640 2641 const(char)* TextBufferEnd(scope const(ImGuiTextBuffer_t)* self) @trusted 2642 { 2643 return ImGuiTextBuffer_end(cast(ImGuiTextBuffer_t*) self); 2644 } 2645 2646 int TextBufferSize(scope const(ImGuiTextBuffer_t)* self) @trusted 2647 { 2648 return ImGuiTextBuffer_size(cast(ImGuiTextBuffer_t*) self); 2649 } 2650 2651 bool TextBufferEmpty(scope const(ImGuiTextBuffer_t)* self) @trusted 2652 { 2653 return ImGuiTextBuffer_empty(cast(ImGuiTextBuffer_t*) self); 2654 } 2655 2656 void TextBufferClear(scope const(ImGuiTextBuffer_t)* self) @trusted 2657 { 2658 ImGuiTextBuffer_clear(cast(ImGuiTextBuffer_t*) self); 2659 } 2660 2661 void TextBufferReserve(scope const(ImGuiTextBuffer_t)* self, int capacity) @trusted 2662 { 2663 ImGuiTextBuffer_reserve(cast(ImGuiTextBuffer_t*) self, capacity); 2664 } 2665 2666 const(char)* TextBufferCStr(scope const(ImGuiTextBuffer_t)* self) @trusted 2667 { 2668 return ImGuiTextBuffer_c_str(cast(ImGuiTextBuffer_t*) self); 2669 } 2670 2671 void TextBufferAppend(scope const(ImGuiTextBuffer_t)* self, scope const(char)* str, scope const( 2672 char)* str_end) @trusted 2673 { 2674 ImGuiTextBuffer_append(cast(ImGuiTextBuffer_t*) self, str, str_end); 2675 } 2676 2677 void TextBufferAppendF(scope const(ImGuiTextBuffer_t)* self, scope const(char)* fmt, __builtin_va_list args) @trusted 2678 { 2679 ImGuiTextBuffer_appendf(cast(ImGuiTextBuffer_t*) self, fmt, args); 2680 } 2681 2682 void TextBufferAppendFV(scope const(ImGuiTextBuffer_t)* self, scope const(char)* fmt, __builtin_va_list args) @trusted 2683 { 2684 ImGuiTextBuffer_appendfv(cast(ImGuiTextBuffer_t*) self, fmt, args); 2685 } 2686 2687 void StorageClear(scope const(ImGuiStorage_t)* self) @trusted 2688 { 2689 ImGuiStorage_Clear(cast(ImGuiStorage_t*) self); 2690 } 2691 2692 int StorageGetInt(scope const(ImGuiStorage_t)* self, uint key, int default_val) @trusted 2693 { 2694 return ImGuiStorage_GetInt(cast(ImGuiStorage_t*) self, key, default_val); 2695 } 2696 2697 void StorageSetInt(scope const(ImGuiStorage_t)* self, uint key, int val) @trusted 2698 { 2699 ImGuiStorage_SetInt(cast(ImGuiStorage_t*) self, key, val); 2700 } 2701 2702 bool StorageGetBool(scope const(ImGuiStorage_t)* self, uint key, bool default_val) @trusted 2703 { 2704 return ImGuiStorage_GetBool(cast(ImGuiStorage_t*) self, key, default_val); 2705 } 2706 2707 void StorageSetBool(scope const(ImGuiStorage_t)* self, uint key, bool val) @trusted 2708 { 2709 ImGuiStorage_SetBool(cast(ImGuiStorage_t*) self, key, val); 2710 } 2711 2712 float StorageGetFloat(scope const(ImGuiStorage_t)* self, uint key, float default_val) @trusted 2713 { 2714 return ImGuiStorage_GetFloat(cast(ImGuiStorage_t*) self, key, default_val); 2715 } 2716 2717 void StorageSetFloat(scope const(ImGuiStorage_t)* self, uint key, float val) @trusted 2718 { 2719 ImGuiStorage_SetFloat(cast(ImGuiStorage_t*) self, key, val); 2720 } 2721 2722 scope void* StorageGetVoidPtr(scope const(ImGuiStorage_t)* self, uint key) @trusted 2723 { 2724 return ImGuiStorage_GetVoidPtr(cast(ImGuiStorage_t*) self, key); 2725 } 2726 2727 void StorageSetVoidPtr(scope const(ImGuiStorage_t)* self, uint key, scope void* val) @trusted 2728 { 2729 ImGuiStorage_SetVoidPtr(cast(ImGuiStorage_t*) self, key, val); 2730 } 2731 2732 scope int* StorageGetIntRef(scope const(ImGuiStorage_t)* self, uint key, int default_val) @trusted 2733 { 2734 return ImGuiStorage_GetIntRef(cast(ImGuiStorage_t*) self, key, default_val); 2735 } 2736 2737 scope bool* StorageGetBoolRef(scope const(ImGuiStorage_t)* self, uint key, bool default_val) @trusted 2738 { 2739 return ImGuiStorage_GetBoolRef(cast(ImGuiStorage_t*) self, key, default_val); 2740 } 2741 2742 scope float* StorageGetFloatRef(scope const(ImGuiStorage_t)* self, uint key, float default_val) @trusted 2743 { 2744 return ImGuiStorage_GetFloatRef(cast(ImGuiStorage_t*) self, key, default_val); 2745 } 2746 2747 scope void** StorageGetVoidPtrRef(scope const(ImGuiStorage_t)* self, uint key, scope void* default_val) @trusted 2748 { 2749 return ImGuiStorage_GetVoidPtrRef(cast(ImGuiStorage_t*) self, key, default_val); 2750 } 2751 2752 void StorageBuildSortByKey(scope const(ImGuiStorage_t)* self) @trusted 2753 { 2754 ImGuiStorage_BuildSortByKey(cast(ImGuiStorage_t*) self); 2755 } 2756 2757 void StorageSetAllInt(scope const(ImGuiStorage_t)* self, int val) @trusted 2758 { 2759 ImGuiStorage_SetAllInt(cast(ImGuiStorage_t*) self, val); 2760 } 2761 2762 void ListClipperBegin(scope ImGuiListClipper_t* self, int items_count, float items_height) @trusted 2763 { 2764 ImGuiListClipper_Begin(self, items_count, items_height); 2765 } 2766 2767 void ListClipperEnd(scope ImGuiListClipper_t* self) @trusted 2768 { 2769 ImGuiListClipper_End(self); 2770 } 2771 2772 bool ListClipperStep(scope ImGuiListClipper_t* self) @trusted 2773 { 2774 return ImGuiListClipper_Step(self); 2775 } 2776 2777 void ListClipperIncludeItemByIndex(scope ImGuiListClipper_t* self, int item_index) @trusted 2778 { 2779 ImGuiListClipper_IncludeItemByIndex(self, item_index); 2780 } 2781 2782 void ListClipperIncludeItemsByIndex(scope ImGuiListClipper_t* self, int item_begin, int item_end) @trusted 2783 { 2784 ImGuiListClipper_IncludeItemsByIndex(self, item_begin, item_end); 2785 } 2786 2787 void ListClipperSeekCursorForItem(scope ImGuiListClipper_t* self, int item_index) @trusted 2788 { 2789 ImGuiListClipper_SeekCursorForItem(self, item_index); 2790 } 2791 2792 void ListClipperIncludeRangeByIndices(scope ImGuiListClipper_t* self, int item_begin, int item_end) @trusted 2793 { 2794 ImGuiListClipper_IncludeRangeByIndices(self, item_begin, item_end); 2795 } 2796 2797 void ListClipperForceDisplayRangeByIndices(scope ImGuiListClipper_t* self, int item_begin, int item_end) @trusted 2798 { 2799 ImGuiListClipper_ForceDisplayRangeByIndices(self, item_begin, item_end); 2800 } 2801 2802 void ColorSetHSV(scope ImColor_t* self, float h, float s, float v, float a) @trusted 2803 { 2804 ImColor_SetHSV(self, h, s, v, a); 2805 } 2806 2807 ImColor_t ColorHSV(float h, float s, float v, float a) @trusted 2808 { 2809 return ImColor_HSV(h, s, v, a); 2810 } 2811 2812 void SelectionBasicStorageApplyRequests( 2813 scope const(ImGuiSelectionBasicStorage_t)* self, scope ImGuiMultiSelectIO_t* ms_io) @trusted 2814 { 2815 ImGuiSelectionBasicStorage_ApplyRequests(cast(ImGuiSelectionBasicStorage_t*) self, ms_io); 2816 } 2817 2818 bool SelectionBasicStorageContains(scope const(ImGuiSelectionBasicStorage_t)* self, uint id) @trusted 2819 { 2820 return ImGuiSelectionBasicStorage_Contains(cast(ImGuiSelectionBasicStorage_t*) self, id); 2821 } 2822 2823 void SelectionBasicStorageClear(scope const(ImGuiSelectionBasicStorage_t)* self) @trusted 2824 { 2825 ImGuiSelectionBasicStorage_Clear(cast(ImGuiSelectionBasicStorage_t*) self); 2826 } 2827 2828 void SelectionBasicStorageSwap(scope const(ImGuiSelectionBasicStorage_t)* self, scope const( 2829 ImGuiSelectionBasicStorage_t)* r) @trusted 2830 { 2831 ImGuiSelectionBasicStorage_Swap(cast(ImGuiSelectionBasicStorage_t*) self, cast( 2832 ImGuiSelectionBasicStorage_t*) r); 2833 } 2834 2835 void SelectionBasicStorageSetItemSelected( 2836 scope const(ImGuiSelectionBasicStorage_t)* self, uint id, bool selected) @trusted 2837 { 2838 ImGuiSelectionBasicStorage_SetItemSelected(cast(ImGuiSelectionBasicStorage_t*) self, id, selected); 2839 } 2840 2841 bool SelectionBasicStorageGetNextSelectedItem( 2842 const ImGuiSelectionBasicStorage_t* self, scope void** opaque_it, scope uint* out_id) @trusted 2843 { 2844 return ImGuiSelectionBasicStorage_GetNextSelectedItem( 2845 cast(ImGuiSelectionBasicStorage_t*) self, opaque_it, out_id); 2846 } 2847 2848 uint SelectionBasicStorageGetStorageIdFromIndex( 2849 scope const(ImGuiSelectionBasicStorage_t)* self, int idx) @trusted 2850 { 2851 return ImGuiSelectionBasicStorage_GetStorageIdFromIndex( 2852 cast(ImGuiSelectionBasicStorage_t*) self, idx); 2853 } 2854 2855 void applyRequests( 2856 ImGuiSelectionExternalStorage_t* self, ImGuiMultiSelectIO_t* ms_io) @trusted 2857 { 2858 ImGuiSelectionExternalStorage_ApplyRequests(self, ms_io); 2859 } 2860 2861 auto getTexID(scope const(ImDrawCmd_t)* self) @trusted 2862 { 2863 return ImDrawCmd_GetTexID(cast(ImDrawCmd_t*) self); 2864 } 2865 2866 void clear(scope ImDrawListSplitter_t* self) @trusted 2867 { 2868 ImDrawListSplitter_Clear(self); 2869 } 2870 2871 void clearFreeMemory(scope ImDrawListSplitter_t* self) @trusted 2872 { 2873 ImDrawListSplitter_ClearFreeMemory(self); 2874 } 2875 2876 void split(scope ImDrawListSplitter_t* self, scope const(ImDrawList_t)* draw_list, int count) @trusted 2877 { 2878 ImDrawListSplitter_Split(self, cast(ImDrawList_t*) draw_list, count); 2879 } 2880 2881 void merge(scope ImDrawListSplitter_t* self, scope const(ImDrawList_t)* draw_list) @trusted 2882 { 2883 ImDrawListSplitter_Merge(self, cast(ImDrawList_t*) draw_list); 2884 } 2885 2886 void setCurrentChannel(scope ImDrawListSplitter_t* self, scope const(ImDrawList_t)* draw_list, int channel_idx) @trusted 2887 { 2888 ImDrawListSplitter_SetCurrentChannel(self, cast(ImDrawList_t*) draw_list, channel_idx); 2889 } 2890 2891 void pushClipRect(scope const(ImDrawList_t)* self, const ImVec2_t clip_rect_min, const ImVec2_t clip_rect_max, bool intersect_with_current_clip_rect) @trusted 2892 { 2893 ImDrawList_PushClipRect(cast(ImDrawList_t*) self, clip_rect_min, clip_rect_max, intersect_with_current_clip_rect); 2894 } 2895 2896 void pushClipRectFullScreen(scope const(ImDrawList_t)* self) @trusted 2897 { 2898 ImDrawList_PushClipRectFullScreen(cast(ImDrawList_t*) self); 2899 } 2900 2901 void popClipRect(scope const(ImDrawList_t)* self) @trusted 2902 { 2903 ImDrawList_PopClipRect(cast(ImDrawList_t*) self); 2904 } 2905 2906 void pushTextureID(scope const(ImDrawList_t)* self, size_t texture_id) @trusted 2907 { 2908 ImDrawList_PushTextureID(cast(ImDrawList_t*) self, texture_id); 2909 } 2910 2911 void popTextureID(scope const(ImDrawList_t)* self) @trusted 2912 { 2913 ImDrawList_PopTextureID(cast(ImDrawList_t*) self); 2914 } 2915 2916 const(ImVec2_t) getClipRectMin(scope const(ImDrawList_t)* self) @trusted 2917 { 2918 return ImDrawList_GetClipRectMin(cast(ImDrawList_t*) self); 2919 } 2920 2921 const(ImVec2_t) getClipRectMax(scope const(ImDrawList_t)* self) @trusted 2922 { 2923 return ImDrawList_GetClipRectMax(cast(ImDrawList_t*) self); 2924 } 2925 2926 void addLine(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, uint col) @trusted 2927 { 2928 ImDrawList_AddLine(cast(ImDrawList_t*) self, p1, p2, col); 2929 } 2930 2931 void addLineEx(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, uint col, float thickness) @trusted 2932 { 2933 ImDrawList_AddLineEx(cast(ImDrawList_t*) self, p1, p2, col, thickness); 2934 } 2935 2936 void addRect(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col) @trusted 2937 { 2938 ImDrawList_AddRect(cast(ImDrawList_t*) self, p_min, p_max, col); 2939 } 2940 2941 void addRectEx(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col, float rounding, int flags, float thickness) @trusted 2942 { 2943 ImDrawList_AddRectEx(cast(ImDrawList_t*) self, p_min, p_max, col, rounding, flags, thickness); 2944 } 2945 2946 void addRectFilled(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col) @trusted 2947 { 2948 ImDrawList_AddRectFilled(cast(ImDrawList_t*) self, p_min, p_max, col); 2949 } 2950 2951 void addRectFilledEx(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col, float rounding, int flags) @trusted 2952 { 2953 ImDrawList_AddRectFilledEx(cast(ImDrawList_t*) self, p_min, p_max, col, rounding, flags); 2954 } 2955 2956 void addRectFilledMultiColor(scope const(ImDrawList_t)* self, const ImVec2_t p_min, const ImVec2_t p_max, uint col_upr_left, uint col_upr_right, uint col_bot_right, uint col_bot_left) @trusted 2957 { 2958 ImDrawList_AddRectFilledMultiColor(cast(ImDrawList_t*) self, p_min, p_max, col_upr_left, col_upr_right, col_bot_right, col_bot_left); 2959 } 2960 2961 void addQuad(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, uint col) @trusted 2962 { 2963 ImDrawList_AddQuad(cast(ImDrawList_t*) self, p1, p2, p3, p4, col); 2964 } 2965 2966 void addQuadEx(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, uint col, float thickness) @trusted 2967 { 2968 ImDrawList_AddQuadEx(cast(ImDrawList_t*) self, p1, p2, p3, p4, col, thickness); 2969 } 2970 2971 void addQuadFilled(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, uint col) @trusted 2972 { 2973 ImDrawList_AddQuadFilled(cast(ImDrawList_t*) self, p1, p2, p3, p4, col); 2974 } 2975 2976 void addTriangle(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, uint col) @trusted 2977 { 2978 ImDrawList_AddTriangle(cast(ImDrawList_t*) self, p1, p2, p3, col); 2979 } 2980 2981 void addTriangleEx(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, uint col, float thickness) @trusted 2982 { 2983 ImDrawList_AddTriangleEx(cast(ImDrawList_t*) self, p1, p2, p3, col, thickness); 2984 } 2985 2986 void addTriangleFilled(scope const(ImDrawList_t)* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, uint col) @trusted 2987 { 2988 ImDrawList_AddTriangleFilled(cast(ImDrawList_t*) self, p1, p2, p3, col); 2989 } 2990 2991 void addCircle(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col) @trusted 2992 { 2993 ImDrawList_AddCircle(cast(ImDrawList_t*) self, center, radius, col); 2994 } 2995 2996 void addCircleEx(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments, float thickness) @trusted 2997 { 2998 ImDrawList_AddCircleEx(cast(ImDrawList_t*) self, center, radius, col, num_segments, thickness); 2999 } 3000 3001 void addCircleFilled(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments) @trusted 3002 { 3003 ImDrawList_AddCircleFilled(cast(ImDrawList_t*) self, center, radius, col, num_segments); 3004 } 3005 3006 void addNgon(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments) @trusted 3007 { 3008 ImDrawList_AddNgon(cast(ImDrawList_t*) self, center, radius, col, num_segments); 3009 } 3010 3011 void addNgonEx(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments, float thickness) @trusted 3012 { 3013 ImDrawList_AddNgonEx(cast(ImDrawList_t*) self, center, radius, col, num_segments, thickness); 3014 } 3015 3016 void addNgonFilled(scope const(ImDrawList_t)* self, const ImVec2_t center, float radius, uint col, int num_segments) @trusted 3017 { 3018 ImDrawList_AddNgonFilled(cast(ImDrawList_t*) self, center, radius, col, num_segments); 3019 } 3020 3021 void addEllipse(scope const(ImDrawList_t)* self, const ImVec2_t center, const ImVec2_t radius, uint col) @trusted 3022 { 3023 ImDrawList_AddEllipse(cast(ImDrawList_t*) self, center, radius, col); 3024 } 3025 3026 void addEllipseEx(scope const(ImDrawList_t)* self, const ImVec2_t center, const ImVec2_t radius, uint col, float rot, int num_segments, float thickness) @trusted 3027 { 3028 ImDrawList_AddEllipseEx(cast(ImDrawList_t*) self, center, radius, col, rot, num_segments, thickness); 3029 } 3030 3031 void addEllipseFilled(scope const(ImDrawList_t)* self, const ImVec2_t center, const ImVec2_t radius, uint col) @trusted 3032 { 3033 ImDrawList_AddEllipseFilled(cast(ImDrawList_t*) self, center, radius, col); 3034 } 3035 3036 void addEllipseFilledEx(scope const(ImDrawList_t)* self, const ImVec2_t center, const ImVec2_t radius, uint col, float rot, int num_segments) @trusted 3037 { 3038 ImDrawList_AddEllipseFilledEx(cast(ImDrawList_t*) self, center, radius, col, rot, num_segments); 3039 } 3040 3041 void addText(scope const(ImDrawList_t)* self, const ImVec2_t pos, uint col, scope const(char)* text_begin) @trusted 3042 { 3043 ImDrawList_AddText(cast(ImDrawList_t*) self, pos, col, text_begin); 3044 } 3045 3046 void addTextEx(scope const(ImDrawList_t)* self, const ImVec2_t pos, uint col, scope const(char)* text_begin, scope const( 3047 char)* text_end) @trusted 3048 { 3049 ImDrawList_AddTextEx(cast(ImDrawList_t*) self, pos, col, text_begin, text_end); 3050 } 3051 3052 void addTextImFontPtr(scope const(ImDrawList_t)* self, scope const(ImFont_t)* font, float font_size, const ImVec2_t pos, uint col, scope const( 3053 char)* text_begin) @trusted 3054 { 3055 ImDrawList_AddTextImFontPtr(cast(ImDrawList_t*) self, cast(ImFont_t*) font, font_size, pos, col, text_begin); 3056 } 3057 3058 void addTextImFontPtrEx(scope const(ImDrawList_t)* self, scope const(ImFont_t)* font, float font_size, const ImVec2_t pos, uint col, scope const( 3059 char)* text_begin, scope const( 3060 char)* text_end, float wrap_width, scope const(ImVec4_t)* cpu_fine_clip_rect) @trusted 3061 { 3062 ImDrawList_AddTextImFontPtrEx(cast(ImDrawList_t*) self, cast(ImFont_t*) font, font_size, pos, col, text_begin, text_end, wrap_width, cast( 3063 ImVec4_t*) cpu_fine_clip_rect); 3064 } 3065 3066 void addBezierCubic(scope ImDrawList_t* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, uint col, float thickness, int num_segments) @trusted 3067 { 3068 ImDrawList_AddBezierCubic(self, p1, p2, p3, p4, col, thickness, num_segments); 3069 } 3070 3071 void addBezierQuadratic(scope ImDrawList_t* self, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, uint col, float thickness, int num_segments) @trusted 3072 { 3073 ImDrawList_AddBezierQuadratic(self, p1, p2, p3, col, thickness, num_segments); 3074 } 3075 3076 void addPolyline(scope ImDrawList_t* self, scope const(ImVec2_t)* points, int num_points, uint col, int flags, float thickness) @trusted 3077 { 3078 ImDrawList_AddPolyline(self, cast(ImVec2_t*) points, num_points, col, flags, thickness); 3079 } 3080 3081 void addConvexPolyFilled(scope ImDrawList_t* self, scope const(ImVec2_t)* points, int num_points, uint col) @trusted 3082 { 3083 ImDrawList_AddConvexPolyFilled(self, cast(ImVec2_t*) points, num_points, col); 3084 } 3085 3086 void addConcavePolyFilled(scope ImDrawList_t* self, scope const(ImVec2_t)* points, int num_points, uint col) @trusted 3087 { 3088 ImDrawList_AddConcavePolyFilled(self, cast(ImVec2_t*) points, num_points, col); 3089 } 3090 3091 void addImage(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p_min, const ImVec2_t p_max) @trusted 3092 { 3093 ImDrawList_AddImage(self, user_texture_id, p_min, p_max); 3094 } 3095 3096 void addImageEx(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p_min, const ImVec2_t p_max, const ImVec2_t uv_min, const ImVec2_t uv_max, uint col) @trusted 3097 { 3098 ImDrawList_AddImageEx(self, user_texture_id, p_min, p_max, uv_min, uv_max, col); 3099 } 3100 3101 void addImageQuad(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4) @trusted 3102 { 3103 ImDrawList_AddImageQuad(self, user_texture_id, p1, p2, p3, p4); 3104 } 3105 3106 void addImageQuadEx(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p1, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, const ImVec2_t uv1, const ImVec2_t uv2, const ImVec2_t uv3, const ImVec2_t uv4, uint col) @trusted 3107 { 3108 ImDrawList_AddImageQuadEx(self, user_texture_id, p1, p2, p3, p4, uv1, uv2, uv3, uv4, col); 3109 } 3110 3111 void addImageRounded(scope ImDrawList_t* self, size_t user_texture_id, const ImVec2_t p_min, const ImVec2_t p_max, const ImVec2_t uv_min, const ImVec2_t uv_max, uint col, float rounding, int flags) @trusted 3112 { 3113 ImDrawList_AddImageRounded(self, user_texture_id, p_min, p_max, uv_min, uv_max, col, rounding, flags); 3114 } 3115 3116 void pathClear(scope ImDrawList_t* self) @trusted 3117 { 3118 ImDrawList_PathClear(self); 3119 } 3120 3121 void pathLineTo(scope ImDrawList_t* self, const ImVec2_t pos) @trusted 3122 { 3123 ImDrawList_PathLineTo(self, pos); 3124 } 3125 3126 void pathLineToMergeDuplicate(scope ImDrawList_t* self, const ImVec2_t pos) @trusted 3127 { 3128 ImDrawList_PathLineToMergeDuplicate(self, pos); 3129 } 3130 3131 void pathFillConvex(scope ImDrawList_t* self, uint col) @trusted 3132 { 3133 ImDrawList_PathFillConvex(self, col); 3134 } 3135 3136 void pathFillConcave(scope ImDrawList_t* self, uint col) @trusted 3137 { 3138 ImDrawList_PathFillConcave(self, col); 3139 } 3140 3141 void pathStroke(scope ImDrawList_t* self, uint col, int flags, float thickness) @trusted 3142 { 3143 ImDrawList_PathStroke(self, col, flags, thickness); 3144 } 3145 3146 void pathArcTo(scope ImDrawList_t* self, const ImVec2_t center, float radius, float a_min, float a_max, int num_segments) @trusted 3147 { 3148 ImDrawList_PathArcTo(self, center, radius, a_min, a_max, num_segments); 3149 } 3150 3151 void pathArcToFast(scope ImDrawList_t* self, const ImVec2_t center, float radius, int a_min_of_12, int a_max_of_12) @trusted 3152 { 3153 ImDrawList_PathArcToFast(self, center, radius, a_min_of_12, a_max_of_12); 3154 } 3155 3156 void pathEllipticalArcTo(scope ImDrawList_t* self, const ImVec2_t center, const ImVec2_t radius, float rot, float a_min, float a_max) @trusted 3157 { 3158 ImDrawList_PathEllipticalArcTo(self, center, radius, rot, a_min, a_max); 3159 } 3160 3161 void pathEllipticalArcToEx(scope ImDrawList_t* self, const ImVec2_t center, const ImVec2_t radius, float rot, float a_min, float a_max, int num_segments) @trusted 3162 { 3163 ImDrawList_PathEllipticalArcToEx(self, center, radius, rot, a_min, a_max, num_segments); 3164 } 3165 3166 void pathBezierCubicCurveTo(scope ImDrawList_t* self, const ImVec2_t p2, const ImVec2_t p3, const ImVec2_t p4, int num_segments) @trusted 3167 { 3168 ImDrawList_PathBezierCubicCurveTo(self, p2, p3, p4, num_segments); 3169 } 3170 3171 void pathBezierQuadraticCurveTo(scope ImDrawList_t* self, const ImVec2_t p2, const ImVec2_t p3, int num_segments) @trusted 3172 { 3173 ImDrawList_PathBezierQuadraticCurveTo(self, p2, p3, num_segments); 3174 } 3175 3176 void pathRect(scope ImDrawList_t* self, const ImVec2_t rect_min, const ImVec2_t rect_max, float rounding, int flags) @trusted 3177 { 3178 ImDrawList_PathRect(self, rect_min, rect_max, rounding, flags); 3179 } 3180 3181 extern (C) void addCallback(scope ImDrawList_t* self, void function(scope const( 3182 ImDrawList_t)* parent_list, scope const(ImDrawCmd_t)* cmd) callback, scope void* userdata) @trusted 3183 { 3184 ImDrawList_AddCallback(self, callback, userdata); 3185 } 3186 3187 extern (C) void addCallbackEx(scope ImDrawList_t* self, void function(scope const( 3188 ImDrawList_t)* parent_list, scope const(ImDrawCmd_t)* cmd) callback, scope void* userdata, size_t userdata_size) @trusted 3189 { 3190 ImDrawList_AddCallbackEx(self, callback, userdata, userdata_size); 3191 } 3192 3193 void addDrawCmd(scope ImDrawList_t* self) @trusted 3194 { 3195 ImDrawList_AddDrawCmd(self); 3196 } 3197 3198 scope ImDrawList_t* cloneOutput(scope ImDrawList_t* self) @trusted 3199 { 3200 return cast(ImDrawList_t*) ImDrawList_CloneOutput(self); 3201 } 3202 3203 void channelsSplit(scope ImDrawList_t* self, int count) @trusted 3204 { 3205 ImDrawList_ChannelsSplit(self, count); 3206 } 3207 3208 void channelsMerge(scope ImDrawList_t* self) @trusted 3209 { 3210 ImDrawList_ChannelsMerge(self); 3211 } 3212 3213 void channelsSetCurrent(scope ImDrawList_t* self, int n) @trusted 3214 { 3215 ImDrawList_ChannelsSetCurrent(self, n); 3216 } 3217 3218 void primReserve(scope ImDrawList_t* self, int idx_count, int vtx_count) @trusted 3219 { 3220 ImDrawList_PrimReserve(self, idx_count, vtx_count); 3221 } 3222 3223 void primUnreserve(scope ImDrawList_t* self, int idx_count, int vtx_count) @trusted 3224 { 3225 ImDrawList_PrimUnreserve(self, idx_count, vtx_count); 3226 } 3227 3228 void primRect(scope ImDrawList_t* self, ImVec2_t a, ImVec2_t b, uint col) @trusted 3229 { 3230 ImDrawList_PrimRect(self, a, b, col); 3231 } 3232 3233 void primRectUV(scope ImDrawList_t* self, ImVec2_t a, ImVec2_t b, ImVec2_t uv_a, ImVec2_t uv_b, uint col) @trusted 3234 { 3235 ImDrawList_PrimRectUV(self, a, b, uv_a, uv_b, col); 3236 } 3237 3238 void primQuadUV(scope ImDrawList_t* self, ImVec2_t a, ImVec2_t b, ImVec2_t c, ImVec2_t d, ImVec2_t uv_a, ImVec2_t uv_b, ImVec2_t uv_c, ImVec2_t uv_d, uint col) @trusted 3239 { 3240 ImDrawList_PrimQuadUV(self, a, b, c, d, uv_a, uv_b, uv_c, uv_d, col); 3241 } 3242 3243 void primWriteVtx(scope ImDrawList_t* self, ImVec2_t pos, ImVec2_t uv, uint col) @trusted 3244 { 3245 ImDrawList_PrimWriteVtx(self, pos, uv, col); 3246 } 3247 3248 void primWriteIdx(scope ImDrawList_t* self, ushort idx) @trusted 3249 { 3250 ImDrawList_PrimWriteIdx(self, idx); 3251 } 3252 3253 void primVtx(scope ImDrawList_t* self, ImVec2_t pos, ImVec2_t uv, uint col) @trusted 3254 { 3255 ImDrawList_PrimVtx(self, pos, uv, col); 3256 } 3257 3258 void resetForNewFrame(scope ImDrawList_t* self) @trusted 3259 { 3260 ImDrawList__ResetForNewFrame(self); 3261 } 3262 3263 void clearFreeMemory(scope ImDrawList_t* self) @trusted 3264 { 3265 ImDrawList__ClearFreeMemory(self); 3266 } 3267 3268 void popUnusedDrawCmd(scope ImDrawList_t* self) @trusted 3269 { 3270 ImDrawList__PopUnusedDrawCmd(self); 3271 } 3272 3273 void tryMergeDrawCmds(scope ImDrawList_t* self) @trusted 3274 { 3275 ImDrawList__TryMergeDrawCmds(self); 3276 } 3277 3278 void onChangedClipRect(scope ImDrawList_t* self) @trusted 3279 { 3280 ImDrawList__OnChangedClipRect(self); 3281 } 3282 3283 void onChangedTextureID(scope ImDrawList_t* self) @trusted 3284 { 3285 ImDrawList__OnChangedTextureID(self); 3286 } 3287 3288 void onChangedVtxOffset(scope ImDrawList_t* self) @trusted 3289 { 3290 ImDrawList__OnChangedVtxOffset(self); 3291 } 3292 3293 void setTextureID(scope ImDrawList_t* self, size_t texture_id) @trusted 3294 { 3295 ImDrawList__SetTextureID(self, texture_id); 3296 } 3297 3298 int calcCircleAutoSegmentCount(scope ImDrawList_t* self, float radius) @trusted 3299 { 3300 return ImDrawList__CalcCircleAutoSegmentCount(self, radius); 3301 } 3302 3303 void pathArcToFastEx(scope ImDrawList_t* self, ImVec2_t center, float radius, int a_min_sample, int a_max_sample, int a_step) @trusted 3304 { 3305 ImDrawList__PathArcToFastEx(self, center, radius, a_min_sample, a_max_sample, a_step); 3306 } 3307 3308 void pathArcToN(scope ImDrawList_t* self, ImVec2_t center, float radius, float a_min, float a_max, int num_segments) @trusted 3309 { 3310 ImDrawList__PathArcToN(self, center, radius, a_min, a_max, num_segments); 3311 } 3312 3313 void clearDrawData(scope ImDrawData_t* self) @trusted 3314 { 3315 ImDrawData_Clear(self); 3316 } 3317 3318 void addDrawList(scope ImDrawData_t* self, scope const(ImDrawList_t)* draw_list) @trusted 3319 { 3320 ImDrawData_AddDrawList(self, cast(ImDrawList_t*) draw_list); 3321 } 3322 3323 void deIndexAllBuffers(scope ImDrawData_t* self) @trusted 3324 { 3325 ImDrawData_DeIndexAllBuffers(self); 3326 } 3327 3328 void scaleClipRects(scope ImDrawData_t* self, const ImVec2_t fb_scale) @trusted 3329 { 3330 ImDrawData_ScaleClipRects(self, fb_scale); 3331 } 3332 3333 void clearGlyphRangesBuilder(scope const(ImFontGlyphRangesBuilder_t)* self) @trusted 3334 { 3335 ImFontGlyphRangesBuilder_Clear(cast(ImFontGlyphRangesBuilder_t*) self); 3336 } 3337 3338 bool getBit(scope const(ImFontGlyphRangesBuilder_t)* self, size_t n) @trusted 3339 { 3340 return ImFontGlyphRangesBuilder_GetBit(cast(ImFontGlyphRangesBuilder_t*) self, n); 3341 } 3342 3343 void setBit(scope const(ImFontGlyphRangesBuilder_t)* self, size_t n) @trusted 3344 { 3345 ImFontGlyphRangesBuilder_SetBit(cast(ImFontGlyphRangesBuilder_t*) self, n); 3346 } 3347 3348 void addChar(scope const(ImFontGlyphRangesBuilder_t)* self, ushort c) @trusted 3349 { 3350 ImFontGlyphRangesBuilder_AddChar(cast(ImFontGlyphRangesBuilder_t*) self, c); 3351 } 3352 3353 void addText(scope const(ImFontGlyphRangesBuilder_t)* self, scope const(char)* text, scope const( 3354 char)* text_end) @trusted 3355 { 3356 ImFontGlyphRangesBuilder_AddText(cast(ImFontGlyphRangesBuilder_t*) self, text, text_end); 3357 } 3358 3359 void addRanges(scope const(ImFontGlyphRangesBuilder_t)* self, scope const(ushort)* ranges) @trusted 3360 { 3361 ImFontGlyphRangesBuilder_AddRanges(cast(ImFontGlyphRangesBuilder_t*) self, ranges); 3362 } 3363 3364 void buildRanges(scope const(ImFontGlyphRangesBuilder_t)* self, ImVector_ImWchar_t* out_ranges) @trusted 3365 { 3366 ImFontGlyphRangesBuilder_BuildRanges(cast(ImFontGlyphRangesBuilder_t*) self, out_ranges); 3367 } 3368 3369 bool isPacked(scope const(ImFontAtlasCustomRect_t)* self) @trusted 3370 { 3371 return ImFontAtlasCustomRect_IsPacked(cast(ImFontAtlasCustomRect_t*) self); 3372 } 3373 3374 scope const(ImFont_t)* addFont(scope const(ImFontAtlas_t)* self, scope const(ImFontConfig_t)* font_cfg) @trusted 3375 { 3376 return ImFontAtlas_AddFont(cast(ImFontAtlas_t*) self, cast(ImFontConfig_t*) font_cfg); 3377 } 3378 3379 scope const(ImFont_t)* addFontDefault(scope const(ImFontAtlas_t)* self, scope const(ImFontConfig_t)* font_cfg) @trusted 3380 { 3381 return ImFontAtlas_AddFontDefault(cast(ImFontAtlas_t*) self, cast(ImFontConfig_t*) font_cfg); 3382 } 3383 3384 scope const(ImFont_t)* addFontFromFileTTF(scope const(ImFontAtlas_t)* self, scope const(char)* filename, float size_pixels, scope const( 3385 ImFontConfig_t)* font_cfg, scope const( 3386 ushort)* glyph_ranges) @trusted 3387 { 3388 return ImFontAtlas_AddFontFromFileTTF(cast(ImFontAtlas_t*) self, filename, size_pixels, cast( 3389 ImFontConfig_t*) font_cfg, glyph_ranges); 3390 } 3391 3392 scope const(ImFont_t)* addFontFromMemoryTTF(scope const(ImFontAtlas_t)* self, scope void* font_data, int font_data_size, float size_pixels, scope const( 3393 ImFontConfig_t)* font_cfg, scope const( 3394 ushort)* glyph_ranges) @trusted 3395 { 3396 return ImFontAtlas_AddFontFromMemoryTTF(cast(ImFontAtlas_t*) self, font_data, font_data_size, size_pixels, cast( 3397 ImFontConfig_t*) font_cfg, glyph_ranges); 3398 } 3399 3400 scope const(ImFont_t)* addFontFromMemoryCompressedTTF( 3401 scope const(ImFontAtlas_t)* self, scope const(void)* compressed_font_data, int compressed_font_data_size, float size_pixels, scope const( 3402 ImFontConfig_t)* font_cfg, scope const( 3403 ushort)* glyph_ranges) @trusted 3404 { 3405 return ImFontAtlas_AddFontFromMemoryCompressedTTF(cast(ImFontAtlas_t*) self, compressed_font_data, compressed_font_data_size, size_pixels, cast( 3406 ImFontConfig_t*) font_cfg, glyph_ranges); 3407 } 3408 3409 scope const(ImFont_t)* addFontFromMemoryCompressedBase85TTF( 3410 scope const(ImFontAtlas_t)* self, scope const(char)* compressed_font_data_base85, float size_pixels, scope const( 3411 ImFontConfig_t)* font_cfg, scope const( 3412 ushort)* glyph_ranges) @trusted 3413 { 3414 return ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(cast(ImFontAtlas_t*) self, compressed_font_data_base85, size_pixels, cast( 3415 ImFontConfig_t*) font_cfg, glyph_ranges); 3416 } 3417 3418 void clearInputData(scope const(ImFontAtlas_t)* self) @trusted 3419 { 3420 ImFontAtlas_ClearInputData(cast(ImFontAtlas_t*) self); 3421 } 3422 3423 void clearTexData(scope const(ImFontAtlas_t)* self) @trusted 3424 { 3425 ImFontAtlas_ClearTexData(cast(ImFontAtlas_t*) self); 3426 } 3427 3428 void clearFonts(scope const(ImFontAtlas_t)* self) @trusted 3429 { 3430 ImFontAtlas_ClearFonts(cast(ImFontAtlas_t*) self); 3431 } 3432 3433 void clearFontAtlas(scope const(ImFontAtlas_t)* self) @trusted 3434 { 3435 ImFontAtlas_Clear(cast(ImFontAtlas_t*) self); 3436 } 3437 3438 bool buildFontAtlas(scope const(ImFontAtlas_t)* self) @trusted 3439 { 3440 return ImFontAtlas_Build(cast(ImFontAtlas_t*) self); 3441 } 3442 3443 void getTexDataAsAlpha8(scope const(ImFontAtlas_t)* self, scope ubyte** out_pixels, scope int* out_width, scope int* out_height, scope int* out_bytes_per_pixel) @trusted 3444 { 3445 ImFontAtlas_GetTexDataAsAlpha8(cast(ImFontAtlas_t*) self, out_pixels, out_width, out_height, out_bytes_per_pixel); 3446 } 3447 3448 void getTexDataAsRGBA32(scope const(ImFontAtlas_t)* self, scope ubyte** out_pixels, scope int* out_width, scope int* out_height, scope int* out_bytes_per_pixel) @trusted 3449 { 3450 ImFontAtlas_GetTexDataAsRGBA32(cast(ImFontAtlas_t*) self, out_pixels, out_width, out_height, out_bytes_per_pixel); 3451 } 3452 3453 bool isFontAtlasBuilt(scope const(ImFontAtlas_t)* self) @trusted 3454 { 3455 return ImFontAtlas_IsBuilt(cast(ImFontAtlas_t*) self); 3456 } 3457 3458 void setTexID(scope const(ImFontAtlas_t)* self, size_t id) @trusted 3459 { 3460 ImFontAtlas_SetTexID(cast(ImFontAtlas_t*) self, id); 3461 } 3462 3463 scope const(ushort)* getGlyphRangesDefault(scope const(ImFontAtlas_t)* self) @trusted 3464 { 3465 return ImFontAtlas_GetGlyphRangesDefault(cast(ImFontAtlas_t*) self); 3466 } 3467 3468 scope const(ushort)* getGlyphRangesGreek(scope const(ImFontAtlas_t)* self) @trusted 3469 { 3470 return ImFontAtlas_GetGlyphRangesGreek(cast(ImFontAtlas_t*) self); 3471 } 3472 3473 scope const(ushort)* getGlyphRangesKorean(scope const(ImFontAtlas_t)* self) @trusted 3474 { 3475 return ImFontAtlas_GetGlyphRangesKorean(cast(ImFontAtlas_t*) self); 3476 } 3477 3478 scope const(ushort)* getGlyphRangesJapanese(scope const(ImFontAtlas_t)* self) @trusted 3479 { 3480 return ImFontAtlas_GetGlyphRangesJapanese(cast(ImFontAtlas_t*) self); 3481 } 3482 3483 scope const(ushort)* getGlyphRangesChineseFull(scope const(ImFontAtlas_t)* self) @trusted 3484 { 3485 return ImFontAtlas_GetGlyphRangesChineseFull(cast(ImFontAtlas_t*) self); 3486 } 3487 3488 scope const(ushort)* getGlyphRangesChineseSimplifiedCommon(scope const(ImFontAtlas_t)* self) @trusted 3489 { 3490 return ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(cast(ImFontAtlas_t*) self); 3491 } 3492 3493 scope const(ushort)* getGlyphRangesCyrillic(scope const(ImFontAtlas_t)* self) @trusted 3494 { 3495 return ImFontAtlas_GetGlyphRangesCyrillic(cast(ImFontAtlas_t*) self); 3496 } 3497 3498 scope const(ushort)* getGlyphRangesThai(scope const(ImFontAtlas_t)* self) @trusted 3499 { 3500 return ImFontAtlas_GetGlyphRangesThai(cast(ImFontAtlas_t*) self); 3501 } 3502 3503 scope const(ushort)* getGlyphRangesVietnamese(scope const(ImFontAtlas_t)* self) @trusted 3504 { 3505 return ImFontAtlas_GetGlyphRangesVietnamese(cast(ImFontAtlas_t*) self); 3506 } 3507 3508 int addCustomRectRegular(scope const(ImFontAtlas_t)* self, int width, int height) @trusted 3509 { 3510 return ImFontAtlas_AddCustomRectRegular(cast(ImFontAtlas_t*) self, width, height); 3511 } 3512 3513 int addCustomRectFontGlyph(scope const(ImFontAtlas_t)* self, scope const(ImFont_t)* font, ushort id, int width, int height, float advance_x, const ImVec2_t offset) @trusted 3514 { 3515 return ImFontAtlas_AddCustomRectFontGlyph(cast(ImFontAtlas_t*) self, cast(ImFont_t*) font, id, width, height, advance_x, offset); 3516 } 3517 3518 scope const(ImFontAtlasCustomRect_t)* getCustomRectByIndex( 3519 scope const(ImFontAtlas_t)* self, int index) @trusted 3520 { 3521 return ImFontAtlas_GetCustomRectByIndex(cast(ImFontAtlas_t*) self, index); 3522 } 3523 3524 void calcCustomRectUV(scope const(ImFontAtlas_t)* self, scope const(ImFontAtlasCustomRect_t)* rect, scope const( 3525 ImVec2_t)* out_uv_min, scope const(ImVec2_t)* out_uv_max) @trusted 3526 { 3527 ImFontAtlas_CalcCustomRectUV(cast(ImFontAtlas_t*) self, cast(ImFontAtlasCustomRect_t*) rect, cast( 3528 ImVec2_t*) out_uv_min, cast( 3529 ImVec2_t*) out_uv_max); 3530 } 3531 3532 bool getMouseCursorTexData(scope const(ImFontAtlas_t)* self, int cursor, scope const(ImVec2_t)* out_offset, scope const( 3533 ImVec2_t)* out_size, const(ImVec2_t)[2] out_uv_border, const(ImVec2_t)[2] out_uv_fill) @trusted 3534 { 3535 return ImFontAtlas_GetMouseCursorTexData(cast(ImFontAtlas_t*) self, cursor, cast(ImVec2_t*) out_offset, cast( 3536 ImVec2_t*) out_size, cast(ImVec2_t*)&out_uv_border[0], cast(ImVec2_t*)&out_uv_fill[0]); 3537 } 3538 3539 scope const(ImFontGlyph_t)* findGlyph(scope const(ImFont_t)* self, ushort c) @trusted 3540 { 3541 return ImFont_FindGlyph(cast(ImFont_t*) self, c); 3542 } 3543 3544 scope const(ImFontGlyph_t)* findGlyphNoFallback(scope const(ImFont_t)* self, ushort c) @trusted 3545 { 3546 return ImFont_FindGlyphNoFallback(cast(ImFont_t*) self, c); 3547 } 3548 3549 float getCharAdvance(scope const(ImFont_t)* self, ushort c) @trusted 3550 { 3551 return ImFont_GetCharAdvance(cast(ImFont_t*) self, c); 3552 } 3553 3554 bool isLoaded(scope const(ImFont_t)* self) @trusted 3555 { 3556 return ImFont_IsLoaded(cast(ImFont_t*) self); 3557 } 3558 3559 const(char)* getDebugName(scope const(ImFont_t)* self) @trusted 3560 { 3561 return ImFont_GetDebugName(cast(ImFont_t*) self); 3562 } 3563 3564 ImVec2_t calcTextSizeA(scope const(ImFont_t)* self, float size, float max_width, float wrap_width, const( 3565 char)* text_begin) @trusted 3566 { 3567 return ImFont_CalcTextSizeA(cast(ImFont_t*) self, size, max_width, wrap_width, text_begin); 3568 } 3569 3570 ImVec2_t calcTextSizeAEx(scope const(ImFont_t)* self, float size, float max_width, float wrap_width, 3571 scope const(char)* text_begin, scope const(char)* text_end, scope const(char)** remaining) @trusted 3572 { 3573 return ImFont_CalcTextSizeAEx(cast(ImFont_t*) self, size, max_width, wrap_width, text_begin, text_end, remaining); 3574 } 3575 3576 const(char)* calcWordWrapPositionA(scope const(ImFont_t)* self, float scale, scope const(char)* text, 3577 const(char)* text_end, float wrap_width) @trusted 3578 { 3579 return ImFont_CalcWordWrapPositionA(cast(ImFont_t*) self, scale, text, text_end, wrap_width); 3580 } 3581 3582 void renderChar(scope const(ImFont_t)* self, scope const(ImDrawList_t)* draw_list, float size, 3583 const ImVec2_t pos, uint col, ushort c) @trusted 3584 { 3585 ImFont_RenderChar(cast(ImFont_t*) self, cast(ImDrawList_t*) draw_list, size, pos, col, c); 3586 } 3587 3588 void renderText(scope const(ImFont_t)* self, scope const(ImDrawList_t)* draw_list, float size, const ImVec2_t pos, 3589 uint col, const ImVec4_t clip_rect, scope const(char)* text_begin, scope const(char)* text_end, 3590 float wrap_width, bool cpu_fine_clip) @trusted 3591 { 3592 ImFont_RenderText(cast(ImFont_t*) self, cast(ImDrawList_t*) draw_list, size, pos, col, clip_rect, text_begin, text_end, wrap_width, cpu_fine_clip); 3593 } 3594 3595 void buildLookupTable(scope const(ImFont_t)* self) @trusted 3596 { 3597 ImFont_BuildLookupTable(cast(ImFont_t*) self); 3598 } 3599 3600 void clearOutputData(scope const(ImFont_t)* self) @trusted 3601 { 3602 ImFont_ClearOutputData(cast(ImFont_t*) self); 3603 } 3604 3605 void growIndex(scope const(ImFont_t)* self, int new_size) @trusted 3606 { 3607 ImFont_GrowIndex(cast(ImFont_t*) self, new_size); 3608 } 3609 3610 void addGlyph(scope const(ImFont_t)* self, const(ImFontConfig_t)* src_cfg, ushort c, 3611 float x0, float y0, float x1, float y1, float u0, float v0, float u1, float v1, float advance_x) @trusted 3612 { 3613 ImFont_AddGlyph(cast(ImFont_t*) self, cast(ImFontConfig_t*) src_cfg, c, x0, y0, x1, y1, u0, v0, u1, v1, advance_x); 3614 } 3615 3616 void addRemapChar(scope const(ImFont_t)* self, ushort dst, ushort src, bool overwrite_dst) @trusted 3617 { 3618 ImFont_AddRemapChar(cast(ImFont_t*) self, dst, src, overwrite_dst); 3619 } 3620 3621 void setGlyphVisible(scope const(ImFont_t)* self, ushort c, bool visible) @trusted 3622 { 3623 ImFont_SetGlyphVisible(cast(ImFont_t*) self, c, visible); 3624 } 3625 3626 bool isGlyphRangeUnused(scope const(ImFont_t)* self, uint c_begin, uint c_last) @trusted 3627 { 3628 return ImFont_IsGlyphRangeUnused(cast(ImFont_t*) self, c_begin, c_last); 3629 } 3630 3631 ImVec2_t getViewportCenter(scope const(ImGuiViewport_t)* self) @trusted 3632 { 3633 return ImGuiViewport_GetCenter(cast(ImGuiViewport_t*) self); 3634 } 3635 3636 ImVec2_t getViewportWorkCenter(scope const(ImGuiViewport_t)* self) @trusted 3637 { 3638 return ImGuiViewport_GetWorkCenter(cast(ImGuiViewport_t*) self); 3639 } 3640 3641 void pushButtonRepeat(bool repeat) @trusted 3642 { 3643 igPushButtonRepeat(repeat); 3644 } 3645 3646 void popButtonRepeat() @trusted 3647 { 3648 igPopButtonRepeat(); 3649 } 3650 3651 void pushTabStop(bool tab_stop) @trusted 3652 { 3653 igPushTabStop(tab_stop); 3654 } 3655 3656 void popTabStop() @trusted 3657 { 3658 igPopTabStop(); 3659 } 3660 3661 ImVec2_t getContentRegionMax() @trusted 3662 { 3663 return igGetContentRegionMax(); 3664 } 3665 3666 ImVec2_t getWindowContentRegionMin() @trusted 3667 { 3668 return igGetWindowContentRegionMin(); 3669 } 3670 3671 ImVec2_t getWindowContentRegionMax() @trusted 3672 { 3673 return igGetWindowContentRegionMax(); 3674 } 3675 3676 bool beginChildFrame(uint id, const ImVec2_t size) @trusted 3677 { 3678 return igBeginChildFrame(id, size); 3679 } 3680 3681 bool beginChildFrameEx(uint id, const ImVec2_t size, int window_flags) @trusted 3682 { 3683 return igBeginChildFrameEx(id, size, window_flags); 3684 } 3685 3686 void endChildFrame() @trusted 3687 { 3688 igEndChildFrame(); 3689 } 3690 3691 void showStackToolWindow(scope bool* p_open) @trusted 3692 { 3693 igShowStackToolWindow(p_open); 3694 } 3695 3696 extern (C) bool comboObsolete(scope const(char)* label, scope int* current_item, 3697 bool function(void* user_data, int idx, scope const(char)** out_text) old_callback, 3698 void* user_data, int items_count) @trusted 3699 { 3700 return igComboObsolete(label, current_item, old_callback, user_data, items_count); 3701 } 3702 3703 extern (C) bool comboObsoleteEx(scope const(char)* label, scope int* current_item, 3704 bool function(void* user_data, int idx, scope const(char)** out_text) old_callback, 3705 void* user_data, int items_count, int popup_max_height_in_items) @trusted 3706 { 3707 return igComboObsoleteEx(label, current_item, old_callback, user_data, items_count, popup_max_height_in_items); 3708 } 3709 3710 extern (C) bool listBoxObsolete(scope const(char)* label, scope int* current_item, 3711 bool function(void* user_data, int idx, scope const(char)** out_text) old_callback, 3712 void* user_data, int items_count) @trusted 3713 { 3714 return igListBoxObsolete(label, current_item, old_callback, user_data, items_count); 3715 } 3716 3717 extern (C) bool listBoxObsoleteEx(scope const(char)* label, scope int* current_item, 3718 bool function(void* user_data, int idx, scope const(char)** out_text) old_callback, 3719 void* user_data, int items_count, int height_in_items) @trusted 3720 { 3721 return igListBoxObsoleteEx(label, current_item, old_callback, user_data, items_count, height_in_items); 3722 } 3723 3724 void setItemAllowOverlap() @trusted 3725 { 3726 igSetItemAllowOverlap(); 3727 } 3728 3729 void pushAllowKeyboardFocus(bool tab_stop) @trusted 3730 { 3731 igPushAllowKeyboardFocus(tab_stop); 3732 } 3733 3734 void popAllowKeyboardFocus() @trusted 3735 { 3736 igPopAllowKeyboardFocus(); 3737 }