mirror of
https://github.com/Drezil/imgui.git
synced 2024-12-19 06:26:35 +00:00
Merge branch 'master' into docking
# Conflicts: # docs/CHANGELOG.txt
This commit is contained in:
commit
a1164399b0
@ -114,37 +114,38 @@ Breaking Changes:
|
|||||||
Kept redirection function (will obsolete). (#581, #324)
|
Kept redirection function (will obsolete). (#581, #324)
|
||||||
|
|
||||||
Other Changes:
|
Other Changes:
|
||||||
- Window: Fixed InnerClipRect right-most coordinates using wrong padding setting (introduced in 1.71).
|
comments about the right way to scale your UI (load a font at the right side, rebuild atlas, scale style).
|
||||||
- Window: Mouse wheel scrolling while hovering a child window is automatically forwarded to parent window
|
- Scrolling: Made mouse-wheel scrolling lock the underlying window until the mouse is moved again or
|
||||||
|
until a short delay expires (~2 seconds). This allow uninterrupted scroll even if child windows are
|
||||||
|
passing under the mouse cursor. (#2604)
|
||||||
|
- Scrolling: Made it possible for mouse wheel and navigation-triggered scrolling to override a call to
|
||||||
|
SetScrollX()/SetScrollY(), making it possible to use a simpler stateless pattern for auto-scrolling:
|
||||||
|
// (Submit items..)
|
||||||
|
if (ImGui::GetScrollY() >= ImGui::GetScrollMaxY()) // If scrolling at the already at the bottom..
|
||||||
|
ImGui::SetScrollHereY(1.0f); // ..make last item fully visible
|
||||||
|
- Scrolling: Added SetScrollHereX(), SetScrollFromPosX() for completeness. (#1580) [@kevreco]
|
||||||
|
- Scrolling: Mouse wheel scrolling while hovering a child window is automatically forwarded to parent window
|
||||||
if ScrollMax is zero on the scrolling axis.
|
if ScrollMax is zero on the scrolling axis.
|
||||||
Also still case if ImGuiWindowFlags_NoScrollWithMouse is set (not new), but previously the forwarding
|
Also still the case if ImGuiWindowFlags_NoScrollWithMouse is set (not new), but previously the forwarding
|
||||||
would be disabled if ImGuiWindowFlags_NoScrollbar was set on the child window, which is not the case
|
would be disabled if ImGuiWindowFlags_NoScrollbar was set on the child window, which is not the case
|
||||||
any more. Forwarding can still be disabled by setting ImGuiWindowFlags_NoInputs. (amend #1502, #1380).
|
any more. Forwarding can still be disabled by setting ImGuiWindowFlags_NoInputs. (amend #1502, #1380).
|
||||||
|
- Window: Fixed InnerClipRect right-most coordinates using wrong padding setting (introduced in 1.71).
|
||||||
- Window: Fixed old SetWindowFontScale() api value from not being inherited by child window. Added
|
- Window: Fixed old SetWindowFontScale() api value from not being inherited by child window. Added
|
||||||
comments about the right way to scale your UI (load a font at the right side, rebuild atlas, scale style).
|
- Scrollbar: Avoid overlapping the opposite side when window (often a child window) is forcibly too small.
|
||||||
- Combo: Hide arrow when there's not enough space even for the square button.
|
- Combo: Hide arrow when there's not enough space even for the square button.
|
||||||
|
- InputText: Testing for newly added ImGuiKey_KeyPadEnter key. (#2677, #2005) [@amc522]
|
||||||
- TabBar: Fixed unfocused tab bar separator color (was using ImGuiCol_Tab, should use ImGuiCol_TabUnfocusedActive).
|
- TabBar: Fixed unfocused tab bar separator color (was using ImGuiCol_Tab, should use ImGuiCol_TabUnfocusedActive).
|
||||||
- Columns: Fixed a regression from 1.71 where the right-side of the contents rectangle within each column
|
- Columns: Fixed a regression from 1.71 where the right-side of the contents rectangle within each column
|
||||||
would wrongly use a WindowPadding.x instead of ItemSpacing.x like it always did. (#125, #2666)
|
would wrongly use a WindowPadding.x instead of ItemSpacing.x like it always did. (#125, #2666)
|
||||||
- Columns: Made the right-most edge reaches up to the clipping rectangle (removing half of WindowPadding.x
|
- Columns: Made the right-most edge reaches up to the clipping rectangle (removing half of WindowPadding.x
|
||||||
worth of asymmetrical/extraneous padding, note that there's another half that conservatively has to offset
|
worth of asymmetrical/extraneous padding, note that there's another half that conservatively has to offset
|
||||||
the right-most column, otherwise it's clipping width won't match the other column). (#125, #2666)
|
the right-most column, otherwise it's clipping width won't match the other columns). (#125, #2666)
|
||||||
- Columns: Improved honoring alignment with various values of ItemSpacing.x and WindowPadding.x. (#125, #2666)
|
- Columns: Improved honoring alignment with various values of ItemSpacing.x and WindowPadding.x. (#125, #2666)
|
||||||
- Columns: Made GetColumnOffset() and GetColumnWidth() behave when there's no column set, consistently with
|
- Columns: Made GetColumnOffset() and GetColumnWidth() behave when there's no column set, consistently with
|
||||||
other column functions. (#2683)
|
other column functions. (#2683)
|
||||||
- InputTextMultiline: Fixed vertical scrolling tracking glitch.
|
- InputTextMultiline: Fixed vertical scrolling tracking glitch.
|
||||||
- Word-wrapping: Fixed overzealous word-wrapping when glyph edge lands exactly on the limit. Because
|
- Word-wrapping: Fixed overzealous word-wrapping when glyph edge lands exactly on the limit. Because
|
||||||
of this, auto-fitting exactly unwrapped text would make it wrap. (fixes initial 1.15 commit, 78645a7d).
|
of this, auto-fitting exactly unwrapped text would make it wrap. (fixes initial 1.15 commit, 78645a7d).
|
||||||
- Scrolling: Made mouse-wheel scrolling lock the underlying window until the mouse is moved again or
|
|
||||||
until a short delay expires (2 seconds). This allow uninterrupted scroll even if child windows are
|
|
||||||
passing under the mouse cursor. (#2604)
|
|
||||||
- Scrolling: Made it possible for mouse wheel and navigation-triggered scrolling to override a call to
|
|
||||||
SetScrollX()/SetScrollY(), making it possible to use a simpler stateless pattern for auto-scrolling:
|
|
||||||
// (Submit items..)
|
|
||||||
if (ImGui::GetScrollY() >= ImGui::GetScrollMaxY()) // Keep scrolling at the bottom if already
|
|
||||||
ImGui::SetScrollHereY(1.0f);
|
|
||||||
- Scrolling: Added SetScrollHereX(), SetScrollFromPosX() for completeness. (#1580) [@kevreco]
|
|
||||||
- Scrollbar: Avoid overlapping the opposite side when window (often a child window) is forcibly too small.
|
|
||||||
- Style: Attenuated default opacity of ImGuiCol_Separator in Classic and Light styles.
|
- Style: Attenuated default opacity of ImGuiCol_Separator in Classic and Light styles.
|
||||||
- Style: Added style.ColorButtonPosition (left/right, defaults to ImGuiDir_Right) to move the color button
|
- Style: Added style.ColorButtonPosition (left/right, defaults to ImGuiDir_Right) to move the color button
|
||||||
of ColorEdit3/ColorEdit4 functions to either side of the inputs.
|
of ColorEdit3/ColorEdit4 functions to either side of the inputs.
|
||||||
@ -164,6 +165,8 @@ Other Changes:
|
|||||||
also this type was added in 1.71 and not advertised as a public-facing feature).
|
also this type was added in 1.71 and not advertised as a public-facing feature).
|
||||||
- Fonts: binary_to_compressed_c.cpp: Display an error message if failing to open/read the input font file.
|
- Fonts: binary_to_compressed_c.cpp: Display an error message if failing to open/read the input font file.
|
||||||
- Demo: Log, Console: Using a simpler stateless pattern for auto-scrolling.
|
- Demo: Log, Console: Using a simpler stateless pattern for auto-scrolling.
|
||||||
|
- Demo: Widgets: Showing how to use the format parameter of Slider/Drag functions to display the name
|
||||||
|
of an enum value instead of the underlying integer value.
|
||||||
- Backends: DX10/DX11: Backup, clear and restore Geometry Shader is any is bound when calling renderer.
|
- Backends: DX10/DX11: Backup, clear and restore Geometry Shader is any is bound when calling renderer.
|
||||||
- Backends: DX11: Clear Hull Shader, Domain Shader, Compute Shader before rendering. Not backing/restoring them.
|
- Backends: DX11: Clear Hull Shader, Domain Shader, Compute Shader before rendering. Not backing/restoring them.
|
||||||
- Backends: OSX: Disabled default native Mac clipboard copy/paste implementation in core library (added in 1.71),
|
- Backends: OSX: Disabled default native Mac clipboard copy/paste implementation in core library (added in 1.71),
|
||||||
|
@ -3,7 +3,10 @@ dear imgui
|
|||||||
[![Build Status](https://api.travis-ci.com/ocornut/imgui.svg?branch=master)](https://travis-ci.com/ocornut/imgui)
|
[![Build Status](https://api.travis-ci.com/ocornut/imgui.svg?branch=master)](https://travis-ci.com/ocornut/imgui)
|
||||||
[![Coverity Status](https://scan.coverity.com/projects/4720/badge.svg)](https://scan.coverity.com/projects/4720)
|
[![Coverity Status](https://scan.coverity.com/projects/4720/badge.svg)](https://scan.coverity.com/projects/4720)
|
||||||
|
|
||||||
_(This library is free as in freedom, but needs your support to sustain its development. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using dear imgui, please consider reaching out for invoiced financial support. If you are an individual using dear imgui, please consider donating via Patreon or PayPal.)_
|
_(This library is available under a free and permissive licence, but needs financial support to sustain its continued improvements. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using dear imgui, please consider reaching out. If you are an individual using dear imgui, please consider supporting the project via Patreon or PayPal.)_
|
||||||
|
|
||||||
|
Businesses: support continued development via invoiced technical support & maintenance contracts:
|
||||||
|
<br> _E-mail: omarcornut at gmail dot com_
|
||||||
|
|
||||||
Individuals/hobbyists: support continued maintenance and development via the monthly Patreon:
|
Individuals/hobbyists: support continued maintenance and development via the monthly Patreon:
|
||||||
<br> [![Patreon](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/patreon_01.png)](http://www.patreon.com/imgui)
|
<br> [![Patreon](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/patreon_01.png)](http://www.patreon.com/imgui)
|
||||||
@ -11,9 +14,6 @@ Individuals/hobbyists: support continued maintenance and development via the mon
|
|||||||
Individuals/hobbyists: support continued maintenance and development via PayPal:
|
Individuals/hobbyists: support continued maintenance and development via PayPal:
|
||||||
<br> [![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WGHNC6MBFLZ2S)
|
<br> [![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WGHNC6MBFLZ2S)
|
||||||
|
|
||||||
Businesses: support continued maintenance and development via support contracts or sponsoring:
|
|
||||||
<br> _E-mail: omarcornut at gmail dot com_
|
|
||||||
|
|
||||||
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).
|
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).
|
||||||
|
|
||||||
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 normally found in more high-level libraries.
|
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 normally found in more high-level libraries.
|
||||||
@ -290,7 +290,10 @@ Support dear imgui
|
|||||||
|
|
||||||
**How can I help financing further development of Dear ImGui?**
|
**How can I help financing further development of Dear ImGui?**
|
||||||
|
|
||||||
Your contributions are keeping this project alive. The library is free as in freedom, but continued maintenance and development are a full-time endeavor. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using dear imgui, please consider reaching out for financial support. If you are an individual using dear imgui, please consider donating via Patreon or PayPal. Thank you!
|
Your contributions are keeping this project alive. The library is available under a free and permissive licence, but continued maintenance and development are a full-time endeavor and I would like to grow the team. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using dear imgui, please consider reaching out for invoiced technical support and maintenance contracts. If you are an individual using dear imgui, please consider supporting the project via Patreon or PayPal. Thank you!
|
||||||
|
|
||||||
|
Businesses: support continued development via invoiced technical support & maintenance contracts:
|
||||||
|
<br> _E-mail: omarcornut at gmail dot com_
|
||||||
|
|
||||||
Individuals/hobbyists: support continued maintenance and development via the monthly Patreon:
|
Individuals/hobbyists: support continued maintenance and development via the monthly Patreon:
|
||||||
<br> [![Patreon](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/patreon_01.png)](http://www.patreon.com/imgui)
|
<br> [![Patreon](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/patreon_01.png)](http://www.patreon.com/imgui)
|
||||||
@ -298,22 +301,20 @@ Individuals/hobbyists: support continued maintenance and development via the mon
|
|||||||
Individuals/hobbyists: support continued maintenance and development via PayPal:
|
Individuals/hobbyists: support continued maintenance and development via PayPal:
|
||||||
<br> [![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WGHNC6MBFLZ2S)
|
<br> [![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WGHNC6MBFLZ2S)
|
||||||
|
|
||||||
Businesses: support continued maintenance and development via support contracts or sponsoring:
|
|
||||||
<br> _E-mail: omarcornut at gmail dot com_
|
|
||||||
|
|
||||||
Ongoing dear imgui development is financially supported by users and private sponsors, recently:
|
Ongoing dear imgui development is financially supported by users and private sponsors, recently:
|
||||||
|
|
||||||
**Platinum-chocolate sponsors**
|
**Platinum-chocolate sponsors**
|
||||||
- **Blizzard Entertainment**.
|
- Blizzard Entertainment
|
||||||
|
- Google
|
||||||
|
|
||||||
**Double-chocolate sponsors**
|
**Double-chocolate sponsors**
|
||||||
- Media Molecule, Mobigame, Aras Pranckevičius, Greggman, DotEmu, Nadeo, Supercell, Runner, Aiden Koss, Kylotonn.
|
- Media Molecule, Mobigame, Aras Pranckevičius, Greggman, DotEmu, Nadeo, Supercell, Runner, Aiden Koss, Kylotonn.
|
||||||
|
|
||||||
**Salty caramel supporters**
|
**Salty caramel supporters**
|
||||||
- Remedy Entertainment, Recognition Robotics, ikrima, Geoffrey Evans, Mercury Labs, Singularity Demo Group, Lionel Landwerlin, Ron Gilbert, Brandon Townsend, Nikhil Deshpande, Cort Stratton, drudru, Harfang 3D, Jeff Roberts, Rainway inc, Ondra Voves, Mesh Consultants, Unit 2 Games, Neil Bickford.
|
- Remedy Entertainment, Recognition Robotics, ikrima, Geoffrey Evans, Mercury Labs, Singularity Demo Group, Lionel Landwerlin, Ron Gilbert, Brandon Townsend, Morten Skaaning, Nikhil Deshpande, Cort Stratton, drudru, Harfang 3D, Jeff Roberts, Rainway inc, Ondra Voves, Mesh Consultants, Unit 2 Games, Neil Bickford.
|
||||||
|
|
||||||
**Caramel supporters**
|
**Caramel supporters**
|
||||||
- Jerome Lanquetot, Daniel Collin, Ctrl Alt Ninja, Neil Henning, Neil Blakey-Milner, Aleksei, NeiloGD, Eric, Game Atelier, Vincent Hamm, Colin Riley, Sergio Gonzales, Andrew Berridge, Roy Eltham, Game Preservation Society, Josh Faust, Martin Donlon, Codecat, Doug McNabb, Emmanuel Julien, Guillaume Chereau, Jeffrey Slutter, Jeremiah Deckard, r-lyeh, Nekith, Joshua Fisher, Malte Hoffmann, Mustafa Karaalioglu, Merlyn Morgan-Graham, Per Vognsen, Fabian Giesen, Jan Staubach, Matt Hargett, John Shearer, Jesse Chounard, kingcoopa, Jonas Bernemann, Johan Andersson, Michael Labbe, Tomasz Golebiowski, Louis Schnellbach, Jimmy Andrews, Bojan Endrovski, Robin Berg Pettersen, Rachel Crawford, Andrew Johnson, Sean Hunter, Jordan Mellow, Nefarius Software Solutions, Laura Wieme, Robert Nix, Mick Honey, Steven Kah Hien Wong, Bartosz Bielecki, Oscar Penas, A M, Liam Moynihan, Artometa, Mark Lee, Dimitri Diakopoulos, Pete Goodwin, Johnathan Roatch, nyu lea, Oswald Hurlem, Semyon Smelyanskiy, Le Bach, Jeong MyeongSoo, Chris Matthews, Astrofra.
|
- Jerome Lanquetot, Daniel Collin, Ctrl Alt Ninja, Neil Henning, Neil Blakey-Milner, Aleksei, NeiloGD, Eric, Game Atelier, Vincent Hamm, Colin Riley, Sergio Gonzales, Andrew Berridge, Roy Eltham, Game Preservation Society, Josh Faust, Martin Donlon, Codecat, Doug McNabb, Emmanuel Julien, Guillaume Chereau, Jeffrey Slutter, Jeremiah Deckard, r-lyeh, Nekith, Joshua Fisher, Malte Hoffmann, Mustafa Karaalioglu, Merlyn Morgan-Graham, Per Vognsen, Fabian Giesen, Jan Staubach, Matt Hargett, John Shearer, Jesse Chounard, kingcoopa, Jonas Bernemann, Johan Andersson, Michael Labbe, Tomasz Golebiowski, Louis Schnellbach, Jimmy Andrews, Bojan Endrovski, Robin Berg Pettersen, Rachel Crawford, Andrew Johnson, Sean Hunter, Jordan Mellow, Nefarius Software Solutions, Laura Wieme, Robert Nix, Mick Honey, Steven Kah Hien Wong, Bartosz Bielecki, Oscar Penas, A M, Liam Moynihan, Artometa, Mark Lee, Dimitri Diakopoulos, Pete Goodwin, Johnathan Roatch, nyu lea, Oswald Hurlem, Semyon Smelyanskiy, Le Bach, Jeong MyeongSoo, Chris Matthews, Astrofra, Frederik De Bleser, Anticrisis.
|
||||||
|
|
||||||
And all other past and present supporters; THANK YOU!
|
And all other past and present supporters; THANK YOU!
|
||||||
(Please contact me if you would like to be added or removed from this list)
|
(Please contact me if you would like to be added or removed from this list)
|
||||||
|
@ -89,6 +89,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
|
|||||||
- input text: decorrelate layout from inputs - e.g. what's the easiest way to implement a nice IP/Mac address input editor?
|
- input text: decorrelate layout from inputs - e.g. what's the easiest way to implement a nice IP/Mac address input editor?
|
||||||
- input text: global callback system so user can plug in an expression evaluator easily. (#1691)
|
- input text: global callback system so user can plug in an expression evaluator easily. (#1691)
|
||||||
- input text: force scroll to end or scroll to a given line/contents (so user can implement a log or a search feature)
|
- input text: force scroll to end or scroll to a given line/contents (so user can implement a log or a search feature)
|
||||||
|
- input text: a way to preview completion (e.g. disabled text completing from the cursor)
|
||||||
- input text: a side bar that could e.g. preview where errors are. probably left to the user to draw but we'd need to give them the info there.
|
- input text: a side bar that could e.g. preview where errors are. probably left to the user to draw but we'd need to give them the info there.
|
||||||
- input text: a way for the user to provide syntax coloring.
|
- input text: a way for the user to provide syntax coloring.
|
||||||
- input text: Shift+TAB with ImGuiInputTextFlags_AllowTabInput could eat preceding blanks, up to tab_count.
|
- input text: Shift+TAB with ImGuiInputTextFlags_AllowTabInput could eat preceding blanks, up to tab_count.
|
||||||
@ -122,6 +123,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
|
|||||||
- columns: option to alternate background colors on odd/even scanlines.
|
- columns: option to alternate background colors on odd/even scanlines.
|
||||||
- columns: allow columns to recurse.
|
- columns: allow columns to recurse.
|
||||||
- columns: allow a same columns set to be interrupted by e.g. CollapsingHeader and resume with columns in sync when moving them.
|
- columns: allow a same columns set to be interrupted by e.g. CollapsingHeader and resume with columns in sync when moving them.
|
||||||
|
- columns: sizing is lossy when columns width is very small (default width may turn negative etc.)
|
||||||
- columns: separator function or parameter that works within the column (currently Separator() bypass all columns) (#125)
|
- columns: separator function or parameter that works within the column (currently Separator() bypass all columns) (#125)
|
||||||
- columns: flag to add horizontal separator above/below?
|
- columns: flag to add horizontal separator above/below?
|
||||||
- columns/layout: setup minimum line height (equivalent of automatically calling AlignFirstTextHeightToWidgets)
|
- columns/layout: setup minimum line height (equivalent of automatically calling AlignFirstTextHeightToWidgets)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
dear imgui, v1.72 WIP
|
dear imgui, v1.72
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
examples/README.txt
|
examples/README.txt
|
||||||
(This is the README file for the examples/ folder. See docs/ for more documentation)
|
(This is the README file for the examples/ folder. See docs/ for more documentation)
|
||||||
|
21
imgui.cpp
21
imgui.cpp
@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.72 WIP
|
// dear imgui, v1.72
|
||||||
// (main code and documentation)
|
// (main code and documentation)
|
||||||
|
|
||||||
// Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code.
|
// Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code.
|
||||||
@ -4779,15 +4779,23 @@ bool ImGui::IsMouseDoubleClicked(int button)
|
|||||||
return g.IO.MouseDoubleClicked[button];
|
return g.IO.MouseDoubleClicked[button];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [Internal] This doesn't test if the button is presed
|
||||||
|
bool ImGui::IsMouseDragPastThreshold(int button, float lock_threshold)
|
||||||
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown));
|
||||||
|
if (lock_threshold < 0.0f)
|
||||||
|
lock_threshold = g.IO.MouseDragThreshold;
|
||||||
|
return g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold;
|
||||||
|
}
|
||||||
|
|
||||||
bool ImGui::IsMouseDragging(int button, float lock_threshold)
|
bool ImGui::IsMouseDragging(int button, float lock_threshold)
|
||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown));
|
IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown));
|
||||||
if (!g.IO.MouseDown[button])
|
if (!g.IO.MouseDown[button])
|
||||||
return false;
|
return false;
|
||||||
if (lock_threshold < 0.0f)
|
return IsMouseDragPastThreshold(button, lock_threshold);
|
||||||
lock_threshold = g.IO.MouseDragThreshold;
|
|
||||||
return g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImVec2 ImGui::GetMousePos()
|
ImVec2 ImGui::GetMousePos()
|
||||||
@ -8901,7 +8909,7 @@ static void ImGui::NavUpdate()
|
|||||||
// Update Keyboard->Nav inputs mapping
|
// Update Keyboard->Nav inputs mapping
|
||||||
if (nav_keyboard_active)
|
if (nav_keyboard_active)
|
||||||
{
|
{
|
||||||
#define NAV_MAP_KEY(_KEY, _NAV_INPUT) if (IsKeyDown(g.IO.KeyMap[_KEY])) { g.IO.NavInputs[_NAV_INPUT] = 1.0f; g.NavInputSource = ImGuiInputSource_NavKeyboard; }
|
#define NAV_MAP_KEY(_KEY, _NAV_INPUT) do { if (IsKeyDown(g.IO.KeyMap[_KEY])) { g.IO.NavInputs[_NAV_INPUT] = 1.0f; g.NavInputSource = ImGuiInputSource_NavKeyboard; } } while (0)
|
||||||
NAV_MAP_KEY(ImGuiKey_Space, ImGuiNavInput_Activate );
|
NAV_MAP_KEY(ImGuiKey_Space, ImGuiNavInput_Activate );
|
||||||
NAV_MAP_KEY(ImGuiKey_Enter, ImGuiNavInput_Input );
|
NAV_MAP_KEY(ImGuiKey_Enter, ImGuiNavInput_Input );
|
||||||
NAV_MAP_KEY(ImGuiKey_Escape, ImGuiNavInput_Cancel );
|
NAV_MAP_KEY(ImGuiKey_Escape, ImGuiNavInput_Cancel );
|
||||||
@ -14546,6 +14554,9 @@ void ImGui::ShowMetricsWindow(bool* p_open)
|
|||||||
if (!node_open)
|
if (!node_open)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (window && !window->WasActive)
|
||||||
|
ImGui::Text("(Note: owning Window is inactive: DrawList is not being rendered!)");
|
||||||
|
|
||||||
int elem_offset = 0;
|
int elem_offset = 0;
|
||||||
for (const ImDrawCmd* pcmd = draw_list->CmdBuffer.begin(); pcmd < draw_list->CmdBuffer.end(); elem_offset += pcmd->ElemCount, pcmd++)
|
for (const ImDrawCmd* pcmd = draw_list->CmdBuffer.begin(); pcmd < draw_list->CmdBuffer.end(); elem_offset += pcmd->ElemCount, pcmd++)
|
||||||
{
|
{
|
||||||
|
8
imgui.h
8
imgui.h
@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.72 WIP
|
// dear imgui, v1.72
|
||||||
// (headers)
|
// (headers)
|
||||||
|
|
||||||
// See imgui.cpp file for documentation.
|
// See imgui.cpp file for documentation.
|
||||||
@ -47,8 +47,8 @@ Index of this file:
|
|||||||
|
|
||||||
// Version
|
// Version
|
||||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens)
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens)
|
||||||
#define IMGUI_VERSION "1.72 WIP"
|
#define IMGUI_VERSION "1.72"
|
||||||
#define IMGUI_VERSION_NUM 17102
|
#define IMGUI_VERSION_NUM 17200
|
||||||
#define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx))
|
#define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx))
|
||||||
#define IMGUI_HAS_VIEWPORT 1 // Viewport WIP branch
|
#define IMGUI_HAS_VIEWPORT 1 // Viewport WIP branch
|
||||||
#define IMGUI_HAS_DOCK 1 // Docking WIP branch
|
#define IMGUI_HAS_DOCK 1 // Docking WIP branch
|
||||||
@ -339,7 +339,7 @@ namespace ImGui
|
|||||||
IMGUI_API void PushItemWidth(float item_width); // set width of items for common large "item+label" widgets. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side). 0.0f = default to ~2/3 of windows width,
|
IMGUI_API void PushItemWidth(float item_width); // set width of items for common large "item+label" widgets. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side). 0.0f = default to ~2/3 of windows width,
|
||||||
IMGUI_API void PopItemWidth();
|
IMGUI_API void PopItemWidth();
|
||||||
IMGUI_API void SetNextItemWidth(float item_width); // set width of the _next_ common large "item+label" widget. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side)
|
IMGUI_API void SetNextItemWidth(float item_width); // set width of the _next_ common large "item+label" widget. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side)
|
||||||
IMGUI_API float CalcItemWidth(); // width of item given pushed settings and current cursor position
|
IMGUI_API float CalcItemWidth(); // width of item given pushed settings and current cursor position. NOT necessarily the width of last item unlike most 'Item' functions.
|
||||||
IMGUI_API void PushTextWrapPos(float wrap_local_pos_x = 0.0f); // word-wrapping for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space
|
IMGUI_API void PushTextWrapPos(float wrap_local_pos_x = 0.0f); // word-wrapping for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space
|
||||||
IMGUI_API void PopTextWrapPos();
|
IMGUI_API void PopTextWrapPos();
|
||||||
IMGUI_API void PushAllowKeyboardFocus(bool allow_keyboard_focus); // allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets
|
IMGUI_API void PushAllowKeyboardFocus(bool allow_keyboard_focus); // allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.72 WIP
|
// dear imgui, v1.72
|
||||||
// (demo code)
|
// (demo code)
|
||||||
|
|
||||||
// Message to the person tempted to delete this file when integrating Dear ImGui into their code base:
|
// Message to the person tempted to delete this file when integrating Dear ImGui into their code base:
|
||||||
@ -594,8 +594,19 @@ static void ShowDemoWindowWidgets()
|
|||||||
static float f1=0.123f, f2=0.0f;
|
static float f1=0.123f, f2=0.0f;
|
||||||
ImGui::SliderFloat("slider float", &f1, 0.0f, 1.0f, "ratio = %.3f");
|
ImGui::SliderFloat("slider float", &f1, 0.0f, 1.0f, "ratio = %.3f");
|
||||||
ImGui::SliderFloat("slider float (curve)", &f2, -10.0f, 10.0f, "%.4f", 2.0f);
|
ImGui::SliderFloat("slider float (curve)", &f2, -10.0f, 10.0f, "%.4f", 2.0f);
|
||||||
|
|
||||||
static float angle = 0.0f;
|
static float angle = 0.0f;
|
||||||
ImGui::SliderAngle("slider angle", &angle);
|
ImGui::SliderAngle("slider angle", &angle);
|
||||||
|
|
||||||
|
// Using the format string to display a name instead of an integer.
|
||||||
|
// Here we completely omit '%d' from the format string, so it'll only display a name.
|
||||||
|
// This technique can also be used with DragInt().
|
||||||
|
enum Element { Element_Fire, Element_Earth, Element_Air, Element_Water, Element_COUNT };
|
||||||
|
const char* element_names[Element_COUNT] = { "Fire", "Earth", "Air", "Water" };
|
||||||
|
static int current_element = Element_Fire;
|
||||||
|
const char* current_element_name = (current_element >= 0 && current_element < Element_COUNT) ? element_names[current_element] : "Unknown";
|
||||||
|
ImGui::SliderInt("slider enum", ¤t_element, 0, Element_COUNT - 1, current_element_name);
|
||||||
|
ImGui::SameLine(); HelpMarker("Using the format string parameter to display a name instead of the underlying integer.");
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -1840,9 +1851,9 @@ static void ShowDemoWindowLayout()
|
|||||||
ImGui::Text("SetNextItemWidth/PushItemWidth(-1)");
|
ImGui::Text("SetNextItemWidth/PushItemWidth(-1)");
|
||||||
ImGui::SameLine(); HelpMarker("Align to right edge");
|
ImGui::SameLine(); HelpMarker("Align to right edge");
|
||||||
ImGui::PushItemWidth(-1);
|
ImGui::PushItemWidth(-1);
|
||||||
ImGui::DragFloat("float##5a", &f);
|
ImGui::DragFloat("##float5a", &f);
|
||||||
ImGui::DragFloat("float##5b", &f);
|
ImGui::DragFloat("##float5b", &f);
|
||||||
ImGui::DragFloat("float##5c", &f);
|
ImGui::DragFloat("##float5c", &f);
|
||||||
ImGui::PopItemWidth();
|
ImGui::PopItemWidth();
|
||||||
|
|
||||||
ImGui::TreePop();
|
ImGui::TreePop();
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.72 WIP
|
// dear imgui, v1.72
|
||||||
// (drawing and font code)
|
// (drawing and font code)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.72 WIP
|
// dear imgui, v1.72
|
||||||
// (internal structures/api)
|
// (internal structures/api)
|
||||||
|
|
||||||
// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility!
|
// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility!
|
||||||
@ -1754,6 +1754,7 @@ namespace ImGui
|
|||||||
IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, const ImRect& rect_rel);
|
IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, const ImRect& rect_rel);
|
||||||
|
|
||||||
// Inputs
|
// Inputs
|
||||||
|
inline bool IsMouseDragPastThreshold(int button, float lock_threshold = -1.0f);
|
||||||
inline bool IsKeyPressedMap(ImGuiKey key, bool repeat = true) { const int key_index = GImGui->IO.KeyMap[key]; return (key_index >= 0) ? IsKeyPressed(key_index, repeat) : false; }
|
inline bool IsKeyPressedMap(ImGuiKey key, bool repeat = true) { const int key_index = GImGui->IO.KeyMap[key]; return (key_index >= 0) ? IsKeyPressed(key_index, repeat) : false; }
|
||||||
inline bool IsNavInputDown(ImGuiNavInput n) { return GImGui->IO.NavInputs[n] > 0.0f; }
|
inline bool IsNavInputDown(ImGuiNavInput n) { return GImGui->IO.NavInputs[n] > 0.0f; }
|
||||||
inline bool IsNavInputPressed(ImGuiNavInput n, ImGuiInputReadMode mode) { return GetNavInputAmount(n, mode) > 0.0f; }
|
inline bool IsNavInputPressed(ImGuiNavInput n, ImGuiInputReadMode mode) { return GetNavInputAmount(n, mode) > 0.0f; }
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// dear imgui, v1.72 WIP
|
// dear imgui, v1.72
|
||||||
// (widgets code)
|
// (widgets code)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dear imgui, v1.72 WIP
|
dear imgui, v1.72
|
||||||
(Font Readme)
|
(Font Readme)
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user