imgui-bindings 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/imgui.rb CHANGED
@@ -9,6 +9,7 @@ require 'ffi'
9
9
  FFI.typedef :int, :ImDrawFlags
10
10
  FFI.typedef :ushort, :ImDrawIdx
11
11
  FFI.typedef :int, :ImDrawListFlags
12
+ FFI.typedef :pointer, :ImDrawListSharedData
12
13
  FFI.typedef :int, :ImFontAtlasFlags
13
14
  FFI.typedef :int, :ImGuiBackendFlags
14
15
  FFI.typedef :int, :ImGuiButtonFlags
@@ -24,13 +25,11 @@ FFI.typedef :int, :ImGuiFocusedFlags
24
25
  FFI.typedef :int, :ImGuiHoveredFlags
25
26
  FFI.typedef :uint, :ImGuiID
26
27
  FFI.typedef :int, :ImGuiInputTextFlags
27
- FFI.typedef :int, :ImGuiKey
28
+ FFI.typedef :int, :ImGuiKeyChord
28
29
  FFI.typedef :pointer, :ImGuiMemAllocFunc
29
30
  FFI.typedef :pointer, :ImGuiMemFreeFunc
30
- FFI.typedef :int, :ImGuiModFlags
31
31
  FFI.typedef :int, :ImGuiMouseButton
32
32
  FFI.typedef :int, :ImGuiMouseCursor
33
- FFI.typedef :int, :ImGuiNavInput
34
33
  FFI.typedef :int, :ImGuiPopupFlags
35
34
  FFI.typedef :int, :ImGuiSelectableFlags
36
35
  FFI.typedef :int, :ImGuiSliderFlags
@@ -57,655 +56,756 @@ FFI.typedef :uchar, :ImU8
57
56
  FFI.typedef :ushort, :ImWchar
58
57
  FFI.typedef :ushort, :ImWchar16
59
58
  FFI.typedef :uint, :ImWchar32
59
+ FFI.typedef :int, :ImGuiKey
60
60
 
61
61
  # ImDrawFlags_
62
- ImDrawFlags_None = 0 # 0
63
- ImDrawFlags_Closed = 1 # 1 << 0
64
- ImDrawFlags_RoundCornersTopLeft = 16 # 1 << 4
65
- ImDrawFlags_RoundCornersTopRight = 32 # 1 << 5
66
- ImDrawFlags_RoundCornersBottomLeft = 64 # 1 << 6
67
- ImDrawFlags_RoundCornersBottomRight = 128 # 1 << 7
68
- ImDrawFlags_RoundCornersNone = 256 # 1 << 8
69
- ImDrawFlags_RoundCornersTop = 48 # ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight
70
- ImDrawFlags_RoundCornersBottom = 192 # ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight
71
- ImDrawFlags_RoundCornersLeft = 80 # ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersTopLeft
72
- ImDrawFlags_RoundCornersRight = 160 # ImDrawFlags_RoundCornersBottomRight | ImDrawFlags_RoundCornersTopRight
73
- ImDrawFlags_RoundCornersAll = 240 # ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight | ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight
74
- ImDrawFlags_RoundCornersDefault_ = 240 # ImDrawFlags_RoundCornersAll
75
- ImDrawFlags_RoundCornersMask_ = 496 # ImDrawFlags_RoundCornersAll | ImDrawFlags_RoundCornersNone
62
+ # Flags for ImDrawList functions
63
+ # (Legacy: bit 0 must always correspond to ImDrawFlags_Closed to be backward compatible with old API using a bool. Bits 1..3 must be unused)
64
+ ImDrawFlags_None = 0 # 0
65
+ ImDrawFlags_Closed = 1 # 1 << 0 # PathStroke(), AddPolyline(): specify that shape should be closed (Important: this is always == 1 for legacy reason)
66
+ ImDrawFlags_RoundCornersTopLeft = 16 # 1 << 4 # AddRect(), AddRectFilled(), PathRect(): enable rounding top-left corner only (when rounding > 0.0f, we default to all corners). Was 0x01.
67
+ ImDrawFlags_RoundCornersTopRight = 32 # 1 << 5 # AddRect(), AddRectFilled(), PathRect(): enable rounding top-right corner only (when rounding > 0.0f, we default to all corners). Was 0x02.
68
+ ImDrawFlags_RoundCornersBottomLeft = 64 # 1 << 6 # AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-left corner only (when rounding > 0.0f, we default to all corners). Was 0x04.
69
+ ImDrawFlags_RoundCornersBottomRight = 128 # 1 << 7 # AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-right corner only (when rounding > 0.0f, we default to all corners). Wax 0x08.
70
+ ImDrawFlags_RoundCornersNone = 256 # 1 << 8 # AddRect(), AddRectFilled(), PathRect(): disable rounding on all corners (when rounding > 0.0f). This is NOT zero, NOT an implicit flag!
71
+ ImDrawFlags_RoundCornersTop = 48 # ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight
72
+ ImDrawFlags_RoundCornersBottom = 192 # ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight
73
+ ImDrawFlags_RoundCornersLeft = 80 # ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersTopLeft
74
+ ImDrawFlags_RoundCornersRight = 160 # ImDrawFlags_RoundCornersBottomRight | ImDrawFlags_RoundCornersTopRight
75
+ ImDrawFlags_RoundCornersAll = 240 # ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight | ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight
76
+ ImDrawFlags_RoundCornersDefault_ = 240 # ImDrawFlags_RoundCornersAll # Default to ALL corners if none of the _RoundCornersXX flags are specified.
77
+ ImDrawFlags_RoundCornersMask_ = 496 # ImDrawFlags_RoundCornersAll | ImDrawFlags_RoundCornersNone
76
78
 
77
79
  # ImDrawListFlags_
78
- ImDrawListFlags_None = 0 # 0
79
- ImDrawListFlags_AntiAliasedLines = 1 # 1 << 0
80
- ImDrawListFlags_AntiAliasedLinesUseTex = 2 # 1 << 1
81
- ImDrawListFlags_AntiAliasedFill = 4 # 1 << 2
82
- ImDrawListFlags_AllowVtxOffset = 8 # 1 << 3
80
+ # Flags for ImDrawList instance. Those are set automatically by ImGui:: functions from ImGuiIO settings, and generally not manipulated directly.
81
+ # It is however possible to temporarily alter flags between calls to ImDrawList:: functions.
82
+ ImDrawListFlags_None = 0 # 0
83
+ ImDrawListFlags_AntiAliasedLines = 1 # 1 << 0 # Enable anti-aliased lines/borders (*2 the number of triangles for 1.0f wide line or lines thin enough to be drawn using textures, otherwise *3 the number of triangles)
84
+ ImDrawListFlags_AntiAliasedLinesUseTex = 2 # 1 << 1 # Enable anti-aliased lines/borders using textures when possible. Require backend to render with bilinear filtering (NOT point/nearest filtering).
85
+ ImDrawListFlags_AntiAliasedFill = 4 # 1 << 2 # Enable anti-aliased edge around filled shapes (rounded rectangles, circles).
86
+ ImDrawListFlags_AllowVtxOffset = 8 # 1 << 3 # Can emit 'VtxOffset > 0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled.
83
87
 
84
88
  # ImFontAtlasFlags_
85
- ImFontAtlasFlags_None = 0 # 0
86
- ImFontAtlasFlags_NoPowerOfTwoHeight = 1 # 1 << 0
87
- ImFontAtlasFlags_NoMouseCursors = 2 # 1 << 1
88
- ImFontAtlasFlags_NoBakedLines = 4 # 1 << 2
89
+ # Flags for ImFontAtlas build
90
+ ImFontAtlasFlags_None = 0 # 0
91
+ ImFontAtlasFlags_NoPowerOfTwoHeight = 1 # 1 << 0 # Don't round the height to next power of two
92
+ ImFontAtlasFlags_NoMouseCursors = 2 # 1 << 1 # Don't build software mouse cursors into the atlas (save a little texture memory)
93
+ ImFontAtlasFlags_NoBakedLines = 4 # 1 << 2 # Don't build thick line textures into the atlas (save a little texture memory, allow support for point/nearest filtering). The AntiAliasedLinesUseTex features uses them, otherwise they will be rendered using polygons (more expensive for CPU/GPU).
89
94
 
90
95
  # ImGuiBackendFlags_
91
- ImGuiBackendFlags_None = 0 # 0
92
- ImGuiBackendFlags_HasGamepad = 1 # 1 << 0
93
- ImGuiBackendFlags_HasMouseCursors = 2 # 1 << 1
94
- ImGuiBackendFlags_HasSetMousePos = 4 # 1 << 2
95
- ImGuiBackendFlags_RendererHasVtxOffset = 8 # 1 << 3
96
+ # Backend capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom backend.
97
+ ImGuiBackendFlags_None = 0 # 0
98
+ ImGuiBackendFlags_HasGamepad = 1 # 1 << 0 # Backend Platform supports gamepad and currently has one connected.
99
+ ImGuiBackendFlags_HasMouseCursors = 2 # 1 << 1 # Backend Platform supports honoring GetMouseCursor() value to change the OS cursor shape.
100
+ ImGuiBackendFlags_HasSetMousePos = 4 # 1 << 2 # Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if ImGuiConfigFlags_NavEnableSetMousePos is set).
101
+ ImGuiBackendFlags_RendererHasVtxOffset = 8 # 1 << 3 # Backend Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices.
96
102
 
97
103
  # ImGuiButtonFlags_
98
- ImGuiButtonFlags_None = 0 # 0
99
- ImGuiButtonFlags_MouseButtonLeft = 1 # 1 << 0
100
- ImGuiButtonFlags_MouseButtonRight = 2 # 1 << 1
101
- ImGuiButtonFlags_MouseButtonMiddle = 4 # 1 << 2
102
- ImGuiButtonFlags_MouseButtonMask_ = 7 # ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle
104
+ # Flags for InvisibleButton() [extended in imgui_internal.h]
105
+ ImGuiButtonFlags_None = 0 # 0
106
+ ImGuiButtonFlags_MouseButtonLeft = 1 # 1 << 0 # React on left mouse button (default)
107
+ ImGuiButtonFlags_MouseButtonRight = 2 # 1 << 1 # React on right mouse button
108
+ ImGuiButtonFlags_MouseButtonMiddle = 4 # 1 << 2 # React on center mouse button
109
+ ImGuiButtonFlags_MouseButtonMask_ = 7 # ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle
103
110
  ImGuiButtonFlags_MouseButtonDefault_ = 1 # ImGuiButtonFlags_MouseButtonLeft
104
111
 
105
112
  # ImGuiCol_
106
- ImGuiCol_Text = 0 # 0
107
- ImGuiCol_TextDisabled = 1 # 1
108
- ImGuiCol_WindowBg = 2 # 2
109
- ImGuiCol_ChildBg = 3 # 3
110
- ImGuiCol_PopupBg = 4 # 4
111
- ImGuiCol_Border = 5 # 5
112
- ImGuiCol_BorderShadow = 6 # 6
113
- ImGuiCol_FrameBg = 7 # 7
114
- ImGuiCol_FrameBgHovered = 8 # 8
115
- ImGuiCol_FrameBgActive = 9 # 9
116
- ImGuiCol_TitleBg = 10 # 10
117
- ImGuiCol_TitleBgActive = 11 # 11
118
- ImGuiCol_TitleBgCollapsed = 12 # 12
119
- ImGuiCol_MenuBarBg = 13 # 13
120
- ImGuiCol_ScrollbarBg = 14 # 14
121
- ImGuiCol_ScrollbarGrab = 15 # 15
122
- ImGuiCol_ScrollbarGrabHovered = 16 # 16
123
- ImGuiCol_ScrollbarGrabActive = 17 # 17
124
- ImGuiCol_CheckMark = 18 # 18
125
- ImGuiCol_SliderGrab = 19 # 19
126
- ImGuiCol_SliderGrabActive = 20 # 20
127
- ImGuiCol_Button = 21 # 21
128
- ImGuiCol_ButtonHovered = 22 # 22
129
- ImGuiCol_ButtonActive = 23 # 23
130
- ImGuiCol_Header = 24 # 24
131
- ImGuiCol_HeaderHovered = 25 # 25
132
- ImGuiCol_HeaderActive = 26 # 26
133
- ImGuiCol_Separator = 27 # 27
134
- ImGuiCol_SeparatorHovered = 28 # 28
135
- ImGuiCol_SeparatorActive = 29 # 29
136
- ImGuiCol_ResizeGrip = 30 # 30
137
- ImGuiCol_ResizeGripHovered = 31 # 31
138
- ImGuiCol_ResizeGripActive = 32 # 32
139
- ImGuiCol_Tab = 33 # 33
140
- ImGuiCol_TabHovered = 34 # 34
141
- ImGuiCol_TabActive = 35 # 35
142
- ImGuiCol_TabUnfocused = 36 # 36
143
- ImGuiCol_TabUnfocusedActive = 37 # 37
144
- ImGuiCol_PlotLines = 38 # 38
145
- ImGuiCol_PlotLinesHovered = 39 # 39
146
- ImGuiCol_PlotHistogram = 40 # 40
147
- ImGuiCol_PlotHistogramHovered = 41 # 41
148
- ImGuiCol_TableHeaderBg = 42 # 42
149
- ImGuiCol_TableBorderStrong = 43 # 43
150
- ImGuiCol_TableBorderLight = 44 # 44
151
- ImGuiCol_TableRowBg = 45 # 45
152
- ImGuiCol_TableRowBgAlt = 46 # 46
153
- ImGuiCol_TextSelectedBg = 47 # 47
154
- ImGuiCol_DragDropTarget = 48 # 48
155
- ImGuiCol_NavHighlight = 49 # 49
156
- ImGuiCol_NavWindowingHighlight = 50 # 50
157
- ImGuiCol_NavWindowingDimBg = 51 # 51
158
- ImGuiCol_ModalWindowDimBg = 52 # 52
159
- ImGuiCol_COUNT = 53 # 53
113
+ # Enumeration for PushStyleColor() / PopStyleColor()
114
+ ImGuiCol_Text = 0 # 0
115
+ ImGuiCol_TextDisabled = 1 # 1
116
+ ImGuiCol_WindowBg = 2 # 2 # Background of normal windows
117
+ ImGuiCol_ChildBg = 3 # 3 # Background of child windows
118
+ ImGuiCol_PopupBg = 4 # 4 # Background of popups, menus, tooltips windows
119
+ ImGuiCol_Border = 5 # 5
120
+ ImGuiCol_BorderShadow = 6 # 6
121
+ ImGuiCol_FrameBg = 7 # 7 # Background of checkbox, radio button, plot, slider, text input
122
+ ImGuiCol_FrameBgHovered = 8 # 8
123
+ ImGuiCol_FrameBgActive = 9 # 9
124
+ ImGuiCol_TitleBg = 10 # 10
125
+ ImGuiCol_TitleBgActive = 11 # 11
126
+ ImGuiCol_TitleBgCollapsed = 12 # 12
127
+ ImGuiCol_MenuBarBg = 13 # 13
128
+ ImGuiCol_ScrollbarBg = 14 # 14
129
+ ImGuiCol_ScrollbarGrab = 15 # 15
130
+ ImGuiCol_ScrollbarGrabHovered = 16 # 16
131
+ ImGuiCol_ScrollbarGrabActive = 17 # 17
132
+ ImGuiCol_CheckMark = 18 # 18
133
+ ImGuiCol_SliderGrab = 19 # 19
134
+ ImGuiCol_SliderGrabActive = 20 # 20
135
+ ImGuiCol_Button = 21 # 21
136
+ ImGuiCol_ButtonHovered = 22 # 22
137
+ ImGuiCol_ButtonActive = 23 # 23
138
+ ImGuiCol_Header = 24 # 24 # Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem
139
+ ImGuiCol_HeaderHovered = 25 # 25
140
+ ImGuiCol_HeaderActive = 26 # 26
141
+ ImGuiCol_Separator = 27 # 27
142
+ ImGuiCol_SeparatorHovered = 28 # 28
143
+ ImGuiCol_SeparatorActive = 29 # 29
144
+ ImGuiCol_ResizeGrip = 30 # 30 # Resize grip in lower-right and lower-left corners of windows.
145
+ ImGuiCol_ResizeGripHovered = 31 # 31
146
+ ImGuiCol_ResizeGripActive = 32 # 32
147
+ ImGuiCol_Tab = 33 # 33 # TabItem in a TabBar
148
+ ImGuiCol_TabHovered = 34 # 34
149
+ ImGuiCol_TabActive = 35 # 35
150
+ ImGuiCol_TabUnfocused = 36 # 36
151
+ ImGuiCol_TabUnfocusedActive = 37 # 37
152
+ ImGuiCol_PlotLines = 38 # 38
153
+ ImGuiCol_PlotLinesHovered = 39 # 39
154
+ ImGuiCol_PlotHistogram = 40 # 40
155
+ ImGuiCol_PlotHistogramHovered = 41 # 41
156
+ ImGuiCol_TableHeaderBg = 42 # 42 # Table header background
157
+ ImGuiCol_TableBorderStrong = 43 # 43 # Table outer and header borders (prefer using Alpha=1.0 here)
158
+ ImGuiCol_TableBorderLight = 44 # 44 # Table inner borders (prefer using Alpha=1.0 here)
159
+ ImGuiCol_TableRowBg = 45 # 45 # Table row background (even rows)
160
+ ImGuiCol_TableRowBgAlt = 46 # 46 # Table row background (odd rows)
161
+ ImGuiCol_TextSelectedBg = 47 # 47
162
+ ImGuiCol_DragDropTarget = 48 # 48 # Rectangle highlighting a drop target
163
+ ImGuiCol_NavHighlight = 49 # 49 # Gamepad/keyboard: current highlighted item
164
+ ImGuiCol_NavWindowingHighlight = 50 # 50 # Highlight window when using CTRL+TAB
165
+ ImGuiCol_NavWindowingDimBg = 51 # 51 # Darken/colorize entire screen behind the CTRL+TAB window list, when active
166
+ ImGuiCol_ModalWindowDimBg = 52 # 52 # Darken/colorize entire screen behind a modal window, when one is active
167
+ ImGuiCol_COUNT = 53 # 53
160
168
 
161
169
  # ImGuiColorEditFlags_
162
- ImGuiColorEditFlags_None = 0 # 0
163
- ImGuiColorEditFlags_NoAlpha = 2 # 1 << 1
164
- ImGuiColorEditFlags_NoPicker = 4 # 1 << 2
165
- ImGuiColorEditFlags_NoOptions = 8 # 1 << 3
166
- ImGuiColorEditFlags_NoSmallPreview = 16 # 1 << 4
167
- ImGuiColorEditFlags_NoInputs = 32 # 1 << 5
168
- ImGuiColorEditFlags_NoTooltip = 64 # 1 << 6
169
- ImGuiColorEditFlags_NoLabel = 128 # 1 << 7
170
- ImGuiColorEditFlags_NoSidePreview = 256 # 1 << 8
171
- ImGuiColorEditFlags_NoDragDrop = 512 # 1 << 9
172
- ImGuiColorEditFlags_NoBorder = 1024 # 1 << 10
173
- ImGuiColorEditFlags_AlphaBar = 65536 # 1 << 16
174
- ImGuiColorEditFlags_AlphaPreview = 131072 # 1 << 17
175
- ImGuiColorEditFlags_AlphaPreviewHalf = 262144 # 1 << 18
176
- ImGuiColorEditFlags_HDR = 524288 # 1 << 19
177
- ImGuiColorEditFlags_DisplayRGB = 1048576 # 1 << 20
178
- ImGuiColorEditFlags_DisplayHSV = 2097152 # 1 << 21
179
- ImGuiColorEditFlags_DisplayHex = 4194304 # 1 << 22
180
- ImGuiColorEditFlags_Uint8 = 8388608 # 1 << 23
181
- ImGuiColorEditFlags_Float = 16777216 # 1 << 24
182
- ImGuiColorEditFlags_PickerHueBar = 33554432 # 1 << 25
183
- ImGuiColorEditFlags_PickerHueWheel = 67108864 # 1 << 26
184
- ImGuiColorEditFlags_InputRGB = 134217728 # 1 << 27
185
- ImGuiColorEditFlags_InputHSV = 268435456 # 1 << 28
170
+ # Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton()
171
+ ImGuiColorEditFlags_None = 0 # 0
172
+ ImGuiColorEditFlags_NoAlpha = 2 # 1 << 1 # // ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer).
173
+ ImGuiColorEditFlags_NoPicker = 4 # 1 << 2 # // ColorEdit: disable picker when clicking on color square.
174
+ ImGuiColorEditFlags_NoOptions = 8 # 1 << 3 # // ColorEdit: disable toggling options menu when right-clicking on inputs/small preview.
175
+ ImGuiColorEditFlags_NoSmallPreview = 16 # 1 << 4 # // ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)
176
+ ImGuiColorEditFlags_NoInputs = 32 # 1 << 5 # // ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square).
177
+ ImGuiColorEditFlags_NoTooltip = 64 # 1 << 6 # // ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview.
178
+ ImGuiColorEditFlags_NoLabel = 128 # 1 << 7 # // ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker).
179
+ ImGuiColorEditFlags_NoSidePreview = 256 # 1 << 8 # // ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead.
180
+ ImGuiColorEditFlags_NoDragDrop = 512 # 1 << 9 # // ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source.
181
+ ImGuiColorEditFlags_NoBorder = 1024 # 1 << 10 # // ColorButton: disable border (which is enforced by default)
182
+ ImGuiColorEditFlags_AlphaBar = 65536 # 1 << 16 # // ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.
183
+ ImGuiColorEditFlags_AlphaPreview = 131072 # 1 << 17 # // ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque.
184
+ ImGuiColorEditFlags_AlphaPreviewHalf = 262144 # 1 << 18 # // ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque.
185
+ ImGuiColorEditFlags_HDR = 524288 # 1 << 19 # // (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well).
186
+ ImGuiColorEditFlags_DisplayRGB = 1048576 # 1 << 20 # [Display] // ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex.
187
+ ImGuiColorEditFlags_DisplayHSV = 2097152 # 1 << 21 # [Display] // "
188
+ ImGuiColorEditFlags_DisplayHex = 4194304 # 1 << 22 # [Display] // "
189
+ ImGuiColorEditFlags_Uint8 = 8388608 # 1 << 23 # [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.
190
+ ImGuiColorEditFlags_Float = 16777216 # 1 << 24 # [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers.
191
+ ImGuiColorEditFlags_PickerHueBar = 33554432 # 1 << 25 # [Picker] // ColorPicker: bar for Hue, rectangle for Sat/Value.
192
+ ImGuiColorEditFlags_PickerHueWheel = 67108864 # 1 << 26 # [Picker] // ColorPicker: wheel for Hue, triangle for Sat/Value.
193
+ ImGuiColorEditFlags_InputRGB = 134217728 # 1 << 27 # [Input] // ColorEdit, ColorPicker: input and output data in RGB format.
194
+ ImGuiColorEditFlags_InputHSV = 268435456 # 1 << 28 # [Input] // ColorEdit, ColorPicker: input and output data in HSV format.
186
195
  ImGuiColorEditFlags_DefaultOptions_ = 177209344 # ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar
187
- ImGuiColorEditFlags_DisplayMask_ = 7340032 # ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex
188
- ImGuiColorEditFlags_DataTypeMask_ = 25165824 # ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float
189
- ImGuiColorEditFlags_PickerMask_ = 100663296 # ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar
190
- ImGuiColorEditFlags_InputMask_ = 402653184 # ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_InputHSV
196
+ ImGuiColorEditFlags_DisplayMask_ = 7340032 # ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex
197
+ ImGuiColorEditFlags_DataTypeMask_ = 25165824 # ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float
198
+ ImGuiColorEditFlags_PickerMask_ = 100663296 # ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar
199
+ ImGuiColorEditFlags_InputMask_ = 402653184 # ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_InputHSV
191
200
 
192
201
  # ImGuiComboFlags_
193
- ImGuiComboFlags_None = 0 # 0
194
- ImGuiComboFlags_PopupAlignLeft = 1 # 1 << 0
195
- ImGuiComboFlags_HeightSmall = 2 # 1 << 1
196
- ImGuiComboFlags_HeightRegular = 4 # 1 << 2
197
- ImGuiComboFlags_HeightLarge = 8 # 1 << 3
198
- ImGuiComboFlags_HeightLargest = 16 # 1 << 4
199
- ImGuiComboFlags_NoArrowButton = 32 # 1 << 5
200
- ImGuiComboFlags_NoPreview = 64 # 1 << 6
201
- ImGuiComboFlags_HeightMask_ = 30 # ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest
202
+ # Flags for ImGui::BeginCombo()
203
+ ImGuiComboFlags_None = 0 # 0
204
+ ImGuiComboFlags_PopupAlignLeft = 1 # 1 << 0 # Align the popup toward the left by default
205
+ 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()
206
+ ImGuiComboFlags_HeightRegular = 4 # 1 << 2 # Max ~8 items visible (default)
207
+ ImGuiComboFlags_HeightLarge = 8 # 1 << 3 # Max ~20 items visible
208
+ ImGuiComboFlags_HeightLargest = 16 # 1 << 4 # As many fitting items as possible
209
+ ImGuiComboFlags_NoArrowButton = 32 # 1 << 5 # Display on the preview box without the square arrow button
210
+ ImGuiComboFlags_NoPreview = 64 # 1 << 6 # Display only a square arrow button
211
+ ImGuiComboFlags_HeightMask_ = 30 # ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest
202
212
 
203
213
  # ImGuiCond_
204
- ImGuiCond_None = 0 # 0
205
- ImGuiCond_Always = 1 # 1 << 0
206
- ImGuiCond_Once = 2 # 1 << 1
207
- ImGuiCond_FirstUseEver = 4 # 1 << 2
208
- ImGuiCond_Appearing = 8 # 1 << 3
214
+ # Enumeration for ImGui::SetWindow***(), SetNextWindow***(), SetNextItem***() functions
215
+ # Represent a condition.
216
+ # Important: Treat as a regular enum! Do NOT combine multiple values using binary operators! All the functions above treat 0 as a shortcut to ImGuiCond_Always.
217
+ ImGuiCond_None = 0 # 0 # No condition (always set the variable), same as _Always
218
+ ImGuiCond_Always = 1 # 1 << 0 # No condition (always set the variable), same as _None
219
+ ImGuiCond_Once = 2 # 1 << 1 # Set the variable once per runtime session (only the first call will succeed)
220
+ ImGuiCond_FirstUseEver = 4 # 1 << 2 # Set the variable if the object/window has no persistently saved data (no entry in .ini file)
221
+ ImGuiCond_Appearing = 8 # 1 << 3 # Set the variable if the object/window is appearing after being hidden/inactive (or the first time)
209
222
 
210
223
  # ImGuiConfigFlags_
211
- ImGuiConfigFlags_None = 0 # 0
212
- ImGuiConfigFlags_NavEnableKeyboard = 1 # 1 << 0
213
- ImGuiConfigFlags_NavEnableGamepad = 2 # 1 << 1
214
- ImGuiConfigFlags_NavEnableSetMousePos = 4 # 1 << 2
215
- ImGuiConfigFlags_NavNoCaptureKeyboard = 8 # 1 << 3
216
- ImGuiConfigFlags_NoMouse = 16 # 1 << 4
217
- ImGuiConfigFlags_NoMouseCursorChange = 32 # 1 << 5
218
- ImGuiConfigFlags_IsSRGB = 1048576 # 1 << 20
219
- ImGuiConfigFlags_IsTouchScreen = 2097152 # 1 << 21
224
+ # Configuration flags stored in io.ConfigFlags. Set by user/application.
225
+ ImGuiConfigFlags_None = 0 # 0
226
+ ImGuiConfigFlags_NavEnableKeyboard = 1 # 1 << 0 # Master keyboard navigation enable flag.
227
+ ImGuiConfigFlags_NavEnableGamepad = 2 # 1 << 1 # Master gamepad navigation enable flag. Backend also needs to set ImGuiBackendFlags_HasGamepad.
228
+ ImGuiConfigFlags_NavEnableSetMousePos = 4 # 1 << 2 # Instruct navigation to move the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantSetMousePos=true. If enabled you MUST honor io.WantSetMousePos requests in your backend, otherwise ImGui will react as if the mouse is jumping around back and forth.
229
+ ImGuiConfigFlags_NavNoCaptureKeyboard = 8 # 1 << 3 # Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set.
230
+ ImGuiConfigFlags_NoMouse = 16 # 1 << 4 # Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend.
231
+ ImGuiConfigFlags_NoMouseCursorChange = 32 # 1 << 5 # Instruct backend to not alter mouse cursor shape and visibility. Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead.
232
+ ImGuiConfigFlags_IsSRGB = 1048576 # 1 << 20 # Application is SRGB-aware.
233
+ ImGuiConfigFlags_IsTouchScreen = 2097152 # 1 << 21 # Application is using a touch screen instead of a mouse.
220
234
 
221
235
  # ImGuiDataType_
222
- ImGuiDataType_S8 = 0 # 0
223
- ImGuiDataType_U8 = 1 # 1
224
- ImGuiDataType_S16 = 2 # 2
225
- ImGuiDataType_U16 = 3 # 3
226
- ImGuiDataType_S32 = 4 # 4
227
- ImGuiDataType_U32 = 5 # 5
228
- ImGuiDataType_S64 = 6 # 6
229
- ImGuiDataType_U64 = 7 # 7
230
- ImGuiDataType_Float = 8 # 8
231
- ImGuiDataType_Double = 9 # 9
236
+ # A primary data type
237
+ ImGuiDataType_S8 = 0 # 0 # signed char / char (with sensible compilers)
238
+ ImGuiDataType_U8 = 1 # 1 # unsigned char
239
+ ImGuiDataType_S16 = 2 # 2 # short
240
+ ImGuiDataType_U16 = 3 # 3 # unsigned short
241
+ ImGuiDataType_S32 = 4 # 4 # int
242
+ ImGuiDataType_U32 = 5 # 5 # unsigned int
243
+ ImGuiDataType_S64 = 6 # 6 # long long / __int64
244
+ ImGuiDataType_U64 = 7 # 7 # unsigned long long / unsigned __int64
245
+ ImGuiDataType_Float = 8 # 8 # float
246
+ ImGuiDataType_Double = 9 # 9 # double
232
247
  ImGuiDataType_COUNT = 10 # 10
233
248
 
234
249
  # ImGuiDir_
250
+ # A cardinal direction
235
251
  ImGuiDir_None = -1 # -1
236
- ImGuiDir_Left = 0 # 0
252
+ ImGuiDir_Left = 0 # 0
237
253
  ImGuiDir_Right = 1 # 1
238
- ImGuiDir_Up = 2 # 2
239
- ImGuiDir_Down = 3 # 3
254
+ ImGuiDir_Up = 2 # 2
255
+ ImGuiDir_Down = 3 # 3
240
256
  ImGuiDir_COUNT = 4 # 4
241
257
 
242
258
  # ImGuiDragDropFlags_
243
- ImGuiDragDropFlags_None = 0 # 0
244
- ImGuiDragDropFlags_SourceNoPreviewTooltip = 1 # 1 << 0
245
- ImGuiDragDropFlags_SourceNoDisableHover = 2 # 1 << 1
246
- ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 4 # 1 << 2
247
- ImGuiDragDropFlags_SourceAllowNullID = 8 # 1 << 3
248
- ImGuiDragDropFlags_SourceExtern = 16 # 1 << 4
249
- ImGuiDragDropFlags_SourceAutoExpirePayload = 32 # 1 << 5
250
- ImGuiDragDropFlags_AcceptBeforeDelivery = 1024 # 1 << 10
251
- ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 2048 # 1 << 11
252
- ImGuiDragDropFlags_AcceptNoPreviewTooltip = 4096 # 1 << 12
253
- ImGuiDragDropFlags_AcceptPeekOnly = 3072 # ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect
259
+ # Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload()
260
+ ImGuiDragDropFlags_None = 0 # 0
261
+ ImGuiDragDropFlags_SourceNoPreviewTooltip = 1 # 1 << 0 # Disable preview tooltip. By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disables this behavior.
262
+ ImGuiDragDropFlags_SourceNoDisableHover = 2 # 1 << 1 # By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. This flag disables this behavior so you can still call IsItemHovered() on the source item.
263
+ ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 4 # 1 << 2 # Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item.
264
+ ImGuiDragDropFlags_SourceAllowNullID = 8 # 1 << 3 # Allow items such as Text(), Image() that have no unique identifier to be used as drag source, by manufacturing a temporary identifier based on their window-relative position. This is extremely unusual within the dear imgui ecosystem and so we made it explicit.
265
+ ImGuiDragDropFlags_SourceExtern = 16 # 1 << 4 # External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously.
266
+ ImGuiDragDropFlags_SourceAutoExpirePayload = 32 # 1 << 5 # Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged)
267
+ ImGuiDragDropFlags_AcceptBeforeDelivery = 1024 # 1 << 10 # AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered.
268
+ ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 2048 # 1 << 11 # Do not draw the default highlight rectangle when hovering over target.
269
+ ImGuiDragDropFlags_AcceptNoPreviewTooltip = 4096 # 1 << 12 # Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site.
270
+ ImGuiDragDropFlags_AcceptPeekOnly = 3072 # ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect # For peeking ahead and inspecting the payload before delivery.
254
271
 
255
272
  # ImGuiFocusedFlags_
256
- ImGuiFocusedFlags_None = 0 # 0
257
- ImGuiFocusedFlags_ChildWindows = 1 # 1 << 0
258
- ImGuiFocusedFlags_RootWindow = 2 # 1 << 1
259
- ImGuiFocusedFlags_AnyWindow = 4 # 1 << 2
260
- ImGuiFocusedFlags_NoPopupHierarchy = 8 # 1 << 3
273
+ # Flags for ImGui::IsWindowFocused()
274
+ ImGuiFocusedFlags_None = 0 # 0
275
+ ImGuiFocusedFlags_ChildWindows = 1 # 1 << 0 # Return true if any children of the window is focused
276
+ ImGuiFocusedFlags_RootWindow = 2 # 1 << 1 # Test from root window (top most parent of the current hierarchy)
277
+ ImGuiFocusedFlags_AnyWindow = 4 # 1 << 2 # Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ!
278
+ ImGuiFocusedFlags_NoPopupHierarchy = 8 # 1 << 3 # Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
261
279
  ImGuiFocusedFlags_RootAndChildWindows = 3 # ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows
262
280
 
263
281
  # ImGuiHoveredFlags_
264
- ImGuiHoveredFlags_None = 0 # 0
265
- ImGuiHoveredFlags_ChildWindows = 1 # 1 << 0
266
- ImGuiHoveredFlags_RootWindow = 2 # 1 << 1
267
- ImGuiHoveredFlags_AnyWindow = 4 # 1 << 2
268
- ImGuiHoveredFlags_NoPopupHierarchy = 8 # 1 << 3
269
- ImGuiHoveredFlags_AllowWhenBlockedByPopup = 32 # 1 << 5
270
- ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 128 # 1 << 7
271
- ImGuiHoveredFlags_AllowWhenOverlapped = 256 # 1 << 8
272
- ImGuiHoveredFlags_AllowWhenDisabled = 512 # 1 << 9
273
- ImGuiHoveredFlags_NoNavOverride = 1024 # 1 << 10
274
- ImGuiHoveredFlags_RectOnly = 416 # ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped
275
- ImGuiHoveredFlags_RootAndChildWindows = 3 # ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
282
+ # Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered()
283
+ # Note: if you are trying to check whether your mouse should be dispatched to Dear ImGui or to your app, you should use 'io.WantCaptureMouse' instead! Please read the FAQ!
284
+ # Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls.
285
+ ImGuiHoveredFlags_None = 0 # 0 # Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them.
286
+ ImGuiHoveredFlags_ChildWindows = 1 # 1 << 0 # IsWindowHovered() only: Return true if any children of the window is hovered
287
+ ImGuiHoveredFlags_RootWindow = 2 # 1 << 1 # IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)
288
+ ImGuiHoveredFlags_AnyWindow = 4 # 1 << 2 # IsWindowHovered() only: Return true if any window is hovered
289
+ ImGuiHoveredFlags_NoPopupHierarchy = 8 # 1 << 3 # IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
290
+ ImGuiHoveredFlags_AllowWhenBlockedByPopup = 32 # 1 << 5 # Return true even if a popup window is normally blocking access to this item/window
291
+ ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 128 # 1 << 7 # Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns.
292
+ ImGuiHoveredFlags_AllowWhenOverlapped = 256 # 1 << 8 # IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window
293
+ ImGuiHoveredFlags_AllowWhenDisabled = 512 # 1 << 9 # IsItemHovered() only: Return true even if the item is disabled
294
+ ImGuiHoveredFlags_NoNavOverride = 1024 # 1 << 10 # Disable using gamepad/keyboard navigation state when active, always query mouse.
295
+ ImGuiHoveredFlags_RectOnly = 416 # ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped
296
+ ImGuiHoveredFlags_RootAndChildWindows = 3 # ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
297
+ ImGuiHoveredFlags_DelayNormal = 2048 # 1 << 11 # Return true after io.HoverDelayNormal elapsed (~0.30 sec)
298
+ ImGuiHoveredFlags_DelayShort = 4096 # 1 << 12 # Return true after io.HoverDelayShort elapsed (~0.10 sec)
299
+ ImGuiHoveredFlags_NoSharedDelay = 8192 # 1 << 13 # Disable shared delay system where moving from one item to the next keeps the previous timer for a short time (standard for tooltips with long delays)
276
300
 
