imgui-bindings 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c83fd74ace483d3fad20687051620c6eadfb37477be060d9d38c6c326b6f93e7
4
- data.tar.gz: 518f45d471448b3e0bb8c94ed55ca82ae5d7c92aa09f919252a5ee2243ed5df5
3
+ metadata.gz: d87ec8e99e502e7af7a1140e077bfc391588de648388862181eb33d69f6a743a
4
+ data.tar.gz: 524fdc84f32f61cc4728d8bf3cba79aa712e6d12427929ad116632327f10d337
5
5
  SHA512:
6
- metadata.gz: 7bb218578c33e4ce2f7aab0012a5903f424c2ba168c880cbbf61f8fc42ce26c595f232d72739eb5b830dcd25b19132b080734fd48885f327310fc2365fd926a6
7
- data.tar.gz: 8a38f2834592b0d1dfb9104158a473955fec1e01458aa6413f0dcd500825069fd38e5cf944e4940fc877c4880a9c9361112cc7c2694716defa050a23e466df67
6
+ metadata.gz: 760108258fef2289eae2dc61e05dd58f6f4ea4442989d1ff94daae0a8e3a9531b47a3a1a8c47fd2c53b3aa7ec9c6b84c04f4fa92dd4de67dcc8d11f7f0351c92
7
+ data.tar.gz: 7a40dcc27963521f71eb965c92eedb3df3c092a62c0352608670e29f34ead83c54d01dd3642598933d2b0334d429781522d8226886468028f23e8dc50ff20032
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ 2023-07-29 vaiorabbit <http://twitter.com/vaiorabbit>
2
+
3
+ * ImGui v1.89.7
4
+
1
5
  2023-07-02 vaiorabbit <http://twitter.com/vaiorabbit>
2
6
 
3
7
  * ImGui v1.89.6
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  # Yet another ImGui wrapper for Ruby #
4
4
 
5
5
  * Created : 2019-01-05
6
- * Last modified : 2023-07-02
6
+ * Last modified : 2023-07-29
7
7
 
8
8
  <img src="https://raw.githubusercontent.com/vaiorabbit/ruby-imgui/master/doc/jpfont_test.png" width="250">
9
9
 
data/lib/imgui.aarch64.so CHANGED
Binary file
data/lib/imgui.dll CHANGED
Binary file
data/lib/imgui.dylib CHANGED
Binary file
data/lib/imgui.rb CHANGED
@@ -290,14 +290,19 @@ ImGuiHoveredFlags_AnyWindow = 4 # 1 << 2 # IsWindowHovered(
290
290
  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)
291
291
  ImGuiHoveredFlags_AllowWhenBlockedByPopup = 32 # 1 << 5 # Return true even if a popup window is normally blocking access to this item/window
292
292
  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.
293
- ImGuiHoveredFlags_AllowWhenOverlapped = 256 # 1 << 8 # IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window
294
- ImGuiHoveredFlags_AllowWhenDisabled = 512 # 1 << 9 # IsItemHovered() only: Return true even if the item is disabled
295
- ImGuiHoveredFlags_NoNavOverride = 1024 # 1 << 10 # Disable using gamepad/keyboard navigation state when active, always query mouse.
296
- ImGuiHoveredFlags_RectOnly = 416 # ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped
293
+ ImGuiHoveredFlags_AllowWhenOverlappedByItem = 256 # 1 << 8 # IsItemHovered() only: Return true even if the item uses AllowOverlap mode and is overlapped by another hoverable item.
294
+ ImGuiHoveredFlags_AllowWhenOverlappedByWindow = 512 # 1 << 9 # IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window.
295
+ ImGuiHoveredFlags_AllowWhenDisabled = 1024 # 1 << 10 # IsItemHovered() only: Return true even if the item is disabled
296
+ ImGuiHoveredFlags_NoNavOverride = 2048 # 1 << 11 # IsItemHovered() only: Disable using gamepad/keyboard navigation state when active, always query mouse
297
+ ImGuiHoveredFlags_AllowWhenOverlapped = 768 # ImGuiHoveredFlags_AllowWhenOverlappedByItem | ImGuiHoveredFlags_AllowWhenOverlappedByWindow
298
+ ImGuiHoveredFlags_RectOnly = 928 # ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped
297
299
  ImGuiHoveredFlags_RootAndChildWindows = 3 # ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
