imgui-bindings 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +4 -0
- data/README.md +1 -1
- data/lib/imgui.aarch64.so +0 -0
- data/lib/imgui.dll +0 -0
- data/lib/imgui.dylib +0 -0
- data/lib/imgui.rb +600 -555
- data/lib/imgui.x86_64.so +0 -0
- data/lib/imnodes.aarch64.so +0 -0
- data/lib/imnodes.dll +0 -0
- data/lib/imnodes.dylib +0 -0
- data/lib/imnodes.x86_64.so +0 -0
- metadata +3 -3
data/lib/imgui.rb
CHANGED
@@ -13,6 +13,7 @@ FFI.typedef :pointer, :ImDrawListSharedData
|
|
13
13
|
FFI.typedef :int, :ImFontAtlasFlags
|
14
14
|
FFI.typedef :int, :ImGuiBackendFlags
|
15
15
|
FFI.typedef :int, :ImGuiButtonFlags
|
16
|
+
FFI.typedef :int, :ImGuiChildFlags
|
16
17
|
FFI.typedef :int, :ImGuiCol
|
17
18
|
FFI.typedef :int, :ImGuiColorEditFlags
|
18
19
|
FFI.typedef :int, :ImGuiComboFlags
|
@@ -110,6 +111,26 @@ ImGuiButtonFlags_MouseButtonMiddle = 4 # 1 << 2 # React on center mouse button
|
|
110
111
|
ImGuiButtonFlags_MouseButtonMask_ = 7 # ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle
|
111
112
|
ImGuiButtonFlags_MouseButtonDefault_ = 1 # ImGuiButtonFlags_MouseButtonLeft
|
112
113
|
|
114
|
+
# ImGuiChildFlags_
|
115
|
+
# Flags for ImGui::BeginChild()
|
116
|
+
# (Legacy: bot 0 must always correspond to ImGuiChildFlags_Border to be backward compatible with old API using 'bool border = false'.
|
117
|
+
# About using AutoResizeX/AutoResizeY flags:
|
118
|
+
# - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see "Demo->Child->Auto-resize with Constraints").
|
119
|
+
# - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing.
|
120
|
+
# - This allows BeginChild() to return false when not within boundaries (e.g. when scrolling), which is more optimal. BUT it won't update its auto-size while clipped.
|
121
|
+
# While not perfect, it is a better default behavior as the always-on performance gain is more valuable than the occasional "resizing after becoming visible again" glitch.
|
122
|
+
# - You may also use ImGuiChildFlags_AlwaysAutoResize to force an update even when child window is not in view.
|
123
|
+
# HOWEVER PLEASE UNDERSTAND THAT DOING SO WILL PREVENT BeginChild() FROM EVER RETURNING FALSE, disabling benefits of coarse clipping.
|
124
|
+
ImGuiChildFlags_None = 0 # 0
|
125
|
+
ImGuiChildFlags_Border = 1 # 1 << 0 # Show an outer border and enable WindowPadding. (Important: this is always == 1 == true for legacy reason)
|
126
|
+
ImGuiChildFlags_AlwaysUseWindowPadding = 2 # 1 << 1 # Pad with style.WindowPadding even if no border are drawn (no padding by default for non-bordered child windows because it makes more sense)
|
127
|
+
ImGuiChildFlags_ResizeX = 4 # 1 << 2 # Allow resize from right border (layout direction). Enable .ini saving (unless ImGuiWindowFlags_NoSavedSettings passed to window flags)
|
128
|
+
ImGuiChildFlags_ResizeY = 8 # 1 << 3 # Allow resize from bottom border (layout direction). "
|
129
|
+
ImGuiChildFlags_AutoResizeX = 16 # 1 << 4 # Enable auto-resizing width. Read "IMPORTANT: Size measurement" details above.
|
130
|
+
ImGuiChildFlags_AutoResizeY = 32 # 1 << 5 # Enable auto-resizing height. Read "IMPORTANT: Size measurement" details above.
|
131
|
+
ImGuiChildFlags_AlwaysAutoResize = 64 # 1 << 6 # Combined with AutoResizeX/AutoResizeY. Always measure size even when child is hidden, always return true, always disable clipping optimization! NOT RECOMMENDED.
|
132
|
+
ImGuiChildFlags_FrameStyle = 128 # 1 << 7 # Style the child window like a framed item: use FrameBg, FrameRounding, FrameBorderSize, FramePadding instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding.
|
133
|
+
|
113
134
|
# ImGuiCol_
|
114
135
|
# Enumeration for PushStyleColor() / PopStyleColor()
|
115
136
|
ImGuiCol_Text = 0 # 0
|
@@ -201,15 +222,16 @@ ImGuiColorEditFlags_InputMask_ = 402653184 # ImGuiColorEditFlags_InputRGB |
|
|
201
222
|
|
202
223
|
# ImGuiComboFlags_
|
203
224
|
# Flags for ImGui::BeginCombo()
|
204
|
-
ImGuiComboFlags_None = 0
|
205
|
-
ImGuiComboFlags_PopupAlignLeft = 1
|
206
|
-
ImGuiComboFlags_HeightSmall = 2
|
207
|
-
ImGuiComboFlags_HeightRegular = 4
|
208
|
-
ImGuiComboFlags_HeightLarge = 8
|
209
|
-
ImGuiComboFlags_HeightLargest = 16
|
210
|
-
ImGuiComboFlags_NoArrowButton = 32
|
211
|
-
ImGuiComboFlags_NoPreview = 64
|
212
|
-
|
225
|
+
ImGuiComboFlags_None = 0 # 0
|
226
|
+
ImGuiComboFlags_PopupAlignLeft = 1 # 1 << 0 # Align the popup toward the left by default
|
227
|
+
ImGuiComboFlags_HeightSmall = 2 # 1 << 1 # Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo()
|
228
|
+
ImGuiComboFlags_HeightRegular = 4 # 1 << 2 # Max ~8 items visible (default)
|
229
|
+
ImGuiComboFlags_HeightLarge = 8 # 1 << 3 # Max ~20 items visible
|
230
|
+
ImGuiComboFlags_HeightLargest = 16 # 1 << 4 # As many fitting items as possible
|
231
|
+
ImGuiComboFlags_NoArrowButton = 32 # 1 << 5 # Display on the preview box without the square arrow button
|
232
|
+
ImGuiComboFlags_NoPreview = 64 # 1 << 6 # Display only a square arrow button
|
233
|
+
ImGuiComboFlags_WidthFitPreview = 128 # 1 << 7 # Width dynamically calculated from preview contents
|
234
|
+
ImGuiComboFlags_HeightMask_ = 30 # ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest
|
213
235
|
|
214
236
|
# ImGuiCond_
|
215
237
|
# Enumeration for ImGui::SetWindow***(), SetNextWindow***(), SetNextItem***() functions
|
@@ -409,75 +431,89 @@ ImGuiKey_F9 = 580 # 580
|
|
409
431
|
ImGuiKey_F10 = 581 # 581
|
410
432
|
ImGuiKey_F11 = 582 # 582
|
411
433
|
ImGuiKey_F12 = 583 # 583
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
434
|
+
ImGuiKey_F13 = 584 # 584
|
435
|
+
ImGuiKey_F14 = 585 # 585
|
436
|
+
ImGuiKey_F15 = 586 # 586
|
437
|
+
ImGuiKey_F16 = 587 # 587
|
438
|
+
ImGuiKey_F17 = 588 # 588
|
439
|
+
ImGuiKey_F18 = 589 # 589
|
440
|
+
ImGuiKey_F19 = 590 # 590
|
441
|
+
ImGuiKey_F20 = 591 # 591
|
442
|
+
ImGuiKey_F21 = 592 # 592
|
443
|
+
ImGuiKey_F22 = 593 # 593
|
444
|
+
ImGuiKey_F23 = 594 # 594
|
445
|
+
ImGuiKey_F24 = 595 # 595
|
446
|
+
ImGuiKey_Apostrophe = 596 # 596 # '
|
447
|
+
ImGuiKey_Comma = 597 # 597 # ,
|
448
|
+
ImGuiKey_Minus = 598 # 598 # -
|
449
|
+
ImGuiKey_Period = 599 # 599 # .
|
450
|
+
ImGuiKey_Slash = 600 # 600 # /
|
451
|
+
ImGuiKey_Semicolon = 601 # 601 # ;
|
452
|
+
ImGuiKey_Equal = 602 # 602 # =
|
453
|
+
ImGuiKey_LeftBracket = 603 # 603 # [
|
454
|
+
ImGuiKey_Backslash = 604 # 604 # \ (this text inhibit multiline comment caused by backslash)
|
455
|
+
ImGuiKey_RightBracket = 605 # 605 # ]
|
456
|
+
ImGuiKey_GraveAccent = 606 # 606 # `
|
457
|
+
ImGuiKey_CapsLock = 607 # 607
|
458
|
+
ImGuiKey_ScrollLock = 608 # 608
|
459
|
+
ImGuiKey_NumLock = 609 # 609
|
460
|
+
ImGuiKey_PrintScreen = 610 # 610
|
461
|
+
ImGuiKey_Pause = 611 # 611
|
462
|
+
ImGuiKey_Keypad0 = 612 # 612
|
463
|
+
ImGuiKey_Keypad1 = 613 # 613
|
464
|
+
ImGuiKey_Keypad2 = 614 # 614
|
465
|
+
ImGuiKey_Keypad3 = 615 # 615
|
466
|
+
ImGuiKey_Keypad4 = 616 # 616
|
467
|
+
ImGuiKey_Keypad5 = 617 # 617
|
468
|
+
ImGuiKey_Keypad6 = 618 # 618
|
469
|
+
ImGuiKey_Keypad7 = 619 # 619
|
470
|
+
ImGuiKey_Keypad8 = 620 # 620
|
471
|
+
ImGuiKey_Keypad9 = 621 # 621
|
472
|
+
ImGuiKey_KeypadDecimal = 622 # 622
|
473
|
+
ImGuiKey_KeypadDivide = 623 # 623
|
474
|
+
ImGuiKey_KeypadMultiply = 624 # 624
|
475
|
+
ImGuiKey_KeypadSubtract = 625 # 625
|
476
|
+
ImGuiKey_KeypadAdd = 626 # 626
|
477
|
+
ImGuiKey_KeypadEnter = 627 # 627
|
478
|
+
ImGuiKey_KeypadEqual = 628 # 628
|
479
|
+
ImGuiKey_AppBack = 629 # 629 # Available on some keyboard/mouses. Often referred as "Browser Back"
|
480
|
+
ImGuiKey_AppForward = 630 # 630
|
481
|
+
ImGuiKey_GamepadStart = 631 # 631 # Menu (Xbox) + (Switch) Start/Options (PS)
|
482
|
+
ImGuiKey_GamepadBack = 632 # 632 # View (Xbox) - (Switch) Share (PS)
|
483
|
+
ImGuiKey_GamepadFaceLeft = 633 # 633 # X (Xbox) Y (Switch) Square (PS) // Tap: Toggle Menu. Hold: Windowing mode (Focus/Move/Resize windows)
|
484
|
+
ImGuiKey_GamepadFaceRight = 634 # 634 # B (Xbox) A (Switch) Circle (PS) // Cancel / Close / Exit
|
485
|
+
ImGuiKey_GamepadFaceUp = 635 # 635 # Y (Xbox) X (Switch) Triangle (PS) // Text Input / On-screen Keyboard
|
486
|
+
ImGuiKey_GamepadFaceDown = 636 # 636 # A (Xbox) B (Switch) Cross (PS) // Activate / Open / Toggle / Tweak
|
487
|
+
ImGuiKey_GamepadDpadLeft = 637 # 637 # D-pad Left // Move / Tweak / Resize Window (in Windowing mode)
|
488
|
+
ImGuiKey_GamepadDpadRight = 638 # 638 # D-pad Right // Move / Tweak / Resize Window (in Windowing mode)
|
489
|
+
ImGuiKey_GamepadDpadUp = 639 # 639 # D-pad Up // Move / Tweak / Resize Window (in Windowing mode)
|
490
|
+
ImGuiKey_GamepadDpadDown = 640 # 640 # D-pad Down // Move / Tweak / Resize Window (in Windowing mode)
|
491
|
+
ImGuiKey_GamepadL1 = 641 # 641 # L Bumper (Xbox) L (Switch) L1 (PS) // Tweak Slower / Focus Previous (in Windowing mode)
|
492
|
+
ImGuiKey_GamepadR1 = 642 # 642 # R Bumper (Xbox) R (Switch) R1 (PS) // Tweak Faster / Focus Next (in Windowing mode)
|
493
|
+
ImGuiKey_GamepadL2 = 643 # 643 # L Trig. (Xbox) ZL (Switch) L2 (PS) [Analog]
|
494
|
+
ImGuiKey_GamepadR2 = 644 # 644 # R Trig. (Xbox) ZR (Switch) R2 (PS) [Analog]
|
495
|
+
ImGuiKey_GamepadL3 = 645 # 645 # L Stick (Xbox) L3 (Switch) L3 (PS)
|
496
|
+
ImGuiKey_GamepadR3 = 646 # 646 # R Stick (Xbox) R3 (Switch) R3 (PS)
|
497
|
+
ImGuiKey_GamepadLStickLeft = 647 # 647 # [Analog] // Move Window (in Windowing mode)
|
498
|
+
ImGuiKey_GamepadLStickRight = 648 # 648 # [Analog] // Move Window (in Windowing mode)
|
499
|
+
ImGuiKey_GamepadLStickUp = 649 # 649 # [Analog] // Move Window (in Windowing mode)
|
500
|
+
ImGuiKey_GamepadLStickDown = 650 # 650 # [Analog] // Move Window (in Windowing mode)
|
501
|
+
ImGuiKey_GamepadRStickLeft = 651 # 651 # [Analog]
|
502
|
+
ImGuiKey_GamepadRStickRight = 652 # 652 # [Analog]
|
503
|
+
ImGuiKey_GamepadRStickUp = 653 # 653 # [Analog]
|
504
|
+
ImGuiKey_GamepadRStickDown = 654 # 654 # [Analog]
|
505
|
+
ImGuiKey_MouseLeft = 655 # 655
|
506
|
+
ImGuiKey_MouseRight = 656 # 656
|
507
|
+
ImGuiKey_MouseMiddle = 657 # 657
|
508
|
+
ImGuiKey_MouseX1 = 658 # 658
|
509
|
+
ImGuiKey_MouseX2 = 659 # 659
|
510
|
+
ImGuiKey_MouseWheelX = 660 # 660
|
511
|
+
ImGuiKey_MouseWheelY = 661 # 661
|
512
|
+
ImGuiKey_ReservedForModCtrl = 662 # 662
|
513
|
+
ImGuiKey_ReservedForModShift = 663 # 663
|
514
|
+
ImGuiKey_ReservedForModAlt = 664 # 664
|
515
|
+
ImGuiKey_ReservedForModSuper = 665 # 665
|
516
|
+
ImGuiKey_COUNT = 666 # 666
|
481
517
|
ImGuiMod_None = 0 # 0
|
482
518
|
ImGuiMod_Ctrl = 4096 # 1 << 12 # Ctrl
|
483
519
|
ImGuiMod_Shift = 8192 # 1 << 13 # Shift
|
@@ -486,10 +522,10 @@ ImGuiMod_Super = 32768 # 1 << 15 # Cmd/Super/Windows
|
|
486
522
|
ImGuiMod_Shortcut = 2048 # 1 << 11 # Alias for Ctrl (non-macOS) _or_ Super (macOS).
|
487
523
|
ImGuiMod_Mask_ = 63488 # 0xF800 # 5-bits
|
488
524
|
ImGuiKey_NamedKey_BEGIN = 512 # 512
|
489
|
-
ImGuiKey_NamedKey_END =
|
490
|
-
ImGuiKey_NamedKey_COUNT =
|
491
|
-
ImGuiKey_KeysData_SIZE =
|
492
|
-
ImGuiKey_KeysData_OFFSET =
|
525
|
+
ImGuiKey_NamedKey_END = 666 # ImGuiKey_COUNT
|
526
|
+
ImGuiKey_NamedKey_COUNT = 154 # ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN
|
527
|
+
ImGuiKey_KeysData_SIZE = 154 # ImGuiKey_NamedKey_COUNT # Size of KeysData[]: hold legacy 0..512 keycodes + named keys
|
528
|
+
ImGuiKey_KeysData_OFFSET = 512 # ImGuiKey_NamedKey_BEGIN # Accesses to io.KeysData[] must use (key - ImGuiKey_KeysData_OFFSET) index.
|
493
529
|
|
494
530
|
# ImGuiMouseButton_
|
495
531
|
# Identify a mouse button.
|
@@ -524,28 +560,6 @@ ImGuiMouseSource_TouchScreen = 1 # 1 # Input is coming from a touch screen (no h
|
|
524
560
|
ImGuiMouseSource_Pen = 2 # 2 # Input is coming from a pressure/magnetic pen (often used in conjunction with high-sampling rates).
|
525
561
|
ImGuiMouseSource_COUNT = 3 # 3
|
526
562
|
|
527
|
-
# ImGuiNavInput
|
528
|
-
# OBSOLETED in 1.88 (from July 2022): ImGuiNavInput and io.NavInputs[].
|
529
|
-
# Official backends between 1.60 and 1.86: will keep working and feed gamepad inputs as long as IMGUI_DISABLE_OBSOLETE_KEYIO is not set.
|
530
|
-
# Custom backends: feed gamepad inputs via io.AddKeyEvent() and ImGuiKey_GamepadXXX enums.
|
531
|
-
ImGuiNavInput_Activate = 0 # 0
|
532
|
-
ImGuiNavInput_Cancel = 1 # 1
|
533
|
-
ImGuiNavInput_Input = 2 # 2
|
534
|
-
ImGuiNavInput_Menu = 3 # 3
|
535
|
-
ImGuiNavInput_DpadLeft = 4 # 4
|
536
|
-
ImGuiNavInput_DpadRight = 5 # 5
|
537
|
-
ImGuiNavInput_DpadUp = 6 # 6
|
538
|
-
ImGuiNavInput_DpadDown = 7 # 7
|
539
|
-
ImGuiNavInput_LStickLeft = 8 # 8
|
540
|
-
ImGuiNavInput_LStickRight = 9 # 9
|
541
|
-
ImGuiNavInput_LStickUp = 10 # 10
|
542
|
-
ImGuiNavInput_LStickDown = 11 # 11
|
543
|
-
ImGuiNavInput_FocusPrev = 12 # 12
|
544
|
-
ImGuiNavInput_FocusNext = 13 # 13
|
545
|
-
ImGuiNavInput_TweakSlow = 14 # 14
|
546
|
-
ImGuiNavInput_TweakFast = 15 # 15
|
547
|
-
ImGuiNavInput_COUNT = 16 # 16
|
548
|
-
|
549
563
|
# ImGuiPopupFlags_
|
550
564
|
# Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions.
|
551
565
|
# - To be backward compatible with older API which took an 'int mouse_button = 1' argument, we need to treat
|
@@ -571,7 +585,7 @@ ImGuiPopupFlags_AnyPopup = 384 # ImGuiPopupFlags_AnyPopupId | ImGu
|
|
571
585
|
# Flags for ImGui::Selectable()
|
572
586
|
ImGuiSelectableFlags_None = 0 # 0
|
573
587
|
ImGuiSelectableFlags_DontClosePopups = 1 # 1 << 0 # Clicking this doesn't close parent popup window
|
574
|
-
ImGuiSelectableFlags_SpanAllColumns = 2 # 1 << 1 #
|
588
|
+
ImGuiSelectableFlags_SpanAllColumns = 2 # 1 << 1 # Frame will span all columns of its container table (text will still fit in current column)
|
575
589
|
ImGuiSelectableFlags_AllowDoubleClick = 4 # 1 << 2 # Generate press events on double clicks too
|
576
590
|
ImGuiSelectableFlags_Disabled = 8 # 1 << 3 # Cannot be selected, display grayed out text
|
577
591
|
ImGuiSelectableFlags_AllowOverlap = 16 # 1 << 4 # (WIP) Hit testing to allow subsequent widgets to overlap this one
|
@@ -624,12 +638,13 @@ ImGuiStyleVar_ScrollbarRounding = 19 # 19 # float ScrollbarRounding
|
|
624
638
|
ImGuiStyleVar_GrabMinSize = 20 # 20 # float GrabMinSize
|
625
639
|
ImGuiStyleVar_GrabRounding = 21 # 21 # float GrabRounding
|
626
640
|
ImGuiStyleVar_TabRounding = 22 # 22 # float TabRounding
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
641
|
+
ImGuiStyleVar_TabBarBorderSize = 23 # 23 # float TabBarBorderSize
|
642
|
+
ImGuiStyleVar_ButtonTextAlign = 24 # 24 # ImVec2 ButtonTextAlign
|
643
|
+
ImGuiStyleVar_SelectableTextAlign = 25 # 25 # ImVec2 SelectableTextAlign
|
644
|
+
ImGuiStyleVar_SeparatorTextBorderSize = 26 # 26 # float SeparatorTextBorderSize
|
645
|
+
ImGuiStyleVar_SeparatorTextAlign = 27 # 27 # ImVec2 SeparatorTextAlign
|
646
|
+
ImGuiStyleVar_SeparatorTextPadding = 28 # 28 # ImVec2 SeparatorTextPadding
|
647
|
+
ImGuiStyleVar_COUNT = 29 # 29
|
633
648
|
|
634
649
|
# ImGuiTabBarFlags_
|
635
650
|
# Flags for ImGui::BeginTabBar()
|
@@ -687,12 +702,13 @@ ImGuiTableColumnFlags_NoClip = 256 # 1 << 8 # Disable clipping f
|
|
687
702
|
ImGuiTableColumnFlags_NoSort = 512 # 1 << 9 # Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table).
|
688
703
|
ImGuiTableColumnFlags_NoSortAscending = 1024 # 1 << 10 # Disable ability to sort in the ascending direction.
|
689
704
|
ImGuiTableColumnFlags_NoSortDescending = 2048 # 1 << 11 # Disable ability to sort in the descending direction.
|
690
|
-
ImGuiTableColumnFlags_NoHeaderLabel = 4096 # 1 << 12 # TableHeadersRow() will not submit label for this column. Convenient for some small columns. Name will still appear in context menu.
|
705
|
+
ImGuiTableColumnFlags_NoHeaderLabel = 4096 # 1 << 12 # TableHeadersRow() will not submit horizontal label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers.
|
691
706
|
ImGuiTableColumnFlags_NoHeaderWidth = 8192 # 1 << 13 # Disable header text width contribution to automatic column width.
|
692
707
|
ImGuiTableColumnFlags_PreferSortAscending = 16384 # 1 << 14 # Make the initial sort direction Ascending when first sorting on this column (default).
|
693
708
|
ImGuiTableColumnFlags_PreferSortDescending = 32768 # 1 << 15 # Make the initial sort direction Descending when first sorting on this column.
|
694
709
|
ImGuiTableColumnFlags_IndentEnable = 65536 # 1 << 16 # Use current Indent value when entering cell (default for column 0).
|
695
710
|
ImGuiTableColumnFlags_IndentDisable = 131072 # 1 << 17 # Ignore current Indent value when entering cell (default for columns > 0). Indentation changes _within_ the cell will still be honored.
|
711
|
+
ImGuiTableColumnFlags_AngledHeader = 262144 # 1 << 18 # TableHeadersRow() will submit an angled header row for this column. Note this will add an extra row.
|
696
712
|
ImGuiTableColumnFlags_IsEnabled = 16777216 # 1 << 24 # Status: is enabled == not hidden by user/api (referred to as "Hide" in _DefaultHide and _NoHide) flags.
|
697
713
|
ImGuiTableColumnFlags_IsVisible = 33554432 # 1 << 25 # Status: is visible == is enabled AND not clipped by scrolling.
|
698
714
|
ImGuiTableColumnFlags_IsSorted = 67108864 # 1 << 26 # Status: is currently part of the sort specs
|
@@ -725,42 +741,43 @@ ImGuiTableColumnFlags_NoDirectResize_ = 1073741824 # 1 << 30 # [Internal] Disabl
|
|
725
741
|
# - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable().
|
726
742
|
# If you specify a value for 'inner_width' then effectively the scrolling space is known and Stretch or mixed Fixed/Stretch columns become meaningful again.
|
727
743
|
# - Read on documentation at the top of imgui_tables.cpp for details.
|
728
|
-
ImGuiTableFlags_None = 0
|
729
|
-
ImGuiTableFlags_Resizable = 1
|
730
|
-
ImGuiTableFlags_Reorderable = 2
|
731
|
-
ImGuiTableFlags_Hideable = 4
|
732
|
-
ImGuiTableFlags_Sortable = 8
|
733
|
-
ImGuiTableFlags_NoSavedSettings = 16
|
734
|
-
ImGuiTableFlags_ContextMenuInBody = 32
|
735
|
-
ImGuiTableFlags_RowBg = 64
|
736
|
-
ImGuiTableFlags_BordersInnerH = 128
|
737
|
-
ImGuiTableFlags_BordersOuterH = 256
|
738
|
-
ImGuiTableFlags_BordersInnerV = 512
|
739
|
-
ImGuiTableFlags_BordersOuterV = 1024
|
740
|
-
ImGuiTableFlags_BordersH = 384
|
741
|
-
ImGuiTableFlags_BordersV = 1536
|
742
|
-
ImGuiTableFlags_BordersInner = 640
|
743
|
-
ImGuiTableFlags_BordersOuter = 1280
|
744
|
-
ImGuiTableFlags_Borders = 1920
|
745
|
-
ImGuiTableFlags_NoBordersInBody = 2048
|
746
|
-
ImGuiTableFlags_NoBordersInBodyUntilResize = 4096
|
747
|
-
ImGuiTableFlags_SizingFixedFit = 8192
|
748
|
-
ImGuiTableFlags_SizingFixedSame = 16384
|
749
|
-
ImGuiTableFlags_SizingStretchProp = 24576
|
750
|
-
ImGuiTableFlags_SizingStretchSame = 32768
|
751
|
-
ImGuiTableFlags_NoHostExtendX = 65536
|
752
|
-
ImGuiTableFlags_NoHostExtendY = 131072
|
753
|
-
ImGuiTableFlags_NoKeepColumnsVisible = 262144
|
754
|
-
ImGuiTableFlags_PreciseWidths = 524288
|
755
|
-
ImGuiTableFlags_NoClip = 1048576
|
756
|
-
ImGuiTableFlags_PadOuterX = 2097152
|
757
|
-
ImGuiTableFlags_NoPadOuterX = 4194304
|
758
|
-
ImGuiTableFlags_NoPadInnerX = 8388608
|
759
|
-
ImGuiTableFlags_ScrollX = 16777216
|
760
|
-
ImGuiTableFlags_ScrollY = 33554432
|
761
|
-
ImGuiTableFlags_SortMulti = 67108864
|
762
|
-
ImGuiTableFlags_SortTristate = 134217728
|
763
|
-
|
744
|
+
ImGuiTableFlags_None = 0 # 0
|
745
|
+
ImGuiTableFlags_Resizable = 1 # 1 << 0 # Enable resizing columns.
|
746
|
+
ImGuiTableFlags_Reorderable = 2 # 1 << 1 # Enable reordering columns in header row (need calling TableSetupColumn() + TableHeadersRow() to display headers)
|
747
|
+
ImGuiTableFlags_Hideable = 4 # 1 << 2 # Enable hiding/disabling columns in context menu.
|
748
|
+
ImGuiTableFlags_Sortable = 8 # 1 << 3 # Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate.
|
749
|
+
ImGuiTableFlags_NoSavedSettings = 16 # 1 << 4 # Disable persisting columns order, width and sort settings in the .ini file.
|
750
|
+
ImGuiTableFlags_ContextMenuInBody = 32 # 1 << 5 # Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow().
|
751
|
+
ImGuiTableFlags_RowBg = 64 # 1 << 6 # Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)
|
752
|
+
ImGuiTableFlags_BordersInnerH = 128 # 1 << 7 # Draw horizontal borders between rows.
|
753
|
+
ImGuiTableFlags_BordersOuterH = 256 # 1 << 8 # Draw horizontal borders at the top and bottom.
|
754
|
+
ImGuiTableFlags_BordersInnerV = 512 # 1 << 9 # Draw vertical borders between columns.
|
755
|
+
ImGuiTableFlags_BordersOuterV = 1024 # 1 << 10 # Draw vertical borders on the left and right sides.
|
756
|
+
ImGuiTableFlags_BordersH = 384 # ImGuiTableFlags_BordersInnerH | ImGuiTableFlags_BordersOuterH # Draw horizontal borders.
|
757
|
+
ImGuiTableFlags_BordersV = 1536 # ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersOuterV # Draw vertical borders.
|
758
|
+
ImGuiTableFlags_BordersInner = 640 # ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersInnerH # Draw inner borders.
|
759
|
+
ImGuiTableFlags_BordersOuter = 1280 # ImGuiTableFlags_BordersOuterV | ImGuiTableFlags_BordersOuterH # Draw outer borders.
|
760
|
+
ImGuiTableFlags_Borders = 1920 # ImGuiTableFlags_BordersInner | ImGuiTableFlags_BordersOuter # Draw all borders.
|
761
|
+
ImGuiTableFlags_NoBordersInBody = 2048 # 1 << 11 # [ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style
|
762
|
+
ImGuiTableFlags_NoBordersInBodyUntilResize = 4096 # 1 << 12 # [ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appear in Headers). -> May move to style
|
763
|
+
ImGuiTableFlags_SizingFixedFit = 8192 # 1 << 13 # Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width.
|
764
|
+
ImGuiTableFlags_SizingFixedSame = 16384 # 2 << 13 # Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible.
|
765
|
+
ImGuiTableFlags_SizingStretchProp = 24576 # 3 << 13 # Columns default to _WidthStretch with default weights proportional to each columns contents widths.
|
766
|
+
ImGuiTableFlags_SizingStretchSame = 32768 # 4 << 13 # Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn().
|
767
|
+
ImGuiTableFlags_NoHostExtendX = 65536 # 1 << 16 # Make outer width auto-fit to columns, overriding outer_size.x value. Only available when ScrollX/ScrollY are disabled and Stretch columns are not used.
|
768
|
+
ImGuiTableFlags_NoHostExtendY = 131072 # 1 << 17 # Make outer height stop exactly at outer_size.y (prevent auto-extending table past the limit). Only available when ScrollX/ScrollY are disabled. Data below the limit will be clipped and not visible.
|
769
|
+
ImGuiTableFlags_NoKeepColumnsVisible = 262144 # 1 << 18 # Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable.
|
770
|
+
ImGuiTableFlags_PreciseWidths = 524288 # 1 << 19 # Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth.
|
771
|
+
ImGuiTableFlags_NoClip = 1048576 # 1 << 20 # Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze().
|
772
|
+
ImGuiTableFlags_PadOuterX = 2097152 # 1 << 21 # Default if BordersOuterV is on. Enable outermost padding. Generally desirable if you have headers.
|
773
|
+
ImGuiTableFlags_NoPadOuterX = 4194304 # 1 << 22 # Default if BordersOuterV is off. Disable outermost padding.
|
774
|
+
ImGuiTableFlags_NoPadInnerX = 8388608 # 1 << 23 # Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off).
|
775
|
+
ImGuiTableFlags_ScrollX = 16777216 # 1 << 24 # Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. Changes default sizing policy. Because this creates a child window, ScrollY is currently generally recommended when using ScrollX.
|
776
|
+
ImGuiTableFlags_ScrollY = 33554432 # 1 << 25 # Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size.
|
777
|
+
ImGuiTableFlags_SortMulti = 67108864 # 1 << 26 # Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1).
|
778
|
+
ImGuiTableFlags_SortTristate = 134217728 # 1 << 27 # Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0).
|
779
|
+
ImGuiTableFlags_HighlightHoveredColumn = 268435456 # 1 << 28 # Highlight column headers when hovered (may evolve into a fuller highlight)
|
780
|
+
ImGuiTableFlags_SizingMask_ = 57344 # ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_SizingFixedSame | ImGuiTableFlags_SizingStretchProp | ImGuiTableFlags_SizingStretchSame
|
764
781
|
|
765
782
|
# ImGuiTableRowFlags_
|
766
783
|
# Flags for ImGui::TableNextRow()
|
@@ -769,22 +786,23 @@ ImGuiTableRowFlags_Headers = 1 # 1 << 0 # Identify header row (set default backg
|
|
769
786
|
|
770
787
|
# ImGuiTreeNodeFlags_
|
771
788
|
# Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*()
|
772
|
-
ImGuiTreeNodeFlags_None = 0
|
773
|
-
ImGuiTreeNodeFlags_Selected = 1
|
774
|
-
ImGuiTreeNodeFlags_Framed = 2
|
775
|
-
ImGuiTreeNodeFlags_AllowOverlap = 4
|
776
|
-
ImGuiTreeNodeFlags_NoTreePushOnOpen = 8
|
777
|
-
ImGuiTreeNodeFlags_NoAutoOpenOnLog = 16
|
778
|
-
ImGuiTreeNodeFlags_DefaultOpen = 32
|
779
|
-
ImGuiTreeNodeFlags_OpenOnDoubleClick = 64
|
780
|
-
ImGuiTreeNodeFlags_OpenOnArrow = 128
|
781
|
-
ImGuiTreeNodeFlags_Leaf = 256
|
782
|
-
ImGuiTreeNodeFlags_Bullet = 512
|
783
|
-
ImGuiTreeNodeFlags_FramePadding = 1024
|
784
|
-
ImGuiTreeNodeFlags_SpanAvailWidth = 2048
|
785
|
-
ImGuiTreeNodeFlags_SpanFullWidth = 4096
|
786
|
-
|
787
|
-
|
789
|
+
ImGuiTreeNodeFlags_None = 0 # 0
|
790
|
+
ImGuiTreeNodeFlags_Selected = 1 # 1 << 0 # Draw as selected
|
791
|
+
ImGuiTreeNodeFlags_Framed = 2 # 1 << 1 # Draw frame with background (e.g. for CollapsingHeader)
|
792
|
+
ImGuiTreeNodeFlags_AllowOverlap = 4 # 1 << 2 # Hit testing to allow subsequent widgets to overlap this one
|
793
|
+
ImGuiTreeNodeFlags_NoTreePushOnOpen = 8 # 1 << 3 # Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack
|
794
|
+
ImGuiTreeNodeFlags_NoAutoOpenOnLog = 16 # 1 << 4 # Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)
|
795
|
+
ImGuiTreeNodeFlags_DefaultOpen = 32 # 1 << 5 # Default node to be open
|
796
|
+
ImGuiTreeNodeFlags_OpenOnDoubleClick = 64 # 1 << 6 # Need double-click to open node
|
797
|
+
ImGuiTreeNodeFlags_OpenOnArrow = 128 # 1 << 7 # Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open.
|
798
|
+
ImGuiTreeNodeFlags_Leaf = 256 # 1 << 8 # No collapsing, no arrow (use as a convenience for leaf nodes).
|
799
|
+
ImGuiTreeNodeFlags_Bullet = 512 # 1 << 9 # Display a bullet instead of arrow. IMPORTANT: node can still be marked open/close if you don't set the _Leaf flag!
|
800
|
+
ImGuiTreeNodeFlags_FramePadding = 1024 # 1 << 10 # Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding().
|
801
|
+
ImGuiTreeNodeFlags_SpanAvailWidth = 2048 # 1 << 11 # Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line. In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default.
|
802
|
+
ImGuiTreeNodeFlags_SpanFullWidth = 4096 # 1 << 12 # Extend hit box to the left-most and right-most edges (bypass the indented area).
|
803
|
+
ImGuiTreeNodeFlags_SpanAllColumns = 8192 # 1 << 13 # Frame will span all columns of its container table (text will still fit in current column)
|
804
|
+
ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 16384 # 1 << 14 # (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
|
805
|
+
ImGuiTreeNodeFlags_CollapsingHeader = 26 # ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog
|
788
806
|
|
789
807
|
# ImGuiViewportFlags_
|
790
808
|
# Flags stored in ImGuiViewport::Flags, giving indications to the platform backends.
|
@@ -813,13 +831,12 @@ ImGuiWindowFlags_NoFocusOnAppearing = 4096 # 1 << 12 # Disable taking fo
|
|
813
831
|
ImGuiWindowFlags_NoBringToFrontOnFocus = 8192 # 1 << 13 # Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)
|
814
832
|
ImGuiWindowFlags_AlwaysVerticalScrollbar = 16384 # 1 << 14 # Always show vertical scrollbar (even if ContentSize.y < Size.y)
|
815
833
|
ImGuiWindowFlags_AlwaysHorizontalScrollbar = 32768 # 1<< 15 # Always show horizontal scrollbar (even if ContentSize.x < Size.x)
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
ImGuiWindowFlags_NoNav = 786432 # ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
|
834
|
+
ImGuiWindowFlags_NoNavInputs = 65536 # 1 << 16 # No gamepad/keyboard navigation within the window
|
835
|
+
ImGuiWindowFlags_NoNavFocus = 131072 # 1 << 17 # No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)
|
836
|
+
ImGuiWindowFlags_UnsavedDocument = 262144 # 1 << 18 # Display a dot next to the title. When used in a tab/docking context, tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar.
|
837
|
+
ImGuiWindowFlags_NoNav = 196608 # ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
|
821
838
|
ImGuiWindowFlags_NoDecoration = 43 # ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse
|
822
|
-
ImGuiWindowFlags_NoInputs =
|
839
|
+
ImGuiWindowFlags_NoInputs = 197120 # ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
|
823
840
|
ImGuiWindowFlags_NavFlattened = 8388608 # 1 << 23 # [BETA] On child window: allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows.
|
824
841
|
ImGuiWindowFlags_ChildWindow = 16777216 # 1 << 24 # Don't use! For internal use by BeginChild()
|
825
842
|
ImGuiWindowFlags_Tooltip = 33554432 # 1 << 25 # Don't use! For internal use by BeginTooltip()
|
@@ -865,9 +882,9 @@ end
|
|
865
882
|
# This is used by the Columns/Tables API, so items of each column can be batched together in a same draw call.
|
866
883
|
class ImDrawListSplitter < FFI::Struct
|
867
884
|
layout(
|
868
|
-
:_Current, :int,
|
869
|
-
:_Count, :int,
|
870
|
-
:_Channels, ImVector.by_value
|
885
|
+
:_Current, :int,
|
886
|
+
:_Count, :int,
|
887
|
+
:_Channels, ImVector.by_value
|
871
888
|
)
|
872
889
|
|
873
890
|
def Clear()
|
@@ -907,13 +924,13 @@ end
|
|
907
924
|
# - The ClipRect/TextureId/VtxOffset fields must be contiguous as we memcmp() them together (this is asserted for).
|
908
925
|
class ImDrawCmd < FFI::Struct
|
909
926
|
layout(
|
910
|
-
:ClipRect, ImVec4.by_value,
|
911
|
-
:TextureId, :pointer,
|
912
|
-
:VtxOffset, :uint,
|
913
|
-
:IdxOffset, :uint,
|
914
|
-
:ElemCount, :uint,
|
915
|
-
:UserCallback, :pointer,
|
916
|
-
:UserCallbackData, :pointer
|
927
|
+
:ClipRect, ImVec4.by_value,
|
928
|
+
:TextureId, :pointer,
|
929
|
+
:VtxOffset, :uint,
|
930
|
+
:IdxOffset, :uint,
|
931
|
+
:ElemCount, :uint,
|
932
|
+
:UserCallback, :pointer,
|
933
|
+
:UserCallbackData, :pointer
|
917
934
|
)
|
918
935
|
|
919
936
|
def GetTexID()
|
@@ -950,21 +967,21 @@ end
|
|
950
967
|
# Important: Primitives are always added to the list and not culled (culling is done at higher-level by ImGui:: functions), if you use this API a lot consider coarse culling your drawn objects.
|
951
968
|
class ImDrawList < FFI::Struct
|
952
969
|
layout(
|
953
|
-
:CmdBuffer, ImVector.by_value,
|
954
|
-
:IdxBuffer, ImVector.by_value,
|
955
|
-
:VtxBuffer, ImVector.by_value,
|
956
|
-
:Flags, :int,
|
957
|
-
:_VtxCurrentIdx, :uint,
|
958
|
-
:_Data, :pointer,
|
959
|
-
:_OwnerName, :pointer,
|
960
|
-
:_VtxWritePtr, ImDrawVert.ptr,
|
961
|
-
:_IdxWritePtr, :pointer,
|
962
|
-
:_ClipRectStack, ImVector.by_value,
|
963
|
-
:_TextureIdStack, ImVector.by_value,
|
964
|
-
:_Path, ImVector.by_value,
|
965
|
-
:_CmdHeader, ImDrawCmdHeader.by_value,
|
966
|
-
:_Splitter, ImDrawListSplitter.by_value,
|
967
|
-
:_FringeScale, :float
|
970
|
+
:CmdBuffer, ImVector.by_value,
|
971
|
+
:IdxBuffer, ImVector.by_value,
|
972
|
+
:VtxBuffer, ImVector.by_value,
|
973
|
+
:Flags, :int,
|
974
|
+
:_VtxCurrentIdx, :uint,
|
975
|
+
:_Data, :pointer,
|
976
|
+
:_OwnerName, :pointer,
|
977
|
+
:_VtxWritePtr, ImDrawVert.ptr,
|
978
|
+
:_IdxWritePtr, :pointer,
|
979
|
+
:_ClipRectStack, ImVector.by_value,
|
980
|
+
:_TextureIdStack, ImVector.by_value,
|
981
|
+
:_Path, ImVector.by_value,
|
982
|
+
:_CmdHeader, ImDrawCmdHeader.by_value,
|
983
|
+
:_Splitter, ImDrawListSplitter.by_value,
|
984
|
+
:_FringeScale, :float
|
968
985
|
)
|
969
986
|
|
970
987
|
def AddBezierCubic(p1, p2, p3, p4, col, thickness, num_segments = 0)
|
@@ -995,6 +1012,14 @@ class ImDrawList < FFI::Struct
|
|
995
1012
|
ImGui::ImDrawList_AddDrawCmd(self)
|
996
1013
|
end
|
997
1014
|
|
1015
|
+
def AddEllipse(center, radius_x, radius_y, col, rot = 0.0, num_segments = 0, thickness = 1.0)
|
1016
|
+
ImGui::ImDrawList_AddEllipse(self, center, radius_x, radius_y, col, rot, num_segments, thickness)
|
1017
|
+
end
|
1018
|
+
|
1019
|
+
def AddEllipseFilled(center, radius_x, radius_y, col, rot = 0.0, num_segments = 0)
|
1020
|
+
ImGui::ImDrawList_AddEllipseFilled(self, center, radius_x, radius_y, col, rot, num_segments)
|
1021
|
+
end
|
1022
|
+
|
998
1023
|
def AddImage(user_texture_id, p_min, p_max, uv_min = ImVec2.create(0,0), uv_max = ImVec2.create(1,1), col = ImColor.col32(255,255,255,255))
|
999
1024
|
ImGui::ImDrawList_AddImage(self, user_texture_id, p_min, p_max, uv_min, uv_max, col)
|
1000
1025
|
end
|
@@ -1111,6 +1136,10 @@ class ImDrawList < FFI::Struct
|
|
1111
1136
|
ImGui::ImDrawList_PathClear(self)
|
1112
1137
|
end
|
1113
1138
|
|
1139
|
+
def PathEllipticalArcTo(center, radius_x, radius_y, rot, a_min, a_max, num_segments = 0)
|
1140
|
+
ImGui::ImDrawList_PathEllipticalArcTo(self, center, radius_x, radius_y, rot, a_min, a_max, num_segments)
|
1141
|
+
end
|
1142
|
+
|
1114
1143
|
def PathFillConvex(col)
|
1115
1144
|
ImGui::ImDrawList_PathFillConvex(self, col)
|
1116
1145
|
end
|
@@ -1248,28 +1277,28 @@ end
|
|
1248
1277
|
# - This is an old API and it is currently awkward for those and various other reasons! We will address them in the future!
|
1249
1278
|
class ImFontAtlas < FFI::Struct
|
1250
1279
|
layout(
|
1251
|
-
:Flags, :int,
|
1252
|
-
:TexID, :pointer,
|
1253
|
-
:TexDesiredWidth, :int,
|
1254
|
-
:TexGlyphPadding, :int,
|
1255
|
-
:Locked, :bool,
|
1256
|
-
:UserData, :pointer,
|
1257
|
-
:TexReady, :bool,
|
1258
|
-
:TexPixelsUseColors, :bool,
|
1259
|
-
:TexPixelsAlpha8, :pointer,
|
1260
|
-
:TexPixelsRGBA32, :pointer,
|
1261
|
-
:TexWidth, :int,
|
1262
|
-
:TexHeight, :int,
|
1263
|
-
:TexUvScale, ImVec2.by_value,
|
1264
|
-
:TexUvWhitePixel, ImVec2.by_value,
|
1265
|
-
:Fonts, ImVector.by_value,
|
1266
|
-
:CustomRects, ImVector.by_value,
|
1267
|
-
:ConfigData, ImVector.by_value,
|
1268
|
-
:TexUvLines, [ImVec4.by_value, 64],
|
1269
|
-
:FontBuilderIO, :pointer,
|
1270
|
-
:FontBuilderFlags, :uint,
|
1271
|
-
:PackIdMouseCursors, :int,
|
1272
|
-
:PackIdLines, :int
|
1280
|
+
:Flags, :int,
|
1281
|
+
:TexID, :pointer,
|
1282
|
+
:TexDesiredWidth, :int,
|
1283
|
+
:TexGlyphPadding, :int,
|
1284
|
+
:Locked, :bool,
|
1285
|
+
:UserData, :pointer,
|
1286
|
+
:TexReady, :bool,
|
1287
|
+
:TexPixelsUseColors, :bool,
|
1288
|
+
:TexPixelsAlpha8, :pointer,
|
1289
|
+
:TexPixelsRGBA32, :pointer,
|
1290
|
+
:TexWidth, :int,
|
1291
|
+
:TexHeight, :int,
|
1292
|
+
:TexUvScale, ImVec2.by_value,
|
1293
|
+
:TexUvWhitePixel, ImVec2.by_value,
|
1294
|
+
:Fonts, ImVector.by_value,
|
1295
|
+
:CustomRects, ImVector.by_value,
|
1296
|
+
:ConfigData, ImVector.by_value,
|
1297
|
+
:TexUvLines, [ImVec4.by_value, 64],
|
1298
|
+
:FontBuilderIO, :pointer,
|
1299
|
+
:FontBuilderFlags, :uint,
|
1300
|
+
:PackIdMouseCursors, :int,
|
1301
|
+
:PackIdLines, :int
|
1273
1302
|
)
|
1274
1303
|
|
1275
1304
|
def AddCustomRectFontGlyph(font, id, width, height, advance_x, offset = ImVec2.create(0,0))
|
@@ -1296,12 +1325,12 @@ class ImFontAtlas < FFI::Struct
|
|
1296
1325
|
ImGui::ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(self, compressed_font_data_base85, size_pixels, font_cfg, glyph_ranges)
|
1297
1326
|
end
|
1298
1327
|
|
1299
|
-
def AddFontFromMemoryCompressedTTF(compressed_font_data,
|
1300
|
-
ImGui::ImFontAtlas_AddFontFromMemoryCompressedTTF(self, compressed_font_data,
|
1328
|
+
def AddFontFromMemoryCompressedTTF(compressed_font_data, compressed_font_data_size, size_pixels, font_cfg = nil, glyph_ranges = nil)
|
1329
|
+
ImGui::ImFontAtlas_AddFontFromMemoryCompressedTTF(self, compressed_font_data, compressed_font_data_size, size_pixels, font_cfg, glyph_ranges)
|
1301
1330
|
end
|
1302
1331
|
|
1303
|
-
def AddFontFromMemoryTTF(font_data,
|
1304
|
-
ImGui::ImFontAtlas_AddFontFromMemoryTTF(self, font_data,
|
1332
|
+
def AddFontFromMemoryTTF(font_data, font_data_size, size_pixels, font_cfg = nil, glyph_ranges = nil)
|
1333
|
+
ImGui::ImFontAtlas_AddFontFromMemoryTTF(self, font_data, font_data_size, size_pixels, font_cfg, glyph_ranges)
|
1305
1334
|
end
|
1306
1335
|
|
1307
1336
|
def Build()
|
@@ -1402,10 +1431,10 @@ end
|
|
1402
1431
|
# If prior to 1.87 you used io.KeysDownDuration[] (which was marked as internal), you should use GetKeyData(key)->DownDuration and *NOT* io.KeysData[key]->DownDuration.
|
1403
1432
|
class ImGuiKeyData < FFI::Struct
|
1404
1433
|
layout(
|
1405
|
-
:Down, :bool,
|
1406
|
-
:DownDuration, :float,
|
1407
|
-
:DownDurationPrev, :float,
|
1408
|
-
:AnalogValue, :float
|
1434
|
+
:Down, :bool,
|
1435
|
+
:DownDuration, :float,
|
1436
|
+
:DownDurationPrev, :float,
|
1437
|
+
:AnalogValue, :float
|
1409
1438
|
)
|
1410
1439
|
end
|
1411
1440
|
|
@@ -1418,12 +1447,12 @@ end
|
|
1418
1447
|
# - Windows are generally trying to stay within the Work Area of their host viewport.
|
1419
1448
|
class ImGuiViewport < FFI::Struct
|
1420
1449
|
layout(
|
1421
|
-
:Flags, :int,
|
1422
|
-
:Pos, ImVec2.by_value,
|
1423
|
-
:Size, ImVec2.by_value,
|
1424
|
-
:WorkPos, ImVec2.by_value,
|
1425
|
-
:WorkSize, ImVec2.by_value,
|
1426
|
-
:PlatformHandleRaw, :pointer
|
1450
|
+
:Flags, :int,
|
1451
|
+
:Pos, ImVec2.by_value,
|
1452
|
+
:Size, ImVec2.by_value,
|
1453
|
+
:WorkPos, ImVec2.by_value,
|
1454
|
+
:WorkSize, ImVec2.by_value,
|
1455
|
+
:PlatformHandleRaw, :pointer
|
1427
1456
|
)
|
1428
1457
|
|
1429
1458
|
def GetCenter()
|
@@ -1463,15 +1492,15 @@ end
|
|
1463
1492
|
# as this is one of the oldest structure exposed by the library! Basically, ImDrawList == CmdList)
|
1464
1493
|
class ImDrawData < FFI::Struct
|
1465
1494
|
layout(
|
1466
|
-
:Valid, :bool,
|
1467
|
-
:CmdListsCount, :int,
|
1468
|
-
:TotalIdxCount, :int,
|
1469
|
-
:TotalVtxCount, :int,
|
1470
|
-
:CmdLists, ImVector.by_value,
|
1471
|
-
:DisplayPos, ImVec2.by_value,
|
1472
|
-
:DisplaySize, ImVec2.by_value,
|
1473
|
-
:FramebufferScale, ImVec2.by_value,
|
1474
|
-
:OwnerViewport, ImGuiViewport.ptr
|
1495
|
+
:Valid, :bool,
|
1496
|
+
:CmdListsCount, :int,
|
1497
|
+
:TotalIdxCount, :int,
|
1498
|
+
:TotalVtxCount, :int,
|
1499
|
+
:CmdLists, ImVector.by_value,
|
1500
|
+
:DisplayPos, ImVec2.by_value,
|
1501
|
+
:DisplaySize, ImVec2.by_value,
|
1502
|
+
:FramebufferScale, ImVec2.by_value,
|
1503
|
+
:OwnerViewport, ImGuiViewport.ptr
|
1475
1504
|
)
|
1476
1505
|
|
1477
1506
|
def AddDrawList(draw_list)
|
@@ -1504,26 +1533,26 @@ end
|
|
1504
1533
|
# ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32().
|
1505
1534
|
class ImFont < FFI::Struct
|
1506
1535
|
layout(
|
1507
|
-
:IndexAdvanceX, ImVector.by_value,
|
1508
|
-
:FallbackAdvanceX, :float,
|
1509
|
-
:FontSize, :float,
|
1510
|
-
:IndexLookup, ImVector.by_value,
|
1511
|
-
:Glyphs, ImVector.by_value,
|
1512
|
-
:FallbackGlyph, :pointer,
|
1513
|
-
:ContainerAtlas, ImFontAtlas.ptr,
|
1514
|
-
:ConfigData, :pointer,
|
1515
|
-
:ConfigDataCount, :short,
|
1516
|
-
:FallbackChar, :ushort,
|
1517
|
-
:EllipsisChar, :ushort,
|
1518
|
-
:EllipsisCharCount, :short,
|
1519
|
-
:EllipsisWidth, :float,
|
1520
|
-
:EllipsisCharStep, :float,
|
1521
|
-
:DirtyLookupTables, :bool,
|
1522
|
-
:Scale, :float,
|
1523
|
-
:Ascent, :float,
|
1536
|
+
:IndexAdvanceX, ImVector.by_value,
|
1537
|
+
:FallbackAdvanceX, :float,
|
1538
|
+
:FontSize, :float,
|
1539
|
+
:IndexLookup, ImVector.by_value,
|
1540
|
+
:Glyphs, ImVector.by_value,
|
1541
|
+
:FallbackGlyph, :pointer,
|
1542
|
+
:ContainerAtlas, ImFontAtlas.ptr,
|
1543
|
+
:ConfigData, :pointer,
|
1544
|
+
:ConfigDataCount, :short,
|
1545
|
+
:FallbackChar, :ushort,
|
1546
|
+
:EllipsisChar, :ushort,
|
1547
|
+
:EllipsisCharCount, :short,
|
1548
|
+
:EllipsisWidth, :float,
|
1549
|
+
:EllipsisCharStep, :float,
|
1550
|
+
:DirtyLookupTables, :bool,
|
1551
|
+
:Scale, :float,
|
1552
|
+
:Ascent, :float,
|
1524
1553
|
:Descent, :float,
|
1525
|
-
:MetricsTotalSurface, :int,
|
1526
|
-
:Used4kPagesMap, [:uchar, 2]
|
1554
|
+
:MetricsTotalSurface, :int,
|
1555
|
+
:Used4kPagesMap, [:uchar, 2]
|
1527
1556
|
)
|
1528
1557
|
|
1529
1558
|
def AddGlyph(src_cfg, c, x0, y0, x1, y1, u0, v0, u1, v1, advance_x)
|
@@ -1605,14 +1634,14 @@ end
|
|
1605
1634
|
# See ImFontAtlas::AddCustomRectXXX functions.
|
1606
1635
|
class ImFontAtlasCustomRect < FFI::Struct
|
1607
1636
|
layout(
|
1608
|
-
:Width, :ushort,
|
1637
|
+
:Width, :ushort,
|
1609
1638
|
:Height, :ushort,
|
1610
|
-
:X, :ushort,
|
1639
|
+
:X, :ushort,
|
1611
1640
|
:Y, :ushort,
|
1612
|
-
:GlyphID, :uint,
|
1613
|
-
:GlyphAdvanceX, :float,
|
1614
|
-
:GlyphOffset, ImVec2.by_value,
|
1615
|
-
:Font, ImFont.ptr
|
1641
|
+
:GlyphID, :uint,
|
1642
|
+
:GlyphAdvanceX, :float,
|
1643
|
+
:GlyphOffset, ImVec2.by_value,
|
1644
|
+
:Font, ImFont.ptr
|
1616
1645
|
)
|
1617
1646
|
|
1618
1647
|
def self.create()
|
@@ -1631,24 +1660,25 @@ end
|
|
1631
1660
|
|
1632
1661
|
class ImFontConfig < FFI::Struct
|
1633
1662
|
layout(
|
1634
|
-
:FontData, :pointer,
|
1635
|
-
:FontDataSize, :int,
|
1636
|
-
:FontDataOwnedByAtlas, :bool,
|
1637
|
-
:FontNo, :int,
|
1638
|
-
:SizePixels, :float,
|
1639
|
-
:OversampleH, :int,
|
1640
|
-
:OversampleV, :int,
|
1641
|
-
:PixelSnapH, :bool,
|
1642
|
-
:GlyphExtraSpacing, ImVec2.by_value,
|
1643
|
-
:GlyphOffset, ImVec2.by_value,
|
1644
|
-
:GlyphRanges, :pointer,
|
1645
|
-
:GlyphMinAdvanceX, :float,
|
1646
|
-
:GlyphMaxAdvanceX, :float,
|
1647
|
-
:MergeMode, :bool,
|
1648
|
-
:FontBuilderFlags, :uint,
|
1649
|
-
:RasterizerMultiply, :float,
|
1650
|
-
:
|
1651
|
-
:
|
1663
|
+
:FontData, :pointer,
|
1664
|
+
:FontDataSize, :int,
|
1665
|
+
:FontDataOwnedByAtlas, :bool,
|
1666
|
+
:FontNo, :int,
|
1667
|
+
:SizePixels, :float,
|
1668
|
+
:OversampleH, :int,
|
1669
|
+
:OversampleV, :int,
|
1670
|
+
:PixelSnapH, :bool,
|
1671
|
+
:GlyphExtraSpacing, ImVec2.by_value,
|
1672
|
+
:GlyphOffset, ImVec2.by_value,
|
1673
|
+
:GlyphRanges, :pointer,
|
1674
|
+
:GlyphMinAdvanceX, :float,
|
1675
|
+
:GlyphMaxAdvanceX, :float,
|
1676
|
+
:MergeMode, :bool,
|
1677
|
+
:FontBuilderFlags, :uint,
|
1678
|
+
:RasterizerMultiply, :float,
|
1679
|
+
:RasterizerDensity, :float,
|
1680
|
+
:EllipsisChar, :ushort,
|
1681
|
+
:Name, [:char, 40],
|
1652
1682
|
:DstFont, ImFont.ptr
|
1653
1683
|
)
|
1654
1684
|
|
@@ -1666,15 +1696,15 @@ end
|
|
1666
1696
|
# (Note: some language parsers may fail to convert the 31+1 bitfield members, in this case maybe drop store a single u32 or we can rework this)
|
1667
1697
|
class ImFontGlyph < FFI::Struct
|
1668
1698
|
layout(
|
1669
|
-
:Colored, :uint,
|
1670
|
-
:Visible, :uint,
|
1671
|
-
:Codepoint, :uint,
|
1672
|
-
:AdvanceX, :float,
|
1673
|
-
:X0, :float,
|
1699
|
+
:Colored, :uint,
|
1700
|
+
:Visible, :uint,
|
1701
|
+
:Codepoint, :uint,
|
1702
|
+
:AdvanceX, :float,
|
1703
|
+
:X0, :float,
|
1674
1704
|
:Y0, :float,
|
1675
1705
|
:X1, :float,
|
1676
1706
|
:Y1, :float,
|
1677
|
-
:U0, :float,
|
1707
|
+
:U0, :float,
|
1678
1708
|
:V0, :float,
|
1679
1709
|
:U1, :float,
|
1680
1710
|
:V1, :float
|
@@ -1685,7 +1715,7 @@ end
|
|
1685
1715
|
# This is essentially a tightly packed of vector of 64k booleans = 8KB storage.
|
1686
1716
|
class ImFontGlyphRangesBuilder < FFI::Struct
|
1687
1717
|
layout(
|
1688
|
-
:UsedChars, ImVector.by_value
|
1718
|
+
:UsedChars, ImVector.by_value
|
1689
1719
|
)
|
1690
1720
|
|
1691
1721
|
def AddChar(c)
|
@@ -1728,99 +1758,95 @@ end
|
|
1728
1758
|
|
1729
1759
|
class ImGuiIO < FFI::Struct
|
1730
1760
|
layout(
|
1731
|
-
:ConfigFlags, :int,
|
1732
|
-
:BackendFlags, :int,
|
1733
|
-
:DisplaySize, ImVec2.by_value,
|
1734
|
-
:DeltaTime, :float,
|
1735
|
-
:IniSavingRate, :float,
|
1736
|
-
:IniFilename, :pointer,
|
1737
|
-
:LogFilename, :pointer,
|
1738
|
-
:UserData, :pointer,
|
1739
|
-
:Fonts, ImFontAtlas.ptr,
|
1740
|
-
:FontGlobalScale, :float,
|
1741
|
-
:FontAllowUserScaling, :bool,
|
1742
|
-
:FontDefault, ImFont.ptr,
|
1743
|
-
:DisplayFramebufferScale, ImVec2.by_value,
|
1744
|
-
:MouseDrawCursor, :bool,
|
1745
|
-
:ConfigMacOSXBehaviors, :bool,
|
1746
|
-
:ConfigInputTrickleEventQueue, :bool,
|
1747
|
-
:ConfigInputTextCursorBlink, :bool,
|
1748
|
-
:ConfigInputTextEnterKeepActive, :bool,
|
1749
|
-
:ConfigDragClickToInputText, :bool,
|
1750
|
-
:ConfigWindowsResizeFromEdges, :bool,
|
1751
|
-
:ConfigWindowsMoveFromTitleBarOnly, :bool,
|
1752
|
-
:ConfigMemoryCompactTimer, :float,
|
1753
|
-
:MouseDoubleClickTime, :float,
|
1754
|
-
:MouseDoubleClickMaxDist, :float,
|
1755
|
-
:MouseDragThreshold, :float,
|
1756
|
-
:KeyRepeatDelay, :float,
|
1757
|
-
:KeyRepeatRate, :float,
|
1758
|
-
:ConfigDebugBeginReturnValueOnce, :bool,
|
1759
|
-
:ConfigDebugBeginReturnValueLoop, :bool,
|
1760
|
-
:ConfigDebugIgnoreFocusLoss, :bool,
|
1761
|
-
:ConfigDebugIniSettings, :bool,
|
1762
|
-
:BackendPlatformName, :pointer,
|
1763
|
-
:BackendRendererName, :pointer,
|
1764
|
-
:BackendPlatformUserData, :pointer,
|
1765
|
-
:BackendRendererUserData, :pointer,
|
1766
|
-
:BackendLanguageUserData, :pointer,
|
1761
|
+
:ConfigFlags, :int,
|
1762
|
+
:BackendFlags, :int,
|
1763
|
+
:DisplaySize, ImVec2.by_value,
|
1764
|
+
:DeltaTime, :float,
|
1765
|
+
:IniSavingRate, :float,
|
1766
|
+
:IniFilename, :pointer,
|
1767
|
+
:LogFilename, :pointer,
|
1768
|
+
:UserData, :pointer,
|
1769
|
+
:Fonts, ImFontAtlas.ptr,
|
1770
|
+
:FontGlobalScale, :float,
|
1771
|
+
:FontAllowUserScaling, :bool,
|
1772
|
+
:FontDefault, ImFont.ptr,
|
1773
|
+
:DisplayFramebufferScale, ImVec2.by_value,
|
1774
|
+
:MouseDrawCursor, :bool,
|
1775
|
+
:ConfigMacOSXBehaviors, :bool,
|
1776
|
+
:ConfigInputTrickleEventQueue, :bool,
|
1777
|
+
:ConfigInputTextCursorBlink, :bool,
|
1778
|
+
:ConfigInputTextEnterKeepActive, :bool,
|
1779
|
+
:ConfigDragClickToInputText, :bool,
|
1780
|
+
:ConfigWindowsResizeFromEdges, :bool,
|
1781
|
+
:ConfigWindowsMoveFromTitleBarOnly, :bool,
|
1782
|
+
:ConfigMemoryCompactTimer, :float,
|
1783
|
+
:MouseDoubleClickTime, :float,
|
1784
|
+
:MouseDoubleClickMaxDist, :float,
|
1785
|
+
:MouseDragThreshold, :float,
|
1786
|
+
:KeyRepeatDelay, :float,
|
1787
|
+
:KeyRepeatRate, :float,
|
1788
|
+
:ConfigDebugBeginReturnValueOnce, :bool,
|
1789
|
+
:ConfigDebugBeginReturnValueLoop, :bool,
|
1790
|
+
:ConfigDebugIgnoreFocusLoss, :bool,
|
1791
|
+
:ConfigDebugIniSettings, :bool,
|
1792
|
+
:BackendPlatformName, :pointer,
|
1793
|
+
:BackendRendererName, :pointer,
|
1794
|
+
:BackendPlatformUserData, :pointer,
|
1795
|
+
:BackendRendererUserData, :pointer,
|
1796
|
+
:BackendLanguageUserData, :pointer,
|
1767
1797
|
:GetClipboardTextFn, :pointer,
|
1768
1798
|
:SetClipboardTextFn, :pointer,
|
1769
1799
|
:ClipboardUserData, :pointer,
|
1770
1800
|
:SetPlatformImeDataFn, :pointer,
|
1801
|
+
:PlatformLocaleDecimalPoint, :ushort,
|
1802
|
+
:WantCaptureMouse, :bool,
|
1803
|
+
:WantCaptureKeyboard, :bool,
|
1804
|
+
:WantTextInput, :bool,
|
1805
|
+
:WantSetMousePos, :bool,
|
1806
|
+
:WantSaveIniSettings, :bool,
|
1807
|
+
:NavActive, :bool,
|
1808
|
+
:NavVisible, :bool,
|
1809
|
+
:Framerate, :float,
|
1810
|
+
:MetricsRenderVertices, :int,
|
1811
|
+
:MetricsRenderIndices, :int,
|
1812
|
+
:MetricsRenderWindows, :int,
|
1813
|
+
:MetricsActiveWindows, :int,
|
1814
|
+
:MouseDelta, ImVec2.by_value,
|
1771
1815
|
:_UnusedPadding, :pointer,
|
1772
|
-
:
|
1773
|
-
:
|
1774
|
-
:
|
1775
|
-
:
|
1776
|
-
:
|
1777
|
-
:
|
1778
|
-
:
|
1779
|
-
:
|
1780
|
-
:
|
1781
|
-
:
|
1782
|
-
:
|
1783
|
-
:
|
1784
|
-
:
|
1785
|
-
:
|
1786
|
-
:
|
1787
|
-
:
|
1788
|
-
:
|
1789
|
-
:
|
1790
|
-
:
|
1791
|
-
:
|
1792
|
-
:
|
1793
|
-
:
|
1794
|
-
:
|
1795
|
-
:
|
1796
|
-
:
|
1797
|
-
:
|
1798
|
-
:
|
1799
|
-
:
|
1800
|
-
:
|
1801
|
-
:
|
1802
|
-
:
|
1803
|
-
:
|
1804
|
-
:
|
1805
|
-
:
|
1806
|
-
:MouseClicked, [:bool, 5], # Mouse button went from !Down to Down (same as MouseClickedCount[x] != 0)
|
1807
|
-
:MouseDoubleClicked, [:bool, 5], # Has mouse button been double-clicked? (same as MouseClickedCount[x] == 2)
|
1808
|
-
:MouseClickedCount, [:ushort, 5], # == 0 (not clicked), == 1 (same as MouseClicked[]), == 2 (double-clicked), == 3 (triple-clicked) etc. when going from !Down to Down
|
1809
|
-
:MouseClickedLastCount, [:ushort, 5], # Count successive number of clicks. Stays valid after mouse release. Reset after another click is done.
|
1810
|
-
:MouseReleased, [:bool, 5], # Mouse button went from Down to !Down
|
1811
|
-
:MouseDownOwned, [:bool, 5], # Track if button was clicked inside a dear imgui window or over void blocked by a popup. We don't request mouse capture from the application if click started outside ImGui bounds.
|
1812
|
-
:MouseDownOwnedUnlessPopupClose, [:bool, 5], # Track if button was clicked inside a dear imgui window.
|
1813
|
-
:MouseWheelRequestAxisSwap, :bool, # On a non-Mac system, holding SHIFT requests WheelY to perform the equivalent of a WheelX event. On a Mac system this is already enforced by the system.
|
1814
|
-
:MouseDownDuration, [:float, 5], # Duration the mouse button has been down (0.0f == just clicked)
|
1815
|
-
:MouseDownDurationPrev, [:float, 5], # Previous time the mouse button has been down
|
1816
|
-
:MouseDragMaxDistanceSqr, [:float, 5], # Squared maximum distance of how much mouse has traveled from the clicking point (used for moving thresholds)
|
1817
|
-
:PenPressure, :float, # Touch/Pen pressure (0.0f to 1.0f, should be >0.0f only when MouseDown[0] == true). Helper storage currently unused by Dear ImGui.
|
1818
|
-
:AppFocusLost, :bool, # Only modify via AddFocusEvent()
|
1819
|
-
:AppAcceptingEvents, :bool, # Only modify via SetAppAcceptingEvents()
|
1820
|
-
:BackendUsingLegacyKeyArrays, :char, # -1: unknown, 0: using AddKeyEvent(), 1: using legacy io.KeysDown[]
|
1821
|
-
:BackendUsingLegacyNavInputArray, :bool, # 0: using AddKeyAnalogEvent(), 1: writing to legacy io.NavInputs[] directly
|
1822
|
-
:InputQueueSurrogate, :ushort, # For AddInputCharacterUTF16()
|
1823
|
-
:InputQueueCharacters, ImVector.by_value # Queue of _characters_ input (obtained by platform backend). Fill using AddInputCharacter() helper.
|
1816
|
+
:Ctx, :pointer,
|
1817
|
+
:MousePos, ImVec2.by_value,
|
1818
|
+
:MouseDown, [:bool, 5],
|
1819
|
+
:MouseWheel, :float,
|
1820
|
+
:MouseWheelH, :float,
|
1821
|
+
:MouseSource, :int,
|
1822
|
+
:KeyCtrl, :bool,
|
1823
|
+
:KeyShift, :bool,
|
1824
|
+
:KeyAlt, :bool,
|
1825
|
+
:KeySuper, :bool,
|
1826
|
+
:KeyMods, :int,
|
1827
|
+
:KeysData, [ImGuiKeyData.by_value, 154],
|
1828
|
+
:WantCaptureMouseUnlessPopupClose, :bool,
|
1829
|
+
:MousePosPrev, ImVec2.by_value,
|
1830
|
+
:MouseClickedPos, [ImVec2.by_value, 5],
|
1831
|
+
:MouseClickedTime, [:double, 5],
|
1832
|
+
:MouseClicked, [:bool, 5],
|
1833
|
+
:MouseDoubleClicked, [:bool, 5],
|
1834
|
+
:MouseClickedCount, [:ushort, 5],
|
1835
|
+
:MouseClickedLastCount, [:ushort, 5],
|
1836
|
+
:MouseReleased, [:bool, 5],
|
1837
|
+
:MouseDownOwned, [:bool, 5],
|
1838
|
+
:MouseDownOwnedUnlessPopupClose, [:bool, 5],
|
1839
|
+
:MouseWheelRequestAxisSwap, :bool,
|
1840
|
+
:MouseDownDuration, [:float, 5],
|
1841
|
+
:MouseDownDurationPrev, [:float, 5],
|
1842
|
+
:MouseDragMaxDistanceSqr, [:float, 5],
|
1843
|
+
:PenPressure, :float,
|
1844
|
+
:AppFocusLost, :bool,
|
1845
|
+
:AppAcceptingEvents, :bool,
|
1846
|
+
:BackendUsingLegacyKeyArrays, :char,
|
1847
|
+
:BackendUsingLegacyNavInputArray, :bool,
|
1848
|
+
:InputQueueSurrogate, :ushort,
|
1849
|
+
:InputQueueCharacters, ImVector.by_value
|
1824
1850
|
)
|
1825
1851
|
|
1826
1852
|
def AddFocusEvent(focused)
|
@@ -1900,19 +1926,19 @@ end
|
|
1900
1926
|
# - ImGuiInputTextFlags_CallbackResize: Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow.
|
1901
1927
|
class ImGuiInputTextCallbackData < FFI::Struct
|
1902
1928
|
layout(
|
1903
|
-
:Ctx, :pointer,
|
1904
|
-
:EventFlag, :int,
|
1905
|
-
:Flags, :int,
|
1906
|
-
:UserData, :pointer,
|
1907
|
-
:EventChar, :ushort,
|
1908
|
-
:EventKey, :int,
|
1909
|
-
:Buf, :pointer,
|
1910
|
-
:BufTextLen, :int,
|
1911
|
-
:BufSize, :int,
|
1912
|
-
:BufDirty, :bool,
|
1913
|
-
:CursorPos, :int,
|
1914
|
-
:SelectionStart, :int,
|
1915
|
-
:SelectionEnd, :int
|
1929
|
+
:Ctx, :pointer,
|
1930
|
+
:EventFlag, :int,
|
1931
|
+
:Flags, :int,
|
1932
|
+
:UserData, :pointer,
|
1933
|
+
:EventChar, :ushort,
|
1934
|
+
:EventKey, :int,
|
1935
|
+
:Buf, :pointer,
|
1936
|
+
:BufTextLen, :int,
|
1937
|
+
:BufSize, :int,
|
1938
|
+
:BufDirty, :bool,
|
1939
|
+
:CursorPos, :int,
|
1940
|
+
:SelectionStart, :int,
|
1941
|
+
:SelectionEnd, :int
|
1916
1942
|
)
|
1917
1943
|
|
1918
1944
|
def ClearSelection()
|
@@ -1967,13 +1993,13 @@ end
|
|
1967
1993
|
# - The clipper also handles various subtleties related to keyboard/gamepad navigation, wrapping etc.
|
1968
1994
|
class ImGuiListClipper < FFI::Struct
|
1969
1995
|
layout(
|
1970
|
-
:Ctx, :pointer,
|
1971
|
-
:DisplayStart, :int,
|
1972
|
-
:DisplayEnd, :int,
|
1973
|
-
:ItemsCount, :int,
|
1974
|
-
:ItemsHeight, :float,
|
1975
|
-
:StartPosY, :float,
|
1976
|
-
:TempData, :pointer
|
1996
|
+
:Ctx, :pointer,
|
1997
|
+
:DisplayStart, :int,
|
1998
|
+
:DisplayEnd, :int,
|
1999
|
+
:ItemsCount, :int,
|
2000
|
+
:ItemsHeight, :float,
|
2001
|
+
:StartPosY, :float,
|
2002
|
+
:TempData, :pointer
|
1977
2003
|
)
|
1978
2004
|
|
1979
2005
|
def Begin(items_count, items_height = -1.0)
|
@@ -2009,14 +2035,14 @@ end
|
|
2009
2035
|
# Data payload for Drag and Drop operations: AcceptDragDropPayload(), GetDragDropPayload()
|
2010
2036
|
class ImGuiPayload < FFI::Struct
|
2011
2037
|
layout(
|
2012
|
-
:Data, :pointer,
|
2013
|
-
:DataSize, :int,
|
2014
|
-
:SourceId, :uint,
|
2015
|
-
:SourceParentId, :uint,
|
2016
|
-
:DataFrameCount, :int,
|
2017
|
-
:DataType, [:char, 33],
|
2018
|
-
:Preview, :bool,
|
2019
|
-
:Delivery, :bool
|
2038
|
+
:Data, :pointer,
|
2039
|
+
:DataSize, :int,
|
2040
|
+
:SourceId, :uint,
|
2041
|
+
:SourceParentId, :uint,
|
2042
|
+
:DataFrameCount, :int,
|
2043
|
+
:DataType, [:char, 33],
|
2044
|
+
:Preview, :bool,
|
2045
|
+
:Delivery, :bool
|
2020
2046
|
)
|
2021
2047
|
|
2022
2048
|
def Clear()
|
@@ -2048,9 +2074,9 @@ end
|
|
2048
2074
|
# (Optional) Support for IME (Input Method Editor) via the io.SetPlatformImeDataFn() function.
|
2049
2075
|
class ImGuiPlatformImeData < FFI::Struct
|
2050
2076
|
layout(
|
2051
|
-
:WantVisible, :bool,
|
2052
|
-
:InputPos, ImVec2.by_value,
|
2053
|
-
:InputLineHeight, :float
|
2077
|
+
:WantVisible, :bool,
|
2078
|
+
:InputPos, ImVec2.by_value,
|
2079
|
+
:InputLineHeight, :float
|
2054
2080
|
)
|
2055
2081
|
|
2056
2082
|
def self.create()
|
@@ -2067,10 +2093,10 @@ end
|
|
2067
2093
|
# NB: For basic min/max size constraint on each axis you don't need to use the callback! The SetNextWindowSizeConstraints() parameters are enough.
|
2068
2094
|
class ImGuiSizeCallbackData < FFI::Struct
|
2069
2095
|
layout(
|
2070
|
-
:UserData, :pointer,
|
2071
|
-
:Pos, ImVec2.by_value,
|
2072
|
-
:CurrentSize, ImVec2.by_value,
|
2073
|
-
:DesiredSize, ImVec2.by_value
|
2096
|
+
:UserData, :pointer,
|
2097
|
+
:Pos, ImVec2.by_value,
|
2098
|
+
:CurrentSize, ImVec2.by_value,
|
2099
|
+
:DesiredSize, ImVec2.by_value
|
2074
2100
|
)
|
2075
2101
|
end
|
2076
2102
|
|
@@ -2151,55 +2177,57 @@ end
|
|
2151
2177
|
|
2152
2178
|
class ImGuiStyle < FFI::Struct
|
2153
2179
|
layout(
|
2154
|
-
:Alpha, :float,
|
2155
|
-
:DisabledAlpha, :float,
|
2156
|
-
:WindowPadding, ImVec2.by_value,
|
2157
|
-
:WindowRounding, :float,
|
2158
|
-
:WindowBorderSize, :float,
|
2159
|
-
:WindowMinSize, ImVec2.by_value,
|
2160
|
-
:WindowTitleAlign, ImVec2.by_value,
|
2161
|
-
:WindowMenuButtonPosition, :int,
|
2162
|
-
:ChildRounding, :float,
|
2163
|
-
:ChildBorderSize, :float,
|
2164
|
-
:PopupRounding, :float,
|
2165
|
-
:PopupBorderSize, :float,
|
2166
|
-
:FramePadding, ImVec2.by_value,
|
2167
|
-
:FrameRounding, :float,
|
2168
|
-
:FrameBorderSize, :float,
|
2169
|
-
:ItemSpacing, ImVec2.by_value,
|
2170
|
-
:ItemInnerSpacing, ImVec2.by_value,
|
2171
|
-
:CellPadding, ImVec2.by_value,
|
2172
|
-
:TouchExtraPadding, ImVec2.by_value,
|
2173
|
-
:IndentSpacing, :float,
|
2174
|
-
:ColumnsMinSpacing, :float,
|
2175
|
-
:ScrollbarSize, :float,
|
2176
|
-
:ScrollbarRounding, :float,
|
2177
|
-
:GrabMinSize, :float,
|
2178
|
-
:GrabRounding, :float,
|
2179
|
-
:LogSliderDeadzone, :float,
|
2180
|
-
:TabRounding, :float,
|
2181
|
-
:TabBorderSize, :float,
|
2182
|
-
:TabMinWidthForCloseButton, :float,
|
2183
|
-
:
|
2184
|
-
:
|
2185
|
-
:
|
2186
|
-
:
|
2187
|
-
:
|
2188
|
-
:
|
2189
|
-
:
|
2190
|
-
:
|
2191
|
-
:
|
2192
|
-
:
|
2193
|
-
:
|
2194
|
-
:
|
2195
|
-
:
|
2196
|
-
:
|
2180
|
+
:Alpha, :float,
|
2181
|
+
:DisabledAlpha, :float,
|
2182
|
+
:WindowPadding, ImVec2.by_value,
|
2183
|
+
:WindowRounding, :float,
|
2184
|
+
:WindowBorderSize, :float,
|
2185
|
+
:WindowMinSize, ImVec2.by_value,
|
2186
|
+
:WindowTitleAlign, ImVec2.by_value,
|
2187
|
+
:WindowMenuButtonPosition, :int,
|
2188
|
+
:ChildRounding, :float,
|
2189
|
+
:ChildBorderSize, :float,
|
2190
|
+
:PopupRounding, :float,
|
2191
|
+
:PopupBorderSize, :float,
|
2192
|
+
:FramePadding, ImVec2.by_value,
|
2193
|
+
:FrameRounding, :float,
|
2194
|
+
:FrameBorderSize, :float,
|
2195
|
+
:ItemSpacing, ImVec2.by_value,
|
2196
|
+
:ItemInnerSpacing, ImVec2.by_value,
|
2197
|
+
:CellPadding, ImVec2.by_value,
|
2198
|
+
:TouchExtraPadding, ImVec2.by_value,
|
2199
|
+
:IndentSpacing, :float,
|
2200
|
+
:ColumnsMinSpacing, :float,
|
2201
|
+
:ScrollbarSize, :float,
|
2202
|
+
:ScrollbarRounding, :float,
|
2203
|
+
:GrabMinSize, :float,
|
2204
|
+
:GrabRounding, :float,
|
2205
|
+
:LogSliderDeadzone, :float,
|
2206
|
+
:TabRounding, :float,
|
2207
|
+
:TabBorderSize, :float,
|
2208
|
+
:TabMinWidthForCloseButton, :float,
|
2209
|
+
:TabBarBorderSize, :float,
|
2210
|
+
:TableAngledHeadersAngle, :float,
|
2211
|
+
:ColorButtonPosition, :int,
|
2212
|
+
:ButtonTextAlign, ImVec2.by_value,
|
2213
|
+
:SelectableTextAlign, ImVec2.by_value,
|
2214
|
+
:SeparatorTextBorderSize, :float,
|
2215
|
+
:SeparatorTextAlign, ImVec2.by_value,
|
2216
|
+
:SeparatorTextPadding, ImVec2.by_value,
|
2217
|
+
:DisplayWindowPadding, ImVec2.by_value,
|
2218
|
+
:DisplaySafeAreaPadding, ImVec2.by_value,
|
2219
|
+
:MouseCursorScale, :float,
|
2220
|
+
:AntiAliasedLines, :bool,
|
2221
|
+
:AntiAliasedLinesUseTex, :bool,
|
2222
|
+
:AntiAliasedFill, :bool,
|
2223
|
+
:CurveTessellationTol, :float,
|
2224
|
+
:CircleTessellationMaxError, :float,
|
2197
2225
|
:Colors, [ImVec4.by_value, 53],
|
2198
|
-
:HoverStationaryDelay, :float,
|
2199
|
-
:HoverDelayShort, :float,
|
2200
|
-
:HoverDelayNormal, :float,
|
2201
|
-
:HoverFlagsForTooltipMouse, :int,
|
2202
|
-
:HoverFlagsForTooltipNav, :int
|
2226
|
+
:HoverStationaryDelay, :float,
|
2227
|
+
:HoverDelayShort, :float,
|
2228
|
+
:HoverDelayNormal, :float,
|
2229
|
+
:HoverFlagsForTooltipMouse, :int,
|
2230
|
+
:HoverFlagsForTooltipNav, :int
|
2203
2231
|
)
|
2204
2232
|
|
2205
2233
|
def self.create()
|
@@ -2219,10 +2247,10 @@ end
|
|
2219
2247
|
# Sorting specification for one column of a table (sizeof == 12 bytes)
|
2220
2248
|
class ImGuiTableColumnSortSpecs < FFI::Struct
|
2221
2249
|
layout(
|
2222
|
-
:ColumnUserID, :uint,
|
2223
|
-
:ColumnIndex, :short,
|
2224
|
-
:SortOrder, :short,
|
2225
|
-
:SortDirection, :int
|
2250
|
+
:ColumnUserID, :uint,
|
2251
|
+
:ColumnIndex, :short,
|
2252
|
+
:SortOrder, :short,
|
2253
|
+
:SortDirection, :int
|
2226
2254
|
)
|
2227
2255
|
|
2228
2256
|
def self.create()
|
@@ -2241,9 +2269,9 @@ end
|
|
2241
2269
|
# Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame!
|
2242
2270
|
class ImGuiTableSortSpecs < FFI::Struct
|
2243
2271
|
layout(
|
2244
|
-
:Specs, :pointer,
|
2245
|
-
:SpecsCount, :int,
|
2246
|
-
:SpecsDirty, :bool
|
2272
|
+
:Specs, :pointer,
|
2273
|
+
:SpecsCount, :int,
|
2274
|
+
:SpecsDirty, :bool
|
2247
2275
|
)
|
2248
2276
|
|
2249
2277
|
def self.create()
|
@@ -2381,16 +2409,16 @@ class ImGuiStoragePair < FFI::Struct
|
|
2381
2409
|
:val_p, :pointer
|
2382
2410
|
)
|
2383
2411
|
|
2384
|
-
def self.create(_key,
|
2385
|
-
return ImGuiStoragePair.new(ImGui::ImGuiStoragePair_ImGuiStoragePair_Int(_key,
|
2412
|
+
def self.create(_key, _val)
|
2413
|
+
return ImGuiStoragePair.new(ImGui::ImGuiStoragePair_ImGuiStoragePair_Int(_key, _val))
|
2386
2414
|
end
|
2387
2415
|
|
2388
|
-
def self.create(_key,
|
2389
|
-
return ImGuiStoragePair.new(ImGui::ImGuiStoragePair_ImGuiStoragePair_Float(_key,
|
2416
|
+
def self.create(_key, _val)
|
2417
|
+
return ImGuiStoragePair.new(ImGui::ImGuiStoragePair_ImGuiStoragePair_Float(_key, _val))
|
2390
2418
|
end
|
2391
2419
|
|
2392
|
-
def self.create(_key,
|
2393
|
-
return ImGuiStoragePair.new(ImGui::ImGuiStoragePair_ImGuiStoragePair_Ptr(_key,
|
2420
|
+
def self.create(_key, _val)
|
2421
|
+
return ImGuiStoragePair.new(ImGui::ImGuiStoragePair_ImGuiStoragePair_Ptr(_key, _val))
|
2394
2422
|
end
|
2395
2423
|
|
2396
2424
|
def destroy()
|
@@ -2471,6 +2499,8 @@ module ImGui
|
|
2471
2499
|
[:ImDrawList_AddCircleFilled, [:pointer, ImVec2.by_value, :float, :uint, :int], :void],
|
2472
2500
|
[:ImDrawList_AddConvexPolyFilled, [:pointer, :pointer, :int, :uint], :void],
|
2473
2501
|
[:ImDrawList_AddDrawCmd, [:pointer], :void],
|
2502
|
+
[:ImDrawList_AddEllipse, [:pointer, ImVec2.by_value, :float, :float, :uint, :float, :int, :float], :void],
|
2503
|
+
[:ImDrawList_AddEllipseFilled, [:pointer, ImVec2.by_value, :float, :float, :uint, :float, :int], :void],
|
2474
2504
|
[:ImDrawList_AddImage, [:pointer, :pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
|
2475
2505
|
[:ImDrawList_AddImageQuad, [:pointer, :pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
|
2476
2506
|
[:ImDrawList_AddImageRounded, [:pointer, :pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
|
@@ -2499,6 +2529,7 @@ module ImGui
|
|
2499
2529
|
[:ImDrawList_PathBezierCubicCurveTo, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :int], :void],
|
2500
2530
|
[:ImDrawList_PathBezierQuadraticCurveTo, [:pointer, ImVec2.by_value, ImVec2.by_value, :int], :void],
|
2501
2531
|
[:ImDrawList_PathClear, [:pointer], :void],
|
2532
|
+
[:ImDrawList_PathEllipticalArcTo, [:pointer, ImVec2.by_value, :float, :float, :float, :float, :float, :int], :void],
|
2502
2533
|
[:ImDrawList_PathFillConvex, [:pointer, :uint], :void],
|
2503
2534
|
[:ImDrawList_PathLineTo, [:pointer, ImVec2.by_value], :void],
|
2504
2535
|
[:ImDrawList_PathLineToMergeDuplicate, [:pointer, ImVec2.by_value], :void],
|
@@ -2688,9 +2719,8 @@ module ImGui
|
|
2688
2719
|
[:igAlignTextToFramePadding, [], :void],
|
2689
2720
|
[:igArrowButton, [:pointer, :int], :bool],
|
2690
2721
|
[:igBegin, [:pointer, :pointer, :int], :bool],
|
2691
|
-
[:igBeginChild_Str, [:pointer, ImVec2.by_value, :
|
2692
|
-
[:igBeginChild_ID, [:uint, ImVec2.by_value, :
|
2693
|
-
[:igBeginChildFrame, [:uint, ImVec2.by_value, :int], :bool],
|
2722
|
+
[:igBeginChild_Str, [:pointer, ImVec2.by_value, :int, :int], :bool],
|
2723
|
+
[:igBeginChild_ID, [:uint, ImVec2.by_value, :int, :int], :bool],
|
2694
2724
|
[:igBeginCombo, [:pointer, :pointer, :int], :bool],
|
2695
2725
|
[:igBeginDisabled, [:bool], :void],
|
2696
2726
|
[:igBeginDragDropSource, [:int], :bool],
|
@@ -2733,7 +2763,7 @@ module ImGui
|
|
2733
2763
|
[:igColumns, [:int, :pointer, :bool], :void],
|
2734
2764
|
[:igCombo_Str_arr, [:pointer, :pointer, :pointer, :int, :int], :bool],
|
2735
2765
|
[:igCombo_Str, [:pointer, :pointer, :pointer, :int], :bool],
|
2736
|
-
[:
|
2766
|
+
[:igCombo_FnStrPtr, [:pointer, :pointer, :pointer, :pointer, :int, :int], :bool],
|
2737
2767
|
[:igCreateContext, [:pointer], :pointer],
|
2738
2768
|
[:igDebugCheckVersionAndDataLayout, [:pointer, :size_t, :size_t, :size_t, :size_t, :size_t, :size_t], :bool],
|
2739
2769
|
[:igDebugTextEncoding, [:pointer], :void],
|
@@ -2753,7 +2783,6 @@ module ImGui
|
|
2753
2783
|
[:igDummy, [ImVec2.by_value], :void],
|
2754
2784
|
[:igEnd, [], :void],
|
2755
2785
|
[:igEndChild, [], :void],
|
2756
|
-
[:igEndChildFrame, [], :void],
|
2757
2786
|
[:igEndCombo, [], :void],
|
2758
2787
|
[:igEndDisabled, [], :void],
|
2759
2788
|
[:igEndDragDropSource, [], :void],
|
@@ -2866,6 +2895,7 @@ module ImGui
|
|
2866
2895
|
[:igIsItemHovered, [:int], :bool],
|
2867
2896
|
[:igIsItemToggledOpen, [], :bool],
|
2868
2897
|
[:igIsItemVisible, [], :bool],
|
2898
|
+
[:igIsKeyChordPressed, [:int], :bool],
|
2869
2899
|
[:igIsKeyDown, [:int], :bool],
|
2870
2900
|
[:igIsKeyPressed, [:int, :bool], :bool],
|
2871
2901
|
[:igIsKeyReleased, [:int], :bool],
|
@@ -2885,7 +2915,7 @@ module ImGui
|
|
2885
2915
|
[:igIsWindowHovered, [:int], :bool],
|
2886
2916
|
[:igLabelText, [:pointer, :pointer, :varargs], :void],
|
2887
2917
|
[:igListBox_Str_arr, [:pointer, :pointer, :pointer, :int, :int], :bool],
|
2888
|
-
[:
|
2918
|
+
[:igListBox_FnStrPtr, [:pointer, :pointer, :pointer, :pointer, :int, :int], :bool],
|
2889
2919
|
[:igLoadIniSettingsFromDisk, [:pointer], :void],
|
2890
2920
|
[:igLoadIniSettingsFromMemory, [:pointer, :size_t], :void],
|
2891
2921
|
[:igLogButtons, [], :void],
|
@@ -2993,8 +3023,8 @@ module ImGui
|
|
2993
3023
|
[:igShowDebugLogWindow, [:pointer], :void],
|
2994
3024
|
[:igShowDemoWindow, [:pointer], :void],
|
2995
3025
|
[:igShowFontSelector, [:pointer], :void],
|
3026
|
+
[:igShowIDStackToolWindow, [:pointer], :void],
|
2996
3027
|
[:igShowMetricsWindow, [:pointer], :void],
|
2997
|
-
[:igShowStackToolWindow, [:pointer], :void],
|
2998
3028
|
[:igShowStyleEditor, [:pointer], :void],
|
2999
3029
|
[:igShowStyleSelector, [:pointer], :bool],
|
3000
3030
|
[:igShowUserGuide, [], :void],
|
@@ -3015,6 +3045,7 @@ module ImGui
|
|
3015
3045
|
[:igStyleColorsDark, [:pointer], :void],
|
3016
3046
|
[:igStyleColorsLight, [:pointer], :void],
|
3017
3047
|
[:igTabItemButton, [:pointer, :int], :bool],
|
3048
|
+
[:igTableAngledHeadersRow, [], :void],
|
3018
3049
|
[:igTableGetColumnCount, [], :int],
|
3019
3050
|
[:igTableGetColumnFlags, [:int], :int],
|
3020
3051
|
[:igTableGetColumnIndex, [], :int],
|
@@ -3095,30 +3126,24 @@ module ImGui
|
|
3095
3126
|
# Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin().
|
3096
3127
|
# - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting
|
3097
3128
|
# anything to the window. Always call a matching End() for each Begin() call, regardless of its return value!
|
3098
|
-
# [Important: due to legacy reason,
|
3099
|
-
# BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding
|
3100
|
-
# returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
|
3129
|
+
# [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions
|
3130
|
+
# such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding
|
3131
|
+
# BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
|
3101
3132
|
# - Note that the bottom of window stack always contains a window called "Debug".
|
3102
3133
|
def self.Begin(name, p_open = nil, flags = 0)
|
3103
3134
|
igBegin(name, p_open, flags)
|
3104
3135
|
end
|
3105
3136
|
|
3106
|
-
# arg: str_id(const char*), size(ImVec2),
|
3137
|
+
# arg: str_id(const char*), size(ImVec2), child_flags(ImGuiChildFlags), window_flags(ImGuiWindowFlags)
|
3107
3138
|
# ret: bool
|
3108
|
-
def self.BeginChild_Str(str_id, size = ImVec2.create(0,0),
|
3109
|
-
igBeginChild_Str(str_id, size,
|
3139
|
+
def self.BeginChild_Str(str_id, size = ImVec2.create(0,0), child_flags = 0, window_flags = 0)
|
3140
|
+
igBeginChild_Str(str_id, size, child_flags, window_flags)
|
3110
3141
|
end
|
3111
3142
|
|
3112
|
-
# arg: id(ImGuiID), size(ImVec2),
|
3143
|
+
# arg: id(ImGuiID), size(ImVec2), child_flags(ImGuiChildFlags), window_flags(ImGuiWindowFlags)
|
3113
3144
|
# ret: bool
|
3114
|
-
def self.BeginChild_ID(id, size = ImVec2.create(0,0),
|
3115
|
-
igBeginChild_ID(id, size,
|
3116
|
-
end
|
3117
|
-
|
3118
|
-
# arg: id(ImGuiID), size(ImVec2), flags(ImGuiWindowFlags)
|
3119
|
-
# ret: bool
|
3120
|
-
def self.BeginChildFrame(id, size, flags = 0) # helper to create a child window / scrolling region that looks like a normal widget frame
|
3121
|
-
igBeginChildFrame(id, size, flags)
|
3145
|
+
def self.BeginChild_ID(id, size = ImVec2.create(0,0), child_flags = 0, window_flags = 0)
|
3146
|
+
igBeginChild_ID(id, size, child_flags, window_flags)
|
3122
3147
|
end
|
3123
3148
|
|
3124
3149
|
# arg: label(const char*), preview_value(const char*), flags(ImGuiComboFlags)
|
@@ -3167,9 +3192,9 @@ module ImGui
|
|
3167
3192
|
# ret: bool
|
3168
3193
|
#
|
3169
3194
|
# Tooltips: helpers for showing a tooltip when hovering an item
|
3170
|
-
# - BeginItemTooltip() is a shortcut for the 'if (IsItemHovered(
|
3171
|
-
# - SetItemTooltip() is a shortcut for the 'if (IsItemHovered(
|
3172
|
-
# - Where '
|
3195
|
+
# - BeginItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_ForTooltip) && BeginTooltip())' idiom.
|
3196
|
+
# - SetItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_ForTooltip)) { SetTooltip(...); }' idiom.
|
3197
|
+
# - Where 'ImGuiHoveredFlags_ForTooltip' itself is a shortcut to use 'style.HoverFlagsForTooltipMouse' or 'style.HoverFlagsForTooltipNav' depending on active input type. For mouse it defaults to 'ImGuiHoveredFlags_Stationary | ImGuiHoveredFlags_DelayShort'.
|
3173
3198
|
def self.BeginItemTooltip() # begin/append a tooltip window if preceding item was hovered.
|
3174
3199
|
igBeginItemTooltip()
|
3175
3200
|
end
|
@@ -3178,8 +3203,8 @@ module ImGui
|
|
3178
3203
|
# ret: bool
|
3179
3204
|
#
|
3180
3205
|
# Widgets: List Boxes
|
3181
|
-
# - This is essentially a thin wrapper to using BeginChild/EndChild with
|
3182
|
-
# -
|
3206
|
+
# - This is essentially a thin wrapper to using BeginChild/EndChild with the ImGuiChildFlags_FrameStyle flag for stylistic changes + displaying a label.
|
3207
|
+
# - You can submit contents and manage your selection state however you want it, by creating e.g. Selectable() or any other items.
|
3183
3208
|
# - The simplified/old ListBox() api are helpers over BeginListBox()/EndListBox() which are kept available for convenience purpose. This is analoguous to how Combos are created.
|
3184
3209
|
# - Choose frame width: size.x > 0.0f: custom / size.x < 0.0f or -FLT_MIN: right-align / size.x = 0.0f (default): use current ItemWidth
|
3185
3210
|
# - Choose frame height: size.y > 0.0f: custom / size.y < 0.0f or -FLT_MIN: bottom-align / size.y = 0.0f (default): arbitrary default height which can fit ~7 items
|
@@ -3457,10 +3482,10 @@ module ImGui
|
|
3457
3482
|
igCombo_Str(label, current_item, items_separated_by_zeros, popup_max_height_in_items)
|
3458
3483
|
end
|
3459
3484
|
|
3460
|
-
# arg: label(const char*), current_item(int*),
|
3485
|
+
# arg: label(const char*), current_item(int*), getter(const char*(*)(void* user_data,int idx)), user_data(void*), items_count(int), popup_max_height_in_items(int)
|
3461
3486
|
# ret: bool
|
3462
|
-
def self.
|
3463
|
-
|
3487
|
+
def self.Combo_FnStrPtr(label, current_item, getter, user_data, items_count, popup_max_height_in_items = -1)
|
3488
|
+
igCombo_FnStrPtr(label, current_item, getter, user_data, items_count, popup_max_height_in_items)
|
3464
3489
|
end
|
3465
3490
|
|
3466
3491
|
# arg: shared_font_atlas(ImFontAtlas*)
|
@@ -3595,11 +3620,6 @@ module ImGui
|
|
3595
3620
|
igEndChild()
|
3596
3621
|
end
|
3597
3622
|
|
3598
|
-
# ret: void
|
3599
|
-
def self.EndChildFrame() # always call EndChildFrame() regardless of BeginChildFrame() return values (which indicates a collapsed/clipped window)
|
3600
|
-
igEndChildFrame()
|
3601
|
-
end
|
3602
|
-
|
3603
3623
|
# ret: void
|
3604
3624
|
def self.EndCombo() # only call EndCombo() if BeginCombo() returns true!
|
3605
3625
|
igEndCombo()
|
@@ -3760,38 +3780,47 @@ module ImGui
|
|
3760
3780
|
end
|
3761
3781
|
|
3762
3782
|
# ret: void
|
3763
|
-
def self.GetCursorPos() # cursor position in window coordinates (relative to window position)
|
3783
|
+
def self.GetCursorPos() # [window-local] cursor position in window coordinates (relative to window position)
|
3764
3784
|
pOut = ImVec2.new
|
3765
3785
|
igGetCursorPos(pOut)
|
3766
3786
|
return pOut
|
3767
3787
|
end
|
3768
3788
|
|
3769
3789
|
# ret: float
|
3770
|
-
def self.GetCursorPosX() #
|
3790
|
+
def self.GetCursorPosX() # [window-local] "
|
3771
3791
|
igGetCursorPosX()
|
3772
3792
|
end
|
3773
3793
|
|
3774
3794
|
# ret: float
|
3775
|
-
def self.GetCursorPosY() #
|
3795
|
+
def self.GetCursorPosY() # [window-local] "
|
3776
3796
|
igGetCursorPosY()
|
3777
3797
|
end
|
3778
3798
|
|
3779
3799
|
# ret: void
|
3780
|
-
|
3800
|
+
#
|
3801
|
+
# Layout cursor positioning
|
3802
|
+
# - By "cursor" we mean the current output position.
|
3803
|
+
# - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down.
|
3804
|
+
# - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceding widget.
|
3805
|
+
# - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API:
|
3806
|
+
# - Absolute coordinate: GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions. -> this is the preferred way forward.
|
3807
|
+
# - Window-local coordinates: SameLine(), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), GetContentRegionMax(), GetWindowContentRegion*(), PushTextWrapPos()
|
3808
|
+
# - GetCursorScreenPos() = GetCursorPos() + GetWindowPos(). GetWindowPos() is almost only ever useful to convert from window-local to absolute coordinates.
|
3809
|
+
def self.GetCursorScreenPos() # cursor position in absolute coordinates (prefer using this, also more useful to work with ImDrawList API).
|
3781
3810
|
pOut = ImVec2.new
|
3782
3811
|
igGetCursorScreenPos(pOut)
|
3783
3812
|
return pOut
|
3784
3813
|
end
|
3785
3814
|
|
3786
3815
|
# ret: void
|
3787
|
-
def self.GetCursorStartPos() # initial cursor position in window coordinates
|
3816
|
+
def self.GetCursorStartPos() # [window-local] initial cursor position, in window coordinates
|
3788
3817
|
pOut = ImVec2.new
|
3789
3818
|
igGetCursorStartPos(pOut)
|
3790
3819
|
return pOut
|
3791
3820
|
end
|
3792
3821
|
|
3793
3822
|
# ret: pointer
|
3794
|
-
def self.GetDragDropPayload() # peek directly into the current payload from anywhere.
|
3823
|
+
def self.GetDragDropPayload() # peek directly into the current payload from anywhere. returns NULL when drag and drop is finished or inactive. use ImGuiPayload::IsDataType() to test for the payload type.
|
3795
3824
|
igGetDragDropPayload()
|
3796
3825
|
end
|
3797
3826
|
|
@@ -4053,14 +4082,14 @@ module ImGui
|
|
4053
4082
|
end
|
4054
4083
|
|
4055
4084
|
# ret: void
|
4056
|
-
def self.GetWindowPos() # get current window position in screen space (note: it is unlikely you need to use this. Consider using current layout pos instead,
|
4085
|
+
def self.GetWindowPos() # get current window position in screen space (note: it is unlikely you need to use this. Consider using current layout pos instead, GetCursorScreenPos())
|
4057
4086
|
pOut = ImVec2.new
|
4058
4087
|
igGetWindowPos(pOut)
|
4059
4088
|
return pOut
|
4060
4089
|
end
|
4061
4090
|
|
4062
4091
|
# ret: void
|
4063
|
-
def self.GetWindowSize() # get current window size (note: it is unlikely you need to use this. Consider using
|
4092
|
+
def self.GetWindowSize() # get current window size (note: it is unlikely you need to use this. Consider using GetCursorScreenPos() and e.g. GetContentRegionAvail() instead)
|
4064
4093
|
pOut = ImVec2.new
|
4065
4094
|
igGetWindowSize(pOut)
|
4066
4095
|
return pOut
|
@@ -4076,14 +4105,15 @@ module ImGui
|
|
4076
4105
|
#
|
4077
4106
|
# Widgets: Images
|
4078
4107
|
# - Read about ImTextureID here: https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples
|
4108
|
+
# - Note that ImageButton() adds style.FramePadding*2.0f to provided size. This is in order to facilitate fitting an image in a button.
|
4079
4109
|
def self.Image(user_texture_id, size, uv0 = ImVec2.create(0,0), uv1 = ImVec2.create(1,1), tint_col = ImVec4.create(1,1,1,1), border_col = ImVec4.create(0,0,0,0)) # Implied uv0 = ImVec2(0, 0), uv1 = ImVec2(1, 1), tint_col = ImVec4(1, 1, 1, 1), border_col = ImVec4(0, 0, 0, 0)
|
4080
4110
|
igImage(user_texture_id, size, uv0, uv1, tint_col, border_col)
|
4081
4111
|
end
|
4082
4112
|
|
4083
|
-
# arg: str_id(const char*), user_texture_id(ImTextureID),
|
4113
|
+
# arg: str_id(const char*), user_texture_id(ImTextureID), image_size(ImVec2), uv0(ImVec2), uv1(ImVec2), bg_col(ImVec4), tint_col(ImVec4)
|
4084
4114
|
# ret: bool
|
4085
|
-
def self.ImageButton(str_id, user_texture_id,
|
4086
|
-
igImageButton(str_id, user_texture_id,
|
4115
|
+
def self.ImageButton(str_id, user_texture_id, image_size, uv0 = ImVec2.create(0,0), uv1 = ImVec2.create(1,1), bg_col = ImVec4.create(0,0,0,0), tint_col = ImVec4.create(1,1,1,1)) # Implied uv0 = ImVec2(0, 0), uv1 = ImVec2(1, 1), bg_col = ImVec4(0, 0, 0, 0), tint_col = ImVec4(1, 1, 1, 1)
|
4116
|
+
igImageButton(str_id, user_texture_id, image_size, uv0, uv1, bg_col, tint_col)
|
4087
4117
|
end
|
4088
4118
|
|
4089
4119
|
# arg: indent_w(float)
|
@@ -4262,6 +4292,12 @@ module ImGui
|
|
4262
4292
|
igIsItemVisible()
|
4263
4293
|
end
|
4264
4294
|
|
4295
|
+
# arg: key_chord(ImGuiKeyChord)
|
4296
|
+
# ret: bool
|
4297
|
+
def self.IsKeyChordPressed(key_chord) # was key chord (mods + key) pressed, e.g. you can pass 'ImGuiMod_Ctrl | ImGuiKey_S' as a key-chord. This doesn't do any routing or focus check, please consider using Shortcut() function instead.
|
4298
|
+
igIsKeyChordPressed(key_chord)
|
4299
|
+
end
|
4300
|
+
|
4265
4301
|
# arg: key(ImGuiKey)
|
4266
4302
|
# ret: bool
|
4267
4303
|
#
|
@@ -4377,7 +4413,7 @@ module ImGui
|
|
4377
4413
|
|
4378
4414
|
# arg: flags(ImGuiHoveredFlags)
|
4379
4415
|
# ret: bool
|
4380
|
-
def self.IsWindowHovered(flags = 0) # is current window hovered
|
4416
|
+
def self.IsWindowHovered(flags = 0) # is current window hovered and hoverable (e.g. not blocked by a popup/modal)? See ImGuiHoveredFlags_ for options. IMPORTANT: If you are trying to check whether your mouse should be dispatched to Dear ImGui or to your underlying app, you should not use this function! Use the 'io.WantCaptureMouse' boolean for that! Refer to FAQ entry "How can I tell whether to dispatch mouse/keyboard to Dear ImGui or my application?" for details.
|
4381
4417
|
igIsWindowHovered(flags)
|
4382
4418
|
end
|
4383
4419
|
|
@@ -4393,10 +4429,10 @@ module ImGui
|
|
4393
4429
|
igListBox_Str_arr(label, current_item, items, items_count, height_in_items)
|
4394
4430
|
end
|
4395
4431
|
|
4396
|
-
# arg: label(const char*), current_item(int*),
|
4432
|
+
# arg: label(const char*), current_item(int*), getter(const char*(*)(void* user_data,int idx)), user_data(void*), items_count(int), height_in_items(int)
|
4397
4433
|
# ret: bool
|
4398
|
-
def self.
|
4399
|
-
|
4434
|
+
def self.ListBox_FnStrPtr(label, current_item, getter, user_data, items_count, height_in_items = -1)
|
4435
|
+
igListBox_FnStrPtr(label, current_item, getter, user_data, items_count, height_in_items)
|
4400
4436
|
end
|
4401
4437
|
|
4402
4438
|
# arg: ini_filename(const char*)
|
@@ -4733,13 +4769,7 @@ module ImGui
|
|
4733
4769
|
|
4734
4770
|
# ret: void
|
4735
4771
|
#
|
4736
|
-
#
|
4737
|
-
# - By "cursor" we mean the current output position.
|
4738
|
-
# - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down.
|
4739
|
-
# - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceding widget.
|
4740
|
-
# - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API:
|
4741
|
-
# Window-local coordinates: SameLine(), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), GetContentRegionMax(), GetWindowContentRegion*(), PushTextWrapPos()
|
4742
|
-
# Absolute coordinate: GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions.
|
4772
|
+
# Other layout functions
|
4743
4773
|
def self.Separator() # separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator.
|
4744
4774
|
igSeparator()
|
4745
4775
|
end
|
@@ -4793,19 +4823,19 @@ module ImGui
|
|
4793
4823
|
|
4794
4824
|
# arg: local_pos(ImVec2)
|
4795
4825
|
# ret: void
|
4796
|
-
def self.SetCursorPos(local_pos) #
|
4826
|
+
def self.SetCursorPos(local_pos) # [window-local] "
|
4797
4827
|
igSetCursorPos(local_pos)
|
4798
4828
|
end
|
4799
4829
|
|
4800
4830
|
# arg: local_x(float)
|
4801
4831
|
# ret: void
|
4802
|
-
def self.SetCursorPosX(local_x) #
|
4832
|
+
def self.SetCursorPosX(local_x) # [window-local] "
|
4803
4833
|
igSetCursorPosX(local_x)
|
4804
4834
|
end
|
4805
4835
|
|
4806
4836
|
# arg: local_y(float)
|
4807
4837
|
# ret: void
|
4808
|
-
def self.SetCursorPosY(local_y) #
|
4838
|
+
def self.SetCursorPosY(local_y) # [window-local] "
|
4809
4839
|
igSetCursorPosY(local_y)
|
4810
4840
|
end
|
4811
4841
|
|
@@ -4924,7 +4954,7 @@ module ImGui
|
|
4924
4954
|
|
4925
4955
|
# arg: size_min(ImVec2), size_max(ImVec2), custom_callback(ImGuiSizeCallback), custom_callback_data(void*)
|
4926
4956
|
# ret: void
|
4927
|
-
def self.SetNextWindowSizeConstraints(size_min, size_max, custom_callback = nil, custom_callback_data = nil) # set next window size limits. use -1
|
4957
|
+
def self.SetNextWindowSizeConstraints(size_min, size_max, custom_callback = nil, custom_callback_data = nil) # set next window size limits. use 0.0f or FLT_MAX if you don't want limits. Use -1 for both min and max of same axis to preserve current size (which itself is a constraint). Use callback to apply non-trivial programmatic constraints.
|
4928
4958
|
igSetNextWindowSizeConstraints(size_min, size_max, custom_callback, custom_callback_data)
|
4929
4959
|
end
|
4930
4960
|
|
@@ -5063,14 +5093,14 @@ module ImGui
|
|
5063
5093
|
|
5064
5094
|
# arg: p_open(bool*)
|
5065
5095
|
# ret: void
|
5066
|
-
def self.
|
5067
|
-
|
5096
|
+
def self.ShowIDStackToolWindow(p_open = nil) # Implied p_open = NULL
|
5097
|
+
igShowIDStackToolWindow(p_open)
|
5068
5098
|
end
|
5069
5099
|
|
5070
5100
|
# arg: p_open(bool*)
|
5071
5101
|
# ret: void
|
5072
|
-
def self.
|
5073
|
-
|
5102
|
+
def self.ShowMetricsWindow(p_open = nil) # create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc.
|
5103
|
+
igShowMetricsWindow(p_open)
|
5074
5104
|
end
|
5075
5105
|
|
5076
5106
|
# arg: ref(ImGuiStyle*)
|
@@ -5165,7 +5195,7 @@ module ImGui
|
|
5165
5195
|
|
5166
5196
|
# arg: label(const char*)
|
5167
5197
|
# ret: bool
|
5168
|
-
def self.SmallButton(label) # button with FramePadding
|
5198
|
+
def self.SmallButton(label) # button with (FramePadding.y == 0) to easily embed within text
|
5169
5199
|
igSmallButton(label)
|
5170
5200
|
end
|
5171
5201
|
|
@@ -5200,6 +5230,11 @@ module ImGui
|
|
5200
5230
|
igTabItemButton(label, flags)
|
5201
5231
|
end
|
5202
5232
|
|
5233
|
+
# ret: void
|
5234
|
+
def self.TableAngledHeadersRow() # submit a row with angled headers for every column with the ImGuiTableColumnFlags_AngledHeader flag. MUST BE FIRST ROW.
|
5235
|
+
igTableAngledHeadersRow()
|
5236
|
+
end
|
5237
|
+
|
5203
5238
|
# ret: int
|
5204
5239
|
def self.TableGetColumnCount() # return number of columns (value passed to BeginTable)
|
5205
5240
|
igTableGetColumnCount()
|
@@ -5246,7 +5281,7 @@ module ImGui
|
|
5246
5281
|
end
|
5247
5282
|
|
5248
5283
|
# ret: void
|
5249
|
-
def self.TableHeadersRow() # submit
|
5284
|
+
def self.TableHeadersRow() # submit a row with headers cells based on data provided to TableSetupColumn() + submit context menu
|
5250
5285
|
igTableHeadersRow()
|
5251
5286
|
end
|
5252
5287
|
|
@@ -5438,19 +5473,29 @@ module ImGui
|
|
5438
5473
|
#
|
5439
5474
|
# Child Windows
|
5440
5475
|
# - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child.
|
5441
|
-
# -
|
5442
|
-
#
|
5443
|
-
#
|
5444
|
-
#
|
5445
|
-
#
|
5446
|
-
#
|
5476
|
+
# - Before 1.90 (November 2023), the "ImGuiChildFlags child_flags = 0" parameter was "bool border = false".
|
5477
|
+
# This API is backward compatible with old code, as we guarantee that ImGuiChildFlags_Border == true.
|
5478
|
+
# Consider updating your old call sites:
|
5479
|
+
# BeginChild("Name", size, false) -> Begin("Name", size, 0); or Begin("Name", size, ImGuiChildFlags_None);
|
5480
|
+
# BeginChild("Name", size, true) -> Begin("Name", size, ImGuiChildFlags_Border);
|
5481
|
+
# - Manual sizing (each axis can use a different setting e.g. ImVec2(0.0f, 400.0f)):
|
5482
|
+
# == 0.0f: use remaining parent window size for this axis.
|
5483
|
+
# > 0.0f: use specified size for this axis.
|
5484
|
+
# < 0.0f: right/bottom-align to specified distance from available content boundaries.
|
5485
|
+
# - Specifying ImGuiChildFlags_AutoResizeX or ImGuiChildFlags_AutoResizeY makes the sizing automatic based on child contents.
|
5486
|
+
# Combining both ImGuiChildFlags_AutoResizeX _and_ ImGuiChildFlags_AutoResizeY defeats purpose of a scrolling region and is NOT recommended.
|
5487
|
+
# - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting
|
5488
|
+
# anything to the window. Always call a matching EndChild() for each BeginChild() call, regardless of its return value.
|
5489
|
+
# [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions
|
5490
|
+
# such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding
|
5491
|
+
# BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
|
5447
5492
|
def self.BeginChild(*arg)
|
5448
|
-
# arg: 0:str_id(const char*), 1:size(ImVec2), 2:
|
5493
|
+
# arg: 0:str_id(const char*), 1:size(ImVec2), 2:child_flags(ImGuiChildFlags), 3:window_flags(ImGuiWindowFlags)
|
5449
5494
|
# ret: bool
|
5450
|
-
return igBeginChild_Str(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) &&
|
5451
|
-
# arg: 0:id(ImGuiID), 1:size(ImVec2), 2:
|
5495
|
+
return igBeginChild_Str(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
|
5496
|
+
# arg: 0:id(ImGuiID), 1:size(ImVec2), 2:child_flags(ImGuiChildFlags), 3:window_flags(ImGuiWindowFlags)
|
5452
5497
|
# ret: bool
|
5453
|
-
return igBeginChild_ID(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) &&
|
5498
|
+
return igBeginChild_ID(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
|
5454
5499
|
$stderr.puts("[Warning] BeginChild : No matching functions found (#{arg})")
|
5455
5500
|
end
|
5456
5501
|
|
@@ -5481,9 +5526,9 @@ module ImGui
|
|
5481
5526
|
# arg: 0:label(const char*), 1:current_item(int*), 2:items_separated_by_zeros(const char*), 3:popup_max_height_in_items(int)
|
5482
5527
|
# ret: bool
|
5483
5528
|
return igCombo_Str(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer))
|
5484
|
-
# arg: 0:label(const char*), 1:current_item(int*), 2:
|
5529
|
+
# arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char*(*)(void* user_data,int idx)), 3:user_data(void*), 4:items_count(int), 5:popup_max_height_in_items(int)
|
5485
5530
|
# ret: bool
|
5486
|
-
return
|
5531
|
+
return igCombo_FnStrPtr(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
|
5487
5532
|
$stderr.puts("[Warning] Combo : No matching functions found (#{arg})")
|
5488
5533
|
end
|
5489
5534
|
|
@@ -5527,9 +5572,9 @@ module ImGui
|
|
5527
5572
|
# arg: 0:label(const char*), 1:current_item(int*), 2:items(const char* const[]), 3:items_count(int), 4:height_in_items(int)
|
5528
5573
|
# ret: bool
|
5529
5574
|
return igListBox_Str_arr(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
|
5530
|
-
# arg: 0:label(const char*), 1:current_item(int*), 2:
|
5575
|
+
# arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char*(*)(void* user_data,int idx)), 3:user_data(void*), 4:items_count(int), 5:height_in_items(int)
|
5531
5576
|
# ret: bool
|
5532
|
-
return
|
5577
|
+
return igListBox_FnStrPtr(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
|
5533
5578
|
$stderr.puts("[Warning] ListBox : No matching functions found (#{arg})")
|
5534
5579
|
end
|
5535
5580
|
|