277
301
  # ImGuiInputTextFlags_
278
- ImGuiInputTextFlags_None = 0 # 0
279
- ImGuiInputTextFlags_CharsDecimal = 1 # 1 << 0
280
- ImGuiInputTextFlags_CharsHexadecimal = 2 # 1 << 1
281
- ImGuiInputTextFlags_CharsUppercase = 4 # 1 << 2
282
- ImGuiInputTextFlags_CharsNoBlank = 8 # 1 << 3
283
- ImGuiInputTextFlags_AutoSelectAll = 16 # 1 << 4
284
- ImGuiInputTextFlags_EnterReturnsTrue = 32 # 1 << 5
285
- ImGuiInputTextFlags_CallbackCompletion = 64 # 1 << 6
286
- ImGuiInputTextFlags_CallbackHistory = 128 # 1 << 7
287
- ImGuiInputTextFlags_CallbackAlways = 256 # 1 << 8
288
- ImGuiInputTextFlags_CallbackCharFilter = 512 # 1 << 9
289
- ImGuiInputTextFlags_AllowTabInput = 1024 # 1 << 10
290
- ImGuiInputTextFlags_CtrlEnterForNewLine = 2048 # 1 << 11
291
- ImGuiInputTextFlags_NoHorizontalScroll = 4096 # 1 << 12
292
- ImGuiInputTextFlags_AlwaysOverwrite = 8192 # 1 << 13
293
- ImGuiInputTextFlags_ReadOnly = 16384 # 1 << 14
294
- ImGuiInputTextFlags_Password = 32768 # 1 << 15
295
- ImGuiInputTextFlags_NoUndoRedo = 65536 # 1 << 16
296
- ImGuiInputTextFlags_CharsScientific = 131072 # 1 << 17
297
- ImGuiInputTextFlags_CallbackResize = 262144 # 1 << 18
298
- ImGuiInputTextFlags_CallbackEdit = 524288 # 1 << 19
299
-
300
- # ImGuiKey_
301
- ImGuiKey_None = 0 # 0
302
- ImGuiKey_Tab = 512 # 512
303
- ImGuiKey_LeftArrow = 513 # 513
304
- ImGuiKey_RightArrow = 514 # 514
305
- ImGuiKey_UpArrow = 515 # 515
306
- ImGuiKey_DownArrow = 516 # 516
307
- ImGuiKey_PageUp = 517 # 517
308
- ImGuiKey_PageDown = 518 # 518
309
- ImGuiKey_Home = 519 # 519
310
- ImGuiKey_End = 520 # 520
311
- ImGuiKey_Insert = 521 # 521
312
- ImGuiKey_Delete = 522 # 522
313
- ImGuiKey_Backspace = 523 # 523
314
- ImGuiKey_Space = 524 # 524
315
- ImGuiKey_Enter = 525 # 525
316
- ImGuiKey_Escape = 526 # 526
317
- ImGuiKey_LeftCtrl = 527 # 527
318
- ImGuiKey_LeftShift = 528 # 528
319
- ImGuiKey_LeftAlt = 529 # 529
320
- ImGuiKey_LeftSuper = 530 # 530
321
- ImGuiKey_RightCtrl = 531 # 531
322
- ImGuiKey_RightShift = 532 # 532
323
- ImGuiKey_RightAlt = 533 # 533
324
- ImGuiKey_RightSuper = 534 # 534
325
- ImGuiKey_Menu = 535 # 535
326
- ImGuiKey_0 = 536 # 536
327
- ImGuiKey_1 = 537 # 537
328
- ImGuiKey_2 = 538 # 538
329
- ImGuiKey_3 = 539 # 539
330
- ImGuiKey_4 = 540 # 540
331
- ImGuiKey_5 = 541 # 541
332
- ImGuiKey_6 = 542 # 542
333
- ImGuiKey_7 = 543 # 543
334
- ImGuiKey_8 = 544 # 544
335
- ImGuiKey_9 = 545 # 545
336
- ImGuiKey_A = 546 # 546
337
- ImGuiKey_B = 547 # 547
338
- ImGuiKey_C = 548 # 548
339
- ImGuiKey_D = 549 # 549
340
- ImGuiKey_E = 550 # 550
341
- ImGuiKey_F = 551 # 551
342
- ImGuiKey_G = 552 # 552
343
- ImGuiKey_H = 553 # 553
344
- ImGuiKey_I = 554 # 554
345
- ImGuiKey_J = 555 # 555
346
- ImGuiKey_K = 556 # 556
347
- ImGuiKey_L = 557 # 557
348
- ImGuiKey_M = 558 # 558
349
- ImGuiKey_N = 559 # 559
350
- ImGuiKey_O = 560 # 560
351
- ImGuiKey_P = 561 # 561
352
- ImGuiKey_Q = 562 # 562
353
- ImGuiKey_R = 563 # 563
354
- ImGuiKey_S = 564 # 564
355
- ImGuiKey_T = 565 # 565
356
- ImGuiKey_U = 566 # 566
357
- ImGuiKey_V = 567 # 567
358
- ImGuiKey_W = 568 # 568
359
- ImGuiKey_X = 569 # 569
360
- ImGuiKey_Y = 570 # 570
361
- ImGuiKey_Z = 571 # 571
362
- ImGuiKey_F1 = 572 # 572
363
- ImGuiKey_F2 = 573 # 573
364
- ImGuiKey_F3 = 574 # 574
365
- ImGuiKey_F4 = 575 # 575
366
- ImGuiKey_F5 = 576 # 576
367
- ImGuiKey_F6 = 577 # 577
368
- ImGuiKey_F7 = 578 # 578
369
- ImGuiKey_F8 = 579 # 579
370
- ImGuiKey_F9 = 580 # 580
371
- ImGuiKey_F10 = 581 # 581
372
- ImGuiKey_F11 = 582 # 582
373
- ImGuiKey_F12 = 583 # 583
374
- ImGuiKey_Apostrophe = 584 # 584
375
- ImGuiKey_Comma = 585 # 585
376
- ImGuiKey_Minus = 586 # 586
377
- ImGuiKey_Period = 587 # 587
378
- ImGuiKey_Slash = 588 # 588
379
- ImGuiKey_Semicolon = 589 # 589
380
- ImGuiKey_Equal = 590 # 590
381
- ImGuiKey_LeftBracket = 591 # 591
382
- ImGuiKey_Backslash = 592 # 592
383
- ImGuiKey_RightBracket = 593 # 593
384
- ImGuiKey_GraveAccent = 594 # 594
385
- ImGuiKey_CapsLock = 595 # 595
386
- ImGuiKey_ScrollLock = 596 # 596
387
- ImGuiKey_NumLock = 597 # 597
388
- ImGuiKey_PrintScreen = 598 # 598
389
- ImGuiKey_Pause = 599 # 599
390
- ImGuiKey_Keypad0 = 600 # 600
391
- ImGuiKey_Keypad1 = 601 # 601
392
- ImGuiKey_Keypad2 = 602 # 602
393
- ImGuiKey_Keypad3 = 603 # 603
394
- ImGuiKey_Keypad4 = 604 # 604
395
- ImGuiKey_Keypad5 = 605 # 605
396
- ImGuiKey_Keypad6 = 606 # 606
397
- ImGuiKey_Keypad7 = 607 # 607
398
- ImGuiKey_Keypad8 = 608 # 608
399
- ImGuiKey_Keypad9 = 609 # 609
400
- ImGuiKey_KeypadDecimal = 610 # 610
401
- ImGuiKey_KeypadDivide = 611 # 611
402
- ImGuiKey_KeypadMultiply = 612 # 612
403
- ImGuiKey_KeypadSubtract = 613 # 613
404
- ImGuiKey_KeypadAdd = 614 # 614
405
- ImGuiKey_KeypadEnter = 615 # 615
406
- ImGuiKey_KeypadEqual = 616 # 616
407
- ImGuiKey_GamepadStart = 617 # 617
408
- ImGuiKey_GamepadBack = 618 # 618
409
- ImGuiKey_GamepadFaceUp = 619 # 619
410
- ImGuiKey_GamepadFaceDown = 620 # 620
411
- ImGuiKey_GamepadFaceLeft = 621 # 621
412
- ImGuiKey_GamepadFaceRight = 622 # 622
413
- ImGuiKey_GamepadDpadUp = 623 # 623
414
- ImGuiKey_GamepadDpadDown = 624 # 624
415
- ImGuiKey_GamepadDpadLeft = 625 # 625
416
- ImGuiKey_GamepadDpadRight = 626 # 626
417
- ImGuiKey_GamepadL1 = 627 # 627
418
- ImGuiKey_GamepadR1 = 628 # 628
419
- ImGuiKey_GamepadL2 = 629 # 629
420
- ImGuiKey_GamepadR2 = 630 # 630
421
- ImGuiKey_GamepadL3 = 631 # 631
422
- ImGuiKey_GamepadR3 = 632 # 632
423
- ImGuiKey_GamepadLStickUp = 633 # 633
424
- ImGuiKey_GamepadLStickDown = 634 # 634
425
- ImGuiKey_GamepadLStickLeft = 635 # 635
426
- ImGuiKey_GamepadLStickRight = 636 # 636
427
- ImGuiKey_GamepadRStickUp = 637 # 637
428
- ImGuiKey_GamepadRStickDown = 638 # 638
429
- ImGuiKey_GamepadRStickLeft = 639 # 639
430
- ImGuiKey_GamepadRStickRight = 640 # 640
431
- ImGuiKey_ModCtrl = 641 # 641
432
- ImGuiKey_ModShift = 642 # 642
433
- ImGuiKey_ModAlt = 643 # 643
434
- ImGuiKey_ModSuper = 644 # 644
435
- ImGuiKey_COUNT = 645 # 645
436
- ImGuiKey_NamedKey_BEGIN = 512 # 512
437
- ImGuiKey_NamedKey_END = 645 # ImGuiKey_COUNT
438
- ImGuiKey_NamedKey_COUNT = 133 # ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN
439
- ImGuiKey_KeysData_SIZE = 645 # ImGuiKey_COUNT
440
- ImGuiKey_KeysData_OFFSET = 0 # 0
441
-
442
- # ImGuiModFlags_
443
- ImGuiModFlags_None = 0 # 0
444
- ImGuiModFlags_Ctrl = 1 # 1 << 0
445
- ImGuiModFlags_Shift = 2 # 1 << 1
446
- ImGuiModFlags_Alt = 4 # 1 << 2
447
- ImGuiModFlags_Super = 8 # 1 << 3
302
+ # Flags for ImGui::InputText()
303
+ # (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigInputTextCursorBlink and io.ConfigInputTextEnterKeepActive)
304
+ ImGuiInputTextFlags_None = 0 # 0
305
+ ImGuiInputTextFlags_CharsDecimal = 1 # 1 << 0 # Allow 0123456789.+-*/
306
+ ImGuiInputTextFlags_CharsHexadecimal = 2 # 1 << 1 # Allow 0123456789ABCDEFabcdef
307
+ ImGuiInputTextFlags_CharsUppercase = 4 # 1 << 2 # Turn a..z into A..Z
308
+ ImGuiInputTextFlags_CharsNoBlank = 8 # 1 << 3 # Filter out spaces, tabs
309
+ ImGuiInputTextFlags_AutoSelectAll = 16 # 1 << 4 # Select entire text when first taking mouse focus
310
+ ImGuiInputTextFlags_EnterReturnsTrue = 32 # 1 << 5 # Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.
311
+ ImGuiInputTextFlags_CallbackCompletion = 64 # 1 << 6 # Callback on pressing TAB (for completion handling)
312
+ ImGuiInputTextFlags_CallbackHistory = 128 # 1 << 7 # Callback on pressing Up/Down arrows (for history handling)
313
+ ImGuiInputTextFlags_CallbackAlways = 256 # 1 << 8 # Callback on each iteration. User code may query cursor position, modify text buffer.
314
+ ImGuiInputTextFlags_CallbackCharFilter = 512 # 1 << 9 # Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
315
+ ImGuiInputTextFlags_AllowTabInput = 1024 # 1 << 10 # Pressing TAB input a '\t' character into the text field
316
+ ImGuiInputTextFlags_CtrlEnterForNewLine = 2048 # 1 << 11 # In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter).
317
+ ImGuiInputTextFlags_NoHorizontalScroll = 4096 # 1 << 12 # Disable following the cursor horizontally
318
+ ImGuiInputTextFlags_AlwaysOverwrite = 8192 # 1 << 13 # Overwrite mode
319
+ ImGuiInputTextFlags_ReadOnly = 16384 # 1 << 14 # Read-only mode
320
+ ImGuiInputTextFlags_Password = 32768 # 1 << 15 # Password mode, display all characters as '*'
321
+ ImGuiInputTextFlags_NoUndoRedo = 65536 # 1 << 16 # Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID().
322
+ ImGuiInputTextFlags_CharsScientific = 131072 # 1 << 17 # Allow 0123456789.+-*/eE (Scientific notation input)
323
+ ImGuiInputTextFlags_CallbackResize = 262144 # 1 << 18 # Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)
324
+ ImGuiInputTextFlags_CallbackEdit = 524288 # 1 << 19 # Callback on any edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)
325
+ ImGuiInputTextFlags_EscapeClearsAll = 1048576 # 1 << 20 # Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)
326
+
327
+ # ImGuiKey
328
+ # A key identifier (ImGuiKey_XXX or ImGuiMod_XXX value): can represent Keyboard, Mouse and Gamepad values.
329
+ # All our named keys are >= 512. Keys value 0 to 511 are left unused as legacy native/opaque key values (< 1.87).
330
+ # Since >= 1.89 we increased typing (went from int to enum), some legacy code may need a cast to ImGuiKey.
331
+ # Read details about the 1.87 and 1.89 transition : https://github.com/ocornut/imgui/issues/4921
332
+ ImGuiKey_None = 0 # 0
333
+ ImGuiKey_Tab = 512 # 512 # == ImGuiKey_NamedKey_BEGIN
334
+ ImGuiKey_LeftArrow = 513 # 513
335
+ ImGuiKey_RightArrow = 514 # 514
336
+ ImGuiKey_UpArrow = 515 # 515
337
+ ImGuiKey_DownArrow = 516 # 516
338
+ ImGuiKey_PageUp = 517 # 517
339
+ ImGuiKey_PageDown = 518 # 518
340
+ ImGuiKey_Home = 519 # 519
341
+ ImGuiKey_End = 520 # 520
342
+ ImGuiKey_Insert = 521 # 521
343
+ ImGuiKey_Delete = 522 # 522
344
+ ImGuiKey_Backspace = 523 # 523
345
+ ImGuiKey_Space = 524 # 524
346
+ ImGuiKey_Enter = 525 # 525
347
+ ImGuiKey_Escape = 526 # 526
348
+ ImGuiKey_LeftCtrl = 527 # 527
349
+ ImGuiKey_LeftShift = 528 # 528
350
+ ImGuiKey_LeftAlt = 529 # 529
351
+ ImGuiKey_LeftSuper = 530 # 530
352
+ ImGuiKey_RightCtrl = 531 # 531
353
+ ImGuiKey_RightShift = 532 # 532
354
+ ImGuiKey_RightAlt = 533 # 533
355
+ ImGuiKey_RightSuper = 534 # 534
356
+ ImGuiKey_Menu = 535 # 535
357
+ ImGuiKey_0 = 536 # 536
358
+ ImGuiKey_1 = 537 # 537
359
+ ImGuiKey_2 = 538 # 538
360
+ ImGuiKey_3 = 539 # 539
361
+ ImGuiKey_4 = 540 # 540
362
+ ImGuiKey_5 = 541 # 541
363
+ ImGuiKey_6 = 542 # 542
364
+ ImGuiKey_7 = 543 # 543
365
+ ImGuiKey_8 = 544 # 544
366
+ ImGuiKey_9 = 545 # 545
367
+ ImGuiKey_A = 546 # 546
368
+ ImGuiKey_B = 547 # 547
369
+ ImGuiKey_C = 548 # 548
370
+ ImGuiKey_D = 549 # 549
371
+ ImGuiKey_E = 550 # 550
372
+ ImGuiKey_F = 551 # 551
373
+ ImGuiKey_G = 552 # 552
374
+ ImGuiKey_H = 553 # 553
375
+ ImGuiKey_I = 554 # 554
376
+ ImGuiKey_J = 555 # 555
377
+ ImGuiKey_K = 556 # 556
378
+ ImGuiKey_L = 557 # 557
379
+ ImGuiKey_M = 558 # 558
380
+ ImGuiKey_N = 559 # 559
381
+ ImGuiKey_O = 560 # 560
382
+ ImGuiKey_P = 561 # 561
383
+ ImGuiKey_Q = 562 # 562
384
+ ImGuiKey_R = 563 # 563
385
+ ImGuiKey_S = 564 # 564
386
+ ImGuiKey_T = 565 # 565
387
+ ImGuiKey_U = 566 # 566
388
+ ImGuiKey_V = 567 # 567
389
+ ImGuiKey_W = 568 # 568
390
+ ImGuiKey_X = 569 # 569
391
+ ImGuiKey_Y = 570 # 570
392
+ ImGuiKey_Z = 571 # 571
393
+ ImGuiKey_F1 = 572 # 572
394
+ ImGuiKey_F2 = 573 # 573
395
+ ImGuiKey_F3 = 574 # 574
396
+ ImGuiKey_F4 = 575 # 575
397
+ ImGuiKey_F5 = 576 # 576
398
+ ImGuiKey_F6 = 577 # 577
399
+ ImGuiKey_F7 = 578 # 578
400
+ ImGuiKey_F8 = 579 # 579
401
+ ImGuiKey_F9 = 580 # 580
402
+ ImGuiKey_F10 = 581 # 581
403
+ ImGuiKey_F11 = 582 # 582
404
+ ImGuiKey_F12 = 583 # 583
405
+ ImGuiKey_Apostrophe = 584 # 584 # '
406
+ ImGuiKey_Comma = 585 # 585 # ,
407
+ ImGuiKey_Minus = 586 # 586 # -
408
+ ImGuiKey_Period = 587 # 587 # .
409
+ ImGuiKey_Slash = 588 # 588 # /
410
+ ImGuiKey_Semicolon = 589 # 589 # ;
411
+ ImGuiKey_Equal = 590 # 590 # =
412
+ ImGuiKey_LeftBracket = 591 # 591 # [
413
+ ImGuiKey_Backslash = 592 # 592 # \ (this text inhibit multiline comment caused by backslash)
414
+ ImGuiKey_RightBracket = 593 # 593 # ]
415
+ ImGuiKey_GraveAccent = 594 # 594 # `
416
+ ImGuiKey_CapsLock = 595 # 595
417
+ ImGuiKey_ScrollLock = 596 # 596
418
+ ImGuiKey_NumLock = 597 # 597
419
+ ImGuiKey_PrintScreen = 598 # 598
420
+ ImGuiKey_Pause = 599 # 599
421
+ ImGuiKey_Keypad0 = 600 # 600
422
+ ImGuiKey_Keypad1 = 601 # 601
423
+ ImGuiKey_Keypad2 = 602 # 602
424
+ ImGuiKey_Keypad3 = 603 # 603
425
+ ImGuiKey_Keypad4 = 604 # 604
426
+ ImGuiKey_Keypad5 = 605 # 605
427
+ ImGuiKey_Keypad6 = 606 # 606
428
+ ImGuiKey_Keypad7 = 607 # 607
429
+ ImGuiKey_Keypad8 = 608 # 608
430
+ ImGuiKey_Keypad9 = 609 # 609
431
+ ImGuiKey_KeypadDecimal = 610 # 610
432
+ ImGuiKey_KeypadDivide = 611 # 611
433
+ ImGuiKey_KeypadMultiply = 612 # 612
434
+ ImGuiKey_KeypadSubtract = 613 # 613
435
+ ImGuiKey_KeypadAdd = 614 # 614
436
+ ImGuiKey_KeypadEnter = 615 # 615
437
+ ImGuiKey_KeypadEqual = 616 # 616
438
+ ImGuiKey_GamepadStart = 617 # 617 # Menu (Xbox) + (Switch) Start/Options (PS)
439
+ ImGuiKey_GamepadBack = 618 # 618 # View (Xbox) - (Switch) Share (PS)
440
+ ImGuiKey_GamepadFaceLeft = 619 # 619 # X (Xbox) Y (Switch) Square (PS) // Tap: Toggle Menu. Hold: Windowing mode (Focus/Move/Resize windows)
441
+ ImGuiKey_GamepadFaceRight = 620 # 620 # B (Xbox) A (Switch) Circle (PS) // Cancel / Close / Exit
442
+ ImGuiKey_GamepadFaceUp = 621 # 621 # Y (Xbox) X (Switch) Triangle (PS) // Text Input / On-screen Keyboard
443
+ ImGuiKey_GamepadFaceDown = 622 # 622 # A (Xbox) B (Switch) Cross (PS) // Activate / Open / Toggle / Tweak
444
+ ImGuiKey_GamepadDpadLeft = 623 # 623 # D-pad Left // Move / Tweak / Resize Window (in Windowing mode)
445
+ ImGuiKey_GamepadDpadRight = 624 # 624 # D-pad Right // Move / Tweak / Resize Window (in Windowing mode)
446
+ ImGuiKey_GamepadDpadUp = 625 # 625 # D-pad Up // Move / Tweak / Resize Window (in Windowing mode)
447
+ ImGuiKey_GamepadDpadDown = 626 # 626 # D-pad Down // Move / Tweak / Resize Window (in Windowing mode)
448
+ ImGuiKey_GamepadL1 = 627 # 627 # L Bumper (Xbox) L (Switch) L1 (PS) // Tweak Slower / Focus Previous (in Windowing mode)
449
+ ImGuiKey_GamepadR1 = 628 # 628 # R Bumper (Xbox) R (Switch) R1 (PS) // Tweak Faster / Focus Next (in Windowing mode)
450
+ ImGuiKey_GamepadL2 = 629 # 629 # L Trig. (Xbox) ZL (Switch) L2 (PS) [Analog]
451
+ ImGuiKey_GamepadR2 = 630 # 630 # R Trig. (Xbox) ZR (Switch) R2 (PS) [Analog]
452
+ ImGuiKey_GamepadL3 = 631 # 631 # L Stick (Xbox) L3 (Switch) L3 (PS)
453
+ ImGuiKey_GamepadR3 = 632 # 632 # R Stick (Xbox) R3 (Switch) R3 (PS)
454
+ ImGuiKey_GamepadLStickLeft = 633 # 633 # [Analog] // Move Window (in Windowing mode)
455
+ ImGuiKey_GamepadLStickRight = 634 # 634 # [Analog] // Move Window (in Windowing mode)
456
+ ImGuiKey_GamepadLStickUp = 635 # 635 # [Analog] // Move Window (in Windowing mode)
457
+ ImGuiKey_GamepadLStickDown = 636 # 636 # [Analog] // Move Window (in Windowing mode)
458
+ ImGuiKey_GamepadRStickLeft = 637 # 637 # [Analog]
459
+ ImGuiKey_GamepadRStickRight = 638 # 638 # [Analog]
460
+ ImGuiKey_GamepadRStickUp = 639 # 639 # [Analog]
461
+ ImGuiKey_GamepadRStickDown = 640 # 640 # [Analog]
462
+ ImGuiKey_MouseLeft = 641 # 641
463
+ ImGuiKey_MouseRight = 642 # 642
464
+ ImGuiKey_MouseMiddle = 643 # 643
465
+ ImGuiKey_MouseX1 = 644 # 644
466
+ ImGuiKey_MouseX2 = 645 # 645
467
+ ImGuiKey_MouseWheelX = 646 # 646
468
+ ImGuiKey_MouseWheelY = 647 # 647
469
+ ImGuiKey_ReservedForModCtrl = 648 # 648
470
+ ImGuiKey_ReservedForModShift = 649 # 649
471
+ ImGuiKey_ReservedForModAlt = 650 # 650
472
+ ImGuiKey_ReservedForModSuper = 651 # 651
473
+ ImGuiKey_COUNT = 652 # 652
474
+ ImGuiMod_None = 0 # 0
475
+ ImGuiMod_Ctrl = 4096 # 1 << 12 # Ctrl
476
+ ImGuiMod_Shift = 8192 # 1 << 13 # Shift
477
+ ImGuiMod_Alt = 16384 # 1 << 14 # Option/Menu
478
+ ImGuiMod_Super = 32768 # 1 << 15 # Cmd/Super/Windows
479
+ ImGuiMod_Shortcut = 2048 # 1 << 11 # Alias for Ctrl (non-macOS) _or_ Super (macOS).
480
+ ImGuiMod_Mask_ = 63488 # 0xF800 # 5-bits
481
+ ImGuiKey_NamedKey_BEGIN = 512 # 512
482
+ ImGuiKey_NamedKey_END = 652 # ImGuiKey_COUNT
483
+ ImGuiKey_NamedKey_COUNT = 140 # ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN
484
+ ImGuiKey_KeysData_SIZE = 652 # ImGuiKey_COUNT # Size of KeysData[]: hold legacy 0..512 keycodes + named keys
485
+ ImGuiKey_KeysData_OFFSET = 0 # 0 # First key stored in io.KeysData[0]. Accesses to io.KeysData[] must use (key - ImGuiKey_KeysData_OFFSET).
448
486
 
449
487
  # ImGuiMouseButton_
450
- ImGuiMouseButton_Left = 0 # 0
451
- ImGuiMouseButton_Right = 1 # 1
488
+ # Identify a mouse button.
489
+ # Those values are guaranteed to be stable and we frequently use 0/1 directly. Named enums provided for convenience.
490
+ ImGuiMouseButton_Left = 0 # 0
491
+ ImGuiMouseButton_Right = 1 # 1
452
492
  ImGuiMouseButton_Middle = 2 # 2
453
- ImGuiMouseButton_COUNT = 5 # 5
493
+ ImGuiMouseButton_COUNT = 5 # 5
454
494
 
455
495
  # ImGuiMouseCursor_
456
- ImGuiMouseCursor_None = -1 # -1
457
- ImGuiMouseCursor_Arrow = 0 # 0
458
- ImGuiMouseCursor_TextInput = 1 # 1
459
- ImGuiMouseCursor_ResizeAll = 2 # 2
460
- ImGuiMouseCursor_ResizeNS = 3 # 3
461
- ImGuiMouseCursor_ResizeEW = 4 # 4
462
- ImGuiMouseCursor_ResizeNESW = 5 # 5
463
- ImGuiMouseCursor_ResizeNWSE = 6 # 6
464
- ImGuiMouseCursor_Hand = 7 # 7
465
- ImGuiMouseCursor_NotAllowed = 8 # 8
466
- ImGuiMouseCursor_COUNT = 9 # 9
467
-
468
- # ImGuiNavInput_
469
- ImGuiNavInput_Activate = 0 # 0
470
- ImGuiNavInput_Cancel = 1 # 1
471
- ImGuiNavInput_Input = 2 # 2
472
- ImGuiNavInput_Menu = 3 # 3
473
- ImGuiNavInput_DpadLeft = 4 # 4
474
- ImGuiNavInput_DpadRight = 5 # 5
475
- ImGuiNavInput_DpadUp = 6 # 6
476
- ImGuiNavInput_DpadDown = 7 # 7
477
- ImGuiNavInput_LStickLeft = 8 # 8
496
+ # Enumeration for GetMouseCursor()
497
+ # User code may request backend to display given cursor by calling SetMouseCursor(), which is why we have some cursors that are marked unused here
498
+ ImGuiMouseCursor_None = -1 # -1
499
+ ImGuiMouseCursor_Arrow = 0 # 0
500
+ ImGuiMouseCursor_TextInput = 1 # 1 # When hovering over InputText, etc.
501
+ ImGuiMouseCursor_ResizeAll = 2 # 2 # (Unused by Dear ImGui functions)
502
+ ImGuiMouseCursor_ResizeNS = 3 # 3 # When hovering over a horizontal border
503
+ ImGuiMouseCursor_ResizeEW = 4 # 4 # When hovering over a vertical border or a column
504
+ ImGuiMouseCursor_ResizeNESW = 5 # 5 # When hovering over the bottom-left corner of a window
505
+ ImGuiMouseCursor_ResizeNWSE = 6 # 6 # When hovering over the bottom-right corner of a window
506
+ ImGuiMouseCursor_Hand = 7 # 7 # (Unused by Dear ImGui functions. Use for e.g. hyperlinks)
507
+ ImGuiMouseCursor_NotAllowed = 8 # 8 # When hovering something with disallowed interaction. Usually a crossed circle.
508
+ ImGuiMouseCursor_COUNT = 9 # 9
509
+
510
+ # ImGuiNavInput
511
+ # OBSOLETED in 1.88 (from July 2022): ImGuiNavInput and io.NavInputs[].
512
+ # 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.
513
+ # Custom backends: feed gamepad inputs via io.AddKeyEvent() and ImGuiKey_GamepadXXX enums.
514
+ ImGuiNavInput_Activate = 0 # 0
515
+ ImGuiNavInput_Cancel = 1 # 1
516
+ ImGuiNavInput_Input = 2 # 2
517
+ ImGuiNavInput_Menu = 3 # 3
518
+ ImGuiNavInput_DpadLeft = 4 # 4
519
+ ImGuiNavInput_DpadRight = 5 # 5
520
+ ImGuiNavInput_DpadUp = 6 # 6
521
+ ImGuiNavInput_DpadDown = 7 # 7
522
+ ImGuiNavInput_LStickLeft = 8 # 8
478
523
  ImGuiNavInput_LStickRight = 9 # 9
479
- ImGuiNavInput_LStickUp = 10 # 10
524
+ ImGuiNavInput_LStickUp = 10 # 10
480
525
  ImGuiNavInput_LStickDown = 11 # 11
481
- ImGuiNavInput_FocusPrev = 12 # 12
482
- ImGuiNavInput_FocusNext = 13 # 13
483
- ImGuiNavInput_TweakSlow = 14 # 14
484
- ImGuiNavInput_TweakFast = 15 # 15
485
- ImGuiNavInput_KeyLeft_ = 16 # 16
486
- ImGuiNavInput_KeyRight_ = 17 # 17
487
- ImGuiNavInput_KeyUp_ = 18 # 18
488
- ImGuiNavInput_KeyDown_ = 19 # 19
489
- ImGuiNavInput_COUNT = 20 # 20
526
+ ImGuiNavInput_FocusPrev = 12 # 12
527
+ ImGuiNavInput_FocusNext = 13 # 13
528
+ ImGuiNavInput_TweakSlow = 14 # 14
529
+ ImGuiNavInput_TweakFast = 15 # 15
530
+ ImGuiNavInput_COUNT = 16 # 16
490
531
 
491
532
  # ImGuiPopupFlags_
492
- ImGuiPopupFlags_None = 0 # 0
493
- ImGuiPopupFlags_MouseButtonLeft = 0 # 0
494
- ImGuiPopupFlags_MouseButtonRight = 1 # 1
495
- ImGuiPopupFlags_MouseButtonMiddle = 2 # 2
496
- ImGuiPopupFlags_MouseButtonMask_ = 31 # 0x1F
497
- ImGuiPopupFlags_MouseButtonDefault_ = 1 # 1
498
- ImGuiPopupFlags_NoOpenOverExistingPopup = 32 # 1 << 5
499
- ImGuiPopupFlags_NoOpenOverItems = 64 # 1 << 6
500
- ImGuiPopupFlags_AnyPopupId = 128 # 1 << 7
501
- ImGuiPopupFlags_AnyPopupLevel = 256 # 1 << 8
502
- ImGuiPopupFlags_AnyPopup = 384 # ImGuiPopupFlags_AnyPopupId | ImGuiPopupFlags_AnyPopupLevel
533
+ # Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions.
534
+ # - To be backward compatible with older API which took an 'int mouse_button = 1' argument, we need to treat
535
+ # small flags values as a mouse button index, so we encode the mouse button in the first few bits of the flags.
536
+ # It is therefore guaranteed to be legal to pass a mouse button index in ImGuiPopupFlags.
537
+ # - For the same reason, we exceptionally default the ImGuiPopupFlags argument of BeginPopupContextXXX functions to 1 instead of 0.
538
+ # IMPORTANT: because the default parameter is 1 (==ImGuiPopupFlags_MouseButtonRight), if you rely on the default parameter
539
+ # and want to use another flag, you need to pass in the ImGuiPopupFlags_MouseButtonRight flag explicitly.
540
+ # - Multiple buttons currently cannot be combined/or-ed in those functions (we could allow it later).
541
+ ImGuiPopupFlags_None = 0 # 0
542
+ ImGuiPopupFlags_MouseButtonLeft = 0 # 0 # For BeginPopupContext*(): open on Left Mouse release. Guaranteed to always be == 0 (same as ImGuiMouseButton_Left)
543
+ ImGuiPopupFlags_MouseButtonRight = 1 # 1 # For BeginPopupContext*(): open on Right Mouse release. Guaranteed to always be == 1 (same as ImGuiMouseButton_Right)
544
+ ImGuiPopupFlags_MouseButtonMiddle = 2 # 2 # For BeginPopupContext*(): open on Middle Mouse release. Guaranteed to always be == 2 (same as ImGuiMouseButton_Middle)
545
+ ImGuiPopupFlags_MouseButtonMask_ = 31 # 0x1F
546
+ ImGuiPopupFlags_MouseButtonDefault_ = 1 # 1
547
+ ImGuiPopupFlags_NoOpenOverExistingPopup = 32 # 1 << 5 # For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack
548
+ ImGuiPopupFlags_NoOpenOverItems = 64 # 1 << 6 # For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space
549
+ ImGuiPopupFlags_AnyPopupId = 128 # 1 << 7 # For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup.
550
+ ImGuiPopupFlags_AnyPopupLevel = 256 # 1 << 8 # For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)
551
+ ImGuiPopupFlags_AnyPopup = 384 # ImGuiPopupFlags_AnyPopupId | ImGuiPopupFlags_AnyPopupLevel
503
552
 
504
553
  # ImGuiSelectableFlags_
505
- ImGuiSelectableFlags_None = 0 # 0
506
- ImGuiSelectableFlags_DontClosePopups = 1 # 1 << 0
507
- ImGuiSelectableFlags_SpanAllColumns = 2 # 1 << 1
508
- ImGuiSelectableFlags_AllowDoubleClick = 4 # 1 << 2
509
- ImGuiSelectableFlags_Disabled = 8 # 1 << 3
510
- ImGuiSelectableFlags_AllowItemOverlap = 16 # 1 << 4
554
+ # Flags for ImGui::Selectable()
555
+ ImGuiSelectableFlags_None = 0 # 0
556
+ ImGuiSelectableFlags_DontClosePopups = 1 # 1 << 0 # Clicking this doesn't close parent popup window
557
+ ImGuiSelectableFlags_SpanAllColumns = 2 # 1 << 1 # Selectable frame can span all columns (text will still fit in current column)
558
+ ImGuiSelectableFlags_AllowDoubleClick = 4 # 1 << 2 # Generate press events on double clicks too
559
+ ImGuiSelectableFlags_Disabled = 8 # 1 << 3 # Cannot be selected, display grayed out text
560
+ ImGuiSelectableFlags_AllowItemOverlap = 16 # 1 << 4 # (WIP) Hit testing to allow subsequent widgets to overlap this one
511
561
 
512
562
  # ImGuiSliderFlags_