298
- ImGuiHoveredFlags_DelayNormal = 2048 # 1 << 11 # Return true after io.HoverDelayNormal elapsed (~0.30 sec)
299
- ImGuiHoveredFlags_DelayShort = 4096 # 1 << 12 # Return true after io.HoverDelayShort elapsed (~0.10 sec)
300
- 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)
300
+ ImGuiHoveredFlags_ForTooltip = 2048 # 1 << 11 # Shortcut for standard flags when using IsItemHovered() + SetTooltip() sequence.
301
+ ImGuiHoveredFlags_Stationary = 4096 # 1 << 12 # Require mouse to be stationary for style.HoverStationaryDelay (~0.15 sec) _at least one time_. After this, can move on same item/window. Using the stationary test tends to reduces the need for a long delay.
302
+ ImGuiHoveredFlags_DelayNone = 8192 # 1 << 13 # IsItemHovered() only: Return true immediately (default). As this is the default you generally ignore this.
303
+ ImGuiHoveredFlags_DelayShort = 16384 # 1 << 14 # IsItemHovered() only: Return true after style.HoverDelayShort elapsed (~0.15 sec) (shared between items) + requires mouse to be stationary for style.HoverStationaryDelay (once per item).
304
+ ImGuiHoveredFlags_DelayNormal = 32768 # 1 << 15 # IsItemHovered() only: Return true after style.HoverDelayNormal elapsed (~0.40 sec) (shared between items) + requires mouse to be stationary for style.HoverStationaryDelay (once per item).
305
+ ImGuiHoveredFlags_NoSharedDelay = 65536 # 1 << 16 # IsItemHovered() only: 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)
301
306
 
302
307
  # ImGuiInputTextFlags_
303
308
  # Flags for ImGui::InputText()
@@ -564,12 +569,12 @@ ImGuiPopupFlags_AnyPopup = 384 # ImGuiPopupFlags_AnyPopupId | ImGu
564
569
 
565
570
  # ImGuiSelectableFlags_
566
571
  # Flags for ImGui::Selectable()
567
- ImGuiSelectableFlags_None = 0 # 0
568
- ImGuiSelectableFlags_DontClosePopups = 1 # 1 << 0 # Clicking this doesn't close parent popup window
569
- ImGuiSelectableFlags_SpanAllColumns = 2 # 1 << 1 # Selectable frame can span all columns (text will still fit in current column)
570
- ImGuiSelectableFlags_AllowDoubleClick = 4 # 1 << 2 # Generate press events on double clicks too
571
- ImGuiSelectableFlags_Disabled = 8 # 1 << 3 # Cannot be selected, display grayed out text
572
- ImGuiSelectableFlags_AllowItemOverlap = 16 # 1 << 4 # (WIP) Hit testing to allow subsequent widgets to overlap this one
572
+ ImGuiSelectableFlags_None = 0 # 0
573
+ ImGuiSelectableFlags_DontClosePopups = 1 # 1 << 0 # Clicking this doesn't close parent popup window
574
+ ImGuiSelectableFlags_SpanAllColumns = 2 # 1 << 1 # Selectable frame can span all columns (text will still fit in current column)
575
+ ImGuiSelectableFlags_AllowDoubleClick = 4 # 1 << 2 # Generate press events on double clicks too
576
+ ImGuiSelectableFlags_Disabled = 8 # 1 << 3 # Cannot be selected, display grayed out text
577
+ ImGuiSelectableFlags_AllowOverlap = 16 # 1 << 4 # (WIP) Hit testing to allow subsequent widgets to overlap this one
573
578
 
574
579
  # ImGuiSliderFlags_
575
580
  # Flags for DragFloat(), DragInt(), SliderFloat(), SliderInt() etc.
@@ -767,7 +772,7 @@ ImGuiTableRowFlags_Headers = 1 # 1 << 0 # Identify header row (set default backg
767
772
  ImGuiTreeNodeFlags_None = 0 # 0
768
773
  ImGuiTreeNodeFlags_Selected = 1 # 1 << 0 # Draw as selected
