Difference between revisions of "Dear ImGui"

From GiderosMobile
(wip)
(DONE)
 
(20 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
This is an implementation of the '''Dear ImGui''' library: '''https://github.com/ocornut/imgui'''.
 
This is an implementation of the '''Dear ImGui''' library: '''https://github.com/ocornut/imgui'''.
  
To use Dear ImGui in your project you need to add the ImGui plugin and call require like so:
+
Dear ImGui is licensed under the '''MIT License''', see '''https://github.com/ocornut/imgui/blob/master/LICENSE.txt''' for more information.
 +
 
 +
To use Dear ImGui in your project you need to add the ImGui plugin and call ''require'' like so:
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
 
require "ImGui"
 
require "ImGui"
Line 14: Line 16:
 
Current Gideros Dear ImGui version: '''1.89.6'''.
 
Current Gideros Dear ImGui version: '''1.89.6'''.
  
See introduction documentation here: https://pixtur.github.io/mkdocs-for-imgui/site/
+
=== User Guide ===
 
+
* Double-click on title bar to collapse window
and the full Dear ImGui demo here: https://pthom.github.io/imgui_manual_online/manual/imgui_manual.html
+
* Click and drag on lower corner to resize window (double-click to auto fit window to its contents)
 
+
* CTRL+Click on a slider or drag box to input value as text
= Dear ImGui =
+
* TAB/SHIFT+TAB to cycle through keyboard editable fields
Dear ImGui is a '''bloat-free graphical user interface library for C++'''. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline-enabled application. It is fast, portable, renderer agnostic, and self-contained (no external dependencies).
+
* CTRL+Tab to select a window
 
+
* CTRL+Mouse Wheel to zoom window contents if ''io.FontAllowUserScaling'' is enabled
Dear ImGui is designed to '''enable fast iterations''' and to '''empower programmers''' to create '''content creation tools and visualization / debug tools''' (as opposed to UI for the average end-user). It favors simplicity and productivity toward this goal and lacks certain features commonly found in more high-level libraries. Among other things, full internationalization (right-to-left text, bidirectional text, text shaping etc.) and accessibility features are not supported.
+
* While inputing text:
 
+
** CTRL+Left/Right to word jump
Dear ImGui is particularly suited to integration in game engines (for tooling), real-time 3D applications, fullscreen applications, embedded applications, or any applications on console platforms where operating system features are non-standard.
+
** CTRL+A or double-click to select all
 
+
** CTRL+X/C/V to use clipboard cut/copy/paste
Code sample (Lua):
+
** CTRL+Z,CTRL+Y to undo/redo
<syntaxhighlight lang="lua">
+
** ESCAPE to revert
imgui:text("Hello World!")
+
* With keyboard navigation enabled:
if imgui:button("button 01", 64, 16) then
+
** Arrow keys to navigate
print("button 01 clicked")
+
** Space to activate a widget
end
+
** Return to input text into a widget
text, isChanged = imgui:inputText("text", text, 128, 0)
+
** Escape to deactivate a widget, close popup, exit child window
value, isChanged = imgui:sliderFloat("slider", value, 0, 30, "%.3f", 0)
+
** Alt to jump to the menu layer of a window
</syntaxhighlight>
 
 
 
== License ==
 
Dear ImGui is licensed under the '''MIT License''', see https://github.com/ocornut/imgui/blob/master/LICENSE.txt for more information.
 
  
== Widgets ==
+
==== Widgets ====
'''Widgets: Color Editor/Picker'''
+
'''Widgets: Color Editor/Picker'''
 
  * tip: the ColorEdit* functions have a little color square that can be left-clicked to open a picker, and right-clicked to open an option menu
 
  * tip: the ColorEdit* functions have a little color square that can be left-clicked to open a picker, and right-clicked to open an option menu
  
'''Widgets: Input with Keyboard'''
+
'''Widgets: Input with Keyboard'''
 
  * If you want to use InputText() with std::string or any custom dynamic string type, see misc/cpp/imgui_stdlib.h and comments in imgui_demo.cpp.
 
  * If you want to use InputText() with std::string or any custom dynamic string type, see misc/cpp/imgui_stdlib.h and comments in imgui_demo.cpp.
 
  * Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc.
 
  * Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc.
  
'''Widgets: Regular Sliders'''
+
'''Widgets: Regular Sliders'''
 
  * CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped and can go off-bounds.
 
  * CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped and can go off-bounds.
 
  * Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc.
 
  * Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc.
Line 53: Line 51:
 
  If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361
 
  If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361
  
'''Widgets: Drag Sliders'''
+
'''Widgets: Drag Sliders'''
 
  * CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped and can go off-bounds.
 
  * CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped and can go off-bounds.
 
  * For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector.x
 
  * For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector.x
Line 63: Line 61:
 
  * 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.
 
  * 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.
  
 
+
=== Gideros Dear ImGui Documentation ===
----
 
 
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
 
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
 
*'''[[Dear ImGui FAQ]]'''
 
*'''[[Dear ImGui FAQ]]'''
 +
*'''[[Dear ImGui Getting Started]]'''
 
*'''[[Dear ImGui API]]'''
 
*'''[[Dear ImGui API]]'''
 
*'''[[Dear ImGui Enums]]'''
 
*'''[[Dear ImGui Enums]]'''
 
*'''[[Dear ImGui Flags]]'''
 
*'''[[Dear ImGui Flags]]'''
*'''[[ImGui_Examples|Dear ImGui Examples]]'''
+
*'''[[Dear ImGui Examples]]'''
 
</div>
 
</div>
  
===== '''OLD DOC TO BE MERGED SOMEHOW''' =====
+
<!--introduction documentation (c++): https://pixtur.github.io/mkdocs-for-imgui/site/-->
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
+
<!--Dear ImGui demo (c++): https://pthom.github.io/imgui_manual_online/manual/imgui_manual.html-->
'''[[ImGui|ImGui.Core (ImGui)]]'''<br/><!--GIDEROSOBJ:ImGui-->
 
'''[[ImGui.DrawList]]'''<br/><!--GIDEROSOBJ:ImGui.DrawList-->
 
'''[[ImGui.Style]]'''<br/><!--GIDEROSOBJ:ImGui.Style-->
 
</div>
 
 
 
{|-
 
| style="width: 50%; vertical-align:top;"|
 
 
<!--=== Methods ===-->
 
<!--=== Methods ===-->
<!--GIDEROSMTD:ImGui.new() initializes ImGui-->
+
<!--GIDEROSMTD:ImGui.new([font_atlas = nil, mouse_listeners = true, keyboard_listeners = true, touch_listeners = false]) initializes ImGui-->
 
+
<!--GIDEROSMTD:ImGui:showLog(title, p_open [, ImGui.WindowFlags = 0]) draw log window, p_open = ImGui:showLog(...)-->
<!--GIDEROSMTD:ImGui:arrowButton(stringID, direction) displays an ImGui arrow button-->
+
<!--GIDEROSMTD:ImGui:ImGui:writeLog(text)-->
<!--GIDEROSMTD:ImGui:beginDisabled(disabledFlag) starts a stack that can be disabled-->
+
<!--GIDEROSMTD:ImGui:setTouchGesturesEnabled(bool)-->
<!--GIDEROSMTD:ImGui:beginWindow(name, p_open, flags) pushes a Window to the stack and starts appending to it-->
+
<!--GIDEROSMTD:ImGui:isTouchGesturesEnabled() bool = ImGui:isTouchGesturesEnabled()-->
<!--GIDEROSMTD:ImGui:beginTabBar
+
<!--GIDEROSMTD:Imgui:getIO() local IO = Imgui:getIO()-->
 +
<!--GIDEROSMTD:IO:getFonts() local FontAtlas = IO:getFonts()-->
 +
<!--GIDEROSMTD:FontAtlas:addFont(ttf_font_path, font_size [, options]) local Font = FontAtlas:addFont(...)-->
 +
<!--GIDEROSMTD:FontAtlas:addFonts(fontsDescription)-->
 +
<!--GIDEROSMTD:FontAtlas:getFont([index]) local Font = FontAtlas:getFont(...) gets font by index (if index is 0 or nil get default font instance)-->
 +
<!--GIDEROSMTD:FontAtlas:build() call after multiple FontAtlas:addFont(...) calls to update ImGui font atlas-->
 +
<!--GIDEROSMTD:FontAtlas:clearInputData()-->
 +
<!--GIDEROSMTD:FontAtlas:clearTexData()-->
 +
<!--GIDEROSMTD:FontAtlas:clearFonts()-->
 +
<!--GIDEROSMTD:FontAtlas:clear()-->
 +
<!--GIDEROSMTD:FontAtlas:getFonts() table = FontAtlas:getFonts() returns a table with all fonts (included default)-->
 +
<!--GIDEROSMTD:FontAtlas:isBuilt() flag = FontAtlas:isBuilt()-->
 +
<!--GIDEROSMTD:FontAtlas:addCustomRectRegular(width, height) number = FontAtlas:addCustomRectRegular(...)-->
 +
<!--GIDEROSMTD:FontAtlas:addCustomRectFontGlyph(font, id, width, height, advance_x [, offset_x, offset_y]) number = FontAtlas:addCustomRectFontGlyph(...)-->
 +
<!--GIDEROSMTD:FontAtlas:getCustomRectByIndex(index) w, h, x, y, glyph_id, offset_x, offset_y, font, is_packed_flag = FontAtlas:getCustomRectByIndex(...)-->
 +
<!--GIDEROSMTD:ImGui:pushFont(font) font (table): object returned by FontAtlas:addFont(...) or FontAtlas:getFont([index])-->
 +
<!--GIDEROSMTD:ImGui:popFont()-->
 +
<!--GIDEROSMTD:Font:getSize() number = Font:getSize()-->
 +
<!--GIDEROSMTD:Font:getContainerAtlas() FontAtlas = Font:getContainerAtlas()-->
 +
<!--GIDEROSMTD:Font:setScale(number)-->
 +
<!--GIDEROSMTD:Font:getScale() number = Font:getScale()-->
 +
<!--GIDEROSMTD:Font:getAscent() number = Font:getAscent()-->
 +
<!--GIDEROSMTD:Font:getDescent() number = Font:getDescent()-->
 +
<!--GIDEROSMTD:Font:isLoaded() bool = Font:isLoaded()-->
 +
<!--GIDEROSMTD:Font:getDebugName() string = Font:getDebugName()-->
 +
<!--
 
<!--=== Events ===-->
 
<!--=== Events ===-->
 
<!--GIDEROSEVT:ImGui.KeyChar-->
 
<!--GIDEROSEVT:ImGui.KeyChar-->
Line 197: Line 840:
 
<!--GIDEROSEVT:ImGui.MouseWheel-->
 
<!--GIDEROSEVT:ImGui.MouseWheel-->
 
<!--GIDEROSEVT:ImGui.TouchBegin-->
 
<!--GIDEROSEVT:ImGui.TouchBegin-->
 +
<!--GIDEROSEVT:ImGui.TouchCancel-->
 
<!--GIDEROSEVT:ImGui.TouchEnd-->
 
<!--GIDEROSEVT:ImGui.TouchEnd-->
<!--GIDEROSEVT:ImGui.TouchCancel-->
 
 
<!--GIDEROSEVT:ImGui.TouchMove-->
 
<!--GIDEROSEVT:ImGui.TouchMove-->
 
 
<!--=== Constants ===-->
 
<!--=== Constants ===-->
 
<!--GIDEROSCST:ImGui._VERSION-->
 
<!--GIDEROSCST:ImGui._VERSION-->
<!--GIDEROSCST:ImGui.CONST.BackendFlags-->
+
<!--GIDEROSCST:ImGui.BackendFlags_None-->
<!--GIDEROSCST:ImGui.CONST.Col-->
+
<!--GIDEROSCST:ImGui.BackendFlags_HasGamepad-->
<!--GIDEROSCST:ImGui.CONST.ColorEditFlags-->
+
<!--GIDEROSCST:ImGui.BackendFlags_HasMouseCursors-->
<!--GIDEROSCST:ImGui.CONST.ComboFlags-->
+
<!--GIDEROSCST:ImGui.BackendFlags_HasSetMousePos-->
<!--GIDEROSCST:ImGui.CONST.Cond-->
+
<!--GIDEROSCST:ImGui.BackendFlags_RendererHasVtxOffset-->
<!--GIDEROSCST:ImGui.CONST.ConfigFlags-->
+
<!--GIDEROSCST:ImGui.Col_Border-->
<!--GIDEROSCST:ImGui.CONST.CornerFlags-->
+
<!--GIDEROSCST:ImGui.Col_BorderShadow-->
<!--GIDEROSCST:ImGui.CONST.DataType-->
+
<!--GIDEROSCST:ImGui.Col_Button-->
<!--GIDEROSCST:ImGui.CONST.Dir-->
+
<!--GIDEROSCST:ImGui.Col_ButtonActive-->
<!--GIDEROSCST:ImGui.CONST.DragDropFlags-->
+
<!--GIDEROSCST:ImGui.Col_ButtonHovered-->
<!--GIDEROSCST:ImGui.CONST.FocusedFlags-->
+
<!--GIDEROSCST:ImGui.Col_CheckMark-->
<!--GIDEROSCST:ImGui.CONST.GlyphRanges-->
+
<!--GIDEROSCST:ImGui.Col_ChildBg-->
<!--GIDEROSCST:ImGui.CONST.HoveredFlags-->
+
<!--GIDEROSCST:ImGui.Col_DragDropTarget-->
<!--GIDEROSCST:ImGui.CONST.InputTextFlags-->
+
<!--GIDEROSCST:ImGui.Col_FrameBg-->
<!--GIDEROSCST:ImGui.CONST.ItemFlags-->
+
<!--GIDEROSCST:ImGui.Col_FrameBgActive-->
<!--GIDEROSCST:ImGui.CONST.MouseButton-->
+
<!--GIDEROSCST:ImGui.Col_FrameBgHovered-->
<!--GIDEROSCST:ImGui.CONST.MouseCursor-->
+
<!--GIDEROSCST:ImGui.Col_Header-->
<!--GIDEROSCST:ImGui.CONST.NavInput-->
+
<!--GIDEROSCST:ImGui.Col_HeaderActive-->
<!--GIDEROSCST:ImGui.CONST.PopupFlags-->
+
<!--GIDEROSCST:ImGui.Col_HeaderHovered-->
<!--GIDEROSCST:ImGui.CONST.SelectableFlags-->
+
<!--GIDEROSCST:ImGui.Col_MenuBarBg-->
<!--GIDEROSCST:ImGui.CONST.SliderFlags-->
+
<!--GIDEROSCST:ImGui.Col_ModalWindowDimBg-->
<!--GIDEROSCST:ImGui.CONST.SortDirection-->
+
<!--GIDEROSCST:ImGui.Col_NavHighlight-->
<!--GIDEROSCST:ImGui.CONST.StyleVar-->
+
<!--GIDEROSCST:ImGui.Col_NavWindowingDimBg-->
<!--GIDEROSCST:ImGui.CONST.TabBarFlags-->
+
<!--GIDEROSCST:ImGui.Col_NavWindowingHighlight-->
<!--GIDEROSCST:ImGui.CONST.TabItemFlags-->
+
<!--GIDEROSCST:ImGui.Col_PlotHistogram-->
<!--GIDEROSCST:ImGui.CONST.TableFlags-->
+
<!--GIDEROSCST:ImGui.Col_PlotHistogramHovered-->
<!--GIDEROSCST:ImGui.CONST.TableBgTarget-->
+
<!--GIDEROSCST:ImGui.Col_PlotLines-->
<!--GIDEROSCST:ImGui.CONST.TableColumnFlags-->
+
<!--GIDEROSCST:ImGui.Col_PlotLinesHovered-->
<!--GIDEROSCST:ImGui.CONST.TableRowFlags-->
+
<!--GIDEROSCST:ImGui.Col_PopupBg-->
<!--GIDEROSCST:ImGui.CONST.TE-->
+
<!--GIDEROSCST:ImGui.Col_ResizeGrip-->
<!--GIDEROSCST:ImGui.CONST.TreeNodeFlags-->
+
<!--GIDEROSCST:ImGui.Col_ResizeGripActive-->
<!--GIDEROSCST:ImGui.CONST.WindowFlags-->
+
<!--GIDEROSCST:ImGui.Col_ResizeGripHovered-->
|}
+
<!--GIDEROSCST:ImGui.Col_ScrollbarBg-->
 +
<!--GIDEROSCST:ImGui.Col_ScrollbarGrab-->
 +
<!--GIDEROSCST:ImGui.Col_ScrollbarGrabActive-->
 +
<!--GIDEROSCST:ImGui.Col_ScrollbarGrabHovered-->
 +
<!--GIDEROSCST:ImGui.Col_Separator-->
 +
<!--GIDEROSCST:ImGui.Col_SeparatorActive-->
 +
<!--GIDEROSCST:ImGui.Col_SeparatorHovered-->
 +
<!--GIDEROSCST:ImGui.Col_SliderGrab-->
 +
<!--GIDEROSCST:ImGui.Col_SliderGrabActive-->
 +
<!--GIDEROSCST:ImGui.Col_Tab-->
 +
<!--GIDEROSCST:ImGui.Col_TabActive-->
 +
<!--GIDEROSCST:ImGui.Col_TabHovered-->
 +
<!--GIDEROSCST:ImGui.Col_TableBorderLight-->
 +
<!--GIDEROSCST:ImGui.Col_TableBorderStrong-->
 +
<!--GIDEROSCST:ImGui.Col_TableHeaderBg-->
 +
<!--GIDEROSCST:ImGui.Col_TableRowBg-->
 +
<!--GIDEROSCST:ImGui.Col_TableRowBgAlt-->
 +
<!--GIDEROSCST:ImGui.Col_TabUnfocused-->
 +
<!--GIDEROSCST:ImGui.Col_TabUnfocusedActive-->
 +
<!--GIDEROSCST:ImGui.Col_Text-->
 +
<!--GIDEROSCST:ImGui.Col_TextDisabled-->
 +
<!--GIDEROSCST:ImGui.Col_TextSelectedBg-->
 +
<!--GIDEROSCST:ImGui.Col_TitleBg-->
 +
<!--GIDEROSCST:ImGui.Col_TitleBgActive-->
 +
<!--GIDEROSCST:ImGui.Col_TitleBgCollapsed-->
 +
<!--GIDEROSCST:ImGui.Col_WindowBg-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_None-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_AlphaBar-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_AlphaPreview-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_AlphaPreviewHalf-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_DisplayHex-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_DisplayHSV-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_DisplayRGB-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_Float-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_HDR-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_InputHSV-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_InputRGB-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoAlpha-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoBorder-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoDragDrop-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoInputs-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoLabel-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoOptions-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoPicker-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoSidePreview-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoSmallPreview-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_NoTooltip-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_OptionsDefault-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_PickerHueBar-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_PickerHueWheel-->
 +
<!--GIDEROSCST:ImGui.ColorEditFlags_Uint8-->
 +
<!--GIDEROSCST:ImGui.ComboFlags_None-->
 +
<!--GIDEROSCST:ImGui.ComboFlags_HeightLarge-->
 +
<!--GIDEROSCST:ImGui.ComboFlags_HeightLargest-->
 +
<!--GIDEROSCST:ImGui.ComboFlags_HeightMask-->
 +
<!--GIDEROSCST:ImGui.ComboFlags_HeightRegular-->
 +
<!--GIDEROSCST:ImGui.ComboFlags_HeightSmall-->
 +
<!--GIDEROSCST:ImGui.ComboFlags_NoArrowButton-->
 +
<!--GIDEROSCST:ImGui.ComboFlags_NoPreview-->
 +
<!--GIDEROSCST:ImGui.ComboFlags_PopupAlignLeft -->
 +
<!--GIDEROSCST:ImGui.Cond_None-->
 +
<!--GIDEROSCST:ImGui.Cond_Always-->
 +
<!--GIDEROSCST:ImGui.Cond_Appearing-->
 +
<!--GIDEROSCST:ImGui.Cond_FirstUseEver-->
 +
<!--GIDEROSCST:ImGui.Cond_Once -->
 +
<!--GIDEROSCST:ImGui.ConfigFlags_None-->
 +
<!--GIDEROSCST:ImGui.ConfigFlags_IsSRGB-->
 +
<!--GIDEROSCST:ImGui.ConfigFlags_IsTouchScreen-->
 +
<!--GIDEROSCST:ImGui.ConfigFlags_NavEnableGamepad-->
 +
<!--GIDEROSCST:ImGui.ConfigFlags_NavEnableKeyboard-->
 +
<!--GIDEROSCST:ImGui.ConfigFlags_NavEnableSetMousePos-->
 +
<!--GIDEROSCST:ImGui.ConfigFlags_NavNoCaptureKeyboard-->
 +
<!--GIDEROSCST:ImGui.ConfigFlags_NoMouse-->
 +
<!--GIDEROSCST:ImGui.ConfigFlags_NoMouseCursorChange -->
 +
<!--GIDEROSCST:ImGui.DrawFlags_None-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_Closed-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_RoundCornersAll-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_RoundCornersBottom-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_RoundCornersBottomLeft-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_RoundCornersBottomRight-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_RoundCornersLeft-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_RoundCornersRight-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_RoundCornersTop-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_RoundCornersTopLeft-->
 +
<!--GIDEROSCST:ImGui.DrawFlags_RoundCornersTopRight -->
 +
<!--GIDEROSCST:ImGui.DataType_Double-->
 +
<!--GIDEROSCST:ImGui.DataType_Float-->
 +
<!--GIDEROSCST:ImGui.DataType_S8-->
 +
<!--GIDEROSCST:ImGui.DataType_S16-->
 +
<!--GIDEROSCST:ImGui.DataType_S32-->
 +
<!--GIDEROSCST:ImGui.DataType_S64-->
 +
<!--GIDEROSCST:ImGui.DataType_U8-->
 +
<!--GIDEROSCST:ImGui.DataType_U16-->
 +
<!--GIDEROSCST:ImGui.DataType_U32-->
 +
<!--GIDEROSCST:ImGui.DataType_U64 -->
 +
<!--GIDEROSCST:ImGui.Dir_None-->
 +
<!--GIDEROSCST:ImGui.Dir_Down-->
 +
<!--GIDEROSCST:ImGui.Dir_Left-->
 +
<!--GIDEROSCST:ImGui.Dir_Right-->
 +
<!--GIDEROSCST:ImGui.Dir_Up-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_None-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_AcceptBeforeDelivery-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_AcceptNoDrawDefaultRect-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_AcceptNoPreviewTooltip-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_AcceptPeekOnly-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_SourceAllowNullID-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_SourceAutoExpirePayload-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_SourceExtern-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_SourceNoDisableHover-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_SourceNoHoldToOpenOthers-->
 +
<!--GIDEROSCST:ImGui.DragDropFlags_SourceNoPreviewTooltip-->
 +
<!--GIDEROSCST:ImGui.FocusedFlags_None-->
 +
<!--GIDEROSCST:ImGui.FocusedFlags_AnyWindow-->
 +
<!--GIDEROSCST:ImGui.FocusedFlags_ChildWindows-->
 +
<!--GIDEROSCST:ImGui.FocusedFlags_NoPopupHierarchy-->
 +
<!--GIDEROSCST:ImGui.FocusedFlags_RootAndChildWindows-->
 +
<!--GIDEROSCST:ImGui.FocusedFlags_RootWindow -->
 +
<!--GIDEROSCST:ImGui.GlyphRanges_ChineseFull-->
 +
<!--GIDEROSCST:ImGui.GlyphRanges_ChineseSimplifiedCommon-->
 +
<!--GIDEROSCST:ImGui.GlyphRanges_Cyrillic-->
 +
<!--GIDEROSCST:ImGui.GlyphRanges_Default-->
 +
<!--GIDEROSCST:ImGui.GlyphRanges_Japanese-->
 +
<!--GIDEROSCST:ImGui.GlyphRanges_Korean-->
 +
<!--GIDEROSCST:ImGui.GlyphRanges_Thai-->
 +
<!--GIDEROSCST:ImGui.GlyphRanges_Vietnamese -->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_None-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_AllowWhenBlockedByActiveItem-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_AllowWhenBlockedByPopup-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_AllowWhenDisabled-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_AllowWhenOverlapped-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_AnyWindow-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_ChildWindows-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_DelayNormal-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_DelayShort-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_NoNavOverride-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_NoSharedDelay-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_RectOnly-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_RootAndChildWindows-->
 +
<!--GIDEROSCST:ImGui.HoveredFlags_RootWindow -->
 +
<!--GIDEROSCST:ImGui.ImageScaleMode_FitHeight-->
 +
<!--GIDEROSCST:ImGui.ImageScaleMode_FitWidth-->
 +
<!--GIDEROSCST:ImGui.ImageScaleMode_LetterBox-->
 +
<!--GIDEROSCST:ImGui.ImageScaleMode_Stretch -->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_None-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_AllowTabInput-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_AlwaysInsertMode-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_AutoSelectAll-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CallbackAlways-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CallbackCharFilter-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CallbackCompletion-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CallbackEdit-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CallbackHistory-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CallbackResize-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CharsDecimal-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CharsHexadecimal-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CharsNoBlank-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CharsScientific-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CharsUppercase-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_CtrlEnterForNewLine-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_EnterReturnsTrue-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_EscapeClearsAll-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_NoBackground-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_NoHorizontalScroll-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_NoUndoRedo-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_Password-->
 +
<!--GIDEROSCST:ImGui.InputTextFlags_ReadOnly -->
 +
<!--GIDEROSCST:ImGui.ItemFlags_ButtonRepeat-->
 +
<!--GIDEROSCST:ImGui.ItemFlags_Disabled-->
 +
<!--GIDEROSCST:ImGui.ItemFlags_NoTabStop -->
 +
<!--GIDEROSCST:ImGui.MouseButton_Left-->
 +
<!--GIDEROSCST:ImGui.MouseButton_Middle-->
 +
<!--GIDEROSCST:ImGui.MouseButton_Right -->
 +
<!--GIDEROSCST:ImGui.MouseCursor_None-->
 +
<!--GIDEROSCST:ImGui.MouseCursor_Arrow-->
 +
<!--GIDEROSCST:ImGui.MouseCursor_Hand-->
 +
<!--GIDEROSCST:ImGui.MouseCursor_NotAllowed-->
 +
<!--GIDEROSCST:ImGui.MouseCursor_ResizeAll-->
 +
<!--GIDEROSCST:ImGui.MouseCursor_ResizeEW-->
 +
<!--GIDEROSCST:ImGui.MouseCursor_ResizeNESW-->
 +
<!--GIDEROSCST:ImGui.MouseCursor_ResizeNS-->
 +
<!--GIDEROSCST:ImGui.MouseCursor_ResizeNWSE-->
 +
<!--GIDEROSCST:ImGui.MouseCursor_TextInput -->
 +
<!--GIDEROSCST:ImGui.NavInput_Activate-->
 +
<!--GIDEROSCST:ImGui.NavInput_Cancel-->
 +
<!--GIDEROSCST:ImGui.NavInput_DpadDown-->
 +
<!--GIDEROSCST:ImGui.NavInput_DpadLeft-->
 +
<!--GIDEROSCST:ImGui.NavInput_DpadRight-->
 +
<!--GIDEROSCST:ImGui.NavInput_DpadUp-->
 +
<!--GIDEROSCST:ImGui.NavInput_FocusNext-->
 +
<!--GIDEROSCST:ImGui.NavInput_FocusPrev-->
 +
<!--GIDEROSCST:ImGui.NavInput_Input-->
 +
<!--GIDEROSCST:ImGui.NavInput_LStickDown-->
 +
<!--GIDEROSCST:ImGui.NavInput_LStickLeft-->
 +
<!--GIDEROSCST:ImGui.NavInput_LStickRight-->
 +
<!--GIDEROSCST:ImGui.NavInput_LStickUp-->
 +
<!--GIDEROSCST:ImGui.NavInput_Menu-->
 +
<!--GIDEROSCST:ImGui.NavInput_TweakFast-->
 +
<!--GIDEROSCST:ImGui.NavInput_TweakSlow -->
 +
<!--GIDEROSCST:ImGui.PopupFlags_None-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_AnyPopup-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_AnyPopupId-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_AnyPopupLevel-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_MouseButtonDefault-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_MouseButtonLeft-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_MouseButtonMask-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_MouseButtonMiddle-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_MouseButtonRight-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_NoOpenOverExistingPopup-->
 +
<!--GIDEROSCST:ImGui.PopupFlags_NoOpenOverItems -->
 +
<!--GIDEROSCST:ImGui.SelectableFlags_None-->
 +
<!--GIDEROSCST:ImGui.SelectableFlags_AllowDoubleClick-->
 +
<!--GIDEROSCST:ImGui.SelectableFlags_AllowItemOverlap-->
 +
<!--GIDEROSCST:ImGui.SelectableFlags_Disabled-->
 +
<!--GIDEROSCST:ImGui.SelectableFlags_DontClosePopups-->
 +
<!--GIDEROSCST:ImGui.SelectableFlags_SpanAllColumns -->
 +
<!--GIDEROSCST:ImGui.SliderFlags_None          -->
 +
<!--GIDEROSCST:ImGui.SliderFlags_AlwaysClamp-->
 +
<!--GIDEROSCST:ImGui.SliderFlags_Logarithmic  -->
 +
<!--GIDEROSCST:ImGui.SliderFlags_NoInput-->
 +
<!--GIDEROSCST:ImGui.SliderFlags_NoRoundToFormat -->
 +
<!--GIDEROSCST:ImGui.SortDirection_None-->
 +
<!--GIDEROSCST:ImGui.SortDirection_Ascending-->
 +
<!--GIDEROSCST:ImGui.SortDirection_Descending -->
 +
<!--GIDEROSCST:ImGui.StyleVar_Alpha-->
 +
<!--GIDEROSCST:ImGui.StyleVar_ButtonTextAlign-->
 +
<!--GIDEROSCST:ImGui.StyleVar_CellPadding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_ChildBorderSize-->
 +
<!--GIDEROSCST:ImGui.StyleVar_ChildRounding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_DisabledAlpha-->
 +
<!--GIDEROSCST:ImGui.StyleVar_FrameBorderSize-->
 +
<!--GIDEROSCST:ImGui.StyleVar_FramePadding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_FrameRounding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_GrabMinSize-->
 +
<!--GIDEROSCST:ImGui.StyleVar_GrabRounding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_IndentSpacing-->
 +
<!--GIDEROSCST:ImGui.StyleVar_ItemInnerSpacing-->
 +
<!--GIDEROSCST:ImGui.StyleVar_ItemSpacing-->
 +
<!--GIDEROSCST:ImGui.StyleVar_PopupBorderSize-->
 +
<!--GIDEROSCST:ImGui.StyleVar_PopupRounding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_ScrollbarRounding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_ScrollbarSize-->
 +
<!--GIDEROSCST:ImGui.StyleVar_SelectableTextAlign-->
 +
<!--GIDEROSCST:ImGui.StyleVar_SeparatorTextAlign-->
 +
<!--GIDEROSCST:ImGui.StyleVar_SeparatorTextBorderSize-->
 +
<!--GIDEROSCST:ImGui.StyleVar_SeparatorTextPadding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_TabRounding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_WindowBorderSize-->
 +
<!--GIDEROSCST:ImGui.StyleVar_WindowMinSize-->
 +
<!--GIDEROSCST:ImGui.StyleVar_WindowPadding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_WindowRounding-->
 +
<!--GIDEROSCST:ImGui.StyleVar_WindowTitleAlign -->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_None-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_AutoSelectNewTabs-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_FittingPolicyDefault-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_FittingPolicyMask-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_FittingPolicyResizeDown-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_FittingPolicyScroll-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_NoCloseWithMiddleMouseButton-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_NoTabListScrollingButtons-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_NoTooltip-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_Reorderable-->
 +
<!--GIDEROSCST:ImGui.TabBarFlags_TabListPopupButton -->
 +
<!--GIDEROSCST:ImGui.TabItemFlags_None-->
 +
<!--GIDEROSCST:ImGui.TabItemFlags_Leading-->
 +
<!--GIDEROSCST:ImGui.TabItemFlags_NoCloseWithMiddleMouseButton-->
 +
<!--GIDEROSCST:ImGui.TabItemFlags_NoPushId-->
 +
<!--GIDEROSCST:ImGui.TabItemFlags_NoReorder-->
 +
<!--GIDEROSCST:ImGui.TabItemFlags_NoTooltip-->
 +
<!--GIDEROSCST:ImGui.TabItemFlags_SetSelected-->
 +
<!--GIDEROSCST:ImGui.TabItemFlags_Trailing-->
 +
<!--GIDEROSCST:ImGui.TabItemFlags_UnsavedDocument -->
 +
<!--GIDEROSCST:ImGui.TableFlags_None-->
 +
<!--GIDEROSCST:ImGui.TableFlags_Borders-->
 +
<!--GIDEROSCST:ImGui.TableFlags_BordersH-->
 +
<!--GIDEROSCST:ImGui.TableFlags_BordersInner-->
 +
<!--GIDEROSCST:ImGui.TableFlags_BordersInnerH -->
 +
<!--GIDEROSCST:ImGui.TableFlags_BordersInnerV-->
 +
<!--GIDEROSCST:ImGui.TableFlags_BordersOuter-->
 +
<!--GIDEROSCST:ImGui.TableFlags_BordersOuterH-->
 +
<!--GIDEROSCST:ImGui.TableFlags_BordersOuterV-->
 +
<!--GIDEROSCST:ImGui.TableFlags_BordersV-->
 +
<!--GIDEROSCST:ImGui.TableFlags_ContextMenuInBody-->
 +
<!--GIDEROSCST:ImGui.TableFlags_Hideable-->
 +
<!--GIDEROSCST:ImGui.TableFlags_NoBordersInBody-->
 +
<!--GIDEROSCST:ImGui.TableFlags_NoBordersInBodyUntilResize-->
 +
<!--GIDEROSCST:ImGui.TableFlags_NoClip-->
 +
<!--GIDEROSCST:ImGui.TableFlags_NoHostExtendX-->
 +
<!--GIDEROSCST:ImGui.TableFlags_NoHostExtendY-->
 +
<!--GIDEROSCST:ImGui.TableFlags_NoKeepColumnsVisible-->
 +
<!--GIDEROSCST:ImGui.TableFlags_NoPadInnerX-->
 +
<!--GIDEROSCST:ImGui.TableFlags_NoPadOuterX-->
 +
<!--GIDEROSCST:ImGui.TableFlags_NoSavedSettings-->
 +
<!--GIDEROSCST:ImGui.TableFlags_PadOuterX-->
 +
<!--GIDEROSCST:ImGui.TableFlags_PreciseWidths-->
 +
<!--GIDEROSCST:ImGui.TableFlags_Reorderable-->
 +
<!--GIDEROSCST:ImGui.TableFlags_Resizable-->
 +
<!--GIDEROSCST:ImGui.TableFlags_RowBg-->
 +
<!--GIDEROSCST:ImGui.TableFlags_ScrollX-->
 +
<!--GIDEROSCST:ImGui.TableFlags_ScrollY-->
 +
<!--GIDEROSCST:ImGui.TableFlags_SizingFixedFit-->
 +
<!--GIDEROSCST:ImGui.TableFlags_SizingFixedSame-->
 +
<!--GIDEROSCST:ImGui.TableFlags_SizingStretchProp-->
 +
<!--GIDEROSCST:ImGui.TableFlags_SizingStretchSame-->
 +
<!--GIDEROSCST:ImGui.TableFlags_Sortable-->
 +
<!--GIDEROSCST:ImGui.TableFlags_SortMulti-->
 +
<!--GIDEROSCST:ImGui.TableFlags_SortTristate -->
 +
<!--GIDEROSCST:ImGui.TableBgTarget_None-->
 +
<!--GIDEROSCST:ImGui.TableBgTarget_CellBg-->
 +
<!--GIDEROSCST:ImGui.TableBgTarget_RowBg0-->
 +
<!--GIDEROSCST:ImGui.TableBgTarget_RowBg1 -->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_None-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_DefaultHide-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_DefaultSort-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_Disabled-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_IndentDisable-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_IndentEnable-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_IsEnabled-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_IsHovered-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_IsSorted-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_IsVisible-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_NoClip-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_NoHeaderLabel-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_NoHeaderWidth-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_NoHide-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_NoReorder-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_NoResize-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_NoSort-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_NoSortAscending-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_NoSortDescending-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_PreferSortAscending-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_PreferSortDescending-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_WidthFixed-->
 +
<!--GIDEROSCST:ImGui.TableColumnFlags_WidthStretch -->
 +
<!--GIDEROSCST:ImGui.TableRowFlags_None-->
 +
<!--GIDEROSCST:ImGui.TableRowFlags_Headers -->
 +
<!--GIDEROSCST:ImGui.TE_Background-->
 +
<!--GIDEROSCST:ImGui.TE_Breakpoint-->
 +
<!--GIDEROSCST:ImGui.TE_CharLiteral-->
 +
<!--GIDEROSCST:ImGui.TE_ColorIndex-->
 +
<!--GIDEROSCST:ImGui.TE_Comment-->
 +
<!--GIDEROSCST:ImGui.TE_CurrentLineEdge-->
 +
<!--GIDEROSCST:ImGui.TE_CurrentLineFill-->
 +
<!--GIDEROSCST:ImGui.TE_CurrentLineFillInactive-->
 +
<!--GIDEROSCST:ImGui.TE_Cursor-->
 +
<!--GIDEROSCST:ImGui.TE_Default-->
 +
<!--GIDEROSCST:ImGui.TE_ErrorMarker-->
 +
<!--GIDEROSCST:ImGui.TE_Identifier-->
 +
<!--GIDEROSCST:ImGui.TE_Keyword-->
 +
<!--GIDEROSCST:ImGui.TE_KnownIdentifier-->
 +
<!--GIDEROSCST:ImGui.TE_LineNumber-->
 +
<!--GIDEROSCST:ImGui.TE_MultiLineComment-->
 +
<!--GIDEROSCST:ImGui.TE_Number-->
 +
<!--GIDEROSCST:ImGui.TE_Preprocessor-->
 +
<!--GIDEROSCST:ImGui.TE_PreprocIdentifier-->
 +
<!--GIDEROSCST:ImGui.TE_Punctuation-->
 +
<!--GIDEROSCST:ImGui.TE_Selection-->
 +
<!--GIDEROSCST:ImGui.TE_String-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_None-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_AllowItemOverlap-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_Bullet-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_CollapsingHeader-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_DefaultOpen-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_Framed-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_FramePadding-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_Leaf-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_NavLeftJumpsBackHere-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_NoAutoOpenOnLog-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_NoTreePushOnOpen-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_OpenOnArrow-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_OpenOnDoubleClick-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_Selected-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_SpanAvailWidth-->
 +
<!--GIDEROSCST:ImGui.TreeNodeFlags_SpanFullWidth-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_None-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_AlwaysAutoResize-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_AlwaysHorizontalScrollbar-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_AlwaysUseWindowPadding-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_AlwaysVerticalScrollbar-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_FullScreen-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_HorizontalScrollbar-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_MenuBar-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoBackground-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoBringToFrontOnFocus-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoCollapse-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoDecoration-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoFocusOnAppearing-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoInputs-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoMouseInputs-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoMove-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoNav-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoNavFocus-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoNavInputs-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoResize-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoSavedSettings-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoScrollbar-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoScrollWithMouse-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_NoTitleBar-->
 +
<!--GIDEROSCST:ImGui.WindowFlags_UnsavedDocument-->
  
 
{{GIDEROS IMPORTANT LINKS}}
 
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 01:46, 11 October 2024

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2020.9

Description

This is an implementation of the Dear ImGui library: https://github.com/ocornut/imgui.

Dear ImGui is licensed under the MIT License, see https://github.com/ocornut/imgui/blob/master/LICENSE.txt for more information.

To use Dear ImGui in your project you need to add the ImGui plugin and call require like so:

require "ImGui"

Current Gideros Dear ImGui version: 1.89.6.

User Guide

  • Double-click on title bar to collapse window
  • Click and drag on lower corner to resize window (double-click to auto fit window to its contents)
  • CTRL+Click on a slider or drag box to input value as text
  • TAB/SHIFT+TAB to cycle through keyboard editable fields
  • CTRL+Tab to select a window
  • CTRL+Mouse Wheel to zoom window contents if io.FontAllowUserScaling is enabled
  • While inputing text:
    • CTRL+Left/Right to word jump
    • CTRL+A or double-click to select all
    • CTRL+X/C/V to use clipboard cut/copy/paste
    • CTRL+Z,CTRL+Y to undo/redo
    • ESCAPE to revert
  • With keyboard navigation enabled:
    • Arrow keys to navigate
    • Space to activate a widget
    • Return to input text into a widget
    • Escape to deactivate a widget, close popup, exit child window
    • Alt to jump to the menu layer of a window

Widgets

Widgets: Color Editor/Picker

* tip: the ColorEdit* functions have a little color square that can be left-clicked to open a picker, and right-clicked to open an option menu

Widgets: Input with Keyboard

* If you want to use InputText() with std::string or any custom dynamic string type, see misc/cpp/imgui_stdlib.h and comments in imgui_demo.cpp.
* Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc.

Widgets: Regular Sliders

* CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped and can go off-bounds.
* Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc.
* Format string may also be set to NULL or use the default format ("%f" or "%d").

If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361

Widgets: Drag Sliders

* CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped and can go off-bounds.
* For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector.x
* Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc.
* Format string may also be set to NULL or use the default format ("%f" or "%d").
* Speed are per-pixel of mouse movement (v_speed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For gamepad/keyboard navigation, minimum speed is Max(v_speed, minimum_step_at_given_precision).
* Use v_min < v_max to clamp edits to given limits. Note that CTRL+Click manual input can override those limits.
* Use v_max = FLT_MAX / INT_MAX etc to avoid clamping to a maximum, same with v_min = -FLT_MAX / INT_MIN to avoid clamping to a minimum.
* 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.

Gideros Dear ImGui Documentation