513
- ImGuiSliderFlags_None = 0 # 0
514
- ImGuiSliderFlags_AlwaysClamp = 16 # 1 << 4
515
- ImGuiSliderFlags_Logarithmic = 32 # 1 << 5
516
- ImGuiSliderFlags_NoRoundToFormat = 64 # 1 << 6
517
- ImGuiSliderFlags_NoInput = 128 # 1 << 7
518
- ImGuiSliderFlags_InvalidMask_ = 1879048207 # 0x7000000F
563
+ # Flags for DragFloat(), DragInt(), SliderFloat(), SliderInt() etc.
564
+ # We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them.
565
+ # (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigDragClickToInputText)
566
+ ImGuiSliderFlags_None = 0 # 0
567
+ ImGuiSliderFlags_AlwaysClamp = 16 # 1 << 4 # Clamp value to min/max bounds when input manually with CTRL+Click. By default CTRL+Click allows going out of bounds.
568
+ ImGuiSliderFlags_Logarithmic = 32 # 1 << 5 # Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits.
569
+ ImGuiSliderFlags_NoRoundToFormat = 64 # 1 << 6 # Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits)
570
+ ImGuiSliderFlags_NoInput = 128 # 1 << 7 # Disable CTRL+Click or Enter key allowing to input text directly into the widget
571
+ ImGuiSliderFlags_InvalidMask_ = 1879048207 # 0x7000000F # [Internal] We treat using those bits as being potentially a 'float power' argument from the previous API that has got miscast to this enum, and will trigger an assert if needed.
519
572
 
520
573
  # ImGuiSortDirection_
521
- ImGuiSortDirection_None = 0 # 0
522
- ImGuiSortDirection_Ascending = 1 # 1
523
- ImGuiSortDirection_Descending = 2 # 2
574
+ # A sorting direction
575
+ ImGuiSortDirection_None = 0 # 0
576
+ ImGuiSortDirection_Ascending = 1 # 1 # Ascending = 0->9, A->Z etc.
577
+ ImGuiSortDirection_Descending = 2 # 2 # Descending = 9->0, Z->A etc.
524
578
 
525
579
  # ImGuiStyleVar_
526
- ImGuiStyleVar_Alpha = 0 # 0
527
- ImGuiStyleVar_DisabledAlpha = 1 # 1
528
- ImGuiStyleVar_WindowPadding = 2 # 2
529
- ImGuiStyleVar_WindowRounding = 3 # 3
530
- ImGuiStyleVar_WindowBorderSize = 4 # 4
531
- ImGuiStyleVar_WindowMinSize = 5 # 5
532
- ImGuiStyleVar_WindowTitleAlign = 6 # 6
533
- ImGuiStyleVar_ChildRounding = 7 # 7
534
- ImGuiStyleVar_ChildBorderSize = 8 # 8
535
- ImGuiStyleVar_PopupRounding = 9 # 9
536
- ImGuiStyleVar_PopupBorderSize = 10 # 10
537
- ImGuiStyleVar_FramePadding = 11 # 11
538
- ImGuiStyleVar_FrameRounding = 12 # 12
539
- ImGuiStyleVar_FrameBorderSize = 13 # 13
540
- ImGuiStyleVar_ItemSpacing = 14 # 14
541
- ImGuiStyleVar_ItemInnerSpacing = 15 # 15
542
- ImGuiStyleVar_IndentSpacing = 16 # 16
543
- ImGuiStyleVar_CellPadding = 17 # 17
544
- ImGuiStyleVar_ScrollbarSize = 18 # 18
545
- ImGuiStyleVar_ScrollbarRounding = 19 # 19
546
- ImGuiStyleVar_GrabMinSize = 20 # 20
547
- ImGuiStyleVar_GrabRounding = 21 # 21
548
- ImGuiStyleVar_TabRounding = 22 # 22
549
- ImGuiStyleVar_ButtonTextAlign = 23 # 23
550
- ImGuiStyleVar_SelectableTextAlign = 24 # 24
551
- ImGuiStyleVar_COUNT = 25 # 25
580
+ # Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure.
581
+ # - The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code.
582
+ # During initialization or between frames, feel free to just poke into ImGuiStyle directly.
583
+ # - Tip: Use your programming IDE navigation facilities on the names in the _second column_ below to find the actual members and their description.
584
+ # In Visual Studio IDE: CTRL+comma ("Edit.GoToAll") can follow symbols in comments, whereas CTRL+F12 ("Edit.GoToImplementation") cannot.
585
+ # With Visual Assist installed: ALT+G ("VAssistX.GoToImplementation") can also follow symbols in comments.
586
+ # - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type.
587
+ ImGuiStyleVar_Alpha = 0 # 0 # float Alpha
588
+ ImGuiStyleVar_DisabledAlpha = 1 # 1 # float DisabledAlpha
589
+ ImGuiStyleVar_WindowPadding = 2 # 2 # ImVec2 WindowPadding
590
+ ImGuiStyleVar_WindowRounding = 3 # 3 # float WindowRounding
591
+ ImGuiStyleVar_WindowBorderSize = 4 # 4 # float WindowBorderSize
592
+ ImGuiStyleVar_WindowMinSize = 5 # 5 # ImVec2 WindowMinSize
593
+ ImGuiStyleVar_WindowTitleAlign = 6 # 6 # ImVec2 WindowTitleAlign
594
+ ImGuiStyleVar_ChildRounding = 7 # 7 # float ChildRounding
595
+ ImGuiStyleVar_ChildBorderSize = 8 # 8 # float ChildBorderSize
596
+ ImGuiStyleVar_PopupRounding = 9 # 9 # float PopupRounding
597
+ ImGuiStyleVar_PopupBorderSize = 10 # 10 # float PopupBorderSize
598
+ ImGuiStyleVar_FramePadding = 11 # 11 # ImVec2 FramePadding
599
+ ImGuiStyleVar_FrameRounding = 12 # 12 # float FrameRounding
600
+ ImGuiStyleVar_FrameBorderSize = 13 # 13 # float FrameBorderSize
601
+ ImGuiStyleVar_ItemSpacing = 14 # 14 # ImVec2 ItemSpacing
602
+ ImGuiStyleVar_ItemInnerSpacing = 15 # 15 # ImVec2 ItemInnerSpacing
603
+ ImGuiStyleVar_IndentSpacing = 16 # 16 # float IndentSpacing
604
+ ImGuiStyleVar_CellPadding = 17 # 17 # ImVec2 CellPadding
605
+ ImGuiStyleVar_ScrollbarSize = 18 # 18 # float ScrollbarSize
606
+ ImGuiStyleVar_ScrollbarRounding = 19 # 19 # float ScrollbarRounding
607
+ ImGuiStyleVar_GrabMinSize = 20 # 20 # float GrabMinSize
608
+ ImGuiStyleVar_GrabRounding = 21 # 21 # float GrabRounding
609
+ ImGuiStyleVar_TabRounding = 22 # 22 # float TabRounding
610
+ ImGuiStyleVar_ButtonTextAlign = 23 # 23 # ImVec2 ButtonTextAlign
611
+ ImGuiStyleVar_SelectableTextAlign = 24 # 24 # ImVec2 SelectableTextAlign
612
+ ImGuiStyleVar_COUNT = 25 # 25
552
613
 
553
614
  # ImGuiTabBarFlags_
554
- ImGuiTabBarFlags_None = 0 # 0
555
- ImGuiTabBarFlags_Reorderable = 1 # 1 << 0
556
- ImGuiTabBarFlags_AutoSelectNewTabs = 2 # 1 << 1
557
- ImGuiTabBarFlags_TabListPopupButton = 4 # 1 << 2
558
- ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 8 # 1 << 3
559
- ImGuiTabBarFlags_NoTabListScrollingButtons = 16 # 1 << 4
560
- ImGuiTabBarFlags_NoTooltip = 32 # 1 << 5
561
- ImGuiTabBarFlags_FittingPolicyResizeDown = 64 # 1 << 6
562
- ImGuiTabBarFlags_FittingPolicyScroll = 128 # 1 << 7
563
- ImGuiTabBarFlags_FittingPolicyMask_ = 192 # ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll
564
- ImGuiTabBarFlags_FittingPolicyDefault_ = 64 # ImGuiTabBarFlags_FittingPolicyResizeDown
615
+ # Flags for ImGui::BeginTabBar()
616
+ ImGuiTabBarFlags_None = 0 # 0
617
+ ImGuiTabBarFlags_Reorderable = 1 # 1 << 0 # Allow manually dragging tabs to re-order them + New tabs are appended at the end of list
618
+ ImGuiTabBarFlags_AutoSelectNewTabs = 2 # 1 << 1 # Automatically select new tabs when they appear
619
+ ImGuiTabBarFlags_TabListPopupButton = 4 # 1 << 2 # Disable buttons to open the tab list popup
620
+ ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 8 # 1 << 3 # Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false.
621
+ ImGuiTabBarFlags_NoTabListScrollingButtons = 16 # 1 << 4 # Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll)
622
+ ImGuiTabBarFlags_NoTooltip = 32 # 1 << 5 # Disable tooltips when hovering a tab
623
+ ImGuiTabBarFlags_FittingPolicyResizeDown = 64 # 1 << 6 # Resize tabs when they don't fit
624
+ ImGuiTabBarFlags_FittingPolicyScroll = 128 # 1 << 7 # Add scroll buttons when tabs don't fit
625
+ ImGuiTabBarFlags_FittingPolicyMask_ = 192 # ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll
626
+ ImGuiTabBarFlags_FittingPolicyDefault_ = 64 # ImGuiTabBarFlags_FittingPolicyResizeDown
565
627
 
566
628
  # ImGuiTabItemFlags_
567
- ImGuiTabItemFlags_None = 0 # 0
568
- ImGuiTabItemFlags_UnsavedDocument = 1 # 1 << 0
569
- ImGuiTabItemFlags_SetSelected = 2 # 1 << 1
570
- ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 4 # 1 << 2
571
- ImGuiTabItemFlags_NoPushId = 8 # 1 << 3
572
- ImGuiTabItemFlags_NoTooltip = 16 # 1 << 4
573
- ImGuiTabItemFlags_NoReorder = 32 # 1 << 5
574
- ImGuiTabItemFlags_Leading = 64 # 1 << 6
575
- ImGuiTabItemFlags_Trailing = 128 # 1 << 7
629
+ # Flags for ImGui::BeginTabItem()
630
+ ImGuiTabItemFlags_None = 0 # 0
631
+ ImGuiTabItemFlags_UnsavedDocument = 1 # 1 << 0 # Display a dot next to the title + 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.
632
+ ImGuiTabItemFlags_SetSelected = 2 # 1 << 1 # Trigger flag to programmatically make the tab selected when calling BeginTabItem()
633
+ ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 4 # 1 << 2 # Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false.
634
+ ImGuiTabItemFlags_NoPushId = 8 # 1 << 3 # Don't call PushID(tab->ID)/PopID() on BeginTabItem()/EndTabItem()
635
+ ImGuiTabItemFlags_NoTooltip = 16 # 1 << 4 # Disable tooltip for the given tab
636
+ ImGuiTabItemFlags_NoReorder = 32 # 1 << 5 # Disable reordering this tab or having another tab cross over this tab
637
+ ImGuiTabItemFlags_Leading = 64 # 1 << 6 # Enforce the tab position to the left of the tab bar (after the tab list popup button)
638
+ ImGuiTabItemFlags_Trailing = 128 # 1 << 7 # Enforce the tab position to the right of the tab bar (before the scrolling buttons)
576
639
 
577
640
  # ImGuiTableBgTarget_
578
- ImGuiTableBgTarget_None = 0 # 0
579
- ImGuiTableBgTarget_RowBg0 = 1 # 1
580
- ImGuiTableBgTarget_RowBg1 = 2 # 2
581
- ImGuiTableBgTarget_CellBg = 3 # 3
641
+ # Enum for ImGui::TableSetBgColor()
642
+ # Background colors are rendering in 3 layers:
643
+ # - Layer 0: draw with RowBg0 color if set, otherwise draw with ColumnBg0 if set.
644
+ # - Layer 1: draw with RowBg1 color if set, otherwise draw with ColumnBg1 if set.
645
+ # - Layer 2: draw with CellBg color if set.
646
+ # The purpose of the two row/columns layers is to let you decide if a background color change should override or blend with the existing color.
647
+ # When using ImGuiTableFlags_RowBg on the table, each row has the RowBg0 color automatically set for odd/even rows.
648
+ # If you set the color of RowBg0 target, your color will override the existing RowBg0 color.
649
+ # If you set the color of RowBg1 or ColumnBg1 target, your color will blend over the RowBg0 color.
650
+ ImGuiTableBgTarget_None = 0 # 0
651
+ ImGuiTableBgTarget_RowBg0 = 1 # 1 # Set row background color 0 (generally used for background, automatically set when ImGuiTableFlags_RowBg is used)
652
+ ImGuiTableBgTarget_RowBg1 = 2 # 2 # Set row background color 1 (generally used for selection marking)
653
+ ImGuiTableBgTarget_CellBg = 3 # 3 # Set cell background color (top-most color)
582
654
 
583
655
  # ImGuiTableColumnFlags_
584
- ImGuiTableColumnFlags_None = 0 # 0
585
- ImGuiTableColumnFlags_Disabled = 1 # 1 << 0
586
- ImGuiTableColumnFlags_DefaultHide = 2 # 1 << 1
587
- ImGuiTableColumnFlags_DefaultSort = 4 # 1 << 2
588
- ImGuiTableColumnFlags_WidthStretch = 8 # 1 << 3
589
- ImGuiTableColumnFlags_WidthFixed = 16 # 1 << 4
590
- ImGuiTableColumnFlags_NoResize = 32 # 1 << 5
591
- ImGuiTableColumnFlags_NoReorder = 64 # 1 << 6
592
- ImGuiTableColumnFlags_NoHide = 128 # 1 << 7
593
- ImGuiTableColumnFlags_NoClip = 256 # 1 << 8
594
- ImGuiTableColumnFlags_NoSort = 512 # 1 << 9
595
- ImGuiTableColumnFlags_NoSortAscending = 1024 # 1 << 10
596
- ImGuiTableColumnFlags_NoSortDescending = 2048 # 1 << 11
597
- ImGuiTableColumnFlags_NoHeaderLabel = 4096 # 1 << 12
598
- ImGuiTableColumnFlags_NoHeaderWidth = 8192 # 1 << 13
599
- ImGuiTableColumnFlags_PreferSortAscending = 16384 # 1 << 14
600
- ImGuiTableColumnFlags_PreferSortDescending = 32768 # 1 << 15
601
- ImGuiTableColumnFlags_IndentEnable = 65536 # 1 << 16
602
- ImGuiTableColumnFlags_IndentDisable = 131072 # 1 << 17
603
- ImGuiTableColumnFlags_IsEnabled = 16777216 # 1 << 24
604
- ImGuiTableColumnFlags_IsVisible = 33554432 # 1 << 25
605
- ImGuiTableColumnFlags_IsSorted = 67108864 # 1 << 26
606
- ImGuiTableColumnFlags_IsHovered = 134217728 # 1 << 27
607
- ImGuiTableColumnFlags_WidthMask_ = 24 # ImGuiTableColumnFlags_WidthStretch | ImGuiTableColumnFlags_WidthFixed
608
- ImGuiTableColumnFlags_IndentMask_ = 196608 # ImGuiTableColumnFlags_IndentEnable | ImGuiTableColumnFlags_IndentDisable
609
- ImGuiTableColumnFlags_StatusMask_ = 251658240 # ImGuiTableColumnFlags_IsEnabled | ImGuiTableColumnFlags_IsVisible | ImGuiTableColumnFlags_IsSorted | ImGuiTableColumnFlags_IsHovered
610
- ImGuiTableColumnFlags_NoDirectResize_ = 1073741824 # 1 << 30
656
+ # Flags for ImGui::TableSetupColumn()
657
+ ImGuiTableColumnFlags_None = 0 # 0
658
+ ImGuiTableColumnFlags_Disabled = 1 # 1 << 0 # Overriding/master disable flag: hide column, won't show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state)
659
+ ImGuiTableColumnFlags_DefaultHide = 2 # 1 << 1 # Default as a hidden/disabled column.
660
+ ImGuiTableColumnFlags_DefaultSort = 4 # 1 << 2 # Default as a sorting column.
661
+ ImGuiTableColumnFlags_WidthStretch = 8 # 1 << 3 # Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp).
662
+ ImGuiTableColumnFlags_WidthFixed = 16 # 1 << 4 # Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable).
663
+ ImGuiTableColumnFlags_NoResize = 32 # 1 << 5 # Disable manual resizing.
664
+ ImGuiTableColumnFlags_NoReorder = 64 # 1 << 6 # Disable manual reordering this column, this will also prevent other columns from crossing over this column.
665
+ ImGuiTableColumnFlags_NoHide = 128 # 1 << 7 # Disable ability to hide/disable this column.
666
+ ImGuiTableColumnFlags_NoClip = 256 # 1 << 8 # Disable clipping for this column (all NoClip columns will render in a same draw command).
667
+ ImGuiTableColumnFlags_NoSort = 512 # 1 << 9 # Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table).
668
+ ImGuiTableColumnFlags_NoSortAscending = 1024 # 1 << 10 # Disable ability to sort in the ascending direction.
669
+ ImGuiTableColumnFlags_NoSortDescending = 2048 # 1 << 11 # Disable ability to sort in the descending direction.
670
+ 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.
671
+ ImGuiTableColumnFlags_NoHeaderWidth = 8192 # 1 << 13 # Disable header text width contribution to automatic column width.
672
+ ImGuiTableColumnFlags_PreferSortAscending = 16384 # 1 << 14 # Make the initial sort direction Ascending when first sorting on this column (default).
673
+ ImGuiTableColumnFlags_PreferSortDescending = 32768 # 1 << 15 # Make the initial sort direction Descending when first sorting on this column.
674
+ ImGuiTableColumnFlags_IndentEnable = 65536 # 1 << 16 # Use current Indent value when entering cell (default for column 0).
675
+ 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.
676
+ ImGuiTableColumnFlags_IsEnabled = 16777216 # 1 << 24 # Status: is enabled == not hidden by user/api (referred to as "Hide" in _DefaultHide and _NoHide) flags.
677
+ ImGuiTableColumnFlags_IsVisible = 33554432 # 1 << 25 # Status: is visible == is enabled AND not clipped by scrolling.
678
+ ImGuiTableColumnFlags_IsSorted = 67108864 # 1 << 26 # Status: is currently part of the sort specs
679
+ ImGuiTableColumnFlags_IsHovered = 134217728 # 1 << 27 # Status: is hovered by mouse
680
+ ImGuiTableColumnFlags_WidthMask_ = 24 # ImGuiTableColumnFlags_WidthStretch | ImGuiTableColumnFlags_WidthFixed
681
+ ImGuiTableColumnFlags_IndentMask_ = 196608 # ImGuiTableColumnFlags_IndentEnable | ImGuiTableColumnFlags_IndentDisable
682
+ ImGuiTableColumnFlags_StatusMask_ = 251658240 # ImGuiTableColumnFlags_IsEnabled | ImGuiTableColumnFlags_IsVisible | ImGuiTableColumnFlags_IsSorted | ImGuiTableColumnFlags_IsHovered
683
+ ImGuiTableColumnFlags_NoDirectResize_ = 1073741824 # 1 << 30 # [Internal] Disable user resizing this column directly (it may however we resized indirectly from its left edge)
611
684
 
612
685
  # ImGuiTableFlags_
613
- ImGuiTableFlags_None = 0 # 0
614
- ImGuiTableFlags_Resizable = 1 # 1 << 0
615
- ImGuiTableFlags_Reorderable = 2 # 1 << 1
616
- ImGuiTableFlags_Hideable = 4 # 1 << 2
617
- ImGuiTableFlags_Sortable = 8 # 1 << 3
618
- ImGuiTableFlags_NoSavedSettings = 16 # 1 << 4
619
- ImGuiTableFlags_ContextMenuInBody = 32 # 1 << 5
620
- ImGuiTableFlags_RowBg = 64 # 1 << 6
621
- ImGuiTableFlags_BordersInnerH = 128 # 1 << 7
622
- ImGuiTableFlags_BordersOuterH = 256 # 1 << 8
623
- ImGuiTableFlags_BordersInnerV = 512 # 1 << 9
624
- ImGuiTableFlags_BordersOuterV = 1024 # 1 << 10
625
- ImGuiTableFlags_BordersH = 384 # ImGuiTableFlags_BordersInnerH | ImGuiTableFlags_BordersOuterH
626
- ImGuiTableFlags_BordersV = 1536 # ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersOuterV
627
- ImGuiTableFlags_BordersInner = 640 # ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersInnerH
628
- ImGuiTableFlags_BordersOuter = 1280 # ImGuiTableFlags_BordersOuterV | ImGuiTableFlags_BordersOuterH
629
- ImGuiTableFlags_Borders = 1920 # ImGuiTableFlags_BordersInner | ImGuiTableFlags_BordersOuter
630
- ImGuiTableFlags_NoBordersInBody = 2048 # 1 << 11
631
- ImGuiTableFlags_NoBordersInBodyUntilResize = 4096 # 1 << 12
632
- ImGuiTableFlags_SizingFixedFit = 8192 # 1 << 13
633
- ImGuiTableFlags_SizingFixedSame = 16384 # 2 << 13
634
- ImGuiTableFlags_SizingStretchProp = 24576 # 3 << 13
635
- ImGuiTableFlags_SizingStretchSame = 32768 # 4 << 13
636
- ImGuiTableFlags_NoHostExtendX = 65536 # 1 << 16
637
- ImGuiTableFlags_NoHostExtendY = 131072 # 1 << 17
638
- ImGuiTableFlags_NoKeepColumnsVisible = 262144 # 1 << 18
639
- ImGuiTableFlags_PreciseWidths = 524288 # 1 << 19
640
- ImGuiTableFlags_NoClip = 1048576 # 1 << 20
641
- ImGuiTableFlags_PadOuterX = 2097152 # 1 << 21
642
- ImGuiTableFlags_NoPadOuterX = 4194304 # 1 << 22
643
- ImGuiTableFlags_NoPadInnerX = 8388608 # 1 << 23
644
- ImGuiTableFlags_ScrollX = 16777216 # 1 << 24
645
- ImGuiTableFlags_ScrollY = 33554432 # 1 << 25
646
- ImGuiTableFlags_SortMulti = 67108864 # 1 << 26
647
- ImGuiTableFlags_SortTristate = 134217728 # 1 << 27
648
- ImGuiTableFlags_SizingMask_ = 57344 # ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_SizingFixedSame | ImGuiTableFlags_SizingStretchProp | ImGuiTableFlags_SizingStretchSame
686
+ # Flags for ImGui::BeginTable()
687
+ # - Important! Sizing policies have complex and subtle side effects, much more so than you would expect.
688
+ # Read comments/demos carefully + experiment with live demos to get acquainted with them.
689
+ # - The DEFAULT sizing policies are:
690
+ # - Default to ImGuiTableFlags_SizingFixedFit if ScrollX is on, or if host window has ImGuiWindowFlags_AlwaysAutoResize.
691
+ # - Default to ImGuiTableFlags_SizingStretchSame if ScrollX is off.
692
+ # - When ScrollX is off:
693
+ # - Table defaults to ImGuiTableFlags_SizingStretchSame -> all Columns defaults to ImGuiTableColumnFlags_WidthStretch with same weight.
694
+ # - Columns sizing policy allowed: Stretch (default), Fixed/Auto.
695
+ # - Fixed Columns (if any) will generally obtain their requested width (unless the table cannot fit them all).
696
+ # - Stretch Columns will share the remaining width according to their respective weight.
697
+ # - Mixed Fixed/Stretch columns is possible but has various side-effects on resizing behaviors.
698
+ # The typical use of mixing sizing policies is: any number of LEADING Fixed columns, followed by one or two TRAILING Stretch columns.
699
+ # (this is because the visible order of columns have subtle but necessary effects on how they react to manual resizing).
700
+ # - When ScrollX is on:
701
+ # - Table defaults to ImGuiTableFlags_SizingFixedFit -> all Columns defaults to ImGuiTableColumnFlags_WidthFixed
702
+ # - Columns sizing policy allowed: Fixed/Auto mostly.
703
+ # - Fixed Columns can be enlarged as needed. Table will show a horizontal scrollbar if needed.
704
+ # - When using auto-resizing (non-resizable) fixed columns, querying the content width to use item right-alignment e.g. SetNextItemWidth(-FLT_MIN) doesn't make sense, would create a feedback loop.
705
+ # - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable().
706
+ # 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.
707
+ # - Read on documentation at the top of imgui_tables.cpp for details.
708
+ ImGuiTableFlags_None = 0 # 0
709
+ ImGuiTableFlags_Resizable = 1 # 1 << 0 # Enable resizing columns.
710
+ ImGuiTableFlags_Reorderable = 2 # 1 << 1 # Enable reordering columns in header row (need calling TableSetupColumn() + TableHeadersRow() to display headers)
711
+ ImGuiTableFlags_Hideable = 4 # 1 << 2 # Enable hiding/disabling columns in context menu.
712
+ ImGuiTableFlags_Sortable = 8 # 1 << 3 # Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate.
713
+ ImGuiTableFlags_NoSavedSettings = 16 # 1 << 4 # Disable persisting columns order, width and sort settings in the .ini file.
714
+ ImGuiTableFlags_ContextMenuInBody = 32 # 1 << 5 # Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow().
715
+ 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)
716
+ ImGuiTableFlags_BordersInnerH = 128 # 1 << 7 # Draw horizontal borders between rows.
717
+ ImGuiTableFlags_BordersOuterH = 256 # 1 << 8 # Draw horizontal borders at the top and bottom.
718
+ ImGuiTableFlags_BordersInnerV = 512 # 1 << 9 # Draw vertical borders between columns.
719
+ ImGuiTableFlags_BordersOuterV = 1024 # 1 << 10 # Draw vertical borders on the left and right sides.
720
+ ImGuiTableFlags_BordersH = 384 # ImGuiTableFlags_BordersInnerH | ImGuiTableFlags_BordersOuterH # Draw horizontal borders.
721
+ ImGuiTableFlags_BordersV = 1536 # ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersOuterV # Draw vertical borders.
722
+ ImGuiTableFlags_BordersInner = 640 # ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersInnerH # Draw inner borders.
723
+ ImGuiTableFlags_BordersOuter = 1280 # ImGuiTableFlags_BordersOuterV | ImGuiTableFlags_BordersOuterH # Draw outer borders.
724
+ ImGuiTableFlags_Borders = 1920 # ImGuiTableFlags_BordersInner | ImGuiTableFlags_BordersOuter # Draw all borders.
725
+ ImGuiTableFlags_NoBordersInBody = 2048 # 1 << 11 # [ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style
726
+ 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
727
+ ImGuiTableFlags_SizingFixedFit = 8192 # 1 << 13 # Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width.
728
+ 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.
729
+ ImGuiTableFlags_SizingStretchProp = 24576 # 3 << 13 # Columns default to _WidthStretch with default weights proportional to each columns contents widths.
730
+ ImGuiTableFlags_SizingStretchSame = 32768 # 4 << 13 # Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn().
731
+ 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.
732
+ 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.
733
+ 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.
734
+ 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.
735
+ 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().
736
+ ImGuiTableFlags_PadOuterX = 2097152 # 1 << 21 # Default if BordersOuterV is on. Enable outermost padding. Generally desirable if you have headers.
737
+ ImGuiTableFlags_NoPadOuterX = 4194304 # 1 << 22 # Default if BordersOuterV is off. Disable outermost padding.
738
+ ImGuiTableFlags_NoPadInnerX = 8388608 # 1 << 23 # Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off).
739
+ 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.
740
+ ImGuiTableFlags_ScrollY = 33554432 # 1 << 25 # Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size.
741
+ ImGuiTableFlags_SortMulti = 67108864 # 1 << 26 # Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1).
742
+ ImGuiTableFlags_SortTristate = 134217728 # 1 << 27 # Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0).
743
+ ImGuiTableFlags_SizingMask_ = 57344 # ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_SizingFixedSame | ImGuiTableFlags_SizingStretchProp | ImGuiTableFlags_SizingStretchSame
649
744
 
650
745
  # ImGuiTableRowFlags_
651
- ImGuiTableRowFlags_None = 0 # 0
652
- ImGuiTableRowFlags_Headers = 1 # 1 << 0
746
+ # Flags for ImGui::TableNextRow()
747
+ ImGuiTableRowFlags_None = 0 # 0
748
+ ImGuiTableRowFlags_Headers = 1 # 1 << 0 # Identify header row (set default background color + width of its contents accounted differently for auto column width)
653
749
 
654
750
  # ImGuiTreeNodeFlags_
655
- ImGuiTreeNodeFlags_None = 0 # 0
656
- ImGuiTreeNodeFlags_Selected = 1 # 1 << 0
657
- ImGuiTreeNodeFlags_Framed = 2 # 1 << 1
658
- ImGuiTreeNodeFlags_AllowItemOverlap = 4 # 1 << 2
659
- ImGuiTreeNodeFlags_NoTreePushOnOpen = 8 # 1 << 3
660
- ImGuiTreeNodeFlags_NoAutoOpenOnLog = 16 # 1 << 4
661
- ImGuiTreeNodeFlags_DefaultOpen = 32 # 1 << 5
662
- ImGuiTreeNodeFlags_OpenOnDoubleClick = 64 # 1 << 6
663
- ImGuiTreeNodeFlags_OpenOnArrow = 128 # 1 << 7
664
- ImGuiTreeNodeFlags_Leaf = 256 # 1 << 8
665
- ImGuiTreeNodeFlags_Bullet = 512 # 1 << 9
666
- ImGuiTreeNodeFlags_FramePadding = 1024 # 1 << 10
667
- ImGuiTreeNodeFlags_SpanAvailWidth = 2048 # 1 << 11
668
- ImGuiTreeNodeFlags_SpanFullWidth = 4096 # 1 << 12
669
- ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 8192 # 1 << 13
670
- ImGuiTreeNodeFlags_CollapsingHeader = 26 # ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog
751
+ # Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*()
752
+ ImGuiTreeNodeFlags_None = 0 # 0
753
+ ImGuiTreeNodeFlags_Selected = 1 # 1 << 0 # Draw as selected
754
+ ImGuiTreeNodeFlags_Framed = 2 # 1 << 1 # Draw frame with background (e.g. for CollapsingHeader)
755
+ ImGuiTreeNodeFlags_AllowItemOverlap = 4 # 1 << 2 # Hit testing to allow subsequent widgets to overlap this one
756
+ ImGuiTreeNodeFlags_NoTreePushOnOpen = 8 # 1 << 3 # Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack
757
+ ImGuiTreeNodeFlags_NoAutoOpenOnLog = 16 # 1 << 4 # Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)
758
+ ImGuiTreeNodeFlags_DefaultOpen = 32 # 1 << 5 # Default node to be open
759
+ ImGuiTreeNodeFlags_OpenOnDoubleClick = 64 # 1 << 6 # Need double-click to open node
760
+ 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.
761
+ ImGuiTreeNodeFlags_Leaf = 256 # 1 << 8 # No collapsing, no arrow (use as a convenience for leaf nodes).
762
+ ImGuiTreeNodeFlags_Bullet = 512 # 1 << 9 # Display a bullet instead of arrow
763
+ 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().
764
+ 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.
765
+ ImGuiTreeNodeFlags_SpanFullWidth = 4096 # 1 << 12 # Extend hit box to the left-most and right-most edges (bypass the indented area).
766
+ ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 8192 # 1 << 13 # (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
767
+ ImGuiTreeNodeFlags_CollapsingHeader = 26 # ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog
671
768
 
672
769
  # ImGuiViewportFlags_
673
- ImGuiViewportFlags_None = 0 # 0
674
- ImGuiViewportFlags_IsPlatformWindow = 1 # 1 << 0
675
- ImGuiViewportFlags_IsPlatformMonitor = 2 # 1 << 1
676
- ImGuiViewportFlags_OwnedByApp = 4 # 1 << 2
770
+ # Flags stored in ImGuiViewport::Flags, giving indications to the platform backends.
771
+ ImGuiViewportFlags_None = 0 # 0
772
+ ImGuiViewportFlags_IsPlatformWindow = 1 # 1 << 0 # Represent a Platform Window
773
+ ImGuiViewportFlags_IsPlatformMonitor = 2 # 1 << 1 # Represent a Platform Monitor (unused yet)
774
+ ImGuiViewportFlags_OwnedByApp = 4 # 1 << 2 # Platform Window: is created/managed by the application (rather than a dear imgui backend)
677
775
 
678
776
  # ImGuiWindowFlags_
679
- ImGuiWindowFlags_None = 0 # 0
680
- ImGuiWindowFlags_NoTitleBar = 1 # 1 << 0
681
- ImGuiWindowFlags_NoResize = 2 # 1 << 1
682
- ImGuiWindowFlags_NoMove = 4 # 1 << 2
683
- ImGuiWindowFlags_NoScrollbar = 8 # 1 << 3
684
- ImGuiWindowFlags_NoScrollWithMouse = 16 # 1 << 4
685
- ImGuiWindowFlags_NoCollapse = 32 # 1 << 5
686
- ImGuiWindowFlags_AlwaysAutoResize = 64 # 1 << 6
687
- ImGuiWindowFlags_NoBackground = 128 # 1 << 7
688
- ImGuiWindowFlags_NoSavedSettings = 256 # 1 << 8
689
- ImGuiWindowFlags_NoMouseInputs = 512 # 1 << 9
690
- ImGuiWindowFlags_MenuBar = 1024 # 1 << 10
691
- ImGuiWindowFlags_HorizontalScrollbar = 2048 # 1 << 11
692
- ImGuiWindowFlags_NoFocusOnAppearing = 4096 # 1 << 12
693
- ImGuiWindowFlags_NoBringToFrontOnFocus = 8192 # 1 << 13
694
- ImGuiWindowFlags_AlwaysVerticalScrollbar = 16384 # 1 << 14
695
- ImGuiWindowFlags_AlwaysHorizontalScrollbar = 32768 # 1<< 15
696
- ImGuiWindowFlags_AlwaysUseWindowPadding = 65536 # 1 << 16
697
- ImGuiWindowFlags_NoNavInputs = 262144 # 1 << 18
698
- ImGuiWindowFlags_NoNavFocus = 524288 # 1 << 19
699
- ImGuiWindowFlags_UnsavedDocument = 1048576 # 1 << 20
700
- ImGuiWindowFlags_NoNav = 786432 # ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
701
- ImGuiWindowFlags_NoDecoration = 43 # ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse
702
- ImGuiWindowFlags_NoInputs = 786944 # ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
703
- ImGuiWindowFlags_NavFlattened = 8388608 # 1 << 23
704
- ImGuiWindowFlags_ChildWindow = 16777216 # 1 << 24
705
- ImGuiWindowFlags_Tooltip = 33554432 # 1 << 25
706
- ImGuiWindowFlags_Popup = 67108864 # 1 << 26
707
- ImGuiWindowFlags_Modal = 134217728 # 1 << 27
708
- ImGuiWindowFlags_ChildMenu = 268435456 # 1 << 28
777
+ # Flags for ImGui::Begin()
778
+ # (Those are per-window flags. There are shared flags in ImGuiIO: io.ConfigWindowsResizeFromEdges and io.ConfigWindowsMoveFromTitleBarOnly)
779
+ ImGuiWindowFlags_None = 0 # 0
780
+ ImGuiWindowFlags_NoTitleBar = 1 # 1 << 0 # Disable title-bar
781
+ ImGuiWindowFlags_NoResize = 2 # 1 << 1 # Disable user resizing with the lower-right grip
782
+ ImGuiWindowFlags_NoMove = 4 # 1 << 2 # Disable user moving the window
783
+ ImGuiWindowFlags_NoScrollbar = 8 # 1 << 3 # Disable scrollbars (window can still scroll with mouse or programmatically)
784
+ ImGuiWindowFlags_NoScrollWithMouse = 16 # 1 << 4 # Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set.
785
+ ImGuiWindowFlags_NoCollapse = 32 # 1 << 5 # Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node).
786
+ ImGuiWindowFlags_AlwaysAutoResize = 64 # 1 << 6 # Resize every window to its content every frame
787
+ ImGuiWindowFlags_NoBackground = 128 # 1 << 7 # Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f).
788
+ ImGuiWindowFlags_NoSavedSettings = 256 # 1 << 8 # Never load/save settings in .ini file
789
+ ImGuiWindowFlags_NoMouseInputs = 512 # 1 << 9 # Disable catching mouse, hovering test with pass through.
790
+ ImGuiWindowFlags_MenuBar = 1024 # 1 << 10 # Has a menu-bar
791
+ ImGuiWindowFlags_HorizontalScrollbar = 2048 # 1 << 11 # Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the "Horizontal Scrolling" section.
792
+ ImGuiWindowFlags_NoFocusOnAppearing = 4096 # 1 << 12 # Disable taking focus when transitioning from hidden to visible state
793
+ ImGuiWindowFlags_NoBringToFrontOnFocus = 8192 # 1 << 13 # Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)
794
+ ImGuiWindowFlags_AlwaysVerticalScrollbar = 16384 # 1 << 14 # Always show vertical scrollbar (even if ContentSize.y < Size.y)
795
+ ImGuiWindowFlags_AlwaysHorizontalScrollbar = 32768 # 1<< 15 # Always show horizontal scrollbar (even if ContentSize.x < Size.x)
796
+ ImGuiWindowFlags_AlwaysUseWindowPadding = 65536 # 1 << 16 # Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)
797
+ ImGuiWindowFlags_NoNavInputs = 262144 # 1 << 18 # No gamepad/keyboard navigation within the window
798
+ ImGuiWindowFlags_NoNavFocus = 524288 # 1 << 19 # No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)
799
+ ImGuiWindowFlags_UnsavedDocument = 1048576 # 1 << 20 # 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.
800
+ ImGuiWindowFlags_NoNav = 786432 # ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
801
+ ImGuiWindowFlags_NoDecoration = 43 # ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse
802
+ ImGuiWindowFlags_NoInputs = 786944 # ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
803
+ 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.
804
+ ImGuiWindowFlags_ChildWindow = 16777216 # 1 << 24 # Don't use! For internal use by BeginChild()
805
+ ImGuiWindowFlags_Tooltip = 33554432 # 1 << 25 # Don't use! For internal use by BeginTooltip()
806
+ ImGuiWindowFlags_Popup = 67108864 # 1 << 26 # Don't use! For internal use by BeginPopup()
807
+ ImGuiWindowFlags_Modal = 134217728 # 1 << 27 # Don't use! For internal use by BeginPopupModal()
808
+ ImGuiWindowFlags_ChildMenu = 268435456 # 1 << 28 # Don't use! For internal use by BeginMenu()
709
809
 