769
774
  ImGuiTreeNodeFlags_Framed = 2 # 1 << 1 # Draw frame with background (e.g. for CollapsingHeader)
770
- ImGuiTreeNodeFlags_AllowItemOverlap = 4 # 1 << 2 # Hit testing to allow subsequent widgets to overlap this one
775
+ ImGuiTreeNodeFlags_AllowOverlap = 4 # 1 << 2 # Hit testing to allow subsequent widgets to overlap this one
771
776
  ImGuiTreeNodeFlags_NoTreePushOnOpen = 8 # 1 << 3 # Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack
772
777
  ImGuiTreeNodeFlags_NoAutoOpenOnLog = 16 # 1 << 4 # Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)
773
778
  ImGuiTreeNodeFlags_DefaultOpen = 32 # 1 << 5 # Default node to be open
@@ -1516,13 +1521,6 @@ class ImGuiIO < FFI::Struct
1516
1521
  :IniSavingRate, :float, # = 5.0f // Minimum time between saving positions/sizes to .ini file, in seconds.
1517
1522
  :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.
1518
1523
  :LogFilename, :pointer, # = "imgui_log.txt"// Path to .log file (default parameter to ImGui::LogToFile when no file is specified).
1519
- :MouseDoubleClickTime, :float, # = 0.30f // Time for a double-click, in seconds.
1520
- :MouseDoubleClickMaxDist, :float, # = 6.0f // Distance threshold to stay in to validate a double-click, in pixels.
1521
- :MouseDragThreshold, :float, # = 6.0f // Distance threshold before considering we are dragging.
1522
- :KeyRepeatDelay, :float, # = 0.275f // When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.).
1523
- :KeyRepeatRate, :float, # = 0.050f // When holding a key/button, rate at which it repeats, in seconds.
1524
- :HoverDelayNormal, :float, # = 0.30 sec // Delay on hovering before IsItemHovered(ImGuiHoveredFlags_DelayNormal) returns true.
1525
- :HoverDelayShort, :float, # = 0.10 sec // Delay on hovering before IsItemHovered(ImGuiHoveredFlags_DelayShort) returns true.
1526
1524
  :UserData, :pointer, # = NULL // Store your own data.
1527
1525
  :Fonts, ImFontAtlas.ptr, # <auto> // Font atlas: load, rasterize and pack one or more fonts into a single texture.
1528
1526
  :FontGlobalScale, :float, # = 1.0f // Global scale all fonts
@@ -1538,9 +1536,15 @@ class ImGuiIO < FFI::Struct
1538
1536
  :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)
1539
1537
  :ConfigWindowsMoveFromTitleBarOnly, :bool, # = false // Enable allowing to move windows only when clicking on their title bar. Does not apply to windows without a title bar.
1540
1538
  :ConfigMemoryCompactTimer, :float, # = 60.0f // Timer (in seconds) to free transient windows/tables memory buffers when unused. Set to -1.0f to disable.
1539
+ :MouseDoubleClickTime, :float, # = 0.30f // Time for a double-click, in seconds.
1540
+ :MouseDoubleClickMaxDist, :float, # = 6.0f // Distance threshold to stay in to validate a double-click, in pixels.
1541
+ :MouseDragThreshold, :float, # = 6.0f // Distance threshold before considering we are dragging.
1542
+ :KeyRepeatDelay, :float, # = 0.275f // When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.).
1543
+ :KeyRepeatRate, :float, # = 0.050f // When holding a key/button, rate at which it repeats, in seconds.
1541
1544
  :ConfigDebugBeginReturnValueOnce, :bool, # = false // First-time calls to Begin()/BeginChild() will return false. NEEDS TO BE SET AT APPLICATION BOOT TIME if you don't want to miss windows.
1542
1545
  :ConfigDebugBeginReturnValueLoop, :bool, # = false // Some calls to Begin()/BeginChild() will return false. Will cycle through window depths then repeat. Suggested use: add "io.ConfigDebugBeginReturnValue = io.KeyShift" in your main loop then occasionally press SHIFT. Windows should be flickering while running.
1543
1546
  :ConfigDebugIgnoreFocusLoss, :bool, # = false // Ignore io.AddFocusEvent(false), consequently not calling io.ClearInputKeys() in input processing.
