mirror of
https://github.com/ocornut/imgui.git
synced 2025-01-18 17:24:09 +01:00
Including limits.h again to get INT_MAX, assuming previous report of missing limits.h was erroneous (#1, yes, issue ONE!)
This commit is contained in:
parent
69a29e4715
commit
0e51f91c5e
24
imgui.cpp
24
imgui.cpp
@ -611,6 +611,7 @@
|
|||||||
#include <math.h> // sqrtf, fabsf, fmodf, powf, cosf, sinf, floorf, ceilf
|
#include <math.h> // sqrtf, fabsf, fmodf, powf, cosf, sinf, floorf, ceilf
|
||||||
#include <stdlib.h> // NULL, malloc, free, qsort, atoi
|
#include <stdlib.h> // NULL, malloc, free, qsort, atoi
|
||||||
#include <stdio.h> // vsnprintf, sscanf, printf
|
#include <stdio.h> // vsnprintf, sscanf, printf
|
||||||
|
#include <limits.h> // INT_MIN, INT_MAX
|
||||||
#if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier
|
#if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier
|
||||||
#include <stddef.h> // intptr_t
|
#include <stddef.h> // intptr_t
|
||||||
#else
|
#else
|
||||||
@ -863,9 +864,6 @@ void ImGuiIO::AddInputCharactersUTF8(const char* utf8_chars)
|
|||||||
|
|
||||||
#define IM_F32_TO_INT8(_VAL) ((int)((_VAL) * 255.0f + 0.5f))
|
#define IM_F32_TO_INT8(_VAL) ((int)((_VAL) * 255.0f + 0.5f))
|
||||||
|
|
||||||
#define IM_INT_MIN (-2147483647-1)
|
|
||||||
#define IM_INT_MAX (2147483647)
|
|
||||||
|
|
||||||
// Play it nice with Windows users. Notepad in 2015 still doesn't display text data with Unix-style \n.
|
// Play it nice with Windows users. Notepad in 2015 still doesn't display text data with Unix-style \n.
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define IM_NEWLINE "\r\n"
|
#define IM_NEWLINE "\r\n"
|
||||||
@ -1645,7 +1643,7 @@ void ImGuiListClipper::End()
|
|||||||
if (ItemsCount < 0)
|
if (ItemsCount < 0)
|
||||||
return;
|
return;
|
||||||
// In theory here we should assert that ImGui::GetCursorPosY() == StartPosY + DisplayEnd * ItemsHeight, but it feels saner to just seek at the end and not assert/crash the user.
|
// In theory here we should assert that ImGui::GetCursorPosY() == StartPosY + DisplayEnd * ItemsHeight, but it feels saner to just seek at the end and not assert/crash the user.
|
||||||
if (ItemsCount < IM_INT_MAX)
|
if (ItemsCount < INT_MAX)
|
||||||
SetCursorPosYAndSetupDummyPrevLine(StartPosY + ItemsCount * ItemsHeight, ItemsHeight); // advance cursor
|
SetCursorPosYAndSetupDummyPrevLine(StartPosY + ItemsCount * ItemsHeight, ItemsHeight); // advance cursor
|
||||||
ItemsCount = -1;
|
ItemsCount = -1;
|
||||||
StepNo = 3;
|
StepNo = 3;
|
||||||
@ -1735,8 +1733,8 @@ ImGuiWindow::ImGuiWindow(const char* name)
|
|||||||
ParentWindow = NULL;
|
ParentWindow = NULL;
|
||||||
|
|
||||||
FocusIdxAllCounter = FocusIdxTabCounter = -1;
|
FocusIdxAllCounter = FocusIdxTabCounter = -1;
|
||||||
FocusIdxAllRequestCurrent = FocusIdxTabRequestCurrent = IM_INT_MAX;
|
FocusIdxAllRequestCurrent = FocusIdxTabRequestCurrent = INT_MAX;
|
||||||
FocusIdxAllRequestNext = FocusIdxTabRequestNext = IM_INT_MAX;
|
FocusIdxAllRequestNext = FocusIdxTabRequestNext = INT_MAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGuiWindow::~ImGuiWindow()
|
ImGuiWindow::~ImGuiWindow()
|
||||||
@ -1900,7 +1898,7 @@ bool ImGui::FocusableItemRegister(ImGuiWindow* window, bool is_active, bool tab_
|
|||||||
|
|
||||||
// Process keyboard input at this point: TAB, Shift-TAB switch focus
|
// Process keyboard input at this point: TAB, Shift-TAB switch focus
|
||||||
// We can always TAB out of a widget that doesn't allow tabbing in.
|
// We can always TAB out of a widget that doesn't allow tabbing in.
|
||||||
if (tab_stop && window->FocusIdxAllRequestNext == IM_INT_MAX && window->FocusIdxTabRequestNext == IM_INT_MAX && is_active && IsKeyPressedMap(ImGuiKey_Tab))
|
if (tab_stop && window->FocusIdxAllRequestNext == INT_MAX && window->FocusIdxTabRequestNext == INT_MAX && is_active && IsKeyPressedMap(ImGuiKey_Tab))
|
||||||
{
|
{
|
||||||
// Modulo on index will be applied at the end of frame once we've got the total counter of items.
|
// Modulo on index will be applied at the end of frame once we've got the total counter of items.
|
||||||
window->FocusIdxTabRequestNext = window->FocusIdxTabCounter + (g.IO.KeyShift ? (allow_keyboard_focus ? -1 : 0) : +1);
|
window->FocusIdxTabRequestNext = window->FocusIdxTabCounter + (g.IO.KeyShift ? (allow_keyboard_focus ? -1 : 0) : +1);
|
||||||
@ -4050,10 +4048,10 @@ bool ImGui::Begin(const char* name, bool* p_open, const ImVec2& size_on_first_us
|
|||||||
window->ItemWidthDefault = (float)(int)(g.FontSize * 16.0f);
|
window->ItemWidthDefault = (float)(int)(g.FontSize * 16.0f);
|
||||||
|
|
||||||
// Prepare for focus requests
|
// Prepare for focus requests
|
||||||
window->FocusIdxAllRequestCurrent = (window->FocusIdxAllRequestNext == IM_INT_MAX || window->FocusIdxAllCounter == -1) ? IM_INT_MAX : (window->FocusIdxAllRequestNext + (window->FocusIdxAllCounter+1)) % (window->FocusIdxAllCounter+1);
|
window->FocusIdxAllRequestCurrent = (window->FocusIdxAllRequestNext == INT_MAX || window->FocusIdxAllCounter == -1) ? INT_MAX : (window->FocusIdxAllRequestNext + (window->FocusIdxAllCounter+1)) % (window->FocusIdxAllCounter+1);
|
||||||
window->FocusIdxTabRequestCurrent = (window->FocusIdxTabRequestNext == IM_INT_MAX || window->FocusIdxTabCounter == -1) ? IM_INT_MAX : (window->FocusIdxTabRequestNext + (window->FocusIdxTabCounter+1)) % (window->FocusIdxTabCounter+1);
|
window->FocusIdxTabRequestCurrent = (window->FocusIdxTabRequestNext == INT_MAX || window->FocusIdxTabCounter == -1) ? INT_MAX : (window->FocusIdxTabRequestNext + (window->FocusIdxTabCounter+1)) % (window->FocusIdxTabCounter+1);
|
||||||
window->FocusIdxAllCounter = window->FocusIdxTabCounter = -1;
|
window->FocusIdxAllCounter = window->FocusIdxTabCounter = -1;
|
||||||
window->FocusIdxAllRequestNext = window->FocusIdxTabRequestNext = IM_INT_MAX;
|
window->FocusIdxAllRequestNext = window->FocusIdxTabRequestNext = INT_MAX;
|
||||||
|
|
||||||
// Apply scrolling
|
// Apply scrolling
|
||||||
if (window->ScrollTarget.x < FLT_MAX)
|
if (window->ScrollTarget.x < FLT_MAX)
|
||||||
@ -5147,7 +5145,7 @@ void ImGui::SetKeyboardFocusHere(int offset)
|
|||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
window->FocusIdxAllRequestNext = window->FocusIdxAllCounter + 1 + offset;
|
window->FocusIdxAllRequestNext = window->FocusIdxAllCounter + 1 + offset;
|
||||||
window->FocusIdxTabRequestNext = IM_INT_MAX;
|
window->FocusIdxTabRequestNext = INT_MAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImGui::SetStateStorage(ImGuiStorage* tree)
|
void ImGui::SetStateStorage(ImGuiStorage* tree)
|
||||||
@ -6936,10 +6934,10 @@ bool ImGui::DragIntRange2(const char* label, int* v_current_min, int* v_current_
|
|||||||
ImGui::BeginGroup();
|
ImGui::BeginGroup();
|
||||||
PushMultiItemsWidths(2);
|
PushMultiItemsWidths(2);
|
||||||
|
|
||||||
bool value_changed = ImGui::DragInt("##min", v_current_min, v_speed, (v_min >= v_max) ? IM_INT_MIN : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format);
|
bool value_changed = ImGui::DragInt("##min", v_current_min, v_speed, (v_min >= v_max) ? INT_MIN : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format);
|
||||||
ImGui::PopItemWidth();
|
ImGui::PopItemWidth();
|
||||||
ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
|
ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
|
||||||
value_changed |= ImGui::DragInt("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? IM_INT_MAX : v_max, display_format_max ? display_format_max : display_format);
|
value_changed |= ImGui::DragInt("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? INT_MAX : v_max, display_format_max ? display_format_max : display_format);
|
||||||
ImGui::PopItemWidth();
|
ImGui::PopItemWidth();
|
||||||
ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
|
ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user