710
810
 
711
811
  class ImVec2 < FFI::Struct
@@ -715,6 +815,7 @@ class ImVec2 < FFI::Struct
715
815
  )
716
816
  end
717
817
 
818
+ # ImVec4: 4D vector used to store clipping rectangles, colors etc. [Compile-time configurable type]
718
819
  class ImVec4 < FFI::Struct
719
820
  layout(
720
821
  :x, :float,
@@ -740,26 +841,34 @@ class ImDrawVert < FFI::Struct
740
841
  )
741
842
  end
742
843
 
844
+ # Split/Merge functions are used to split the draw list into different layers which can be drawn into out of order.
845
+ # This is used by the Columns/Tables API, so items of each column can be batched together in a same draw call.
743
846
  class ImDrawListSplitter < FFI::Struct
744
847
  layout(
745
- :_Current, :int,
746
- :_Count, :int,
747
- :_Channels, ImVector.by_value
848
+ :_Current, :int, # Current channel number (0)
849
+ :_Count, :int, # Number of active channels (1+)
850
+ :_Channels, ImVector.by_value # Draw channels (not resized down so _Count might be < Channels.Size)
748
851
  )
749
852
  end
750
853
 
854
+ # Typically, 1 command = 1 GPU draw call (unless command is a callback)
855
+ # - VtxOffset: When 'io.BackendFlags & ImGuiBackendFlags_RendererHasVtxOffset' is enabled,
856
+ # this fields allow us to render meshes larger than 64K vertices while keeping 16-bit indices.
857
+ # Backends made for <1.71. will typically ignore the VtxOffset fields.
858
+ # - The ClipRect/TextureId/VtxOffset fields must be contiguous as we memcmp() them together (this is asserted for).
751
859
  class ImDrawCmd < FFI::Struct
752
860
  layout(
753
- :ClipRect, ImVec4.by_value,
754
- :TextureId, :pointer,
755
- :VtxOffset, :uint,
756
- :IdxOffset, :uint,
757
- :ElemCount, :uint,
758
- :UserCallback, :pointer,
759
- :UserCallbackData, :pointer
861
+ :ClipRect, ImVec4.by_value, # 4*4 // Clipping rectangle (x1, y1, x2, y2). Subtract ImDrawData->DisplayPos to get clipping rectangle in "viewport" coordinates
862
+ :TextureId, :pointer, # 4-8 // User-provided texture ID. Set by user in ImfontAtlas::SetTexID() for fonts or passed to Image*() functions. Ignore if never using images or multiple fonts atlas.
863
+ :VtxOffset, :uint, # 4 // Start offset in vertex buffer. ImGuiBackendFlags_RendererHasVtxOffset: always 0, otherwise may be >0 to support meshes larger than 64K vertices with 16-bit indices.
864
+ :IdxOffset, :uint, # 4 // Start offset in index buffer.
865
+ :ElemCount, :uint, # 4 // Number of indices (multiple of 3) to be rendered as triangles. Vertices are stored in the callee ImDrawList's vtx_buffer[] array, indices in idx_buffer[].
866
+ :UserCallback, :pointer, # 4-8 // If != NULL, call the function instead of rendering the vertices. clip_rect and texture_id will be set normally.
867
+ :UserCallbackData, :pointer # 4-8 // The draw callback code can access this.
760
868
  )
761
869
  end
762
870
 
871
+ # [Internal] For use by ImDrawList
763
872
  class ImDrawCmdHeader < FFI::Struct
764
873
  layout(
765
874
  :ClipRect, ImVec4.by_value,
@@ -768,23 +877,32 @@ class ImDrawCmdHeader < FFI::Struct
768
877
  )
769
878
  end
770
879
 
880
+ # Draw command list
881
+ # This is the low-level list of polygons that ImGui:: functions are filling. At the end of the frame,
882
+ # all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering.
883
+ # Each dear imgui window contains its own ImDrawList. You can use ImGui::GetWindowDrawList() to
884
+ # access the current window draw list and draw custom primitives.
885
+ # You can interleave normal ImGui:: calls and adding primitives to the current draw list.
886
+ # In single viewport mode, top-left is == GetMainViewport()->Pos (generally 0,0), bottom-right is == GetMainViewport()->Pos+Size (generally io.DisplaySize).
887
+ # You are totally free to apply whatever transformation matrix to want to the data (depending on the use of the transformation you may want to apply it to ClipRect as well!)
888
+ # 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.
771
889
  class ImDrawList < FFI::Struct
772
890
  layout(
773
- :CmdBuffer, ImVector.by_value,
774
- :IdxBuffer, ImVector.by_value,
775
- :VtxBuffer, ImVector.by_value,
776
- :Flags, :int,
777
- :_VtxCurrentIdx, :uint,
778
- :_Data, :pointer,
779
- :_OwnerName, :pointer,
780
- :_VtxWritePtr, ImDrawVert.ptr,
781
- :_IdxWritePtr, :pointer,
782
- :_ClipRectStack, ImVector.by_value,
783
- :_TextureIdStack, ImVector.by_value,
784
- :_Path, ImVector.by_value,
785
- :_CmdHeader, ImDrawCmdHeader.by_value,
786
- :_Splitter, ImDrawListSplitter.by_value,
787
- :_FringeScale, :float
891
+ :CmdBuffer, ImVector.by_value, # Draw commands. Typically 1 command = 1 GPU draw call, unless the command is a callback.
892
+ :IdxBuffer, ImVector.by_value, # Index buffer. Each command consume ImDrawCmd::ElemCount of those
893
+ :VtxBuffer, ImVector.by_value, # Vertex buffer.
894
+ :Flags, :int, # Flags, you may poke into these to adjust anti-aliasing settings per-primitive.
895
+ :_VtxCurrentIdx, :uint, # [Internal] generally == VtxBuffer.Size unless we are past 64K vertices, in which case this gets reset to 0.
896
+ :_Data, :pointer, # Pointer to shared draw data (you can use ImGui::GetDrawListSharedData() to get the one from current ImGui context)
897
+ :_OwnerName, :pointer, # Pointer to owner window's name for debugging
898
+ :_VtxWritePtr, ImDrawVert.ptr, # [Internal] point within VtxBuffer.Data after each add command (to avoid using the ImVector<> operators too much)
899
+ :_IdxWritePtr, :pointer, # [Internal] point within IdxBuffer.Data after each add command (to avoid using the ImVector<> operators too much)
900
+ :_ClipRectStack, ImVector.by_value, # [Internal]
901
+ :_TextureIdStack, ImVector.by_value, # [Internal]
902
+ :_Path, ImVector.by_value, # [Internal] current path building
903
+ :_CmdHeader, ImDrawCmdHeader.by_value, # [Internal] template of active commands. Fields should match those of CmdBuffer.back().
904
+ :_Splitter, ImDrawListSplitter.by_value, # [Internal] for channels api (note: prefer using your own persistent instance of ImDrawListSplitter!)
905
+ :_FringeScale, :float # [Internal] anti-alias fringe is scaled by this value, this helps to keep things sharp while zooming at vertex buffer content
788
906
  )
789
907
 
790
908
  def AddBezierCubic(p1, p2, p3, p4, col, thickness, num_segments = 0)
@@ -1049,29 +1167,47 @@ class ImDrawList < FFI::Struct
1049
1167
 
1050
1168
  end
1051
1169
 
1170
+ # Load and rasterize multiple TTF/OTF fonts into a same texture. The font atlas will build a single texture holding:
1171
+ # - One or more fonts.
1172
+ # - Custom graphics data needed to render the shapes needed by Dear ImGui.
1173
+ # - Mouse cursor shapes for software cursor rendering (unless setting 'Flags |= ImFontAtlasFlags_NoMouseCursors' in the font atlas).
1174
+ # It is the user-code responsibility to setup/build the atlas, then upload the pixel data into a texture accessible by your graphics api.
1175
+ # - Optionally, call any of the AddFont*** functions. If you don't call any, the default font embedded in the code will be loaded for you.
1176
+ # - Call GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data.
1177
+ # - Upload the pixels data into a texture within your graphics system (see imgui_impl_xxxx.cpp examples)
1178
+ # - Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture in a format natural to your graphics API.
1179
+ # This value will be passed back to you during rendering to identify the texture. Read FAQ entry about ImTextureID for more details.
1180
+ # Common pitfalls:
1181
+ # - If you pass a 'glyph_ranges' array to AddFont*** functions, you need to make sure that your array persist up until the
1182
+ # atlas is build (when calling GetTexData*** or Build()). We only copy the pointer, not the data.
1183
+ # - Important: By default, AddFontFromMemoryTTF() takes ownership of the data. Even though we are not writing to it, we will free the pointer on destruction.
1184
+ # You can set font_cfg->FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed,
1185
+ # - Even though many functions are suffixed with "TTF", OTF data is supported just as well.
1186
+ # - This is an old API and it is currently awkward for those and various other reasons! We will address them in the future!
1052
1187
  class ImFontAtlas < FFI::Struct
1053
1188
  layout(
1054
- :Flags, :int,
1055
- :TexID, :pointer,
1056
- :TexDesiredWidth, :int,
1057
- :TexGlyphPadding, :int,
1058
- :Locked, :bool,
1059
- :TexReady, :bool,
1060
- :TexPixelsUseColors, :bool,
1061
- :TexPixelsAlpha8, :pointer,
1062
- :TexPixelsRGBA32, :pointer,
1063
- :TexWidth, :int,
1064
- :TexHeight, :int,
1065
- :TexUvScale, ImVec2.by_value,
1066
- :TexUvWhitePixel, ImVec2.by_value,
1067
- :Fonts, ImVector.by_value,
1068
- :CustomRects, ImVector.by_value,
1069
- :ConfigData, ImVector.by_value,
1070
- :TexUvLines, [ImVec4.by_value, 64],
1071
- :FontBuilderIO, :pointer,
1072
- :FontBuilderFlags, :uint,
1073
- :PackIdMouseCursors, :int,
1074
- :PackIdLines, :int
1189
+ :Flags, :int, # Build flags (see ImFontAtlasFlags_)
1190
+ :TexID, :pointer, # User data to refer to the texture once it has been uploaded to user's graphic systems. It is passed back to you during rendering via the ImDrawCmd structure.
1191
+ :TexDesiredWidth, :int, # Texture width desired by user before Build(). Must be a power-of-two. If have many glyphs your graphics API have texture size restrictions you may want to increase texture width to decrease height.
1192
+ :TexGlyphPadding, :int, # Padding between glyphs within texture in pixels. Defaults to 1. If your rendering method doesn't rely on bilinear filtering you may set this to 0 (will also need to set AntiAliasedLinesUseTex = false).
1193
+ :Locked, :bool, # Marked as Locked by ImGui::NewFrame() so attempt to modify the atlas will assert.
1194
+ :UserData, :pointer, # Store your own atlas related user-data (if e.g. you have multiple font atlas).
1195
+ :TexReady, :bool, # Set when texture was built matching current font input
1196
+ :TexPixelsUseColors, :bool, # Tell whether our texture data is known to use colors (rather than just alpha channel), in order to help backend select a format.
1197
+ :TexPixelsAlpha8, :pointer, # 1 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight
1198
+ :TexPixelsRGBA32, :pointer, # 4 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight * 4
1199
+ :TexWidth, :int, # Texture width calculated during Build().
1200
+ :TexHeight, :int, # Texture height calculated during Build().
1201
+ :TexUvScale, ImVec2.by_value, # = (1.0f/TexWidth, 1.0f/TexHeight)
1202
+ :TexUvWhitePixel, ImVec2.by_value, # Texture coordinates to a white pixel
1203
+ :Fonts, ImVector.by_value, # Hold all the fonts returned by AddFont*. Fonts[0] is the default font upon calling ImGui::NewFrame(), use ImGui::PushFont()/PopFont() to change the current font.
1204
+ :CustomRects, ImVector.by_value, # Rectangles for packing custom texture data into the atlas.
1205
+ :ConfigData, ImVector.by_value, # Configuration data
1206
+ :TexUvLines, [ImVec4.by_value, 64], # UVs for baked anti-aliased lines
1207
+ :FontBuilderIO, :pointer, # Opaque interface to a font builder (default to stb_truetype, can be changed to use FreeType by defining IMGUI_ENABLE_FREETYPE).
1208
+ :FontBuilderFlags, :uint, # Shared flags (for all fonts) for custom font builder. THIS IS BUILD IMPLEMENTATION DEPENDENT. Per-font override is also available in ImFontConfig.
1209
+ :PackIdMouseCursors, :int, # Custom texture rectangle ID for white pixel and mouse cursors
1210
+ :PackIdLines, :int # Custom texture rectangle ID for baked anti-aliased lines
1075
1211
  )
1076
1212
 
1077
1213
  def AddCustomRectFontGlyph(font, id, width, height, advance_x, offset = ImVec2.create(0,0))
@@ -1150,6 +1286,10 @@ class ImFontAtlas < FFI::Struct
1150
1286
  ImGui::ImFontAtlas_GetGlyphRangesDefault(self)
1151
1287
  end
1152
1288
 
1289
+ def GetGlyphRangesGreek()
1290
+ ImGui::ImFontAtlas_GetGlyphRangesGreek(self)
1291
+ end
1292
+
1153
1293
  def GetGlyphRangesJapanese()
1154
1294
  ImGui::ImFontAtlas_GetGlyphRangesJapanese(self)
1155
1295
  end
@@ -1196,90 +1336,102 @@ class ImFontAtlas < FFI::Struct
1196
1336
 
1197
1337
  end
1198
1338
 
1339
+ # [Internal] Storage used by IsKeyDown(), IsKeyPressed() etc functions.
1340
+ # 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.
1199
1341
  class ImGuiKeyData < FFI::Struct
1200
1342
  layout(
1201
- :Down, :bool,
1202
- :DownDuration, :float,
1203
- :DownDurationPrev, :float,
1204
- :AnalogValue, :float
1343
+ :Down, :bool, # True for if key is down
1344
+ :DownDuration, :float, # Duration the key has been down (<0.0f: not pressed, 0.0f: just pressed, >0.0f: time held)
1345
+ :DownDurationPrev, :float, # Last frame duration the key has been down
1346
+ :AnalogValue, :float # 0.0f..1.0f for gamepad values
1205
1347
  )
1206
1348
  end
1207
1349
 
1350
+ # Helper: ImColor() implicitly converts colors to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float)
1351
+ # Prefer using IM_COL32() macros if you want a guaranteed compile-time ImU32 for usage with ImDrawList API.
1352
+ # **Avoid storing ImColor! Store either u32 of ImVec4. This is not a full-featured color class. MAY OBSOLETE.
1353
+ # **None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats. Explicitly cast to ImU32 or ImVec4 if needed.
1208
1354
  class ImColor < FFI::Struct
1209
1355
  layout(
1210
1356
  :Value, ImVec4.by_value
1211
1357
  )
1212
1358
  end
1213
1359
 
1360
+ # All draw data to render a Dear ImGui frame
1361
+ # (NB: the style and the naming convention here is a little inconsistent, we currently preserve them for backward compatibility purpose,
1362
+ # as this is one of the oldest structure exposed by the library! Basically, ImDrawList == CmdList)
1214
1363
  class ImDrawData < FFI::Struct
1215
1364
  layout(
1216
- :Valid, :bool,
1217
- :CmdListsCount, :int,
1218
- :TotalIdxCount, :int,
1219
- :TotalVtxCount, :int,
1220
- :CmdLists, ImDrawList.ptr,
1221
- :DisplayPos, ImVec2.by_value,
1222
- :DisplaySize, ImVec2.by_value,
1223
- :FramebufferScale, ImVec2.by_value
1365
+ :Valid, :bool, # Only valid after Render() is called and before the next NewFrame() is called.
1366
+ :CmdListsCount, :int, # Number of ImDrawList* to render
1367
+ :TotalIdxCount, :int, # For convenience, sum of all ImDrawList's IdxBuffer.Size
1368
+ :TotalVtxCount, :int, # For convenience, sum of all ImDrawList's VtxBuffer.Size
1369
+ :CmdLists, ImDrawList.ptr, # Array of ImDrawList* to render. The ImDrawList are owned by ImGuiContext and only pointed to from here.
1370
+ :DisplayPos, ImVec2.by_value, # Top-left position of the viewport to render (== top-left of the orthogonal projection matrix to use) (== GetMainViewport()->Pos for the main viewport, == (0.0) in most single-viewport applications)
1371
+ :DisplaySize, ImVec2.by_value, # Size of the viewport to render (== GetMainViewport()->Size for the main viewport, == io.DisplaySize in most single-viewport applications)
1372
+ :FramebufferScale, ImVec2.by_value # Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display.
1224
1373
  )
1225
1374
  end
1226
1375
 
1376
+ # Font runtime data and rendering
1377
+ # ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32().
1227
1378
  class ImFont < FFI::Struct
1228
1379
  layout(
1229
- :IndexAdvanceX, ImVector.by_value,
1230
- :FallbackAdvanceX, :float,
1231
- :FontSize, :float,
1232
- :IndexLookup, ImVector.by_value,
1233
- :Glyphs, ImVector.by_value,
1234
- :FallbackGlyph, :pointer,
1235
- :ContainerAtlas, ImFontAtlas.ptr,
1236
- :ConfigData, :pointer,
1237
- :ConfigDataCount, :short,
1238
- :FallbackChar, :ushort,
1239
- :EllipsisChar, :ushort,
1240
- :DotChar, :ushort,
1241
- :DirtyLookupTables, :bool,
1242
- :Scale, :float,
1243
- :Ascent, :float,
1380
+ :IndexAdvanceX, ImVector.by_value, # 12-16 // out // // Sparse. Glyphs->AdvanceX in a directly indexable way (cache-friendly for CalcTextSize functions which only this this info, and are often bottleneck in large UI).
1381
+ :FallbackAdvanceX, :float, # 4 // out // = FallbackGlyph->AdvanceX
1382
+ :FontSize, :float, # 4 // in // // Height of characters/line, set during loading (don't change after loading)
1383
+ :IndexLookup, ImVector.by_value, # 12-16 // out // // Sparse. Index glyphs by Unicode code-point.
1384
+ :Glyphs, ImVector.by_value, # 12-16 // out // // All glyphs.
1385
+ :FallbackGlyph, :pointer, # 4-8 // out // = FindGlyph(FontFallbackChar)
1386
+ :ContainerAtlas, ImFontAtlas.ptr, # 4-8 // out // // What we has been loaded into
1387
+ :ConfigData, :pointer, # 4-8 // in // // Pointer within ContainerAtlas->ConfigData
1388
+ :ConfigDataCount, :short, # 2 // in // ~ 1 // Number of ImFontConfig involved in creating this font. Bigger than 1 when merging multiple font sources into one ImFont.
1389
+ :FallbackChar, :ushort, # 2 // out // = FFFD/'?' // Character used if a glyph isn't found.
1390
+ :EllipsisChar, :ushort, # 2 // out // = '...' // Character used for ellipsis rendering.
1391
+ :DotChar, :ushort, # 2 // out // = '.' // Character used for ellipsis rendering (if a single '...' character isn't found)
1392
+ :DirtyLookupTables, :bool, # 1 // out //
1393
+ :Scale, :float, # 4 // in // = 1.f // Base font scale, multiplied by the per-window font scale which you can adjust with SetWindowFontScale()
1394
+ :Ascent, :float, # 4+4 // out // // Ascent: distance from top to bottom of e.g. 'A' [0..FontSize]
1244
1395
  :Descent, :float,
1245
- :MetricsTotalSurface, :int,
1246
- :Used4kPagesMap, [:uchar, 2]
1396
+ :MetricsTotalSurface, :int, # 4 // out // // Total surface in pixels to get an idea of the font rasterization/texture cost (not exact, we approximate the cost of padding between glyphs)
1397
+ :Used4kPagesMap, [:uchar, 2] # 2 bytes if ImWchar=ImWchar16, 34 bytes if ImWchar==ImWchar32. Store 1-bit for each block of 4K codepoints that has one active glyph. This is mainly used to facilitate iterations across all used codepoints.
1247
1398
  )
1248
1399
  end
1249
1400
 
1401
+ # See ImFontAtlas::AddCustomRectXXX functions.
1250
1402
  class ImFontAtlasCustomRect < FFI::Struct
1251
1403
  layout(
1252
- :Width, :ushort,
1404
+ :Width, :ushort, # Input // Desired rectangle dimension
1253
1405
  :Height, :ushort,
1254
- :X, :ushort,
1406
+ :X, :ushort, # Output // Packed position in Atlas
1255
1407
  :Y, :ushort,
1256
- :GlyphID, :uint,
1257
- :GlyphAdvanceX, :float,
1258
- :GlyphOffset, ImVec2.by_value,
1259
- :Font, ImFont.ptr
1408
+ :GlyphID, :uint, # Input // For custom font glyphs only (ID < 0x110000)
1409
+ :GlyphAdvanceX, :float, # Input // For custom font glyphs only: glyph xadvance
1410
+ :GlyphOffset, ImVec2.by_value, # Input // For custom font glyphs only: glyph display offset
1411
+ :Font, ImFont.ptr # Input // For custom font glyphs only: target font
1260
1412
  )
1261
1413
  end
1262
1414
 
1263
1415
  class ImFontConfig < FFI::Struct
1264
1416
  layout(
1265
- :FontData, :pointer,
1266
- :FontDataSize, :int,
1267
- :FontDataOwnedByAtlas, :bool,
1268
- :FontNo, :int,
1269
- :SizePixels, :float,
1270
- :OversampleH, :int,
1271
- :OversampleV, :int,
1272
- :PixelSnapH, :bool,
1273
- :GlyphExtraSpacing, ImVec2.by_value,
1274
- :GlyphOffset, ImVec2.by_value,
1275
- :GlyphRanges, :pointer,
1276
- :GlyphMinAdvanceX, :float,
1277
- :GlyphMaxAdvanceX, :float,
1278
- :MergeMode, :bool,
1279
- :FontBuilderFlags, :uint,
1280
- :RasterizerMultiply, :float,
1281
- :EllipsisChar, :ushort,
1282
- :Name, [:char, 40],
1417
+ :FontData, :pointer, # // TTF/OTF data
1418
+ :FontDataSize, :int, # // TTF/OTF data size
1419
+ :FontDataOwnedByAtlas, :bool, # true // TTF/OTF data ownership taken by the container ImFontAtlas (will delete memory itself).
1420
+ :FontNo, :int, # 0 // Index of font within TTF/OTF file
1421
+ :SizePixels, :float, # // Size in pixels for rasterizer (more or less maps to the resulting font height).
1422
+ :OversampleH, :int, # 3 // Rasterize at higher quality for sub-pixel positioning. Note the difference between 2 and 3 is minimal so you can reduce this to 2 to save memory. Read https://github.com/nothings/stb/blob/master/tests/oversample/README.md for details.
1423
+ :OversampleV, :int, # 1 // Rasterize at higher quality for sub-pixel positioning. This is not really useful as we don't use sub-pixel positions on the Y axis.
1424
+ :PixelSnapH, :bool, # false // Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. If enabled, you can set OversampleH/V to 1.
1425
+ :GlyphExtraSpacing, ImVec2.by_value, # 0, 0 // Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
1426
+ :GlyphOffset, ImVec2.by_value, # 0, 0 // Offset all glyphs from this font input.
1427
+ :GlyphRanges, :pointer, # NULL // Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list). THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
1428
+ :GlyphMinAdvanceX, :float, # 0 // Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font
1429
+ :GlyphMaxAdvanceX, :float, # FLT_MAX // Maximum AdvanceX for glyphs
1430
+ :MergeMode, :bool, # false // Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). You may want to use GlyphOffset.y when merge font of different heights.
1431
+ :FontBuilderFlags, :uint, # 0 // Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
1432
+ :RasterizerMultiply, :float, # 1.0f // Brighten (>1.0f) or darken (<1.0f) font output. Brightening small fonts may be a good workaround to make them more readable.
1433
+ :EllipsisChar, :ushort, # -1 // Explicitly specify unicode codepoint of ellipsis character. When fonts are being merged first specified ellipsis will be used.
1434
+ :Name, [:char, 40], # Name (strictly to ease debugging)
1283
1435
  :DstFont, ImFont.ptr
1284
1436
  )
1285
1437
 
@@ -1293,9 +1445,11 @@ class ImFontConfig < FFI::Struct
1293
1445
 
1294
1446
  end
1295
1447
 
1448
+ # Helper to build glyph ranges from text/string data. Feed your application strings/characters to it then call BuildRanges().
1449
+ # This is essentially a tightly packed of vector of 64k booleans = 8KB storage.
1296
1450
  class ImFontGlyphRangesBuilder < FFI::Struct
1297
1451
  layout(
1298
- :UsedChars, ImVector.by_value
1452
+ :UsedChars, ImVector.by_value # Store 1-bit per Unicode code point (0=unused, 1=used)
1299
1453
  )
1300
1454
 
1301
1455
  def AddChar(c)
@@ -1338,92 +1492,93 @@ end
1338
1492
 
1339
1493
  class ImGuiIO < FFI::Struct
1340
1494
  layout(
1341
- :ConfigFlags, :int,
1342
- :BackendFlags, :int,
1343
- :DisplaySize, ImVec2.by_value,
1344
- :DeltaTime, :float,
1345
- :IniSavingRate, :float,
1346
- :IniFilename, :pointer,
1347
- :LogFilename, :pointer,
1348
- :MouseDoubleClickTime, :float,
1349
- :MouseDoubleClickMaxDist, :float,
1350
- :MouseDragThreshold, :float,
1351
- :KeyRepeatDelay, :float,
1352
- :KeyRepeatRate, :float,
1353
- :UserData, :pointer,
1354
- :Fonts, ImFontAtlas.ptr,
1355
- :FontGlobalScale, :float,
1356
- :FontAllowUserScaling, :bool,
1357
- :FontDefault, ImFont.ptr,
1358
- :DisplayFramebufferScale, ImVec2.by_value,
1359
- :MouseDrawCursor, :bool,
1360
- :ConfigMacOSXBehaviors, :bool,
1361
- :ConfigInputTrickleEventQueue, :bool,
1362
- :ConfigInputTextCursorBlink, :bool,
1363
- :ConfigDragClickToInputText, :bool,
1364
- :ConfigWindowsResizeFromEdges, :bool,
1365
- :ConfigWindowsMoveFromTitleBarOnly, :bool,
1366
- :ConfigMemoryCompactTimer, :float,
1367
- :BackendPlatformName, :pointer,
1368
- :BackendRendererName, :pointer,
1369
- :BackendPlatformUserData, :pointer,
1370
- :BackendRendererUserData, :pointer,
1371
- :BackendLanguageUserData, :pointer,
1495
+ :ConfigFlags, :int, # = 0 // See ImGuiConfigFlags_ enum. Set by user/application. Gamepad/keyboard navigation options, etc.
1496
+ :BackendFlags, :int, # = 0 // See ImGuiBackendFlags_ enum. Set by backend (imgui_impl_xxx files or custom backend) to communicate features supported by the backend.
1497
+ :DisplaySize, ImVec2.by_value, # <unset> // Main display size, in pixels (generally == GetMainViewport()->Size). May change every frame.
1498
+ :DeltaTime, :float, # = 1.0f/60.0f // Time elapsed since last frame, in seconds. May change every frame.
1499
+ :IniSavingRate, :float, # = 5.0f // Minimum time between saving positions/sizes to .ini file, in seconds.
1500
+ :IniFilename, :pointer, # = "imgui.ini" // Path to .ini file (important: default "imgui.ini" is relative to current working dir!). Set NULL to disable automatic .ini loading/saving or if you want to manually call LoadIniSettingsXXX() / SaveIniSettingsXXX() functions.
1501
+ :LogFilename, :pointer, # = "imgui_log.txt"// Path to .log file (default parameter to ImGui::LogToFile when no file is specified).
1502
+ :MouseDoubleClickTime, :float, # = 0.30f // Time for a double-click, in seconds.
1503
+ :MouseDoubleClickMaxDist, :float, # = 6.0f // Distance threshold to stay in to validate a double-click, in pixels.
1504
+ :MouseDragThreshold, :float, # = 6.0f // Distance threshold before considering we are dragging.
1505
+ :KeyRepeatDelay, :float, # = 0.275f // When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.).
1506
+ :KeyRepeatRate, :float, # = 0.050f // When holding a key/button, rate at which it repeats, in seconds.
1507
+ :HoverDelayNormal, :float, # = 0.30 sec // Delay on hovering before IsItemHovered(ImGuiHoveredFlags_DelayNormal) returns true.
1508
+ :HoverDelayShort, :float, # = 0.10 sec // Delay on hovering before IsItemHovered(ImGuiHoveredFlags_DelayShort) returns true.
1509
+ :UserData, :pointer, # = NULL // Store your own data.
1510
+ :Fonts, ImFontAtlas.ptr, # <auto> // Font atlas: load, rasterize and pack one or more fonts into a single texture.
1511
+ :FontGlobalScale, :float, # = 1.0f // Global scale all fonts
1512
+ :FontAllowUserScaling, :bool, # = false // Allow user scaling text of individual window with CTRL+Wheel.
1513
+ :FontDefault, ImFont.ptr, # = NULL // Font to use on NewFrame(). Use NULL to uses Fonts->Fonts[0].
1514
+ :DisplayFramebufferScale, ImVec2.by_value, # = (1, 1) // For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale.
1515
+ :MouseDrawCursor, :bool, # = false // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). Cannot be easily renamed to 'io.ConfigXXX' because this is frequently used by backend implementations.
1516
+ :ConfigMacOSXBehaviors, :bool, # = defined(__APPLE__) // OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, Multi-selection in lists uses Cmd/Super instead of Ctrl.
1517
+ :ConfigInputTrickleEventQueue, :bool, # = true // Enable input queue trickling: some types of events submitted during the same frame (e.g. button down + up) will be spread over multiple frames, improving interactions with low framerates.
1518
+ :ConfigInputTextCursorBlink, :bool, # = true // Enable blinking cursor (optional as some users consider it to be distracting).
1519
+ :ConfigInputTextEnterKeepActive, :bool, # = false // [BETA] Pressing Enter will keep item active and select contents (single-line only).
1520
+ :ConfigDragClickToInputText, :bool, # = false // [BETA] Enable turning DragXXX widgets into text input with a simple mouse click-release (without moving). Not desirable on devices without a keyboard.
1521
+ :ConfigWindowsResizeFromEdges, :bool, # = true // Enable resizing of windows from their edges and from the lower-left corner. This requires (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. (This used to be a per-window ImGuiWindowFlags_ResizeFromAnySide flag)
1522
+ :ConfigWindowsMoveFromTitleBarOnly, :bool, # = false // Enable allowing to move windows only when clicking on their title bar. Does not apply to windows without a title bar.
1523
+ :ConfigMemoryCompactTimer, :float, # = 60.0f // Timer (in seconds) to free transient windows/tables memory buffers when unused. Set to -1.0f to disable.
1524
+ :BackendPlatformName, :pointer, # = NULL
1525
+ :BackendRendererName, :pointer, # = NULL
1526
+ :BackendPlatformUserData, :pointer, # = NULL // User data for platform backend
1527
+ :BackendRendererUserData, :pointer, # = NULL // User data for renderer backend
1528
+ :BackendLanguageUserData, :pointer, # = NULL // User data for non C++ programming language backend
1372
1529
  :GetClipboardTextFn, :pointer,
1373
1530
  :SetClipboardTextFn, :pointer,
1374
1531
  :ClipboardUserData, :pointer,
1375
1532
  :SetPlatformImeDataFn, :pointer,
1376
1533
  :_UnusedPadding, :pointer,
1377
- :WantCaptureMouse, :bool,
1378
- :WantCaptureKeyboard, :bool,
1379
- :WantTextInput, :bool,
1380
- :WantSetMousePos, :bool,
1381
- :WantSaveIniSettings, :bool,
1382
- :NavActive, :bool,
1383
- :NavVisible, :bool,
1384
- :Framerate, :float,
1385
- :MetricsRenderVertices, :int,
1386
- :MetricsRenderIndices, :int,
1387
- :MetricsRenderWindows, :int,
1388
- :MetricsActiveWindows, :int,
1389
- :MetricsActiveAllocations, :int,
1390
- :MouseDelta, ImVec2.by_value,
1391
- :KeyMap, [:int, 645],
1392
- :KeysDown, [:bool, 645],
1393
- :MousePos, ImVec2.by_value,
1394
- :MouseDown, [:bool, 5],
1395
- :MouseWheel, :float,
1396
- :MouseWheelH, :float,
1397
- :KeyCtrl, :bool,
1398
- :KeyShift, :bool,
1399
- :KeyAlt, :bool,
1400
- :KeySuper, :bool,
1401
- :NavInputs, [:float, 20],
1402
- :KeyMods, :int,
1403
- :KeysData, [ImGuiKeyData.by_value, 645],
1404
- :WantCaptureMouseUnlessPopupClose, :bool,
1405
- :MousePosPrev, ImVec2.by_value,
1406
- :MouseClickedPos, [ImVec2.by_value, 5],
1407
- :MouseClickedTime, [:double, 5],
1408
- :MouseClicked, [:bool, 5],
1409
- :MouseDoubleClicked, [:bool, 5],
1410
- :MouseClickedCount, [:ushort, 5],
1411
- :MouseClickedLastCount, [:ushort, 5],
1412
- :MouseReleased, [:bool, 5],
1413
- :MouseDownOwned, [:bool, 5],
1414
- :MouseDownOwnedUnlessPopupClose, [:bool, 5],
1415
- :MouseDownDuration, [:float, 5],
1416
- :MouseDownDurationPrev, [:float, 5],
1417
- :MouseDragMaxDistanceSqr, [:float, 5],
1418
- :NavInputsDownDuration, [:float, 20],
1419
- :NavInputsDownDurationPrev, [:float, 20],
1420
- :PenPressure, :float,
1421
- :AppFocusLost, :bool,
1422
- :AppAcceptingEvents, :bool,
1423
- :BackendUsingLegacyKeyArrays, :char,
1424
- :BackendUsingLegacyNavInputArray, :bool,
1425
- :InputQueueSurrogate, :ushort,
1426
- :InputQueueCharacters, ImVector.by_value
1534
+ :WantCaptureMouse, :bool, # Set when Dear ImGui will use mouse inputs, in this case do not dispatch them to your main game/application (either way, always pass on mouse inputs to imgui). (e.g. unclicked mouse is hovering over an imgui window, widget is active, mouse was clicked over an imgui window, etc.).
1535
+ :WantCaptureKeyboard, :bool, # Set when Dear ImGui will use keyboard inputs, in this case do not dispatch them to your main game/application (either way, always pass keyboard inputs to imgui). (e.g. InputText active, or an imgui window is focused and navigation is enabled, etc.).
1536
+ :WantTextInput, :bool, # Mobile/console: when set, you may display an on-screen keyboard. This is set by Dear ImGui when it wants textual keyboard input to happen (e.g. when a InputText widget is active).
1537
+ :WantSetMousePos, :bool, # MousePos has been altered, backend should reposition mouse on next frame. Rarely used! Set only when ImGuiConfigFlags_NavEnableSetMousePos flag is enabled.
1538
+ :WantSaveIniSettings, :bool, # When manual .ini load/save is active (io.IniFilename == NULL), this will be set to notify your application that you can call SaveIniSettingsToMemory() and save yourself. Important: clear io.WantSaveIniSettings yourself after saving!
1539
+ :NavActive, :bool, # Keyboard/Gamepad navigation is currently allowed (will handle ImGuiKey_NavXXX events) = a window is focused and it doesn't use the ImGuiWindowFlags_NoNavInputs flag.
1540
+ :NavVisible, :bool, # Keyboard/Gamepad navigation is visible and allowed (will handle ImGuiKey_NavXXX events).
1541
+ :Framerate, :float, # Estimate of application framerate (rolling average over 60 frames, based on io.DeltaTime), in frame per second. Solely for convenience. Slow applications may not want to use a moving average or may want to reset underlying buffers occasionally.
1542
+ :MetricsRenderVertices, :int, # Vertices output during last call to Render()
1543
+ :MetricsRenderIndices, :int, # Indices output during last call to Render() = number of triangles * 3
1544
+ :MetricsRenderWindows, :int, # Number of visible windows
1545
+ :MetricsActiveWindows, :int, # Number of active windows
1546
+ :MetricsActiveAllocations, :int, # Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts.
1547
+ :MouseDelta, ImVec2.by_value, # Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta.
1548
+ :KeyMap, [:int, 652], # [LEGACY] Input: map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. The first 512 are now unused and should be kept zero. Legacy backend will write into KeyMap[] using ImGuiKey_ indices which are always >512.
1549
+ :KeysDown, [:bool, 652], # [LEGACY] Input: Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). This used to be [512] sized. It is now ImGuiKey_COUNT to allow legacy io.KeysDown[GetKeyIndex(...)] to work without an overflow.
1550
+ :NavInputs, [:float, 16], # [LEGACY] Since 1.88, NavInputs[] was removed. Backends from 1.60 to 1.86 won't build. Feed gamepad inputs via io.AddKeyEvent() and ImGuiKey_GamepadXXX enums.
1551
+ :MousePos, ImVec2.by_value, # Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.)
1552
+ :MouseDown, [:bool, 5], # Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. Other buttons allow us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API.
1553
+ :MouseWheel, :float, # Mouse wheel Vertical: 1 unit scrolls about 5 lines text.
1554
+ :MouseWheelH, :float, # Mouse wheel Horizontal. Most users don't have a mouse with a horizontal wheel, may not be filled by all backends.
1555
+ :KeyCtrl, :bool, # Keyboard modifier down: Control
1556
+ :KeyShift, :bool, # Keyboard modifier down: Shift
1557
+ :KeyAlt, :bool, # Keyboard modifier down: Alt
1558
+ :KeySuper, :bool, # Keyboard modifier down: Cmd/Super/Windows
1559
+ :KeyMods, :int, # Key mods flags (any of ImGuiMod_Ctrl/ImGuiMod_Shift/ImGuiMod_Alt/ImGuiMod_Super flags, same as io.KeyCtrl/KeyShift/KeyAlt/KeySuper but merged into flags. DOES NOT CONTAINS ImGuiMod_Shortcut which is pretranslated). Read-only, updated by NewFrame()
1560
+ :KeysData, [ImGuiKeyData.by_value, 652], # Key state for all known keys. Use IsKeyXXX() functions to access this.
1561
+ :WantCaptureMouseUnlessPopupClose, :bool, # Alternative to WantCaptureMouse: (WantCaptureMouse == true && WantCaptureMouseUnlessPopupClose == false) when a click over void is expected to close a popup.
1562
+ :MousePosPrev, ImVec2.by_value, # Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid)
1563
+ :MouseClickedPos, [ImVec2.by_value, 5], # Position at time of clicking
1564
+ :MouseClickedTime, [:double, 5], # Time of last click (used to figure out double-click)
1565
+ :MouseClicked, [:bool, 5], # Mouse button went from !Down to Down (same as MouseClickedCount[x] != 0)
1566
+ :MouseDoubleClicked, [:bool, 5], # Has mouse button been double-clicked? (same as MouseClickedCount[x] == 2)
1567
+ :MouseClickedCount, [:ushort, 5], # == 0 (not clicked), == 1 (same as MouseClicked[]), == 2 (double-clicked), == 3 (triple-clicked) etc. when going from !Down to Down
1568
+ :MouseClickedLastCount, [:ushort, 5], # Count successive number of clicks. Stays valid after mouse release. Reset after another click is done.
1569
+ :MouseReleased, [:bool, 5], # Mouse button went from Down to !Down
1570
+ :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.
1571
+ :MouseDownOwnedUnlessPopupClose, [:bool, 5], # Track if button was clicked inside a dear imgui window.
1572
+ :MouseDownDuration, [:float, 5], # Duration the mouse button has been down (0.0f == just clicked)
1573
+ :MouseDownDurationPrev, [:float, 5], # Previous time the mouse button has been down
1574
+ :MouseDragMaxDistanceSqr, [:float, 5], # Squared maximum distance of how much mouse has traveled from the clicking point (used for moving thresholds)
1575
+ :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.
1576
+ :AppFocusLost, :bool, # Only modify via AddFocusEvent()
1577
+ :AppAcceptingEvents, :bool, # Only modify via SetAppAcceptingEvents()
1578
+ :BackendUsingLegacyKeyArrays, :char, # -1: unknown, 0: using AddKeyEvent(), 1: using legacy io.KeysDown[]
1579
+ :BackendUsingLegacyNavInputArray, :bool, # 0: using AddKeyAnalogEvent(), 1: writing to legacy io.NavInputs[] directly
1580
+ :InputQueueSurrogate, :ushort, # For AddInputCharacterUTF16()
1581
+ :InputQueueCharacters, ImVector.by_value # Queue of _characters_ input (obtained by platform backend). Fill using AddInputCharacter() helper.
1427
1582
  )