1547
+ :ConfigDebugIniSettings, :bool, # = false // Save .ini data with extra comments (particularly helpful for Docking, but makes saving slower)
1544
1548
  :BackendPlatformName, :pointer, # = NULL
1545
1549
  :BackendRendererName, :pointer, # = NULL
1546
1550
  :BackendPlatformUserData, :pointer, # = NULL // User data for platform backend
@@ -1762,7 +1766,12 @@ class ImGuiStyle < FFI::Struct
1762
1766
  :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).
1763
1767
  :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.
1764
1768
  :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.
1765
- :Colors, [ImVec4.by_value, 53]
1769
+ :Colors, [ImVec4.by_value, 53],
1770
+ :HoverStationaryDelay, :float, # Delay for IsItemHovered(ImGuiHoveredFlags_Stationary). Time required to consider mouse stationary.
1771
+ :HoverDelayShort, :float, # Delay for IsItemHovered(ImGuiHoveredFlags_DelayShort). Usually used along with HoverStationaryDelay.
1772
+ :HoverDelayNormal, :float, # Delay for IsItemHovered(ImGuiHoveredFlags_DelayNormal). "
1773
+ :HoverFlagsForTooltipMouse, :int, # Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using mouse.
1774
+ :HoverFlagsForTooltipNav, :int # Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using keyboard/gamepad.
1766
1775
  )
1767
1776
 
1768
1777
  def self.create()
@@ -2062,6 +2071,7 @@ module ImGui
2062
2071
  [:igBeginDragDropSource, [:int], :bool],
2063
2072
  [:igBeginDragDropTarget, [], :bool],
2064
2073
  [:igBeginGroup, [], :void],
2074
+ [:igBeginItemTooltip, [], :bool],
2065
2075
  [:igBeginListBox, [:pointer, ImVec2.by_value], :bool],
2066
2076
  [:igBeginMainMenuBar, [], :bool],
2067
2077
  [:igBeginMenu, [:pointer, :bool], :bool],
@@ -2319,12 +2329,13 @@ module ImGui
2319
2329
  [:igSetCursorPosY, [:float], :void],
2320
2330
  [:igSetCursorScreenPos, [ImVec2.by_value], :void],
2321
2331
  [:igSetDragDropPayload, [:pointer, :pointer, :size_t, :int], :bool],
2322
- [:igSetItemAllowOverlap, [], :void],
2323
2332
  [:igSetItemDefaultFocus, [], :void],
2333
+ [:igSetItemTooltip, [:pointer, :varargs], :void],
2324
2334
  [:igSetKeyboardFocusHere, [:int], :void],
2325
2335
  [:igSetMouseCursor, [:int], :void],
2326
2336
  [:igSetNextFrameWantCaptureKeyboard, [:bool], :void],
2327
2337
  [:igSetNextFrameWantCaptureMouse, [:bool], :void],
2338
+ [:igSetNextItemAllowOverlap, [], :void],
2328
2339
  [:igSetNextItemOpen, [:bool, :int], :void],
2329
2340
  [:igSetNextItemWidth, [:float], :void],
2330
2341
  [:igSetNextWindowBgAlpha, [:float], :void],
@@ -2528,6 +2539,16 @@ module ImGui
2528
2539
  igBeginGroup()
2529
2540
  end
2530
2541
 
2542
+ # ret: bool
2543
+ #
2544
+ # Tooltips: helpers for showing a tooltip when hovering an item
2545
+ # - BeginItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_Tooltip) && BeginTooltip())' idiom.
2546
+ # - SetItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_Tooltip)) { SetTooltip(...); }' idiom.
2547
+ # - Where 'ImGuiHoveredFlags_Tooltip' itself is a shortcut to use 'style.HoverFlagsForTooltipMouse' or 'style.HoverFlagsForTooltipNav' depending on active input type. For mouse it defaults to 'ImGuiHoveredFlags_Stationary | ImGuiHoveredFlags_DelayShort'.
2548
+ def self.BeginItemTooltip() # begin/append a tooltip window if preceding item was hovered.
2549
+ igBeginItemTooltip()
2550
+ end
2551
+
2531
2552
  # arg: label(const char*), size(ImVec2)
2532
2553
  # ret: bool