1428
1583
 
1429
1584
  def AddFocusEvent(focused)
@@ -1488,82 +1643,94 @@ class ImGuiIO < FFI::Struct
1488
1643
 
1489
1644
  end
1490
1645
 
1646
+ # Shared state of InputText(), passed as an argument to your callback when a ImGuiInputTextFlags_Callback* flag is used.
1647
+ # The callback function should return 0 by default.
1648
+ # Callbacks (follow a flag name and see comments in ImGuiInputTextFlags_ declarations for more details)
1649
+ # - ImGuiInputTextFlags_CallbackEdit: Callback on buffer edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)
1650
+ # - ImGuiInputTextFlags_CallbackAlways: Callback on each iteration
1651
+ # - ImGuiInputTextFlags_CallbackCompletion: Callback on pressing TAB
1652
+ # - ImGuiInputTextFlags_CallbackHistory: Callback on pressing Up/Down arrows
1653
+ # - ImGuiInputTextFlags_CallbackCharFilter: Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
1654
+ # - ImGuiInputTextFlags_CallbackResize: Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow.
1491
1655
  class ImGuiInputTextCallbackData < FFI::Struct
1492
1656
  layout(
1493
- :EventFlag, :int,
1494
- :Flags, :int,
1495
- :UserData, :pointer,
1496
- :EventChar, :ushort,
1497
- :EventKey, :int,
1498
- :Buf, :pointer,
1499
- :BufTextLen, :int,
1500
- :BufSize, :int,
1501
- :BufDirty, :bool,
1502
- :CursorPos, :int,
1503
- :SelectionStart, :int,
1504
- :SelectionEnd, :int
1657
+ :EventFlag, :int, # One ImGuiInputTextFlags_Callback* // Read-only
1658
+ :Flags, :int, # What user passed to InputText() // Read-only
1659
+ :UserData, :pointer, # What user passed to InputText() // Read-only
1660
+ :EventChar, :ushort, # Character input // Read-write // [CharFilter] Replace character with another one, or set to zero to drop. return 1 is equivalent to setting EventChar=0;
1661
+ :EventKey, :int, # Key pressed (Up/Down/TAB) // Read-only // [Completion,History]
1662
+ :Buf, :pointer, # Text buffer // Read-write // [Resize] Can replace pointer / [Completion,History,Always] Only write to pointed data, don't replace the actual pointer!
1663
+ :BufTextLen, :int, # Text length (in bytes) // Read-write // [Resize,Completion,History,Always] Exclude zero-terminator storage. In C land: == strlen(some_text), in C++ land: string.length()
1664
+ :BufSize, :int, # Buffer size (in bytes) = capacity+1 // Read-only // [Resize,Completion,History,Always] Include zero-terminator storage. In C land == ARRAYSIZE(my_char_array), in C++ land: string.capacity()+1
1665
+ :BufDirty, :bool, # Set if you modify Buf/BufTextLen! // Write // [Completion,History,Always]
1666
+ :CursorPos, :int, # // Read-write // [Completion,History,Always]
1667
+ :SelectionStart, :int, # // Read-write // [Completion,History,Always] == to SelectionEnd when no selection)
1668
+ :SelectionEnd, :int # // Read-write // [Completion,History,Always]
1505
1669
  )
1506
1670
  end
1507
1671
 
1672
+ # (Optional) Support for IME (Input Method Editor) via the io.SetPlatformImeDataFn() function.
1508
1673
  class ImGuiPlatformImeData < FFI::Struct
1509
1674
  layout(
1510
- :WantVisible, :bool,
1511
- :InputPos, ImVec2.by_value,
1512
- :InputLineHeight, :float
1675
+ :WantVisible, :bool, # A widget wants the IME to be visible
1676
+ :InputPos, ImVec2.by_value, # Position of the input cursor
1677
+ :InputLineHeight, :float # Line height
1513
1678
  )
1514
1679
  end
1515
1680
 
1681
+ # Resizing callback data to apply custom constraint. As enabled by SetNextWindowSizeConstraints(). Callback is called during the next Begin().
1682
+ # NB: For basic min/max size constraint on each axis you don't need to use the callback! The SetNextWindowSizeConstraints() parameters are enough.
1516
1683
  class ImGuiSizeCallbackData < FFI::Struct
1517
1684
  layout(
1518
- :UserData, :pointer,
1519
- :Pos, ImVec2.by_value,
1520
- :CurrentSize, ImVec2.by_value,
1521
- :DesiredSize, ImVec2.by_value
1685
+ :UserData, :pointer, # Read-only. What user passed to SetNextWindowSizeConstraints(). Generally store an integer or float in here (need reinterpret_cast<>).
1686
+ :Pos, ImVec2.by_value, # Read-only. Window position, for reference.
1687
+ :CurrentSize, ImVec2.by_value, # Read-only. Current window size.
1688
+ :DesiredSize, ImVec2.by_value # Read-write. Desired size, based on user's mouse position. Write to this field to restrain resizing.
1522
1689
  )
1523
1690
  end
1524
1691
 
1525
1692
  class ImGuiStyle < FFI::Struct
1526
1693
  layout(
1527
- :Alpha, :float,
1528
- :DisabledAlpha, :float,
1529
- :WindowPadding, ImVec2.by_value,
1530
- :WindowRounding, :float,
1531
- :WindowBorderSize, :float,
1532
- :WindowMinSize, ImVec2.by_value,
1533
- :WindowTitleAlign, ImVec2.by_value,
1534
- :WindowMenuButtonPosition, :int,
1535
- :ChildRounding, :float,
1536
- :ChildBorderSize, :float,
1537
- :PopupRounding, :float,
1538
- :PopupBorderSize, :float,
1539
- :FramePadding, ImVec2.by_value,
1540
- :FrameRounding, :float,
1541
- :FrameBorderSize, :float,
1542
- :ItemSpacing, ImVec2.by_value,
1543
- :ItemInnerSpacing, ImVec2.by_value,
1544
- :CellPadding, ImVec2.by_value,
1545
- :TouchExtraPadding, ImVec2.by_value,
1546
- :IndentSpacing, :float,
1547
- :ColumnsMinSpacing, :float,
1548
- :ScrollbarSize, :float,
1549
- :ScrollbarRounding, :float,
1550
- :GrabMinSize, :float,
1551
- :GrabRounding, :float,
1552
- :LogSliderDeadzone, :float,
1553
- :TabRounding, :float,
1554
- :TabBorderSize, :float,
1555
- :TabMinWidthForCloseButton, :float,
1556
- :ColorButtonPosition, :int,
1557
- :ButtonTextAlign, ImVec2.by_value,
1558
- :SelectableTextAlign, ImVec2.by_value,
1559
- :DisplayWindowPadding, ImVec2.by_value,
1560
- :DisplaySafeAreaPadding, ImVec2.by_value,
1561
- :MouseCursorScale, :float,
1562
- :AntiAliasedLines, :bool,
1563
- :AntiAliasedLinesUseTex, :bool,
1564
- :AntiAliasedFill, :bool,
1565
- :CurveTessellationTol, :float,
1566
- :CircleTessellationMaxError, :float,
1694
+ :Alpha, :float, # Global alpha applies to everything in Dear ImGui.
1695
+ :DisabledAlpha, :float, # Additional alpha multiplier applied by BeginDisabled(). Multiply over current value of Alpha.
1696
+ :WindowPadding, ImVec2.by_value, # Padding within a window.
1697
+ :WindowRounding, :float, # Radius of window corners rounding. Set to 0.0f to have rectangular windows. Large values tend to lead to variety of artifacts and are not recommended.
1698
+ :WindowBorderSize, :float, # Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
1699
+ :WindowMinSize, ImVec2.by_value, # Minimum window size. This is a global setting. If you want to constrain individual windows, use SetNextWindowSizeConstraints().
1700
+ :WindowTitleAlign, ImVec2.by_value, # Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered.
1701
+ :WindowMenuButtonPosition, :int, # Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left.
1702
+ :ChildRounding, :float, # Radius of child window corners rounding. Set to 0.0f to have rectangular windows.
1703
+ :ChildBorderSize, :float, # Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
1704
+ :PopupRounding, :float, # Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding)
1705
+ :PopupBorderSize, :float, # Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
1706
+ :FramePadding, ImVec2.by_value, # Padding within a framed rectangle (used by most widgets).
1707
+ :FrameRounding, :float, # Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets).
1708
+ :FrameBorderSize, :float, # Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
1709
+ :ItemSpacing, ImVec2.by_value, # Horizontal and vertical spacing between widgets/lines.
1710
+ :ItemInnerSpacing, ImVec2.by_value, # Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label).
1711
+ :CellPadding, ImVec2.by_value, # Padding within a table cell
1712
+ :TouchExtraPadding, ImVec2.by_value, # Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much!
1713
+ :IndentSpacing, :float, # Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2).
1714
+ :ColumnsMinSpacing, :float, # Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1).
1715
+ :ScrollbarSize, :float, # Width of the vertical scrollbar, Height of the horizontal scrollbar.
1716
+ :ScrollbarRounding, :float, # Radius of grab corners for scrollbar.
1717
+ :GrabMinSize, :float, # Minimum width/height of a grab box for slider/scrollbar.
1718
+ :GrabRounding, :float, # Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs.
1719
+ :LogSliderDeadzone, :float, # The size in pixels of the dead-zone around zero on logarithmic sliders that cross zero.
1720
+ :TabRounding, :float, # Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs.
1721
+ :TabBorderSize, :float, # Thickness of border around tabs.
1722
+ :TabMinWidthForCloseButton, :float, # Minimum width for close button to appear on an unselected tab when hovered. Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
1723
+ :ColorButtonPosition, :int, # Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right.
1724
+ :ButtonTextAlign, ImVec2.by_value, # Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered).
1725
+ :SelectableTextAlign, ImVec2.by_value, # Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line.
1726
+ :DisplayWindowPadding, ImVec2.by_value, # Window position are clamped to be visible within the display area or monitors by at least this amount. Only applies to regular windows.
1727
+ :DisplaySafeAreaPadding, ImVec2.by_value, # If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly!
1728
+ :MouseCursorScale, :float, # Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later.
1729
+ :AntiAliasedLines, :bool, # Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList).
1730
+ :AntiAliasedLinesUseTex, :bool, # Enable anti-aliased lines/borders using textures where possible. Require backend to render with bilinear filtering (NOT point/nearest filtering). Latched at the beginning of the frame (copied to ImDrawList).
1731
+ :AntiAliasedFill, :bool, # Enable anti-aliased edges around filled shapes (rounded rectangles, circles, etc.). Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList).
1732
+ :CurveTessellationTol, :float, # Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
1733
+ :CircleTessellationMaxError, :float, # Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
1567
1734
  :Colors, [ImVec4.by_value, 53]
1568
1735
  )
1569
1736
 
@@ -1581,23 +1748,29 @@ class ImGuiStyle < FFI::Struct
1581
1748
 
1582
1749
  end
1583
1750
 
1751
+ # Sorting specification for one column of a table (sizeof == 12 bytes)
1584
1752
  class ImGuiTableColumnSortSpecs < FFI::Struct
1585
1753
  layout(
1586
- :ColumnUserID, :uint,
1587
- :ColumnIndex, :short,
1588
- :SortOrder, :short,
1589
- :SortDirection, :int
1754
+ :ColumnUserID, :uint, # User id of the column (if specified by a TableSetupColumn() call)
1755
+ :ColumnIndex, :short, # Index of the column
1756
+ :SortOrder, :short, # Index within parent ImGuiTableSortSpecs (always stored in order starting from 0, tables sorted on a single criteria will always have a 0 here)
1757
+ :SortDirection, :int # ImGuiSortDirection_Ascending or ImGuiSortDirection_Descending (you can use this or SortSign, whichever is more convenient for your sort function)
1590
1758
  )
1591
1759
  end
1592
1760
 
1761
+ # Sorting specifications for a table (often handling sort specs for a single column, occasionally more)
1762
+ # Obtained by calling TableGetSortSpecs().
1763
+ # When 'SpecsDirty == true' you can sort your data. It will be true with sorting specs have changed since last call, or the first time.
1764
+ # Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame!
1593
1765
  class ImGuiTableSortSpecs < FFI::Struct
1594
1766
  layout(
1595
- :Specs, :pointer,
1596
- :SpecsCount, :int,
1597
- :SpecsDirty, :bool
1767
+ :Specs, :pointer, # Pointer to sort spec array.
1768
+ :SpecsCount, :int, # Sort spec count. Most often 1. May be > 1 when ImGuiTableFlags_SortMulti is enabled. May be == 0 when ImGuiTableFlags_SortTristate is enabled.
1769
+ :SpecsDirty, :bool # Set to true when specs have changed since last time! Use this to sort again, then clear the flag.
1598
1770
  )
1599
1771
  end
1600
1772
 
1773
+ # Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]"
1601
1774
  class ImGuiTextFilter < FFI::Struct
1602
1775
  layout(
1603
1776
  :InputBuf, [:char, 256],
@@ -1635,14 +1808,21 @@ class ImGuiTextFilter < FFI::Struct
1635
1808
 
1636
1809
  end
1637
1810
 
1811
+ # - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows.
1812
+ # - In 'docking' branch with multi-viewport enabled, we extend this concept to have multiple active viewports.
1813
+ # - In the future we will extend this concept further to also represent Platform Monitor and support a "no main platform window" operation mode.
1814
+ # - About Main Area vs Work Area:
1815
+ # - Main Area = entire viewport.
1816
+ # - Work Area = entire viewport minus sections used by main menu bars (for platform windows), or by task bar (for platform monitor).
1817
+ # - Windows are generally trying to stay within the Work Area of their host viewport.
1638
1818
  class ImGuiViewport < FFI::Struct
1639
1819
  layout(
1640
- :Flags, :int,
1641
- :Pos, ImVec2.by_value,
1642
- :Size, ImVec2.by_value,
1643
- :WorkPos, ImVec2.by_value,
1644
- :WorkSize, ImVec2.by_value,
1645
- :PlatformHandleRaw, :pointer
1820
+ :Flags, :int, # See ImGuiViewportFlags_
1821
+ :Pos, ImVec2.by_value, # Main Area: Position of the viewport (Dear ImGui coordinates are the same as OS desktop/native coordinates)
1822
+ :Size, ImVec2.by_value, # Main Area: Size of the viewport.
1823
+ :WorkPos, ImVec2.by_value, # Work Area: Position of the viewport minus task bars, menus bars, status bars (>= Pos)
1824
+ :WorkSize, ImVec2.by_value, # Work Area: Size of the viewport minus task bars, menu bars, status bars (<= Size)
1825
+ :PlatformHandleRaw, :pointer # void* to hold lower-level, platform-native window handle (under Win32 this is expected to be a HWND, unused for other platforms)
1646
1826
  )
1647
1827
  end
1648
1828
 
@@ -1701,1522 +1881,522 @@ module ImGui
1701
1881
  callback :ImGuiInputTextCallback, [ImGuiInputTextCallbackData], :int
1702
1882
  callback :ImGuiSizeCallback, [ImGuiSizeCallbackData], :void
1703
1883
 
1704
- symbols = [
1705
- :ImDrawList_AddBezierCubic,
1706
- :ImDrawList_AddBezierQuadratic,
1707
- :ImDrawList_AddCallback,
1708
- :ImDrawList_AddCircle,
1709
- :ImDrawList_AddCircleFilled,
1710
- :ImDrawList_AddConvexPolyFilled,
1711
- :ImDrawList_AddDrawCmd,
1712
- :ImDrawList_AddImage,
1713
- :ImDrawList_AddImageQuad,
1714
- :ImDrawList_AddImageRounded,
1715
- :ImDrawList_AddLine,
1716
- :ImDrawList_AddNgon,
1717
- :ImDrawList_AddNgonFilled,
1718
- :ImDrawList_AddPolyline,
1719
- :ImDrawList_AddQuad,
1720
- :ImDrawList_AddQuadFilled,
1721
- :ImDrawList_AddRect,
1722
- :ImDrawList_AddRectFilled,
1723
- :ImDrawList_AddRectFilledMultiColor,
1724
- :ImDrawList_AddText_Vec2,
1725
- :ImDrawList_AddText_FontPtr,
1726
- :ImDrawList_AddTriangle,
1727
- :ImDrawList_AddTriangleFilled,
1728
- :ImDrawList_ChannelsMerge,
1729
- :ImDrawList_ChannelsSetCurrent,
1730
- :ImDrawList_ChannelsSplit,
1731
- :ImDrawList_CloneOutput,
1732
- :ImDrawList_GetClipRectMax,
1733
- :ImDrawList_GetClipRectMin,
1734
- :ImDrawList_ImDrawList,
1735
- :ImDrawList_PathArcTo,
1736
- :ImDrawList_PathArcToFast,
1737
- :ImDrawList_PathBezierCubicCurveTo,
1738
- :ImDrawList_PathBezierQuadraticCurveTo,
1739
- :ImDrawList_PathClear,
1740
- :ImDrawList_PathFillConvex,
1741
- :ImDrawList_PathLineTo,
1742
- :ImDrawList_PathLineToMergeDuplicate,
1743
- :ImDrawList_PathRect,
1744
- :ImDrawList_PathStroke,
1745
- :ImDrawList_PopClipRect,
1746
- :ImDrawList_PopTextureID,
1747
- :ImDrawList_PrimQuadUV,
1748
- :ImDrawList_PrimRect,
1749
- :ImDrawList_PrimRectUV,
1750
- :ImDrawList_PrimReserve,
1751
- :ImDrawList_PrimUnreserve,
1752
- :ImDrawList_PrimVtx,
1753
- :ImDrawList_PrimWriteIdx,
1754
- :ImDrawList_PrimWriteVtx,
1755
- :ImDrawList_PushClipRect,
1756
- :ImDrawList_PushClipRectFullScreen,
1757
- :ImDrawList_PushTextureID,
1758
- :ImDrawList__CalcCircleAutoSegmentCount,
1759
- :ImDrawList__ClearFreeMemory,
1760
- :ImDrawList__OnChangedClipRect,
1761
- :ImDrawList__OnChangedTextureID,
1762
- :ImDrawList__OnChangedVtxOffset,
1763
- :ImDrawList__PathArcToFastEx,
1764
- :ImDrawList__PathArcToN,
1765
- :ImDrawList__PopUnusedDrawCmd,
1766
- :ImDrawList__ResetForNewFrame,
1767
- :ImDrawList__TryMergeDrawCmds,
1768
- :ImDrawList_destroy,
1769
- :ImFontAtlas_AddCustomRectFontGlyph,
1770
- :ImFontAtlas_AddCustomRectRegular,
1771
- :ImFontAtlas_AddFont,
1772
- :ImFontAtlas_AddFontDefault,
1773
- :ImFontAtlas_AddFontFromFileTTF,
1774
- :ImFontAtlas_AddFontFromMemoryCompressedBase85TTF,
1775
- :ImFontAtlas_AddFontFromMemoryCompressedTTF,
1776
- :ImFontAtlas_AddFontFromMemoryTTF,
1777
- :ImFontAtlas_Build,
1778
- :ImFontAtlas_CalcCustomRectUV,
1779
- :ImFontAtlas_Clear,
1780
- :ImFontAtlas_ClearFonts,
1781
- :ImFontAtlas_ClearInputData,
1782
- :ImFontAtlas_ClearTexData,
1783
- :ImFontAtlas_GetCustomRectByIndex,
1784
- :ImFontAtlas_GetGlyphRangesChineseFull,
1785
- :ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon,
1786
- :ImFontAtlas_GetGlyphRangesCyrillic,
1787
- :ImFontAtlas_GetGlyphRangesDefault,
1788
- :ImFontAtlas_GetGlyphRangesJapanese,
1789
- :ImFontAtlas_GetGlyphRangesKorean,
1790
- :ImFontAtlas_GetGlyphRangesThai,
1791
- :ImFontAtlas_GetGlyphRangesVietnamese,
1792
- :ImFontAtlas_GetMouseCursorTexData,
1793
- :ImFontAtlas_GetTexDataAsAlpha8,
1794
- :ImFontAtlas_GetTexDataAsRGBA32,
1795
- :ImFontAtlas_ImFontAtlas,
1796
- :ImFontAtlas_IsBuilt,
1797
- :ImFontAtlas_SetTexID,
1798
- :ImFontAtlas_destroy,
1799
- :ImFontConfig_ImFontConfig,
1800
- :ImFontConfig_destroy,
1801
- :ImFontGlyphRangesBuilder_AddChar,
1802
- :ImFontGlyphRangesBuilder_AddRanges,
1803
- :ImFontGlyphRangesBuilder_AddText,
1804
- :ImFontGlyphRangesBuilder_BuildRanges,
1805
- :ImFontGlyphRangesBuilder_Clear,
1806
- :ImFontGlyphRangesBuilder_GetBit,
1807
- :ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder,
1808
- :ImFontGlyphRangesBuilder_SetBit,
1809
- :ImFontGlyphRangesBuilder_destroy,
1810
- :ImGuiIO_AddFocusEvent,
1811
- :ImGuiIO_AddInputCharacter,
1812
- :ImGuiIO_AddInputCharacterUTF16,
1813
- :ImGuiIO_AddInputCharactersUTF8,
1814
- :ImGuiIO_AddKeyAnalogEvent,
1815
- :ImGuiIO_AddKeyEvent,
1816
- :ImGuiIO_AddMouseButtonEvent,
1817
- :ImGuiIO_AddMousePosEvent,
1818
- :ImGuiIO_AddMouseWheelEvent,
1819
- :ImGuiIO_ClearInputCharacters,
1820
- :ImGuiIO_ClearInputKeys,
1821
- :ImGuiIO_ImGuiIO,
1822
- :ImGuiIO_SetAppAcceptingEvents,
1823
- :ImGuiIO_SetKeyEventNativeData,
1824
- :ImGuiIO_destroy,
1825
- :ImGuiStyle_ImGuiStyle,
1826
- :ImGuiStyle_ScaleAllSizes,
1827
- :ImGuiStyle_destroy,
1828
- :ImGuiTextFilter_Build,
1829
- :ImGuiTextFilter_Clear,
1830
- :ImGuiTextFilter_Draw,
1831
- :ImGuiTextFilter_ImGuiTextFilter,
1832
- :ImGuiTextFilter_IsActive,
1833
- :ImGuiTextFilter_PassFilter,
1834
- :ImGuiTextFilter_destroy,
1835
- :ImGuiTextRange_ImGuiTextRange_Nil,
1836
- :ImGuiTextRange_ImGuiTextRange_Str,
1837
- :ImGuiTextRange_destroy,
1838
- :ImGuiTextRange_empty,
1839
- :ImGuiTextRange_split,
1840
- :igAcceptDragDropPayload,
1841
- :igAlignTextToFramePadding,
1842
- :igArrowButton,
1843
- :igBegin,
1844
- :igBeginChild_Str,
1845
- :igBeginChild_ID,
1846
- :igBeginChildFrame,
1847
- :igBeginCombo,
1848
- :igBeginDisabled,
1849
- :igBeginDragDropSource,
1850
- :igBeginDragDropTarget,
1851
- :igBeginGroup,
1852
- :igBeginListBox,
1853
- :igBeginMainMenuBar,
1854
- :igBeginMenu,
1855
- :igBeginMenuBar,
1856
- :igBeginPopup,
1857
- :igBeginPopupContextItem,
1858
- :igBeginPopupContextVoid,
1859
- :igBeginPopupContextWindow,
1860
- :igBeginPopupModal,
1861
- :igBeginTabBar,
1862
- :igBeginTabItem,
1863
- :igBeginTable,
1864
- :igBeginTooltip,
1865
- :igBullet,
1866
- :igBulletText,
1867
- :igButton,
1868
- :igCalcItemWidth,
1869
- :igCalcTextSize,
1870
- :igCheckbox,
1871
- :igCheckboxFlags_IntPtr,
1872
- :igCheckboxFlags_UintPtr,
1873
- :igCloseCurrentPopup,
1874
- :igCollapsingHeader_TreeNodeFlags,
1875
- :igCollapsingHeader_BoolPtr,
1876
- :igColorButton,
1877
- :igColorConvertFloat4ToU32,
1878
- :igColorConvertHSVtoRGB,
1879
- :igColorConvertRGBtoHSV,
1880
- :igColorConvertU32ToFloat4,
1881
- :igColorEdit3,
1882
- :igColorEdit4,
1883
- :igColorPicker3,
1884
- :igColorPicker4,
1885
- :igColumns,
1886
- :igCombo_Str_arr,
1887
- :igCombo_Str,
1888
- :igCombo_FnBoolPtr,
1889
- :igCreateContext,
1890
- :igDebugCheckVersionAndDataLayout,
1891
- :igDebugTextEncoding,
1892
- :igDestroyContext,
1893
- :igDragFloat,
1894
- :igDragFloat2,
1895
- :igDragFloat3,
1896
- :igDragFloat4,
1897
- :igDragFloatRange2,
1898
- :igDragInt,
1899
- :igDragInt2,
1900
- :igDragInt3,
1901
- :igDragInt4,
1902
- :igDragIntRange2,
1903
- :igDragScalar,
1904
- :igDragScalarN,
1905
- :igDummy,
1906
- :igEnd,
1907
- :igEndChild,
1908
- :igEndChildFrame,
1909
- :igEndCombo,
1910
- :igEndDisabled,
1911
- :igEndDragDropSource,
1912
- :igEndDragDropTarget,
1913
- :igEndFrame,
1914
- :igEndGroup,
1915
- :igEndListBox,
1916
- :igEndMainMenuBar,
1917
- :igEndMenu,
1918
- :igEndMenuBar,
1919
- :igEndPopup,
1920
- :igEndTabBar,
1921
- :igEndTabItem,
1922
- :igEndTable,
1923
- :igEndTooltip,
1924
- :igGetAllocatorFunctions,
1925
- :igGetBackgroundDrawList,
1926
- :igGetClipboardText,
1927
- :igGetColorU32_Col,
1928
- :igGetColorU32_Vec4,
1929
- :igGetColorU32_U32,
1930
- :igGetColumnIndex,
1931
- :igGetColumnOffset,
1932
- :igGetColumnWidth,
1933
- :igGetColumnsCount,
1934
- :igGetContentRegionAvail,
1935
- :igGetContentRegionMax,
1936
- :igGetCurrentContext,
1937
- :igGetCursorPos,
1938
- :igGetCursorPosX,
1939
- :igGetCursorPosY,
1940
- :igGetCursorScreenPos,
1941
- :igGetCursorStartPos,
1942
- :igGetDragDropPayload,
1943
- :igGetDrawData,
1944
- :igGetDrawListSharedData,
1945
- :igGetFont,
1946
- :igGetFontSize,
1947
- :igGetFontTexUvWhitePixel,
1948
- :igGetForegroundDrawList,
1949
- :igGetFrameCount,
1950
- :igGetFrameHeight,
1951
- :igGetFrameHeightWithSpacing,
1952
- :igGetID_Str,
1953
- :igGetID_StrStr,
1954
- :igGetID_Ptr,
1955
- :igGetIO,
1956
- :igGetItemRectMax,
1957
- :igGetItemRectMin,
1958
- :igGetItemRectSize,
1959
- :igGetKeyIndex,
1960
- :igGetKeyName,
1961
- :igGetKeyPressedAmount,
1962
- :igGetMainViewport,
1963
- :igGetMouseClickedCount,
1964
- :igGetMouseCursor,
1965
- :igGetMouseDragDelta,
1966
- :igGetMousePos,
1967
- :igGetMousePosOnOpeningCurrentPopup,
1968
- :igGetScrollMaxX,
1969
- :igGetScrollMaxY,
1970
- :igGetScrollX,
1971
- :igGetScrollY,
1972
- :igGetStateStorage,
1973
- :igGetStyle,
1974
- :igGetStyleColorName,
1975
- :igGetStyleColorVec4,
1976
- :igGetTextLineHeight,
1977
- :igGetTextLineHeightWithSpacing,
1978
- :igGetTime,
1979
- :igGetTreeNodeToLabelSpacing,
1980
- :igGetVersion,
1981
- :igGetWindowContentRegionMax,
1982
- :igGetWindowContentRegionMin,
1983
- :igGetWindowDrawList,
1984
- :igGetWindowHeight,
1985
- :igGetWindowPos,
1986
- :igGetWindowSize,
1987
- :igGetWindowWidth,
1988
- :igImage,
1989
- :igImageButton,
1990
- :igIndent,
1991
- :igInputDouble,
1992
- :igInputFloat,
1993
- :igInputFloat2,
1994
- :igInputFloat3,
1995
- :igInputFloat4,
1996
- :igInputInt,
1997
- :igInputInt2,
1998
- :igInputInt3,
1999
- :igInputInt4,
2000
- :igInputScalar,
2001
- :igInputScalarN,
2002
- :igInputText,
2003
- :igInputTextMultiline,
2004
- :igInputTextWithHint,
2005
- :igInvisibleButton,
2006
- :igIsAnyItemActive,
2007
- :igIsAnyItemFocused,
2008
- :igIsAnyItemHovered,
2009
- :igIsAnyMouseDown,
2010
- :igIsItemActivated,
2011
- :igIsItemActive,
2012
- :igIsItemClicked,
2013
- :igIsItemDeactivated,
2014
- :igIsItemDeactivatedAfterEdit,
2015
- :igIsItemEdited,
2016
- :igIsItemFocused,
2017
- :igIsItemHovered,
2018
- :igIsItemToggledOpen,
2019
- :igIsItemVisible,
2020
- :igIsKeyDown,
2021
- :igIsKeyPressed,
2022
- :igIsKeyReleased,
2023
- :igIsMouseClicked,
2024
- :igIsMouseDoubleClicked,
2025
- :igIsMouseDown,
2026
- :igIsMouseDragging,
2027
- :igIsMouseHoveringRect,
2028
- :igIsMousePosValid,
2029
- :igIsMouseReleased,
2030
- :igIsPopupOpen,
2031
- :igIsRectVisible_Nil,
2032
- :igIsRectVisible_Vec2,
2033
- :igIsWindowAppearing,
2034
- :igIsWindowCollapsed,
2035
- :igIsWindowFocused,
2036
- :igIsWindowHovered,
2037
- :igLabelText,
2038
- :igListBox_Str_arr,
2039
- :igListBox_FnBoolPtr,
2040
- :igLoadIniSettingsFromDisk,
2041
- :igLoadIniSettingsFromMemory,
2042
- :igLogButtons,
2043
- :igLogFinish,
2044
- :igLogText,
2045
- :igLogToClipboard,
2046
- :igLogToFile,
2047
- :igLogToTTY,
2048
- :igMemAlloc,
2049
- :igMemFree,
2050
- :igMenuItem_Bool,
2051
- :igMenuItem_BoolPtr,
2052
- :igNewFrame,
2053
- :igNewLine,
2054
- :igNextColumn,
2055
- :igOpenPopup_Str,
2056
- :igOpenPopup_ID,
2057
- :igOpenPopupOnItemClick,
2058
- :igPlotHistogram_FloatPtr,
2059
- :igPlotHistogram_FnFloatPtr,
2060
- :igPlotLines_FloatPtr,
2061
- :igPlotLines_FnFloatPtr,
2062
- :igPopAllowKeyboardFocus,
2063
- :igPopButtonRepeat,
2064
- :igPopClipRect,
2065
- :igPopFont,
2066
- :igPopID,
2067
- :igPopItemWidth,
2068
- :igPopStyleColor,
2069
- :igPopStyleVar,
2070
- :igPopTextWrapPos,
2071
- :igProgressBar,
2072
- :igPushAllowKeyboardFocus,
2073
- :igPushButtonRepeat,
2074
- :igPushClipRect,
2075
- :igPushFont,
2076
- :igPushID_Str,
2077
- :igPushID_StrStr,
2078
- :igPushID_Ptr,
2079
- :igPushID_Int,
2080
- :igPushItemWidth,
2081
- :igPushStyleColor_U32,
2082
- :igPushStyleColor_Vec4,
2083
- :igPushStyleVar_Float,
2084
- :igPushStyleVar_Vec2,
2085
- :igPushTextWrapPos,
2086
- :igRadioButton_Bool,
2087
- :igRadioButton_IntPtr,
2088
- :igRender,
2089
- :igResetMouseDragDelta,
2090
- :igSameLine,
2091
- :igSaveIniSettingsToDisk,
2092
- :igSaveIniSettingsToMemory,
2093
- :igSelectable_Bool,
2094
- :igSelectable_BoolPtr,
2095
- :igSeparator,
2096
- :igSetAllocatorFunctions,
2097
- :igSetClipboardText,
2098
- :igSetColorEditOptions,
2099
- :igSetColumnOffset,
2100
- :igSetColumnWidth,
2101
- :igSetCurrentContext,
2102
- :igSetCursorPos,
2103
- :igSetCursorPosX,
2104
- :igSetCursorPosY,
2105
- :igSetCursorScreenPos,
2106
- :igSetDragDropPayload,
2107
- :igSetItemAllowOverlap,
2108
- :igSetItemDefaultFocus,
2109
- :igSetKeyboardFocusHere,
2110
- :igSetMouseCursor,
2111
- :igSetNextFrameWantCaptureKeyboard,
2112
- :igSetNextFrameWantCaptureMouse,
2113
- :igSetNextItemOpen,
2114
- :igSetNextItemWidth,
2115
- :igSetNextWindowBgAlpha,
2116
- :igSetNextWindowCollapsed,
2117
- :igSetNextWindowContentSize,
2118
- :igSetNextWindowFocus,
2119
- :igSetNextWindowPos,
2120
- :igSetNextWindowSize,
2121
- :igSetNextWindowSizeConstraints,
2122
- :igSetScrollFromPosX,
2123
- :igSetScrollFromPosY,
2124
- :igSetScrollHereX,
2125
- :igSetScrollHereY,
2126
- :igSetScrollX,
2127
- :igSetScrollY,
2128
- :igSetStateStorage,
2129
- :igSetTabItemClosed,
2130
- :igSetTooltip,
2131
- :igSetWindowCollapsed_Bool,
2132
- :igSetWindowCollapsed_Str,
2133
- :igSetWindowFocus_Nil,
2134
- :igSetWindowFocus_Str,
2135
- :igSetWindowFontScale,
2136
- :igSetWindowPos_Vec2,
2137
- :igSetWindowPos_Str,
2138
- :igSetWindowSize_Vec2,
2139
- :igSetWindowSize_Str,
2140
- :igShowAboutWindow,
2141
- :igShowDebugLogWindow,
2142
- :igShowDemoWindow,
2143
- :igShowFontSelector,
2144
- :igShowMetricsWindow,
2145
- :igShowStackToolWindow,
2146
- :igShowStyleEditor,
2147
- :igShowStyleSelector,
2148
- :igShowUserGuide,
2149
- :igSliderAngle,
2150
- :igSliderFloat,
2151
- :igSliderFloat2,
2152
- :igSliderFloat3,
2153
- :igSliderFloat4,
2154
- :igSliderInt,
2155
- :igSliderInt2,
2156
- :igSliderInt3,
2157
- :igSliderInt4,
2158
- :igSliderScalar,
2159
- :igSliderScalarN,
2160
- :igSmallButton,
2161
- :igSpacing,
2162
- :igStyleColorsClassic,
2163
- :igStyleColorsDark,
2164
- :igStyleColorsLight,
2165
- :igTabItemButton,
2166
- :igTableGetColumnCount,
2167
- :igTableGetColumnFlags,
2168
- :igTableGetColumnIndex,
2169
- :igTableGetColumnName,
2170
- :igTableGetRowIndex,
2171
- :igTableGetSortSpecs,
2172
- :igTableHeader,
2173
- :igTableHeadersRow,
2174
- :igTableNextColumn,
2175
- :igTableNextRow,
2176
- :igTableSetBgColor,
2177
- :igTableSetColumnEnabled,
2178
- :igTableSetColumnIndex,
2179
- :igTableSetupColumn,
2180
- :igTableSetupScrollFreeze,
2181
- :igText,
2182
- :igTextColored,
2183
- :igTextDisabled,
2184
- :igTextUnformatted,
2185
- :igTextWrapped,
2186
- :igTreeNode_Str,
2187
- :igTreeNode_StrStr,
2188
- :igTreeNode_Ptr,
2189
- :igTreeNodeEx_Str,
2190
- :igTreeNodeEx_StrStr,
2191
- :igTreeNodeEx_Ptr,
2192
- :igTreePop,
2193
- :igTreePush_Str,
2194
- :igTreePush_Ptr,
2195
- :igUnindent,
2196
- :igVSliderFloat,
2197
- :igVSliderInt,
2198
- :igVSliderScalar,
2199
- :igValue_Bool,
2200
- :igValue_Int,
2201
- :igValue_Uint,
2202
- :igValue_Float,
1884
+ entries = [
1885
+ [:ImDrawList_AddBezierCubic, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
1886
+ [:ImDrawList_AddBezierQuadratic, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
1887
+ [:ImDrawList_AddCallback, [:pointer, :ImDrawCallback, :pointer], :void],
1888
+ [:ImDrawList_AddCircle, [:pointer, ImVec2.by_value, :float, :uint, :int, :float], :void],
1889
+ [:ImDrawList_AddCircleFilled, [:pointer, ImVec2.by_value, :float, :uint, :int], :void],
1890
+ [:ImDrawList_AddConvexPolyFilled, [:pointer, :pointer, :int, :uint], :void],
1891
+ [:ImDrawList_AddDrawCmd, [:pointer], :void],
1892
+ [:ImDrawList_AddImage, [:pointer, :pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
1893
+ [: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],
1894
+ [:ImDrawList_AddImageRounded, [:pointer, :pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
1895
+ [:ImDrawList_AddLine, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float], :void],
1896
+ [:ImDrawList_AddNgon, [:pointer, ImVec2.by_value, :float, :uint, :int, :float], :void],
1897
+ [:ImDrawList_AddNgonFilled, [:pointer, ImVec2.by_value, :float, :uint, :int], :void],
1898
+ [:ImDrawList_AddPolyline, [:pointer, :pointer, :int, :uint, :int, :float], :void],
1899
+ [:ImDrawList_AddQuad, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float], :void],
1900
+ [:ImDrawList_AddQuadFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
1901
+ [:ImDrawList_AddRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int, :float], :void],
1902
+ [:ImDrawList_AddRectFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
1903
+ [:ImDrawList_AddRectFilledMultiColor, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :uint, :uint, :uint], :void],
1904
+ [:ImDrawList_AddText_Vec2, [:pointer, ImVec2.by_value, :uint, :pointer, :pointer], :void],
1905
+ [:ImDrawList_AddText_FontPtr, [:pointer, :pointer, :float, ImVec2.by_value, :uint, :pointer, :pointer, :float, :pointer], :void],
1906
+ [:ImDrawList_AddTriangle, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float], :void],
1907
+ [:ImDrawList_AddTriangleFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
1908
+ [:ImDrawList_ChannelsMerge, [:pointer], :void],
1909
+ [:ImDrawList_ChannelsSetCurrent, [:pointer, :int], :void],
1910
+ [:ImDrawList_ChannelsSplit, [:pointer, :int], :void],
1911
+ [:ImDrawList_CloneOutput, [:pointer], :pointer],
1912
+ [:ImDrawList_GetClipRectMax, [:pointer, :pointer], :void],
1913
+ [:ImDrawList_GetClipRectMin, [:pointer, :pointer], :void],
1914
+ [:ImDrawList_ImDrawList, [:pointer], :pointer],
1915
+ [:ImDrawList_PathArcTo, [:pointer, ImVec2.by_value, :float, :float, :float, :int], :void],
1916
+ [:ImDrawList_PathArcToFast, [:pointer, ImVec2.by_value, :float, :int, :int], :void],
1917
+ [:ImDrawList_PathBezierCubicCurveTo, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :int], :void],
1918
+ [:ImDrawList_PathBezierQuadraticCurveTo, [:pointer, ImVec2.by_value, ImVec2.by_value, :int], :void],
1919
+ [:ImDrawList_PathClear, [:pointer], :void],
1920
+ [:ImDrawList_PathFillConvex, [:pointer, :uint], :void],
1921
+ [:ImDrawList_PathLineTo, [:pointer, ImVec2.by_value], :void],
1922
+ [:ImDrawList_PathLineToMergeDuplicate, [:pointer, ImVec2.by_value], :void],
1923
+ [:ImDrawList_PathRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :int], :void],
1924
+ [:ImDrawList_PathStroke, [:pointer, :uint, :int, :float], :void],
1925
+ [:ImDrawList_PopClipRect, [:pointer], :void],
1926
+ [:ImDrawList_PopTextureID, [:pointer], :void],
1927
+ [:ImDrawList_PrimQuadUV, [: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],
1928
+ [:ImDrawList_PrimRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
1929
+ [:ImDrawList_PrimRectUV, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
1930
+ [:ImDrawList_PrimReserve, [:pointer, :int, :int], :void],
1931
+ [:ImDrawList_PrimUnreserve, [:pointer, :int, :int], :void],
1932
+ [:ImDrawList_PrimVtx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
1933
+ [:ImDrawList_PrimWriteIdx, [:pointer, :ushort], :void],
1934
+ [:ImDrawList_PrimWriteVtx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
1935
+ [:ImDrawList_PushClipRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :bool], :void],
1936
+ [:ImDrawList_PushClipRectFullScreen, [:pointer], :void],
1937
+ [:ImDrawList_PushTextureID, [:pointer, :pointer], :void],
1938
+ [:ImDrawList__CalcCircleAutoSegmentCount, [:pointer, :float], :int],
1939
+ [:ImDrawList__ClearFreeMemory, [:pointer], :void],
1940
+ [:ImDrawList__OnChangedClipRect, [:pointer], :void],
1941
+ [:ImDrawList__OnChangedTextureID, [:pointer], :void],
1942
+ [:ImDrawList__OnChangedVtxOffset, [:pointer], :void],
1943
+ [:ImDrawList__PathArcToFastEx, [:pointer, ImVec2.by_value, :float, :int, :int, :int], :void],
1944
+ [:ImDrawList__PathArcToN, [:pointer, ImVec2.by_value, :float, :float, :float, :int], :void],
1945
+ [:ImDrawList__PopUnusedDrawCmd, [:pointer], :void],
1946
+ [:ImDrawList__ResetForNewFrame, [:pointer], :void],
1947
+ [:ImDrawList__TryMergeDrawCmds, [:pointer], :void],
1948
+ [:ImDrawList_destroy, [:pointer], :void],
1949
+ [:ImFontAtlas_AddCustomRectFontGlyph, [:pointer, :pointer, :ushort, :int, :int, :float, ImVec2.by_value], :int],
1950
+ [:ImFontAtlas_AddCustomRectRegular, [:pointer, :int, :int], :int],
1951
+ [:ImFontAtlas_AddFont, [:pointer, :pointer], :pointer],
1952
+ [:ImFontAtlas_AddFontDefault, [:pointer, :pointer], :pointer],
1953
+ [:ImFontAtlas_AddFontFromFileTTF, [:pointer, :pointer, :float, :pointer, :pointer], :pointer],
1954
+ [:ImFontAtlas_AddFontFromMemoryCompressedBase85TTF, [:pointer, :pointer, :float, :pointer, :pointer], :pointer],
1955
+ [:ImFontAtlas_AddFontFromMemoryCompressedTTF, [:pointer, :pointer, :int, :float, :pointer, :pointer], :pointer],
1956
+ [:ImFontAtlas_AddFontFromMemoryTTF, [:pointer, :pointer, :int, :float, :pointer, :pointer], :pointer],
1957
+ [:ImFontAtlas_Build, [:pointer], :bool],
1958
+ [:ImFontAtlas_CalcCustomRectUV, [:pointer, :pointer, :pointer, :pointer], :void],
1959
+ [:ImFontAtlas_Clear, [:pointer], :void],
1960
+ [:ImFontAtlas_ClearFonts, [:pointer], :void],
1961
+ [:ImFontAtlas_ClearInputData, [:pointer], :void],
1962
+ [:ImFontAtlas_ClearTexData, [:pointer], :void],
1963
+ [:ImFontAtlas_GetCustomRectByIndex, [:pointer, :int], :pointer],
1964
+ [:ImFontAtlas_GetGlyphRangesChineseFull, [:pointer], :pointer],
1965
+ [:ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon, [:pointer], :pointer],
1966
+ [:ImFontAtlas_GetGlyphRangesCyrillic, [:pointer], :pointer],
1967
+ [:ImFontAtlas_GetGlyphRangesDefault, [:pointer], :pointer],
1968
+ [:ImFontAtlas_GetGlyphRangesGreek, [:pointer], :pointer],
1969
+ [:ImFontAtlas_GetGlyphRangesJapanese, [:pointer], :pointer],
1970
+ [:ImFontAtlas_GetGlyphRangesKorean, [:pointer], :pointer],
1971
+ [:ImFontAtlas_GetGlyphRangesThai, [:pointer], :pointer],
1972
+ [:ImFontAtlas_GetGlyphRangesVietnamese, [:pointer], :pointer],
1973
+ [:ImFontAtlas_GetMouseCursorTexData, [:pointer, :int, :pointer, :pointer, :pointer, :pointer], :bool],
1974
+ [:ImFontAtlas_GetTexDataAsAlpha8, [:pointer, :pointer, :pointer, :pointer, :pointer], :void],
1975
+ [:ImFontAtlas_GetTexDataAsRGBA32, [:pointer, :pointer, :pointer, :pointer, :pointer], :void],
1976
+ [:ImFontAtlas_ImFontAtlas, [], :pointer],
1977
+ [:ImFontAtlas_IsBuilt, [:pointer], :bool],
1978
+ [:ImFontAtlas_SetTexID, [:pointer, :pointer], :void],
1979
+ [:ImFontAtlas_destroy, [:pointer], :void],
1980
+ [:ImFontConfig_ImFontConfig, [], :pointer],
1981
+ [:ImFontConfig_destroy, [:pointer], :void],
1982
+ [:ImFontGlyphRangesBuilder_AddChar, [:pointer, :ushort], :void],
1983
+ [:ImFontGlyphRangesBuilder_AddRanges, [:pointer, :pointer], :void],
1984
+ [:ImFontGlyphRangesBuilder_AddText, [:pointer, :pointer, :pointer], :void],
1985
+ [:ImFontGlyphRangesBuilder_BuildRanges, [:pointer, :pointer], :void],
1986
+ [:ImFontGlyphRangesBuilder_Clear, [:pointer], :void],
1987
+ [:ImFontGlyphRangesBuilder_GetBit, [:pointer, :size_t], :bool],
1988
+ [:ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder, [], :pointer],
1989
+ [:ImFontGlyphRangesBuilder_SetBit, [:pointer, :size_t], :void],
1990
+ [:ImFontGlyphRangesBuilder_destroy, [:pointer], :void],
1991
+ [:ImGuiIO_AddFocusEvent, [:pointer, :bool], :void],
1992
+ [:ImGuiIO_AddInputCharacter, [:pointer, :uint], :void],
1993
+ [:ImGuiIO_AddInputCharacterUTF16, [:pointer, :ushort], :void],
1994
+ [:ImGuiIO_AddInputCharactersUTF8, [:pointer, :pointer], :void],
1995
+ [:ImGuiIO_AddKeyAnalogEvent, [:pointer, :int, :bool, :float], :void],
1996
+ [:ImGuiIO_AddKeyEvent, [:pointer, :int, :bool], :void],
1997
+ [:ImGuiIO_AddMouseButtonEvent, [:pointer, :int, :bool], :void],
1998
+ [:ImGuiIO_AddMousePosEvent, [:pointer, :float, :float], :void],
1999
+ [:ImGuiIO_AddMouseWheelEvent, [:pointer, :float, :float], :void],
2000
+ [:ImGuiIO_ClearInputCharacters, [:pointer], :void],
2001
+ [:ImGuiIO_ClearInputKeys, [:pointer], :void],
2002
+ [:ImGuiIO_ImGuiIO, [], :pointer],
2003
+ [:ImGuiIO_SetAppAcceptingEvents, [:pointer, :bool], :void],
2004
+ [:ImGuiIO_SetKeyEventNativeData, [:pointer, :int, :int, :int, :int], :void],
2005
+ [:ImGuiIO_destroy, [:pointer], :void],
2006
+ [:ImGuiStyle_ImGuiStyle, [], :pointer],
2007
+ [:ImGuiStyle_ScaleAllSizes, [:pointer, :float], :void],
2008
+ [:ImGuiStyle_destroy, [:pointer], :void],
2009
+ [:ImGuiTextFilter_Build, [:pointer], :void],
2010
+ [:ImGuiTextFilter_Clear, [:pointer], :void],
2011
+ [:ImGuiTextFilter_Draw, [:pointer, :pointer, :float], :bool],
2012
+ [:ImGuiTextFilter_ImGuiTextFilter, [:pointer], :pointer],
2013
+ [:ImGuiTextFilter_IsActive, [:pointer], :bool],
2014
+ [:ImGuiTextFilter_PassFilter, [:pointer, :pointer, :pointer], :bool],
2015
+ [:ImGuiTextFilter_destroy, [:pointer], :void],
2016
+ [:ImGuiTextRange_ImGuiTextRange_Nil, [], :pointer],
2017
+ [:ImGuiTextRange_ImGuiTextRange_Str, [:pointer, :pointer], :pointer],
2018
+ [:ImGuiTextRange_destroy, [:pointer], :void],
2019
+ [:ImGuiTextRange_empty, [:pointer], :bool],
2020
+ [:ImGuiTextRange_split, [:pointer, :char, :pointer], :void],
2021
+ [:igAcceptDragDropPayload, [:pointer, :int], :pointer],
2022
+ [:igAlignTextToFramePadding, [], :void],
2023
+ [:igArrowButton, [:pointer, :int], :bool],
2024
+ [:igBegin, [:pointer, :pointer, :int], :bool],
2025
+ [:igBeginChild_Str, [:pointer, ImVec2.by_value, :bool, :int], :bool],
2026
+ [:igBeginChild_ID, [:uint, ImVec2.by_value, :bool, :int], :bool],
2027
+ [:igBeginChildFrame, [:uint, ImVec2.by_value, :int], :bool],
2028
+ [:igBeginCombo, [:pointer, :pointer, :int], :bool],
2029
+ [:igBeginDisabled, [:bool], :void],
2030
+ [:igBeginDragDropSource, [:int], :bool],
2031
+ [:igBeginDragDropTarget, [], :bool],
2032
+ [:igBeginGroup, [], :void],
2033
+ [:igBeginListBox, [:pointer, ImVec2.by_value], :bool],
2034
+ [:igBeginMainMenuBar, [], :bool],
2035
+ [:igBeginMenu, [:pointer, :bool], :bool],
2036
+ [:igBeginMenuBar, [], :bool],
2037
+ [:igBeginPopup, [:pointer, :int], :bool],
2038
+ [:igBeginPopupContextItem, [:pointer, :int], :bool],
2039
+ [:igBeginPopupContextVoid, [:pointer, :int], :bool],
2040
+ [:igBeginPopupContextWindow, [:pointer, :int], :bool],
2041
+ [:igBeginPopupModal, [:pointer, :pointer, :int], :bool],
2042
+ [:igBeginTabBar, [:pointer, :int], :bool],
2043
+ [:igBeginTabItem, [:pointer, :pointer, :int], :bool],
2044
+ [:igBeginTable, [:pointer, :int, :int, ImVec2.by_value, :float], :bool],
2045
+ [:igBeginTooltip, [], :void],
2046
+ [:igBullet, [], :void],
2047
+ [:igBulletText, [:pointer, :varargs], :void],
2048
+ [:igButton, [:pointer, ImVec2.by_value], :bool],
2049
+ [:igCalcItemWidth, [], :float],
2050
+ [:igCalcTextSize, [:pointer, :pointer, :pointer, :bool, :float], :void],
2051
+ [:igCheckbox, [:pointer, :pointer], :bool],
2052
+ [:igCheckboxFlags_IntPtr, [:pointer, :pointer, :int], :bool],
2053
+ [:igCheckboxFlags_UintPtr, [:pointer, :pointer, :uint], :bool],
2054
+ [:igCloseCurrentPopup, [], :void],
2055
+ [:igCollapsingHeader_TreeNodeFlags, [:pointer, :int], :bool],
2056
+ [:igCollapsingHeader_BoolPtr, [:pointer, :pointer, :int], :bool],
2057
+ [:igColorButton, [:pointer, ImVec4.by_value, :int, ImVec2.by_value], :bool],
2058
+ [:igColorConvertFloat4ToU32, [ImVec4.by_value], :uint],
2059
+ [:igColorConvertHSVtoRGB, [:float, :float, :float, :pointer, :pointer, :pointer], :void],
2060
+ [:igColorConvertRGBtoHSV, [:float, :float, :float, :pointer, :pointer, :pointer], :void],
2061
+ [:igColorConvertU32ToFloat4, [:pointer, :uint], :void],
2062
+ [:igColorEdit3, [:pointer, :pointer, :int], :bool],
2063
+ [:igColorEdit4, [:pointer, :pointer, :int], :bool],
2064
+ [:igColorPicker3, [:pointer, :pointer, :int], :bool],
2065
+ [:igColorPicker4, [:pointer, :pointer, :int, :pointer], :bool],
2066
+ [:igColumns, [:int, :pointer, :bool], :void],
2067
+ [:igCombo_Str_arr, [:pointer, :pointer, :pointer, :int, :int], :bool],
2068
+ [:igCombo_Str, [:pointer, :pointer, :pointer, :int], :bool],
2069
+ [:igCombo_FnBoolPtr, [:pointer, :pointer, :pointer, :pointer, :int, :int], :bool],
2070
+ [:igCreateContext, [:pointer], :pointer],
2071
+ [:igDebugCheckVersionAndDataLayout, [:pointer, :size_t, :size_t, :size_t, :size_t, :size_t, :size_t], :bool],
2072
+ [:igDebugTextEncoding, [:pointer], :void],
2073
+ [:igDestroyContext, [:pointer], :void],
2074
+ [:igDragFloat, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
2075
+ [:igDragFloat2, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
2076
+ [:igDragFloat3, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
2077
+ [:igDragFloat4, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
2078
+ [:igDragFloatRange2, [:pointer, :pointer, :pointer, :float, :float, :float, :pointer, :pointer, :int], :bool],
2079
+ [:igDragInt, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
2080
+ [:igDragInt2, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
2081
+ [:igDragInt3, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
2082
+ [:igDragInt4, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
2083
+ [:igDragIntRange2, [:pointer, :pointer, :pointer, :float, :int, :int, :pointer, :pointer, :int], :bool],
2084
+ [:igDragScalar, [:pointer, :int, :pointer, :float, :pointer, :pointer, :pointer, :int], :bool],
2085
+ [:igDragScalarN, [:pointer, :int, :pointer, :int, :float, :pointer, :pointer, :pointer, :int], :bool],
2086
+ [:igDummy, [ImVec2.by_value], :void],
2087
+ [:igEnd, [], :void],
2088
+ [:igEndChild, [], :void],
2089
+ [:igEndChildFrame, [], :void],
2090
+ [:igEndCombo, [], :void],
2091
+ [:igEndDisabled, [], :void],
2092
+ [:igEndDragDropSource, [], :void],
2093
+ [:igEndDragDropTarget, [], :void],
2094
+ [:igEndFrame, [], :void],
2095
+ [:igEndGroup, [], :void],
2096
+ [:igEndListBox, [], :void],
2097
+ [:igEndMainMenuBar, [], :void],
2098
+ [:igEndMenu, [], :void],
2099
+ [:igEndMenuBar, [], :void],
2100
+ [:igEndPopup, [], :void],
2101
+ [:igEndTabBar, [], :void],
2102
+ [:igEndTabItem, [], :void],
2103
+ [:igEndTable, [], :void],
2104
+ [:igEndTooltip, [], :void],
2105
+ [:igGetAllocatorFunctions, [:pointer, :pointer, :pointer], :void],
2106
+ [:igGetBackgroundDrawList, [], :pointer],
2107
+ [:igGetClipboardText, [], :pointer],
2108
+ [:igGetColorU32_Col, [:int, :float], :uint],
2109
+ [:igGetColorU32_Vec4, [ImVec4.by_value], :uint],
2110
+ [:igGetColorU32_U32, [:uint], :uint],
2111
+ [:igGetColumnIndex, [], :int],
2112
+ [:igGetColumnOffset, [:int], :float],
2113
+ [:igGetColumnWidth, [:int], :float],
2114
+ [:igGetColumnsCount, [], :int],
2115
+ [:igGetContentRegionAvail, [:pointer], :void],
2116
+ [:igGetContentRegionMax, [:pointer], :void],
2117
+ [:igGetCurrentContext, [], :pointer],
2118
+ [:igGetCursorPos, [:pointer], :void],
2119
+ [:igGetCursorPosX, [], :float],
2120
+ [:igGetCursorPosY, [], :float],
2121
+ [:igGetCursorScreenPos, [:pointer], :void],
2122
+ [:igGetCursorStartPos, [:pointer], :void],
2123
+ [:igGetDragDropPayload, [], :pointer],
2124
+ [:igGetDrawData, [], :pointer],
2125
+ [:igGetDrawListSharedData, [], :pointer],
2126
+ [:igGetFont, [], :pointer],
2127
+ [:igGetFontSize, [], :float],
2128
+ [:igGetFontTexUvWhitePixel, [:pointer], :void],
2129
+ [:igGetForegroundDrawList, [], :pointer],
2130
+ [:igGetFrameCount, [], :int],
2131
+ [:igGetFrameHeight, [], :float],
2132
+ [:igGetFrameHeightWithSpacing, [], :float],
2133
+ [:igGetID_Str, [:pointer], :uint],
2134
+ [:igGetID_StrStr, [:pointer, :pointer], :uint],
2135
+ [:igGetID_Ptr, [:pointer], :uint],
2136
+ [:igGetIO, [], :pointer],
2137
+ [:igGetItemID, [], :uint],
2138
+ [:igGetItemRectMax, [:pointer], :void],
2139
+ [:igGetItemRectMin, [:pointer], :void],
2140
+ [:igGetItemRectSize, [:pointer], :void],
2141
+ [:igGetKeyIndex, [:int], :int],
2142
+ [:igGetKeyName, [:int], :pointer],
2143
+ [:igGetKeyPressedAmount, [:int, :float, :float], :int],
2144
+ [:igGetMainViewport, [], :pointer],
2145
+ [:igGetMouseClickedCount, [:int], :int],
2146
+ [:igGetMouseCursor, [], :int],
2147
+ [:igGetMouseDragDelta, [:pointer, :int, :float], :void],
2148
+ [:igGetMousePos, [:pointer], :void],
2149
+ [:igGetMousePosOnOpeningCurrentPopup, [:pointer], :void],
2150
+ [:igGetScrollMaxX, [], :float],
2151
+ [:igGetScrollMaxY, [], :float],
2152
+ [:igGetScrollX, [], :float],
2153
+ [:igGetScrollY, [], :float],
2154
+ [:igGetStateStorage, [], :pointer],
2155
+ [:igGetStyle, [], :pointer],
2156
+ [:igGetStyleColorName, [:int], :pointer],
2157
+ [:igGetStyleColorVec4, [:int], :pointer],
2158
+ [:igGetTextLineHeight, [], :float],
2159
+ [:igGetTextLineHeightWithSpacing, [], :float],
2160
+ [:igGetTime, [], :double],
2161
+ [:igGetTreeNodeToLabelSpacing, [], :float],
2162
+ [:igGetVersion, [], :pointer],
2163
+ [:igGetWindowContentRegionMax, [:pointer], :void],
2164
+ [:igGetWindowContentRegionMin, [:pointer], :void],
2165
+ [:igGetWindowDrawList, [], :pointer],
2166
+ [:igGetWindowHeight, [], :float],
2167
+ [:igGetWindowPos, [:pointer], :void],
2168
+ [:igGetWindowSize, [:pointer], :void],
2169
+ [:igGetWindowWidth, [], :float],
2170
+ [:igImage, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value], :void],
2171
+ [:igImageButton, [:pointer, :pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value], :bool],
2172
+ [:igIndent, [:float], :void],
2173
+ [:igInputDouble, [:pointer, :pointer, :double, :double, :pointer, :int], :bool],
2174
+ [:igInputFloat, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
2175
+ [:igInputFloat2, [:pointer, :pointer, :pointer, :int], :bool],
2176
+ [:igInputFloat3, [:pointer, :pointer, :pointer, :int], :bool],
2177
+ [:igInputFloat4, [:pointer, :pointer, :pointer, :int], :bool],
2178
+ [:igInputInt, [:pointer, :pointer, :int, :int, :int], :bool],
2179
+ [:igInputInt2, [:pointer, :pointer, :int], :bool],
2180
+ [:igInputInt3, [:pointer, :pointer, :int], :bool],
2181
+ [:igInputInt4, [:pointer, :pointer, :int], :bool],
2182
+ [:igInputScalar, [:pointer, :int, :pointer, :pointer, :pointer, :pointer, :int], :bool],
2183
+ [:igInputScalarN, [:pointer, :int, :pointer, :int, :pointer, :pointer, :pointer, :int], :bool],
2184
+ [:igInputText, [:pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer], :bool],
2185
+ [:igInputTextMultiline, [:pointer, :pointer, :size_t, ImVec2.by_value, :int, :ImGuiInputTextCallback, :pointer], :bool],
2186
+ [:igInputTextWithHint, [:pointer, :pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer], :bool],
2187
+ [:igInvisibleButton, [:pointer, ImVec2.by_value, :int], :bool],
2188
+ [:igIsAnyItemActive, [], :bool],
2189
+ [:igIsAnyItemFocused, [], :bool],
2190
+ [:igIsAnyItemHovered, [], :bool],
2191
+ [:igIsAnyMouseDown, [], :bool],
2192
+ [:igIsItemActivated, [], :bool],
2193
+ [:igIsItemActive, [], :bool],
2194
+ [:igIsItemClicked, [:int], :bool],
2195
+ [:igIsItemDeactivated, [], :bool],
2196
+ [:igIsItemDeactivatedAfterEdit, [], :bool],
2197
+ [:igIsItemEdited, [], :bool],
2198
+ [:igIsItemFocused, [], :bool],
2199
+ [:igIsItemHovered, [:int], :bool],
2200
+ [:igIsItemToggledOpen, [], :bool],
2201
+ [:igIsItemVisible, [], :bool],
2202
+ [:igIsKeyDown, [:int], :bool],
2203
+ [:igIsKeyPressed, [:int, :bool], :bool],
2204
+ [:igIsKeyReleased, [:int], :bool],
2205
+ [:igIsMouseClicked, [:int, :bool], :bool],
2206
+ [:igIsMouseDoubleClicked, [:int], :bool],
2207
+ [:igIsMouseDown, [:int], :bool],
2208
+ [:igIsMouseDragging, [:int, :float], :bool],
2209
+ [:igIsMouseHoveringRect, [ImVec2.by_value, ImVec2.by_value, :bool], :bool],
2210
+ [:igIsMousePosValid, [:pointer], :bool],
2211
+ [:igIsMouseReleased, [:int], :bool],
2212
+ [:igIsPopupOpen, [:pointer, :int], :bool],
2213
+ [:igIsRectVisible_Nil, [ImVec2.by_value], :bool],
2214
+ [:igIsRectVisible_Vec2, [ImVec2.by_value, ImVec2.by_value], :bool],
2215
+ [:igIsWindowAppearing, [], :bool],
2216
+ [:igIsWindowCollapsed, [], :bool],
2217
+ [:igIsWindowFocused, [:int], :bool],
2218
+ [:igIsWindowHovered, [:int], :bool],
2219
+ [:igLabelText, [:pointer, :pointer, :varargs], :void],
2220
+ [:igListBox_Str_arr, [:pointer, :pointer, :pointer, :int, :int], :bool],
2221
+ [:igListBox_FnBoolPtr, [:pointer, :pointer, :pointer, :pointer, :int, :int], :bool],
2222
+ [:igLoadIniSettingsFromDisk, [:pointer], :void],
2223
+ [:igLoadIniSettingsFromMemory, [:pointer, :size_t], :void],
2224
+ [:igLogButtons, [], :void],
2225
+ [:igLogFinish, [], :void],
2226
+ [:igLogText, [:pointer, :varargs], :void],
2227
+ [:igLogToClipboard, [:int], :void],
2228
+ [:igLogToFile, [:int, :pointer], :void],
2229
+ [:igLogToTTY, [:int], :void],
2230
+ [:igMemAlloc, [:size_t], :pointer],
2231
+ [:igMemFree, [:pointer], :void],
2232
+ [:igMenuItem_Bool, [:pointer, :pointer, :bool, :bool], :bool],
2233
+ [:igMenuItem_BoolPtr, [:pointer, :pointer, :pointer, :bool], :bool],
2234
+ [:igNewFrame, [], :void],
2235
+ [:igNewLine, [], :void],
2236
+ [:igNextColumn, [], :void],
2237
+ [:igOpenPopup_Str, [:pointer, :int], :void],
2238
+ [:igOpenPopup_ID, [:uint, :int], :void],
2239
+ [:igOpenPopupOnItemClick, [:pointer, :int], :void],
2240
+ [:igPlotHistogram_FloatPtr, [:pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value, :int], :void],
2241
+ [:igPlotHistogram_FnFloatPtr, [:pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value], :void],
2242
+ [:igPlotLines_FloatPtr, [:pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value, :int], :void],
2243
+ [:igPlotLines_FnFloatPtr, [:pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value], :void],
2244
+ [:igPopAllowKeyboardFocus, [], :void],
2245
+ [:igPopButtonRepeat, [], :void],
2246
+ [:igPopClipRect, [], :void],
2247
+ [:igPopFont, [], :void],
2248
+ [:igPopID, [], :void],
2249
+ [:igPopItemWidth, [], :void],
2250
+ [:igPopStyleColor, [:int], :void],
2251
+ [:igPopStyleVar, [:int], :void],
2252
+ [:igPopTextWrapPos, [], :void],
2253
+ [:igProgressBar, [:float, ImVec2.by_value, :pointer], :void],
2254
+ [:igPushAllowKeyboardFocus, [:bool], :void],
2255
+ [:igPushButtonRepeat, [:bool], :void],
2256
+ [:igPushClipRect, [ImVec2.by_value, ImVec2.by_value, :bool], :void],
2257
+ [:igPushFont, [:pointer], :void],
2258
+ [:igPushID_Str, [:pointer], :void],
2259
+ [:igPushID_StrStr, [:pointer, :pointer], :void],
2260
+ [:igPushID_Ptr, [:pointer], :void],
2261
+ [:igPushID_Int, [:int], :void],
2262
+ [:igPushItemWidth, [:float], :void],
2263
+ [:igPushStyleColor_U32, [:int, :uint], :void],
2264
+ [:igPushStyleColor_Vec4, [:int, ImVec4.by_value], :void],
2265
+ [:igPushStyleVar_Float, [:int, :float], :void],
2266
+ [:igPushStyleVar_Vec2, [:int, ImVec2.by_value], :void],
2267
+ [:igPushTextWrapPos, [:float], :void],
2268
+ [:igRadioButton_Bool, [:pointer, :bool], :bool],
2269
+ [:igRadioButton_IntPtr, [:pointer, :pointer, :int], :bool],
2270
+ [:igRender, [], :void],
2271
+ [:igResetMouseDragDelta, [:int], :void],
2272
+ [:igSameLine, [:float, :float], :void],
2273
+ [:igSaveIniSettingsToDisk, [:pointer], :void],
2274
+ [:igSaveIniSettingsToMemory, [:pointer], :pointer],
2275
+ [:igSelectable_Bool, [:pointer, :bool, :int, ImVec2.by_value], :bool],
2276
+ [:igSelectable_BoolPtr, [:pointer, :pointer, :int, ImVec2.by_value], :bool],
2277
+ [:igSeparator, [], :void],
2278
+ [:igSetAllocatorFunctions, [:pointer, :pointer, :pointer], :void],
2279
+ [:igSetClipboardText, [:pointer], :void],
2280
+ [:igSetColorEditOptions, [:int], :void],
2281
+ [:igSetColumnOffset, [:int, :float], :void],
2282
+ [:igSetColumnWidth, [:int, :float], :void],
2283
+ [:igSetCurrentContext, [:pointer], :void],
2284
+ [:igSetCursorPos, [ImVec2.by_value], :void],
2285
+ [:igSetCursorPosX, [:float], :void],
2286
+ [:igSetCursorPosY, [:float], :void],
2287
+ [:igSetCursorScreenPos, [ImVec2.by_value], :void],
2288
+ [:igSetDragDropPayload, [:pointer, :pointer, :size_t, :int], :bool],
2289
+ [:igSetItemAllowOverlap, [], :void],
2290
+ [:igSetItemDefaultFocus, [], :void],
2291
+ [:igSetKeyboardFocusHere, [:int], :void],
2292
+ [:igSetMouseCursor, [:int], :void],
2293
+ [:igSetNextFrameWantCaptureKeyboard, [:bool], :void],
2294
+ [:igSetNextFrameWantCaptureMouse, [:bool], :void],
2295
+ [:igSetNextItemOpen, [:bool, :int], :void],
2296
+ [:igSetNextItemWidth, [:float], :void],
2297
+ [:igSetNextWindowBgAlpha, [:float], :void],
2298
+ [:igSetNextWindowCollapsed, [:bool, :int], :void],
2299
+ [:igSetNextWindowContentSize, [ImVec2.by_value], :void],
2300
+ [:igSetNextWindowFocus, [], :void],
2301
+ [:igSetNextWindowPos, [ImVec2.by_value, :int, ImVec2.by_value], :void],
2302
+ [:igSetNextWindowScroll, [ImVec2.by_value], :void],
2303
+ [:igSetNextWindowSize, [ImVec2.by_value, :int], :void],
2304
+ [:igSetNextWindowSizeConstraints, [ImVec2.by_value, ImVec2.by_value, :ImGuiSizeCallback, :pointer], :void],
2305
+ [:igSetScrollFromPosX, [:float, :float], :void],
2306
+ [:igSetScrollFromPosY, [:float, :float], :void],
2307
+ [:igSetScrollHereX, [:float], :void],
2308
+ [:igSetScrollHereY, [:float], :void],
2309
+ [:igSetScrollX, [:float], :void],
2310
+ [:igSetScrollY, [:float], :void],
2311
+ [:igSetStateStorage, [:pointer], :void],
2312
+ [:igSetTabItemClosed, [:pointer], :void],
2313
+ [:igSetTooltip, [:pointer, :varargs], :void],
2314
+ [:igSetWindowCollapsed_Bool, [:bool, :int], :void],
2315
+ [:igSetWindowCollapsed_Str, [:pointer, :bool, :int], :void],
2316
+ [:igSetWindowFocus_Nil, [], :void],
2317
+ [:igSetWindowFocus_Str, [:pointer], :void],
2318
+ [:igSetWindowFontScale, [:float], :void],
2319
+ [:igSetWindowPos_Vec2, [ImVec2.by_value, :int], :void],
2320
+ [:igSetWindowPos_Str, [:pointer, ImVec2.by_value, :int], :void],
2321
+ [:igSetWindowSize_Vec2, [ImVec2.by_value, :int], :void],
2322
+ [:igSetWindowSize_Str, [:pointer, ImVec2.by_value, :int], :void],
2323
+ [:igShowAboutWindow, [:pointer], :void],
2324
+ [:igShowDebugLogWindow, [:pointer], :void],
2325
+ [:igShowDemoWindow, [:pointer], :void],
2326
+ [:igShowFontSelector, [:pointer], :void],
2327
+ [:igShowMetricsWindow, [:pointer], :void],
2328
+ [:igShowStackToolWindow, [:pointer], :void],
2329
+ [:igShowStyleEditor, [:pointer], :void],
2330
+ [:igShowStyleSelector, [:pointer], :bool],
2331
+ [:igShowUserGuide, [], :void],
2332
+ [:igSliderAngle, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
2333
+ [:igSliderFloat, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
2334
+ [:igSliderFloat2, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
2335
+ [:igSliderFloat3, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
2336
+ [:igSliderFloat4, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
2337
+ [:igSliderInt, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
2338
+ [:igSliderInt2, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
2339
+ [:igSliderInt3, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
2340
+ [:igSliderInt4, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
2341
+ [:igSliderScalar, [:pointer, :int, :pointer, :pointer, :pointer, :pointer, :int], :bool],
2342
+ [:igSliderScalarN, [:pointer, :int, :pointer, :int, :pointer, :pointer, :pointer, :int], :bool],
2343
+ [:igSmallButton, [:pointer], :bool],
2344
+ [:igSpacing, [], :void],
2345
+ [:igStyleColorsClassic, [:pointer], :void],
2346
+ [:igStyleColorsDark, [:pointer], :void],
2347
+ [:igStyleColorsLight, [:pointer], :void],
2348
+ [:igTabItemButton, [:pointer, :int], :bool],
2349
+ [:igTableGetColumnCount, [], :int],
2350
+ [:igTableGetColumnFlags, [:int], :int],
2351
+ [:igTableGetColumnIndex, [], :int],
2352
+ [:igTableGetColumnName, [:int], :pointer],
2353
+ [:igTableGetRowIndex, [], :int],
2354
+ [:igTableGetSortSpecs, [], :pointer],
2355
+ [:igTableHeader, [:pointer], :void],
2356
+ [:igTableHeadersRow, [], :void],
2357
+ [:igTableNextColumn, [], :bool],
2358
+ [:igTableNextRow, [:int, :float], :void],
2359
+ [:igTableSetBgColor, [:int, :uint, :int], :void],
2360
+ [:igTableSetColumnEnabled, [:int, :bool], :void],
2361
+ [:igTableSetColumnIndex, [:int], :bool],
2362
+ [:igTableSetupColumn, [:pointer, :int, :float, :uint], :void],
2363
+ [:igTableSetupScrollFreeze, [:int, :int], :void],
2364
+ [:igText, [:pointer, :varargs], :void],
2365
+ [:igTextColored, [ImVec4.by_value, :pointer, :varargs], :void],
2366
+ [:igTextDisabled, [:pointer, :varargs], :void],
2367
+ [:igTextUnformatted, [:pointer, :pointer], :void],
2368
+ [:igTextWrapped, [:pointer, :varargs], :void],
2369
+ [:igTreeNode_Str, [:pointer], :bool],
2370
+ [:igTreeNode_StrStr, [:pointer, :pointer, :varargs], :bool],
2371
+ [:igTreeNode_Ptr, [:pointer, :pointer, :varargs], :bool],
2372
+ [:igTreeNodeEx_Str, [:pointer, :int], :bool],
2373
+ [:igTreeNodeEx_StrStr, [:pointer, :int, :pointer, :varargs], :bool],
2374
+ [:igTreeNodeEx_Ptr, [:pointer, :int, :pointer, :varargs], :bool],
2375
+ [:igTreePop, [], :void],
2376
+ [:igTreePush_Str, [:pointer], :void],
2377
+ [:igTreePush_Ptr, [:pointer], :void],
2378
+ [:igUnindent, [:float], :void],
2379
+ [:igVSliderFloat, [:pointer, ImVec2.by_value, :pointer, :float, :float, :pointer, :int], :bool],
2380
+ [:igVSliderInt, [:pointer, ImVec2.by_value, :pointer, :int, :int, :pointer, :int], :bool],
2381
+ [:igVSliderScalar, [:pointer, ImVec2.by_value, :int, :pointer, :pointer, :pointer, :pointer, :int], :bool],
2382
+ [:igValue_Bool, [:pointer, :bool], :void],
2383
+ [:igValue_Int, [:pointer, :int], :void],
2384
+ [:igValue_Uint, [:pointer, :uint], :void],
2385
+ [:igValue_Float, [:pointer, :float, :pointer], :void],
2203
2386
  ]
2204
2387
 
2205
- args = {
2206
- :ImDrawList_AddBezierCubic => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int],
2207
- :ImDrawList_AddBezierQuadratic => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int],
2208
- :ImDrawList_AddCallback => [:pointer, :ImDrawCallback, :pointer],
2209
- :ImDrawList_AddCircle => [:pointer, ImVec2.by_value, :float, :uint, :int, :float],
2210
- :ImDrawList_AddCircleFilled => [:pointer, ImVec2.by_value, :float, :uint, :int],
2211
- :ImDrawList_AddConvexPolyFilled => [:pointer, :pointer, :int, :uint],
2212
- :ImDrawList_AddDrawCmd => [:pointer],
2213
- :ImDrawList_AddImage => [:pointer, :pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint],
2214
- :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],
2215
- :ImDrawList_AddImageRounded => [:pointer, :pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int],
2216
- :ImDrawList_AddLine => [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float],
2217
- :ImDrawList_AddNgon => [:pointer, ImVec2.by_value, :float, :uint, :int, :float],
2218
- :ImDrawList_AddNgonFilled => [:pointer, ImVec2.by_value, :float, :uint, :int],
2219
- :ImDrawList_AddPolyline => [:pointer, :pointer, :int, :uint, :int, :float],
2220
- :ImDrawList_AddQuad => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float],
2221
- :ImDrawList_AddQuadFilled => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint],
2222
- :ImDrawList_AddRect => [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int, :float],
2223
- :ImDrawList_AddRectFilled => [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int],
2224
- :ImDrawList_AddRectFilledMultiColor => [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :uint, :uint, :uint],
2225
- :ImDrawList_AddText_Vec2 => [:pointer, ImVec2.by_value, :uint, :pointer, :pointer],
2226
- :ImDrawList_AddText_FontPtr => [:pointer, :pointer, :float, ImVec2.by_value, :uint, :pointer, :pointer, :float, :pointer],
2227
- :ImDrawList_AddTriangle => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float],
2228
- :ImDrawList_AddTriangleFilled => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint],
2229
- :ImDrawList_ChannelsMerge => [:pointer],
2230
- :ImDrawList_ChannelsSetCurrent => [:pointer, :int],
2231
- :ImDrawList_ChannelsSplit => [:pointer, :int],
2232
- :ImDrawList_CloneOutput => [:pointer],
2233
- :ImDrawList_GetClipRectMax => [:pointer, :pointer],
2234
- :ImDrawList_GetClipRectMin => [:pointer, :pointer],
2235
- :ImDrawList_ImDrawList => [:pointer],
2236
- :ImDrawList_PathArcTo => [:pointer, ImVec2.by_value, :float, :float, :float, :int],
2237
- :ImDrawList_PathArcToFast => [:pointer, ImVec2.by_value, :float, :int, :int],
2238
- :ImDrawList_PathBezierCubicCurveTo => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :int],
2239
- :ImDrawList_PathBezierQuadraticCurveTo => [:pointer, ImVec2.by_value, ImVec2.by_value, :int],
2240
- :ImDrawList_PathClear => [:pointer],
2241
- :ImDrawList_PathFillConvex => [:pointer, :uint],
2242
- :ImDrawList_PathLineTo => [:pointer, ImVec2.by_value],
2243
- :ImDrawList_PathLineToMergeDuplicate => [:pointer, ImVec2.by_value],
2244
- :ImDrawList_PathRect => [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :int],
2245
- :ImDrawList_PathStroke => [:pointer, :uint, :int, :float],
2246
- :ImDrawList_PopClipRect => [:pointer],
2247
- :ImDrawList_PopTextureID => [:pointer],
2248
- :ImDrawList_PrimQuadUV => [: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],
2249
- :ImDrawList_PrimRect => [:pointer, ImVec2.by_value, ImVec2.by_value, :uint],
2250
- :ImDrawList_PrimRectUV => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint],
2251
- :ImDrawList_PrimReserve => [:pointer, :int, :int],
2252
- :ImDrawList_PrimUnreserve => [:pointer, :int, :int],
2253
- :ImDrawList_PrimVtx => [:pointer, ImVec2.by_value, ImVec2.by_value, :uint],
2254
- :ImDrawList_PrimWriteIdx => [:pointer, :ushort],
2255
- :ImDrawList_PrimWriteVtx => [:pointer, ImVec2.by_value, ImVec2.by_value, :uint],
2256
- :ImDrawList_PushClipRect => [:pointer, ImVec2.by_value, ImVec2.by_value, :bool],
2257
- :ImDrawList_PushClipRectFullScreen => [:pointer],
2258
- :ImDrawList_PushTextureID => [:pointer, :pointer],
2259
- :ImDrawList__CalcCircleAutoSegmentCount => [:pointer, :float],
2260
- :ImDrawList__ClearFreeMemory => [:pointer],
2261
- :ImDrawList__OnChangedClipRect => [:pointer],
2262
- :ImDrawList__OnChangedTextureID => [:pointer],
2263
- :ImDrawList__OnChangedVtxOffset => [:pointer],
2264
- :ImDrawList__PathArcToFastEx => [:pointer, ImVec2.by_value, :float, :int, :int, :int],
2265
- :ImDrawList__PathArcToN => [:pointer, ImVec2.by_value, :float, :float, :float, :int],
2266
- :ImDrawList__PopUnusedDrawCmd => [:pointer],
2267
- :ImDrawList__ResetForNewFrame => [:pointer],
2268
- :ImDrawList__TryMergeDrawCmds => [:pointer],
2269
- :ImDrawList_destroy => [:pointer],
2270
- :ImFontAtlas_AddCustomRectFontGlyph => [:pointer, :pointer, :ushort, :int, :int, :float, ImVec2.by_value],
2271
- :ImFontAtlas_AddCustomRectRegular => [:pointer, :int, :int],
2272
- :ImFontAtlas_AddFont => [:pointer, :pointer],
2273
- :ImFontAtlas_AddFontDefault => [:pointer, :pointer],
2274
- :ImFontAtlas_AddFontFromFileTTF => [:pointer, :pointer, :float, :pointer, :pointer],
2275
- :ImFontAtlas_AddFontFromMemoryCompressedBase85TTF => [:pointer, :pointer, :float, :pointer, :pointer],
2276
- :ImFontAtlas_AddFontFromMemoryCompressedTTF => [:pointer, :pointer, :int, :float, :pointer, :pointer],
2277
- :ImFontAtlas_AddFontFromMemoryTTF => [:pointer, :pointer, :int, :float, :pointer, :pointer],
2278
- :ImFontAtlas_Build => [:pointer],
2279
- :ImFontAtlas_CalcCustomRectUV => [:pointer, :pointer, :pointer, :pointer],
2280
- :ImFontAtlas_Clear => [:pointer],
2281
- :ImFontAtlas_ClearFonts => [:pointer],
2282
- :ImFontAtlas_ClearInputData => [:pointer],
2283
- :ImFontAtlas_ClearTexData => [:pointer],
2284
- :ImFontAtlas_GetCustomRectByIndex => [:pointer, :int],
2285
- :ImFontAtlas_GetGlyphRangesChineseFull => [:pointer],
2286
- :ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon => [:pointer],
2287
- :ImFontAtlas_GetGlyphRangesCyrillic => [:pointer],
2288
- :ImFontAtlas_GetGlyphRangesDefault => [:pointer],
2289
- :ImFontAtlas_GetGlyphRangesJapanese => [:pointer],
2290
- :ImFontAtlas_GetGlyphRangesKorean => [:pointer],
2291
- :ImFontAtlas_GetGlyphRangesThai => [:pointer],
2292
- :ImFontAtlas_GetGlyphRangesVietnamese => [:pointer],
2293
- :ImFontAtlas_GetMouseCursorTexData => [:pointer, :int, :pointer, :pointer, :pointer, :pointer],
2294
- :ImFontAtlas_GetTexDataAsAlpha8 => [:pointer, :pointer, :pointer, :pointer, :pointer],
2295
- :ImFontAtlas_GetTexDataAsRGBA32 => [:pointer, :pointer, :pointer, :pointer, :pointer],
2296
- :ImFontAtlas_ImFontAtlas => [],
2297
- :ImFontAtlas_IsBuilt => [:pointer],
2298
- :ImFontAtlas_SetTexID => [:pointer, :pointer],
2299
- :ImFontAtlas_destroy => [:pointer],
2300
- :ImFontConfig_ImFontConfig => [],
2301
- :ImFontConfig_destroy => [:pointer],
2302
- :ImFontGlyphRangesBuilder_AddChar => [:pointer, :ushort],
2303
- :ImFontGlyphRangesBuilder_AddRanges => [:pointer, :pointer],
2304
- :ImFontGlyphRangesBuilder_AddText => [:pointer, :pointer, :pointer],
2305
- :ImFontGlyphRangesBuilder_BuildRanges => [:pointer, :pointer],
2306
- :ImFontGlyphRangesBuilder_Clear => [:pointer],
2307
- :ImFontGlyphRangesBuilder_GetBit => [:pointer, :size_t],
2308
- :ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder => [],
2309
- :ImFontGlyphRangesBuilder_SetBit => [:pointer, :size_t],
2310
- :ImFontGlyphRangesBuilder_destroy => [:pointer],
2311
- :ImGuiIO_AddFocusEvent => [:pointer, :bool],
2312
- :ImGuiIO_AddInputCharacter => [:pointer, :uint],
2313
- :ImGuiIO_AddInputCharacterUTF16 => [:pointer, :ushort],
2314
- :ImGuiIO_AddInputCharactersUTF8 => [:pointer, :pointer],
2315
- :ImGuiIO_AddKeyAnalogEvent => [:pointer, :int, :bool, :float],
2316
- :ImGuiIO_AddKeyEvent => [:pointer, :int, :bool],
2317
- :ImGuiIO_AddMouseButtonEvent => [:pointer, :int, :bool],
2318
- :ImGuiIO_AddMousePosEvent => [:pointer, :float, :float],
2319
- :ImGuiIO_AddMouseWheelEvent => [:pointer, :float, :float],
2320
- :ImGuiIO_ClearInputCharacters => [:pointer],
2321
- :ImGuiIO_ClearInputKeys => [:pointer],
2322
- :ImGuiIO_ImGuiIO => [],
2323
- :ImGuiIO_SetAppAcceptingEvents => [:pointer, :bool],
2324
- :ImGuiIO_SetKeyEventNativeData => [:pointer, :int, :int, :int, :int],
2325
- :ImGuiIO_destroy => [:pointer],
2326
- :ImGuiStyle_ImGuiStyle => [],
2327
- :ImGuiStyle_ScaleAllSizes => [:pointer, :float],
2328
- :ImGuiStyle_destroy => [:pointer],
2329
- :ImGuiTextFilter_Build => [:pointer],
2330
- :ImGuiTextFilter_Clear => [:pointer],
2331
- :ImGuiTextFilter_Draw => [:pointer, :pointer, :float],
2332
- :ImGuiTextFilter_ImGuiTextFilter => [:pointer],
2333
- :ImGuiTextFilter_IsActive => [:pointer],
2334
- :ImGuiTextFilter_PassFilter => [:pointer, :pointer, :pointer],
2335
- :ImGuiTextFilter_destroy => [:pointer],
2336
- :ImGuiTextRange_ImGuiTextRange_Nil => [],
2337
- :ImGuiTextRange_ImGuiTextRange_Str => [:pointer, :pointer],
2338
- :ImGuiTextRange_destroy => [:pointer],
2339
- :ImGuiTextRange_empty => [:pointer],
2340
- :ImGuiTextRange_split => [:pointer, :char, :pointer],
2341
- :igAcceptDragDropPayload => [:pointer, :int],
2342
- :igAlignTextToFramePadding => [],
2343
- :igArrowButton => [:pointer, :int],
2344
- :igBegin => [:pointer, :pointer, :int],
2345
- :igBeginChild_Str => [:pointer, ImVec2.by_value, :bool, :int],
2346
- :igBeginChild_ID => [:uint, ImVec2.by_value, :bool, :int],
2347
- :igBeginChildFrame => [:uint, ImVec2.by_value, :int],
2348
- :igBeginCombo => [:pointer, :pointer, :int],
2349
- :igBeginDisabled => [:bool],
2350
- :igBeginDragDropSource => [:int],
2351
- :igBeginDragDropTarget => [],
2352
- :igBeginGroup => [],
2353
- :igBeginListBox => [:pointer, ImVec2.by_value],
2354
- :igBeginMainMenuBar => [],
2355
- :igBeginMenu => [:pointer, :bool],
2356
- :igBeginMenuBar => [],
2357
- :igBeginPopup => [:pointer, :int],
2358
- :igBeginPopupContextItem => [:pointer, :int],
2359
- :igBeginPopupContextVoid => [:pointer, :int],
2360
- :igBeginPopupContextWindow => [:pointer, :int],
2361
- :igBeginPopupModal => [:pointer, :pointer, :int],
2362
- :igBeginTabBar => [:pointer, :int],
2363
- :igBeginTabItem => [:pointer, :pointer, :int],
2364
- :igBeginTable => [:pointer, :int, :int, ImVec2.by_value, :float],
2365
- :igBeginTooltip => [],
2366
- :igBullet => [],
2367
- :igBulletText => [:pointer, :varargs],
2368
- :igButton => [:pointer, ImVec2.by_value],
2369
- :igCalcItemWidth => [],
2370
- :igCalcTextSize => [:pointer, :pointer, :pointer, :bool, :float],
2371
- :igCheckbox => [:pointer, :pointer],
2372
- :igCheckboxFlags_IntPtr => [:pointer, :pointer, :int],
2373
- :igCheckboxFlags_UintPtr => [:pointer, :pointer, :uint],
2374
- :igCloseCurrentPopup => [],
2375
- :igCollapsingHeader_TreeNodeFlags => [:pointer, :int],
2376
- :igCollapsingHeader_BoolPtr => [:pointer, :pointer, :int],
2377
- :igColorButton => [:pointer, ImVec4.by_value, :int, ImVec2.by_value],
2378
- :igColorConvertFloat4ToU32 => [ImVec4.by_value],
2379
- :igColorConvertHSVtoRGB => [:float, :float, :float, :pointer, :pointer, :pointer],
2380
- :igColorConvertRGBtoHSV => [:float, :float, :float, :pointer, :pointer, :pointer],
2381
- :igColorConvertU32ToFloat4 => [:pointer, :uint],
2382
- :igColorEdit3 => [:pointer, :pointer, :int],
2383
- :igColorEdit4 => [:pointer, :pointer, :int],
2384
- :igColorPicker3 => [:pointer, :pointer, :int],
2385
- :igColorPicker4 => [:pointer, :pointer, :int, :pointer],
2386
- :igColumns => [:int, :pointer, :bool],
2387
- :igCombo_Str_arr => [:pointer, :pointer, :pointer, :int, :int],
2388
- :igCombo_Str => [:pointer, :pointer, :pointer, :int],
2389
- :igCombo_FnBoolPtr => [:pointer, :pointer, :pointer, :pointer, :int, :int],
2390
- :igCreateContext => [:pointer],
2391
- :igDebugCheckVersionAndDataLayout => [:pointer, :size_t, :size_t, :size_t, :size_t, :size_t, :size_t],
2392
- :igDebugTextEncoding => [:pointer],
2393
- :igDestroyContext => [:pointer],
2394
- :igDragFloat => [:pointer, :pointer, :float, :float, :float, :pointer, :int],
2395
- :igDragFloat2 => [:pointer, :pointer, :float, :float, :float, :pointer, :int],
2396
- :igDragFloat3 => [:pointer, :pointer, :float, :float, :float, :pointer, :int],
2397
- :igDragFloat4 => [:pointer, :pointer, :float, :float, :float, :pointer, :int],
2398
- :igDragFloatRange2 => [:pointer, :pointer, :pointer, :float, :float, :float, :pointer, :pointer, :int],
2399
- :igDragInt => [:pointer, :pointer, :float, :int, :int, :pointer, :int],
2400
- :igDragInt2 => [:pointer, :pointer, :float, :int, :int, :pointer, :int],
2401
- :igDragInt3 => [:pointer, :pointer, :float, :int, :int, :pointer, :int],
2402
- :igDragInt4 => [:pointer, :pointer, :float, :int, :int, :pointer, :int],
2403
- :igDragIntRange2 => [:pointer, :pointer, :pointer, :float, :int, :int, :pointer, :pointer, :int],
2404
- :igDragScalar => [:pointer, :int, :pointer, :float, :pointer, :pointer, :pointer, :int],
2405
- :igDragScalarN => [:pointer, :int, :pointer, :int, :float, :pointer, :pointer, :pointer, :int],
2406
- :igDummy => [ImVec2.by_value],
2407
- :igEnd => [],
2408
- :igEndChild => [],
2409
- :igEndChildFrame => [],
2410
- :igEndCombo => [],
2411
- :igEndDisabled => [],
2412
- :igEndDragDropSource => [],
2413
- :igEndDragDropTarget => [],
2414
- :igEndFrame => [],
2415
- :igEndGroup => [],
2416
- :igEndListBox => [],
2417
- :igEndMainMenuBar => [],
2418
- :igEndMenu => [],
2419
- :igEndMenuBar => [],
2420
- :igEndPopup => [],
2421
- :igEndTabBar => [],
2422
- :igEndTabItem => [],
2423
- :igEndTable => [],
2424
- :igEndTooltip => [],
2425
- :igGetAllocatorFunctions => [:pointer, :pointer, :pointer],
2426
- :igGetBackgroundDrawList => [],
2427
- :igGetClipboardText => [],
2428
- :igGetColorU32_Col => [:int, :float],
2429
- :igGetColorU32_Vec4 => [ImVec4.by_value],
2430
- :igGetColorU32_U32 => [:uint],
2431
- :igGetColumnIndex => [],
2432
- :igGetColumnOffset => [:int],
2433
- :igGetColumnWidth => [:int],
2434
- :igGetColumnsCount => [],
2435
- :igGetContentRegionAvail => [:pointer],
2436
- :igGetContentRegionMax => [:pointer],
2437
- :igGetCurrentContext => [],
2438
- :igGetCursorPos => [:pointer],
2439
- :igGetCursorPosX => [],
2440
- :igGetCursorPosY => [],
2441
- :igGetCursorScreenPos => [:pointer],
2442
- :igGetCursorStartPos => [:pointer],
2443
- :igGetDragDropPayload => [],
2444
- :igGetDrawData => [],
2445
- :igGetDrawListSharedData => [],
2446
- :igGetFont => [],
2447
- :igGetFontSize => [],
2448
- :igGetFontTexUvWhitePixel => [:pointer],
2449
- :igGetForegroundDrawList => [],
2450
- :igGetFrameCount => [],
2451
- :igGetFrameHeight => [],
2452
- :igGetFrameHeightWithSpacing => [],
2453
- :igGetID_Str => [:pointer],
2454
- :igGetID_StrStr => [:pointer, :pointer],
2455
- :igGetID_Ptr => [:pointer],
2456
- :igGetIO => [],
2457
- :igGetItemRectMax => [:pointer],
2458
- :igGetItemRectMin => [:pointer],
2459
- :igGetItemRectSize => [:pointer],
2460
- :igGetKeyIndex => [:int],
2461
- :igGetKeyName => [:int],
2462
- :igGetKeyPressedAmount => [:int, :float, :float],
2463
- :igGetMainViewport => [],
2464
- :igGetMouseClickedCount => [:int],
2465
- :igGetMouseCursor => [],
2466
- :igGetMouseDragDelta => [:pointer, :int, :float],
2467
- :igGetMousePos => [:pointer],
2468
- :igGetMousePosOnOpeningCurrentPopup => [:pointer],
2469
- :igGetScrollMaxX => [],
2470
- :igGetScrollMaxY => [],
2471
- :igGetScrollX => [],
2472
- :igGetScrollY => [],
2473
- :igGetStateStorage => [],
2474
- :igGetStyle => [],
2475
- :igGetStyleColorName => [:int],
2476
- :igGetStyleColorVec4 => [:int],
2477
- :igGetTextLineHeight => [],
2478
- :igGetTextLineHeightWithSpacing => [],
2479
- :igGetTime => [],
2480
- :igGetTreeNodeToLabelSpacing => [],
2481
- :igGetVersion => [],
2482
- :igGetWindowContentRegionMax => [:pointer],
2483
- :igGetWindowContentRegionMin => [:pointer],
2484
- :igGetWindowDrawList => [],
2485
- :igGetWindowHeight => [],
2486
- :igGetWindowPos => [:pointer],
2487
- :igGetWindowSize => [:pointer],
2488
- :igGetWindowWidth => [],
2489
- :igImage => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value],
2490
- :igImageButton => [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :int, ImVec4.by_value, ImVec4.by_value],
2491
- :igIndent => [:float],
2492
- :igInputDouble => [:pointer, :pointer, :double, :double, :pointer, :int],
2493
- :igInputFloat => [:pointer, :pointer, :float, :float, :pointer, :int],
2494
- :igInputFloat2 => [:pointer, :pointer, :pointer, :int],
2495
- :igInputFloat3 => [:pointer, :pointer, :pointer, :int],
2496
- :igInputFloat4 => [:pointer, :pointer, :pointer, :int],
2497
- :igInputInt => [:pointer, :pointer, :int, :int, :int],
2498
- :igInputInt2 => [:pointer, :pointer, :int],
2499
- :igInputInt3 => [:pointer, :pointer, :int],
2500
- :igInputInt4 => [:pointer, :pointer, :int],
2501
- :igInputScalar => [:pointer, :int, :pointer, :pointer, :pointer, :pointer, :int],
2502
- :igInputScalarN => [:pointer, :int, :pointer, :int, :pointer, :pointer, :pointer, :int],
2503
- :igInputText => [:pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer],
2504
- :igInputTextMultiline => [:pointer, :pointer, :size_t, ImVec2.by_value, :int, :ImGuiInputTextCallback, :pointer],
2505
- :igInputTextWithHint => [:pointer, :pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer],
2506
- :igInvisibleButton => [:pointer, ImVec2.by_value, :int],
2507
- :igIsAnyItemActive => [],
2508
- :igIsAnyItemFocused => [],
2509
- :igIsAnyItemHovered => [],
2510
- :igIsAnyMouseDown => [],
2511
- :igIsItemActivated => [],
2512
- :igIsItemActive => [],
2513
- :igIsItemClicked => [:int],
2514
- :igIsItemDeactivated => [],
2515
- :igIsItemDeactivatedAfterEdit => [],
2516
- :igIsItemEdited => [],
2517
- :igIsItemFocused => [],
2518
- :igIsItemHovered => [:int],
2519
- :igIsItemToggledOpen => [],
2520
- :igIsItemVisible => [],
2521
- :igIsKeyDown => [:int],
2522
- :igIsKeyPressed => [:int, :bool],
2523
- :igIsKeyReleased => [:int],
2524
- :igIsMouseClicked => [:int, :bool],
2525
- :igIsMouseDoubleClicked => [:int],
2526
- :igIsMouseDown => [:int],
2527
- :igIsMouseDragging => [:int, :float],
2528
- :igIsMouseHoveringRect => [ImVec2.by_value, ImVec2.by_value, :bool],
2529
- :igIsMousePosValid => [:pointer],
2530
- :igIsMouseReleased => [:int],
2531
- :igIsPopupOpen => [:pointer, :int],
2532
- :igIsRectVisible_Nil => [ImVec2.by_value],
2533
- :igIsRectVisible_Vec2 => [ImVec2.by_value, ImVec2.by_value],
2534
- :igIsWindowAppearing => [],
2535
- :igIsWindowCollapsed => [],
2536
- :igIsWindowFocused => [:int],
2537
- :igIsWindowHovered => [:int],
2538
- :igLabelText => [:pointer, :pointer, :varargs],
2539
- :igListBox_Str_arr => [:pointer, :pointer, :pointer, :int, :int],
2540
- :igListBox_FnBoolPtr => [:pointer, :pointer, :pointer, :pointer, :int, :int],
2541
- :igLoadIniSettingsFromDisk => [:pointer],
2542
- :igLoadIniSettingsFromMemory => [:pointer, :size_t],
2543
- :igLogButtons => [],
2544
- :igLogFinish => [],
2545
- :igLogText => [:pointer, :varargs],
2546
- :igLogToClipboard => [:int],
2547
- :igLogToFile => [:int, :pointer],
2548
- :igLogToTTY => [:int],
2549
- :igMemAlloc => [:size_t],
2550
- :igMemFree => [:pointer],
2551
- :igMenuItem_Bool => [:pointer, :pointer, :bool, :bool],
2552
- :igMenuItem_BoolPtr => [:pointer, :pointer, :pointer, :bool],
2553
- :igNewFrame => [],
2554
- :igNewLine => [],
2555
- :igNextColumn => [],
2556
- :igOpenPopup_Str => [:pointer, :int],
2557
- :igOpenPopup_ID => [:uint, :int],
2558
- :igOpenPopupOnItemClick => [:pointer, :int],
2559
- :igPlotHistogram_FloatPtr => [:pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value, :int],
2560
- :igPlotHistogram_FnFloatPtr => [:pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value],
2561
- :igPlotLines_FloatPtr => [:pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value, :int],
2562
- :igPlotLines_FnFloatPtr => [:pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value],
2563
- :igPopAllowKeyboardFocus => [],
2564
- :igPopButtonRepeat => [],
2565
- :igPopClipRect => [],
2566
- :igPopFont => [],
2567
- :igPopID => [],
2568
- :igPopItemWidth => [],
2569
- :igPopStyleColor => [:int],
2570
- :igPopStyleVar => [:int],
2571
- :igPopTextWrapPos => [],
2572
- :igProgressBar => [:float, ImVec2.by_value, :pointer],
2573
- :igPushAllowKeyboardFocus => [:bool],
2574
- :igPushButtonRepeat => [:bool],
2575
- :igPushClipRect => [ImVec2.by_value, ImVec2.by_value, :bool],
2576
- :igPushFont => [:pointer],
2577
- :igPushID_Str => [:pointer],
2578
- :igPushID_StrStr => [:pointer, :pointer],
2579
- :igPushID_Ptr => [:pointer],
2580
- :igPushID_Int => [:int],
2581
- :igPushItemWidth => [:float],
2582
- :igPushStyleColor_U32 => [:int, :uint],
2583
- :igPushStyleColor_Vec4 => [:int, ImVec4.by_value],
2584
- :igPushStyleVar_Float => [:int, :float],
2585
- :igPushStyleVar_Vec2 => [:int, ImVec2.by_value],
2586
- :igPushTextWrapPos => [:float],
2587
- :igRadioButton_Bool => [:pointer, :bool],
2588
- :igRadioButton_IntPtr => [:pointer, :pointer, :int],
2589
- :igRender => [],
2590
- :igResetMouseDragDelta => [:int],
2591
- :igSameLine => [:float, :float],
2592
- :igSaveIniSettingsToDisk => [:pointer],
2593
- :igSaveIniSettingsToMemory => [:pointer],
2594
- :igSelectable_Bool => [:pointer, :bool, :int, ImVec2.by_value],
2595
- :igSelectable_BoolPtr => [:pointer, :pointer, :int, ImVec2.by_value],
2596
- :igSeparator => [],
2597
- :igSetAllocatorFunctions => [:pointer, :pointer, :pointer],
2598
- :igSetClipboardText => [:pointer],
2599
- :igSetColorEditOptions => [:int],
2600
- :igSetColumnOffset => [:int, :float],
2601
- :igSetColumnWidth => [:int, :float],
2602
- :igSetCurrentContext => [:pointer],
2603
- :igSetCursorPos => [ImVec2.by_value],
2604
- :igSetCursorPosX => [:float],
2605
- :igSetCursorPosY => [:float],
2606
- :igSetCursorScreenPos => [ImVec2.by_value],
2607
- :igSetDragDropPayload => [:pointer, :pointer, :size_t, :int],
2608
- :igSetItemAllowOverlap => [],
2609
- :igSetItemDefaultFocus => [],
2610
- :igSetKeyboardFocusHere => [:int],
2611
- :igSetMouseCursor => [:int],
2612
- :igSetNextFrameWantCaptureKeyboard => [:bool],
2613
- :igSetNextFrameWantCaptureMouse => [:bool],
2614
- :igSetNextItemOpen => [:bool, :int],
2615
- :igSetNextItemWidth => [:float],
2616
- :igSetNextWindowBgAlpha => [:float],
2617
- :igSetNextWindowCollapsed => [:bool, :int],
2618
- :igSetNextWindowContentSize => [ImVec2.by_value],
2619
- :igSetNextWindowFocus => [],
2620
- :igSetNextWindowPos => [ImVec2.by_value, :int, ImVec2.by_value],
2621
- :igSetNextWindowSize => [ImVec2.by_value, :int],
2622
- :igSetNextWindowSizeConstraints => [ImVec2.by_value, ImVec2.by_value, :ImGuiSizeCallback, :pointer],
2623
- :igSetScrollFromPosX => [:float, :float],
2624
- :igSetScrollFromPosY => [:float, :float],
2625
- :igSetScrollHereX => [:float],
2626
- :igSetScrollHereY => [:float],
2627
- :igSetScrollX => [:float],
2628
- :igSetScrollY => [:float],
2629
- :igSetStateStorage => [:pointer],
2630
- :igSetTabItemClosed => [:pointer],
2631
- :igSetTooltip => [:pointer, :varargs],
2632
- :igSetWindowCollapsed_Bool => [:bool, :int],
2633
- :igSetWindowCollapsed_Str => [:pointer, :bool, :int],
2634
- :igSetWindowFocus_Nil => [],
2635
- :igSetWindowFocus_Str => [:pointer],
2636
- :igSetWindowFontScale => [:float],
2637
- :igSetWindowPos_Vec2 => [ImVec2.by_value, :int],
2638
- :igSetWindowPos_Str => [:pointer, ImVec2.by_value, :int],
2639
- :igSetWindowSize_Vec2 => [ImVec2.by_value, :int],
2640
- :igSetWindowSize_Str => [:pointer, ImVec2.by_value, :int],
2641
- :igShowAboutWindow => [:pointer],
2642
- :igShowDebugLogWindow => [:pointer],
2643
- :igShowDemoWindow => [:pointer],
2644
- :igShowFontSelector => [:pointer],
2645
- :igShowMetricsWindow => [:pointer],
2646
- :igShowStackToolWindow => [:pointer],
2647
- :igShowStyleEditor => [:pointer],
2648
- :igShowStyleSelector => [:pointer],
2649
- :igShowUserGuide => [],
2650
- :igSliderAngle => [:pointer, :pointer, :float, :float, :pointer, :int],
2651
- :igSliderFloat => [:pointer, :pointer, :float, :float, :pointer, :int],
2652
- :igSliderFloat2 => [:pointer, :pointer, :float, :float, :pointer, :int],
2653
- :igSliderFloat3 => [:pointer, :pointer, :float, :float, :pointer, :int],
2654
- :igSliderFloat4 => [:pointer, :pointer, :float, :float, :pointer, :int],
2655
- :igSliderInt => [:pointer, :pointer, :int, :int, :pointer, :int],
2656
- :igSliderInt2 => [:pointer, :pointer, :int, :int, :pointer, :int],
2657
- :igSliderInt3 => [:pointer, :pointer, :int, :int, :pointer, :int],
2658
- :igSliderInt4 => [:pointer, :pointer, :int, :int, :pointer, :int],
2659
- :igSliderScalar => [:pointer, :int, :pointer, :pointer, :pointer, :pointer, :int],
2660
- :igSliderScalarN => [:pointer, :int, :pointer, :int, :pointer, :pointer, :pointer, :int],
2661
- :igSmallButton => [:pointer],
2662
- :igSpacing => [],
2663
- :igStyleColorsClassic => [:pointer],
2664
- :igStyleColorsDark => [:pointer],
2665
- :igStyleColorsLight => [:pointer],
2666
- :igTabItemButton => [:pointer, :int],
2667
- :igTableGetColumnCount => [],
2668
- :igTableGetColumnFlags => [:int],
2669
- :igTableGetColumnIndex => [],
2670
- :igTableGetColumnName => [:int],
2671
- :igTableGetRowIndex => [],
2672
- :igTableGetSortSpecs => [],
2673
- :igTableHeader => [:pointer],
2674
- :igTableHeadersRow => [],
2675
- :igTableNextColumn => [],
2676
- :igTableNextRow => [:int, :float],
2677
- :igTableSetBgColor => [:int, :uint, :int],
2678
- :igTableSetColumnEnabled => [:int, :bool],
2679
- :igTableSetColumnIndex => [:int],
2680
- :igTableSetupColumn => [:pointer, :int, :float, :uint],
2681
- :igTableSetupScrollFreeze => [:int, :int],
2682
- :igText => [:pointer, :varargs],
2683
- :igTextColored => [ImVec4.by_value, :pointer, :varargs],
2684
- :igTextDisabled => [:pointer, :varargs],
2685
- :igTextUnformatted => [:pointer, :pointer],
2686
- :igTextWrapped => [:pointer, :varargs],
2687
- :igTreeNode_Str => [:pointer],
2688
- :igTreeNode_StrStr => [:pointer, :pointer, :varargs],
2689
- :igTreeNode_Ptr => [:pointer, :pointer, :varargs],
2690
- :igTreeNodeEx_Str => [:pointer, :int],
2691
- :igTreeNodeEx_StrStr => [:pointer, :int, :pointer, :varargs],
2692
- :igTreeNodeEx_Ptr => [:pointer, :int, :pointer, :varargs],
2693
- :igTreePop => [],
2694
- :igTreePush_Str => [:pointer],
2695
- :igTreePush_Ptr => [:pointer],
2696
- :igUnindent => [:float],
2697
- :igVSliderFloat => [:pointer, ImVec2.by_value, :pointer, :float, :float, :pointer, :int],
2698
- :igVSliderInt => [:pointer, ImVec2.by_value, :pointer, :int, :int, :pointer, :int],
2699
- :igVSliderScalar => [:pointer, ImVec2.by_value, :int, :pointer, :pointer, :pointer, :pointer, :int],
2700
- :igValue_Bool => [:pointer, :bool],
2701
- :igValue_Int => [:pointer, :int],
2702
- :igValue_Uint => [:pointer, :uint],
2703
- :igValue_Float => [:pointer, :float, :pointer],
2704
- }
2705
-
2706
- retvals = {
2707
- :ImDrawList_AddBezierCubic => :void,
2708
- :ImDrawList_AddBezierQuadratic => :void,
2709
- :ImDrawList_AddCallback => :void,
2710
- :ImDrawList_AddCircle => :void,
2711
- :ImDrawList_AddCircleFilled => :void,
2712
- :ImDrawList_AddConvexPolyFilled => :void,
2713
- :ImDrawList_AddDrawCmd => :void,
2714
- :ImDrawList_AddImage => :void,
2715
- :ImDrawList_AddImageQuad => :void,
2716
- :ImDrawList_AddImageRounded => :void,
2717
- :ImDrawList_AddLine => :void,
2718
- :ImDrawList_AddNgon => :void,
2719
- :ImDrawList_AddNgonFilled => :void,
2720
- :ImDrawList_AddPolyline => :void,
2721
- :ImDrawList_AddQuad => :void,
2722
- :ImDrawList_AddQuadFilled => :void,
2723
- :ImDrawList_AddRect => :void,
2724
- :ImDrawList_AddRectFilled => :void,
2725
- :ImDrawList_AddRectFilledMultiColor => :void,
2726
- :ImDrawList_AddText_Vec2 => :void,
2727
- :ImDrawList_AddText_FontPtr => :void,
2728
- :ImDrawList_AddTriangle => :void,
2729
- :ImDrawList_AddTriangleFilled => :void,
2730
- :ImDrawList_ChannelsMerge => :void,
2731
- :ImDrawList_ChannelsSetCurrent => :void,
2732
- :ImDrawList_ChannelsSplit => :void,
2733
- :ImDrawList_CloneOutput => :pointer,
2734
- :ImDrawList_GetClipRectMax => :void,
2735
- :ImDrawList_GetClipRectMin => :void,
2736
- :ImDrawList_ImDrawList => :pointer,
2737
- :ImDrawList_PathArcTo => :void,
2738
- :ImDrawList_PathArcToFast => :void,
2739
- :ImDrawList_PathBezierCubicCurveTo => :void,
2740
- :ImDrawList_PathBezierQuadraticCurveTo => :void,
2741
- :ImDrawList_PathClear => :void,
2742
- :ImDrawList_PathFillConvex => :void,
2743
- :ImDrawList_PathLineTo => :void,
2744
- :ImDrawList_PathLineToMergeDuplicate => :void,
2745
- :ImDrawList_PathRect => :void,
2746
- :ImDrawList_PathStroke => :void,
2747
- :ImDrawList_PopClipRect => :void,
2748
- :ImDrawList_PopTextureID => :void,
2749
- :ImDrawList_PrimQuadUV => :void,
2750
- :ImDrawList_PrimRect => :void,
2751
- :ImDrawList_PrimRectUV => :void,
2752
- :ImDrawList_PrimReserve => :void,
2753
- :ImDrawList_PrimUnreserve => :void,
2754
- :ImDrawList_PrimVtx => :void,
2755
- :ImDrawList_PrimWriteIdx => :void,
2756
- :ImDrawList_PrimWriteVtx => :void,
2757
- :ImDrawList_PushClipRect => :void,
2758
- :ImDrawList_PushClipRectFullScreen => :void,
2759
- :ImDrawList_PushTextureID => :void,
2760
- :ImDrawList__CalcCircleAutoSegmentCount => :int,
2761
- :ImDrawList__ClearFreeMemory => :void,
2762
- :ImDrawList__OnChangedClipRect => :void,
2763
- :ImDrawList__OnChangedTextureID => :void,
2764
- :ImDrawList__OnChangedVtxOffset => :void,
2765
- :ImDrawList__PathArcToFastEx => :void,
2766
- :ImDrawList__PathArcToN => :void,
2767
- :ImDrawList__PopUnusedDrawCmd => :void,
2768
- :ImDrawList__ResetForNewFrame => :void,
2769
- :ImDrawList__TryMergeDrawCmds => :void,
2770
- :ImDrawList_destroy => :void,
2771
- :ImFontAtlas_AddCustomRectFontGlyph => :int,
2772
- :ImFontAtlas_AddCustomRectRegular => :int,
2773
- :ImFontAtlas_AddFont => :pointer,
2774
- :ImFontAtlas_AddFontDefault => :pointer,
2775
- :ImFontAtlas_AddFontFromFileTTF => :pointer,
2776
- :ImFontAtlas_AddFontFromMemoryCompressedBase85TTF => :pointer,
2777
- :ImFontAtlas_AddFontFromMemoryCompressedTTF => :pointer,
2778
- :ImFontAtlas_AddFontFromMemoryTTF => :pointer,
2779
- :ImFontAtlas_Build => :bool,
2780
- :ImFontAtlas_CalcCustomRectUV => :void,
2781
- :ImFontAtlas_Clear => :void,
2782
- :ImFontAtlas_ClearFonts => :void,
2783
- :ImFontAtlas_ClearInputData => :void,
2784
- :ImFontAtlas_ClearTexData => :void,
2785
- :ImFontAtlas_GetCustomRectByIndex => :pointer,
2786
- :ImFontAtlas_GetGlyphRangesChineseFull => :pointer,
2787
- :ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon => :pointer,
2788
- :ImFontAtlas_GetGlyphRangesCyrillic => :pointer,
2789
- :ImFontAtlas_GetGlyphRangesDefault => :pointer,
2790
- :ImFontAtlas_GetGlyphRangesJapanese => :pointer,
2791
- :ImFontAtlas_GetGlyphRangesKorean => :pointer,
2792
- :ImFontAtlas_GetGlyphRangesThai => :pointer,
2793
- :ImFontAtlas_GetGlyphRangesVietnamese => :pointer,
2794
- :ImFontAtlas_GetMouseCursorTexData => :bool,
2795
- :ImFontAtlas_GetTexDataAsAlpha8 => :void,
2796
- :ImFontAtlas_GetTexDataAsRGBA32 => :void,
2797
- :ImFontAtlas_ImFontAtlas => :pointer,
2798
- :ImFontAtlas_IsBuilt => :bool,
2799
- :ImFontAtlas_SetTexID => :void,
2800
- :ImFontAtlas_destroy => :void,
2801
- :ImFontConfig_ImFontConfig => :pointer,
2802
- :ImFontConfig_destroy => :void,
2803
- :ImFontGlyphRangesBuilder_AddChar => :void,
2804
- :ImFontGlyphRangesBuilder_AddRanges => :void,
2805
- :ImFontGlyphRangesBuilder_AddText => :void,
2806
- :ImFontGlyphRangesBuilder_BuildRanges => :void,
2807
- :ImFontGlyphRangesBuilder_Clear => :void,
2808
- :ImFontGlyphRangesBuilder_GetBit => :bool,
2809
- :ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder => :pointer,
2810
- :ImFontGlyphRangesBuilder_SetBit => :void,
2811
- :ImFontGlyphRangesBuilder_destroy => :void,
2812
- :ImGuiIO_AddFocusEvent => :void,
2813
- :ImGuiIO_AddInputCharacter => :void,
2814
- :ImGuiIO_AddInputCharacterUTF16 => :void,
2815
- :ImGuiIO_AddInputCharactersUTF8 => :void,
2816
- :ImGuiIO_AddKeyAnalogEvent => :void,
2817
- :ImGuiIO_AddKeyEvent => :void,
2818
- :ImGuiIO_AddMouseButtonEvent => :void,
2819
- :ImGuiIO_AddMousePosEvent => :void,
2820
- :ImGuiIO_AddMouseWheelEvent => :void,
2821
- :ImGuiIO_ClearInputCharacters => :void,
2822
- :ImGuiIO_ClearInputKeys => :void,
2823
- :ImGuiIO_ImGuiIO => :pointer,
2824
- :ImGuiIO_SetAppAcceptingEvents => :void,
2825
- :ImGuiIO_SetKeyEventNativeData => :void,
2826
- :ImGuiIO_destroy => :void,
2827
- :ImGuiStyle_ImGuiStyle => :pointer,
2828
- :ImGuiStyle_ScaleAllSizes => :void,
2829
- :ImGuiStyle_destroy => :void,
2830
- :ImGuiTextFilter_Build => :void,
2831
- :ImGuiTextFilter_Clear => :void,
2832
- :ImGuiTextFilter_Draw => :bool,
2833
- :ImGuiTextFilter_ImGuiTextFilter => :pointer,
2834
- :ImGuiTextFilter_IsActive => :bool,
2835
- :ImGuiTextFilter_PassFilter => :bool,
2836
- :ImGuiTextFilter_destroy => :void,
2837
- :ImGuiTextRange_ImGuiTextRange_Nil => :pointer,
2838
- :ImGuiTextRange_ImGuiTextRange_Str => :pointer,
2839
- :ImGuiTextRange_destroy => :void,
2840
- :ImGuiTextRange_empty => :bool,
2841
- :ImGuiTextRange_split => :void,
2842
- :igAcceptDragDropPayload => :pointer,
2843
- :igAlignTextToFramePadding => :void,
2844
- :igArrowButton => :bool,
2845
- :igBegin => :bool,
2846
- :igBeginChild_Str => :bool,
2847
- :igBeginChild_ID => :bool,
2848
- :igBeginChildFrame => :bool,
2849
- :igBeginCombo => :bool,
2850
- :igBeginDisabled => :void,
2851
- :igBeginDragDropSource => :bool,
2852
- :igBeginDragDropTarget => :bool,
2853
- :igBeginGroup => :void,
2854
- :igBeginListBox => :bool,
2855
- :igBeginMainMenuBar => :bool,
2856
- :igBeginMenu => :bool,
2857
- :igBeginMenuBar => :bool,
2858
- :igBeginPopup => :bool,
2859
- :igBeginPopupContextItem => :bool,
2860
- :igBeginPopupContextVoid => :bool,
2861
- :igBeginPopupContextWindow => :bool,
2862
- :igBeginPopupModal => :bool,
2863
- :igBeginTabBar => :bool,
2864
- :igBeginTabItem => :bool,
2865
- :igBeginTable => :bool,
2866
- :igBeginTooltip => :void,
2867
- :igBullet => :void,
2868
- :igBulletText => :void,
2869
- :igButton => :bool,
2870
- :igCalcItemWidth => :float,
2871
- :igCalcTextSize => :void,
2872
- :igCheckbox => :bool,
2873
- :igCheckboxFlags_IntPtr => :bool,
2874
- :igCheckboxFlags_UintPtr => :bool,
2875
- :igCloseCurrentPopup => :void,
2876
- :igCollapsingHeader_TreeNodeFlags => :bool,
2877
- :igCollapsingHeader_BoolPtr => :bool,
2878
- :igColorButton => :bool,
2879
- :igColorConvertFloat4ToU32 => :uint,
2880
- :igColorConvertHSVtoRGB => :void,
2881
- :igColorConvertRGBtoHSV => :void,
2882
- :igColorConvertU32ToFloat4 => :void,
2883
- :igColorEdit3 => :bool,
2884
- :igColorEdit4 => :bool,
2885
- :igColorPicker3 => :bool,
2886
- :igColorPicker4 => :bool,
2887
- :igColumns => :void,
2888
- :igCombo_Str_arr => :bool,
2889
- :igCombo_Str => :bool,
2890
- :igCombo_FnBoolPtr => :bool,
2891
- :igCreateContext => :pointer,
2892
- :igDebugCheckVersionAndDataLayout => :bool,
2893
- :igDebugTextEncoding => :void,
2894
- :igDestroyContext => :void,
2895
- :igDragFloat => :bool,
2896
- :igDragFloat2 => :bool,
2897
- :igDragFloat3 => :bool,
2898
- :igDragFloat4 => :bool,
2899
- :igDragFloatRange2 => :bool,
2900
- :igDragInt => :bool,
2901
- :igDragInt2 => :bool,
2902
- :igDragInt3 => :bool,
2903
- :igDragInt4 => :bool,
2904
- :igDragIntRange2 => :bool,
2905
- :igDragScalar => :bool,
2906
- :igDragScalarN => :bool,
2907
- :igDummy => :void,
2908
- :igEnd => :void,
2909
- :igEndChild => :void,
2910
- :igEndChildFrame => :void,
2911
- :igEndCombo => :void,
2912
- :igEndDisabled => :void,
2913
- :igEndDragDropSource => :void,
2914
- :igEndDragDropTarget => :void,
2915
- :igEndFrame => :void,
2916
- :igEndGroup => :void,
2917
- :igEndListBox => :void,
2918
- :igEndMainMenuBar => :void,
2919
- :igEndMenu => :void,
2920
- :igEndMenuBar => :void,
2921
- :igEndPopup => :void,
2922
- :igEndTabBar => :void,
2923
- :igEndTabItem => :void,
2924
- :igEndTable => :void,
2925
- :igEndTooltip => :void,
2926
- :igGetAllocatorFunctions => :void,
2927
- :igGetBackgroundDrawList => :pointer,
2928
- :igGetClipboardText => :pointer,
2929
- :igGetColorU32_Col => :uint,
2930
- :igGetColorU32_Vec4 => :uint,
2931
- :igGetColorU32_U32 => :uint,
2932
- :igGetColumnIndex => :int,
2933
- :igGetColumnOffset => :float,
2934
- :igGetColumnWidth => :float,
2935
- :igGetColumnsCount => :int,
2936
- :igGetContentRegionAvail => :void,
2937
- :igGetContentRegionMax => :void,
2938
- :igGetCurrentContext => :pointer,
2939
- :igGetCursorPos => :void,
2940
- :igGetCursorPosX => :float,
2941
- :igGetCursorPosY => :float,
2942
- :igGetCursorScreenPos => :void,
2943
- :igGetCursorStartPos => :void,
2944
- :igGetDragDropPayload => :pointer,
2945
- :igGetDrawData => :pointer,
2946
- :igGetDrawListSharedData => :pointer,
2947
- :igGetFont => :pointer,
2948
- :igGetFontSize => :float,
2949
- :igGetFontTexUvWhitePixel => :void,
2950
- :igGetForegroundDrawList => :pointer,
2951
- :igGetFrameCount => :int,
2952
- :igGetFrameHeight => :float,
2953
- :igGetFrameHeightWithSpacing => :float,
2954
- :igGetID_Str => :uint,
2955
- :igGetID_StrStr => :uint,
2956
- :igGetID_Ptr => :uint,
2957
- :igGetIO => :pointer,
2958
- :igGetItemRectMax => :void,
2959
- :igGetItemRectMin => :void,
2960
- :igGetItemRectSize => :void,
2961
- :igGetKeyIndex => :int,
2962
- :igGetKeyName => :pointer,
2963
- :igGetKeyPressedAmount => :int,
2964
- :igGetMainViewport => :pointer,
2965
- :igGetMouseClickedCount => :int,
2966
- :igGetMouseCursor => :int,
2967
- :igGetMouseDragDelta => :void,
2968
- :igGetMousePos => :void,
2969
- :igGetMousePosOnOpeningCurrentPopup => :void,
2970
- :igGetScrollMaxX => :float,
2971
- :igGetScrollMaxY => :float,
2972
- :igGetScrollX => :float,
2973
- :igGetScrollY => :float,
2974
- :igGetStateStorage => :pointer,
2975
- :igGetStyle => :pointer,
2976
- :igGetStyleColorName => :pointer,
2977
- :igGetStyleColorVec4 => :pointer,
2978
- :igGetTextLineHeight => :float,
2979
- :igGetTextLineHeightWithSpacing => :float,
2980
- :igGetTime => :double,
2981
- :igGetTreeNodeToLabelSpacing => :float,
2982
- :igGetVersion => :pointer,
2983
- :igGetWindowContentRegionMax => :void,
2984
- :igGetWindowContentRegionMin => :void,
2985
- :igGetWindowDrawList => :pointer,
2986
- :igGetWindowHeight => :float,
2987
- :igGetWindowPos => :void,
2988
- :igGetWindowSize => :void,
2989
- :igGetWindowWidth => :float,
2990
- :igImage => :void,
2991
- :igImageButton => :bool,
2992
- :igIndent => :void,
2993
- :igInputDouble => :bool,
2994
- :igInputFloat => :bool,
2995
- :igInputFloat2 => :bool,
2996
- :igInputFloat3 => :bool,
2997
- :igInputFloat4 => :bool,
2998
- :igInputInt => :bool,
2999
- :igInputInt2 => :bool,
3000
- :igInputInt3 => :bool,
3001
- :igInputInt4 => :bool,
3002
- :igInputScalar => :bool,
3003
- :igInputScalarN => :bool,
3004
- :igInputText => :bool,
3005
- :igInputTextMultiline => :bool,
3006
- :igInputTextWithHint => :bool,
3007
- :igInvisibleButton => :bool,
3008
- :igIsAnyItemActive => :bool,
3009
- :igIsAnyItemFocused => :bool,
3010
- :igIsAnyItemHovered => :bool,
3011
- :igIsAnyMouseDown => :bool,
3012
- :igIsItemActivated => :bool,
3013
- :igIsItemActive => :bool,
3014
- :igIsItemClicked => :bool,
3015
- :igIsItemDeactivated => :bool,
3016
- :igIsItemDeactivatedAfterEdit => :bool,
3017
- :igIsItemEdited => :bool,
3018
- :igIsItemFocused => :bool,
3019
- :igIsItemHovered => :bool,
3020
- :igIsItemToggledOpen => :bool,
3021
- :igIsItemVisible => :bool,
3022
- :igIsKeyDown => :bool,
3023
- :igIsKeyPressed => :bool,
3024
- :igIsKeyReleased => :bool,
3025
- :igIsMouseClicked => :bool,
3026
- :igIsMouseDoubleClicked => :bool,
3027
- :igIsMouseDown => :bool,
3028
- :igIsMouseDragging => :bool,
3029
- :igIsMouseHoveringRect => :bool,
3030
- :igIsMousePosValid => :bool,
3031
- :igIsMouseReleased => :bool,
3032
- :igIsPopupOpen => :bool,
3033
- :igIsRectVisible_Nil => :bool,
3034
- :igIsRectVisible_Vec2 => :bool,
3035
- :igIsWindowAppearing => :bool,
3036
- :igIsWindowCollapsed => :bool,
3037
- :igIsWindowFocused => :bool,
3038
- :igIsWindowHovered => :bool,
3039
- :igLabelText => :void,
3040
- :igListBox_Str_arr => :bool,
3041
- :igListBox_FnBoolPtr => :bool,
3042
- :igLoadIniSettingsFromDisk => :void,
3043
- :igLoadIniSettingsFromMemory => :void,
3044
- :igLogButtons => :void,
3045
- :igLogFinish => :void,
3046
- :igLogText => :void,
3047
- :igLogToClipboard => :void,
3048
- :igLogToFile => :void,
3049
- :igLogToTTY => :void,
3050
- :igMemAlloc => :pointer,
3051
- :igMemFree => :void,
3052
- :igMenuItem_Bool => :bool,
3053
- :igMenuItem_BoolPtr => :bool,
3054
- :igNewFrame => :void,
3055
- :igNewLine => :void,
3056
- :igNextColumn => :void,
3057
- :igOpenPopup_Str => :void,
3058
- :igOpenPopup_ID => :void,
3059
- :igOpenPopupOnItemClick => :void,
3060
- :igPlotHistogram_FloatPtr => :void,
3061
- :igPlotHistogram_FnFloatPtr => :void,
3062
- :igPlotLines_FloatPtr => :void,
3063
- :igPlotLines_FnFloatPtr => :void,
3064
- :igPopAllowKeyboardFocus => :void,
3065
- :igPopButtonRepeat => :void,
3066
- :igPopClipRect => :void,
3067
- :igPopFont => :void,
3068
- :igPopID => :void,
3069
- :igPopItemWidth => :void,
3070
- :igPopStyleColor => :void,
3071
- :igPopStyleVar => :void,
3072
- :igPopTextWrapPos => :void,
3073
- :igProgressBar => :void,
3074
- :igPushAllowKeyboardFocus => :void,
3075
- :igPushButtonRepeat => :void,
3076
- :igPushClipRect => :void,
3077
- :igPushFont => :void,
3078
- :igPushID_Str => :void,
3079
- :igPushID_StrStr => :void,
3080
- :igPushID_Ptr => :void,
3081
- :igPushID_Int => :void,
3082
- :igPushItemWidth => :void,
3083
- :igPushStyleColor_U32 => :void,
3084
- :igPushStyleColor_Vec4 => :void,
3085
- :igPushStyleVar_Float => :void,
3086
- :igPushStyleVar_Vec2 => :void,
3087
- :igPushTextWrapPos => :void,
3088
- :igRadioButton_Bool => :bool,
3089
- :igRadioButton_IntPtr => :bool,
3090
- :igRender => :void,
3091
- :igResetMouseDragDelta => :void,
3092
- :igSameLine => :void,
3093
- :igSaveIniSettingsToDisk => :void,
3094
- :igSaveIniSettingsToMemory => :pointer,
3095
- :igSelectable_Bool => :bool,
3096
- :igSelectable_BoolPtr => :bool,
3097
- :igSeparator => :void,
3098
- :igSetAllocatorFunctions => :void,
3099
- :igSetClipboardText => :void,
3100
- :igSetColorEditOptions => :void,
3101
- :igSetColumnOffset => :void,
3102
- :igSetColumnWidth => :void,
3103
- :igSetCurrentContext => :void,
3104
- :igSetCursorPos => :void,
3105
- :igSetCursorPosX => :void,
3106
- :igSetCursorPosY => :void,
3107
- :igSetCursorScreenPos => :void,
3108
- :igSetDragDropPayload => :bool,
3109
- :igSetItemAllowOverlap => :void,
3110
- :igSetItemDefaultFocus => :void,
3111
- :igSetKeyboardFocusHere => :void,
3112
- :igSetMouseCursor => :void,
3113
- :igSetNextFrameWantCaptureKeyboard => :void,
3114
- :igSetNextFrameWantCaptureMouse => :void,
3115
- :igSetNextItemOpen => :void,
3116
- :igSetNextItemWidth => :void,
3117
- :igSetNextWindowBgAlpha => :void,
3118
- :igSetNextWindowCollapsed => :void,
3119
- :igSetNextWindowContentSize => :void,
3120
- :igSetNextWindowFocus => :void,
3121
- :igSetNextWindowPos => :void,
3122
- :igSetNextWindowSize => :void,
3123
- :igSetNextWindowSizeConstraints => :void,
3124
- :igSetScrollFromPosX => :void,
3125
- :igSetScrollFromPosY => :void,
3126
- :igSetScrollHereX => :void,
3127
- :igSetScrollHereY => :void,
3128
- :igSetScrollX => :void,
3129
- :igSetScrollY => :void,
3130
- :igSetStateStorage => :void,
3131
- :igSetTabItemClosed => :void,
3132
- :igSetTooltip => :void,
3133
- :igSetWindowCollapsed_Bool => :void,
3134
- :igSetWindowCollapsed_Str => :void,
3135
- :igSetWindowFocus_Nil => :void,
3136
- :igSetWindowFocus_Str => :void,
3137
- :igSetWindowFontScale => :void,
3138
- :igSetWindowPos_Vec2 => :void,
3139
- :igSetWindowPos_Str => :void,
3140
- :igSetWindowSize_Vec2 => :void,
3141
- :igSetWindowSize_Str => :void,
3142
- :igShowAboutWindow => :void,
3143
- :igShowDebugLogWindow => :void,
3144
- :igShowDemoWindow => :void,
3145
- :igShowFontSelector => :void,
3146
- :igShowMetricsWindow => :void,
3147
- :igShowStackToolWindow => :void,
3148
- :igShowStyleEditor => :void,
3149
- :igShowStyleSelector => :bool,
3150
- :igShowUserGuide => :void,
3151
- :igSliderAngle => :bool,
3152
- :igSliderFloat => :bool,
3153
- :igSliderFloat2 => :bool,
3154
- :igSliderFloat3 => :bool,
3155
- :igSliderFloat4 => :bool,
3156
- :igSliderInt => :bool,
3157
- :igSliderInt2 => :bool,
3158
- :igSliderInt3 => :bool,
3159
- :igSliderInt4 => :bool,
3160
- :igSliderScalar => :bool,
3161
- :igSliderScalarN => :bool,
3162
- :igSmallButton => :bool,
3163
- :igSpacing => :void,
3164
- :igStyleColorsClassic => :void,
3165
- :igStyleColorsDark => :void,
3166
- :igStyleColorsLight => :void,
3167
- :igTabItemButton => :bool,
3168
- :igTableGetColumnCount => :int,
3169
- :igTableGetColumnFlags => :int,
3170
- :igTableGetColumnIndex => :int,
3171
- :igTableGetColumnName => :pointer,
3172
- :igTableGetRowIndex => :int,
3173
- :igTableGetSortSpecs => :pointer,
3174
- :igTableHeader => :void,
3175
- :igTableHeadersRow => :void,
3176
- :igTableNextColumn => :bool,
3177
- :igTableNextRow => :void,
3178
- :igTableSetBgColor => :void,
3179
- :igTableSetColumnEnabled => :void,
3180
- :igTableSetColumnIndex => :bool,
3181
- :igTableSetupColumn => :void,
3182
- :igTableSetupScrollFreeze => :void,
3183
- :igText => :void,
3184
- :igTextColored => :void,
3185
- :igTextDisabled => :void,
3186
- :igTextUnformatted => :void,
3187
- :igTextWrapped => :void,
3188
- :igTreeNode_Str => :bool,
3189
- :igTreeNode_StrStr => :bool,
3190
- :igTreeNode_Ptr => :bool,
3191
- :igTreeNodeEx_Str => :bool,
3192
- :igTreeNodeEx_StrStr => :bool,
3193
- :igTreeNodeEx_Ptr => :bool,
3194
- :igTreePop => :void,
3195
- :igTreePush_Str => :void,
3196
- :igTreePush_Ptr => :void,
3197
- :igUnindent => :void,
3198
- :igVSliderFloat => :bool,
3199
- :igVSliderInt => :bool,
3200
- :igVSliderScalar => :bool,
3201
- :igValue_Bool => :void,
3202
- :igValue_Int => :void,
3203
- :igValue_Uint => :void,
3204
- :igValue_Float => :void,
3205
- }
3206
-
3207
- symbols.each do |sym|
3208
- begin
3209
- attach_function sym, args[sym], retvals[sym]
3210
- rescue FFI::NotFoundError
3211
- $stderr.puts("[Warning] Failed to import #{sym}.\n") if output_error
3212
- end
2388
+ entries.each do |entry|
2389
+ attach_function entry[0], entry[1], entry[2]
2390
+ rescue FFI::NotFoundError => e
2391
+ warn "[Warning] Failed to import #{entry[0]} (#{e})."
3213
2392
  end
3214
2393
 
3215
2394
  attach_function :ImVector_ImWchar_create, :ImVector_ImWchar_create, [], :pointer
3216
2395
  attach_function :ImVector_ImWchar_destroy, :ImVector_ImWchar_destroy, [:pointer], :void
3217
2396
  attach_function :ImVector_ImWchar_Init, :ImVector_ImWchar_destroy, [:pointer], :void
3218
2397
  attach_function :ImVector_ImWchar_UnInit, :ImVector_ImWchar_destroy, [:pointer], :void
3219
- end # self.import_symbols
2398
+
2399
+ @@imgui_import_done = true end # self.import_symbols
3220
2400
 
3221
2401
  # arg: type(const char*), flags(ImGuiDragDropFlags)
3222
2402
  # ret: pointer
@@ -3880,6 +3060,11 @@ module ImGui
3880
3060
  igGetIO()
3881
3061
  end
3882
3062
 
3063
+ # ret: uint
3064
+ def self.GetItemID()
3065
+ igGetItemID()
3066
+ end
3067
+
3883
3068
  # ret: void
3884
3069
  def self.GetItemRectMax()
3885
3070
  pOut = ImVec2.new
@@ -4073,10 +3258,10 @@ module ImGui
4073
3258
  igImage(user_texture_id, size, uv0, uv1, tint_col, border_col)
4074
3259
  end
4075
3260
 
4076
- # arg: user_texture_id(ImTextureID), size(ImVec2), uv0(ImVec2), uv1(ImVec2), frame_padding(int), bg_col(ImVec4), tint_col(ImVec4)
3261
+ # arg: str_id(const char*), user_texture_id(ImTextureID), size(ImVec2), uv0(ImVec2), uv1(ImVec2), bg_col(ImVec4), tint_col(ImVec4)
4077
3262
  # ret: bool
4078
- def self.ImageButton(user_texture_id, size, uv0 = ImVec2.create(0,0), uv1 = ImVec2.create(1,1), frame_padding = -1, bg_col = ImVec4.create(0,0,0,0), tint_col = ImVec4.create(1,1,1,1))
4079
- igImageButton(user_texture_id, size, uv0, uv1, frame_padding, bg_col, tint_col)
3263
+ def self.ImageButton(str_id, user_texture_id, 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))
3264
+ igImageButton(str_id, user_texture_id, size, uv0, uv1, bg_col, tint_col)
4080
3265
  end
4081
3266
 
4082
3267
  # arg: indent_w(float)
@@ -4828,6 +4013,12 @@ module ImGui
4828
4013
  igSetNextWindowPos(pos, cond, pivot)
4829
4014
  end
4830
4015
 
4016
+ # arg: scroll(ImVec2)
4017
+ # ret: void
4018
+ def self.SetNextWindowScroll(scroll)
4019
+ igSetNextWindowScroll(scroll)
4020
+ end
4021
+
4831
4022
  # arg: size(ImVec2), cond(ImGuiCond)
4832
4023
  # ret: void
4833
4024
  def self.SetNextWindowSize(size, cond = 0)
@@ -5264,7 +4455,7 @@ module ImGui
5264
4455
 
5265
4456
  # arg: ptr_id(const void*)
5266
4457
  # ret: void
5267
- def self.TreePush_Ptr(ptr_id = nil)
4458
+ def self.TreePush_Ptr(ptr_id)
5268
4459
  igTreePush_Ptr(ptr_id)
5269
4460
  end
5270
4461