2533
2554
  #
@@ -2651,8 +2672,9 @@ module ImGui
2651
2672
  # ret: bool
2652
2673
  #
2653
2674
  # Tooltips
2654
- # - Tooltip are windows following the mouse. They do not take focus away.
2655
- def self.BeginTooltip() # begin/append a tooltip window. to create full-featured tooltip (with any kind of items).
2675
+ # - Tooltips are windows following the mouse. They do not take focus away.
2676
+ # - A tooltip window can contain items of any types. SetTooltip() is a shortcut for the 'if (BeginTooltip()) { Text(...); EndTooltip(); }' idiom.
2677
+ def self.BeginTooltip() # begin/append a tooltip window.
2656
2678
  igBeginTooltip()
2657
2679
  end
2658
2680
 
@@ -3024,7 +3046,7 @@ module ImGui
3024
3046
  end
3025
3047
 
3026
3048
  # ret: void
3027
- def self.EndTooltip() # only call EndTooltip() if BeginTooltip() returns true!
3049
+ def self.EndTooltip() # only call EndTooltip() if BeginTooltip()/BeginItemTooltip() returns true!
3028
3050
  igEndTooltip()
3029
3051
  end
3030
3052
 
@@ -4174,11 +4196,6 @@ module ImGui
4174
4196
  igSetDragDropPayload(type, data, sz, cond)
4175
4197
  end
4176
4198
 
4177
- # ret: void
4178
- def self.SetItemAllowOverlap() # allow last item to be overlapped by a subsequent item. sometimes useful with invisible buttons, selectables, etc. to catch unused area.
4179
- igSetItemAllowOverlap()
4180
- end
4181
-
4182
4199
  # ret: void
4183
4200
  #
4184
4201
  # Focus, Activation
@@ -4187,6 +4204,12 @@ module ImGui
4187
4204
  igSetItemDefaultFocus()
4188
4205
  end
4189
4206
 
4207
+ # arg: fmt(const char*), ...(...)
4208
+ # ret: void
4209
+ def self.SetItemTooltip(fmt, *varargs) # set a text-only tooltip if preceeding item was hovered. override any previous call to SetTooltip().
4210
+ igSetItemTooltip(fmt, *varargs)
4211
+ end
4212
+
4190
4213
  # arg: offset(int)
4191
4214
  # ret: void
4192
4215
  def self.SetKeyboardFocusHere(offset = 0) # Implied offset = 0
@@ -4211,6 +4234,13 @@ module ImGui
4211
4234
  igSetNextFrameWantCaptureMouse(want_capture_mouse)
4212
4235
  end
4213
4236
 
4237
+ # ret: void
4238
+ #
4239
+ # Overlapping mode
4240
+ def self.SetNextItemAllowOverlap() # allow next item to be overlapped by a subsequent item. Useful with invisible buttons, selectable, treenode covering an area where subsequent items may need to be added. Note that both Selectable() and TreeNode() have dedicated flags doing this.
4241
+ igSetNextItemAllowOverlap()
4242
+ end
4243
+
4214
4244
  # arg: is_open(bool), cond(ImGuiCond)
4215
4245
  # ret: void
4216
4246
  def self.SetNextItemOpen(is_open, cond = 0) # set next TreeNode/CollapsingHeader open state.
@@ -4323,7 +4353,7 @@ module ImGui
4323
4353
 
4324
4354
  # arg: fmt(const char*), ...(...)
4325
4355
  # ret: void
4326
- def self.SetTooltip(fmt, *varargs) # set a text-only tooltip, typically use with ImGui::IsItemHovered(). override any previous call to SetTooltip().
4356
+ def self.SetTooltip(fmt, *varargs) # set a text-only tooltip. Often used after a ImGui::IsItemHovered() check. Override any previous call to SetTooltip().
4327
4357
  igSetTooltip(fmt, *varargs)
4328
4358
  end
4329
4359
 
data/lib/imgui.x86_64.so CHANGED
Binary file
Binary file
data/lib/imnodes.dll CHANGED
Binary file
data/lib/imnodes.dylib CHANGED
Binary file
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imgui-bindings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - vaiorabbit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-02 00:00:00.000000000 Z
11
+ date: 2023-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi