mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-24 20:57:00 +00:00
BeginChild: Upgraded 'bool border = true' parameter to use a ImGuiChildFlags type and the ImGuiChildFlags_Border value. (toward #1666, #1496, #1395, #1710)
This commit is contained in:
parent
88fec09715
commit
7713c29258
@ -42,6 +42,16 @@ HOW TO UPDATE?
|
|||||||
|
|
||||||
Breaking changes:
|
Breaking changes:
|
||||||
|
|
||||||
|
- BeginChild(): Upgraded 'bool border = false' parameter to 'ImGuiChildFlags flags'.
|
||||||
|
Added ImGuiChildFlags_Border value. As with our prior "bool-to-flags" API updates,
|
||||||
|
the ImGuiChildFlags_Border value is guaranteed to be == true forever to ensure a
|
||||||
|
smoother transition, meaning all existing calls will still work.
|
||||||
|
If you want to neatly transition your call sites:
|
||||||
|
Before: BeginChild("Name", size, true)
|
||||||
|
After: BeginChild("Name", size, ImGuiChildFlags_Border)
|
||||||
|
Before: BeginChild("Name", size, false)
|
||||||
|
After: BeginChild("Name", size) or BeginChild("Name", 0) or BeginChild("Name", size, ImGuiChildFlags_None)
|
||||||
|
Kept inline redirection function with strongly typed bool versions (will obsolete).
|
||||||
- Debug Tools: Renamed ShowStackToolWindow() ("Stack Tool") to ShowIDStackToolWindow() ("ID Stack Tool"),
|
- Debug Tools: Renamed ShowStackToolWindow() ("Stack Tool") to ShowIDStackToolWindow() ("ID Stack Tool"),
|
||||||
as earlier name was misleading. Kept inline redirection function. (#4631)
|
as earlier name was misleading. Kept inline redirection function. (#4631)
|
||||||
- IO: Removed io.MetricsActiveAllocations introduced in 1.63, was displayed in Metrics and unlikely to
|
- IO: Removed io.MetricsActiveAllocations introduced in 1.63, was displayed in Metrics and unlikely to
|
||||||
@ -68,6 +78,7 @@ Breaking changes:
|
|||||||
Other changes:
|
Other changes:
|
||||||
|
|
||||||
- Windows:
|
- Windows:
|
||||||
|
- BeginChild(): Added ImGuiChildFlags_Border as a replacement for 'bool border = true' parameter.
|
||||||
- BeginChild(): Internal name used by child windows now omits the hash/id if the child
|
- BeginChild(): Internal name used by child windows now omits the hash/id if the child
|
||||||
window is submitted in root of id stack of parent window. Makes debugging/metrics easier
|
window is submitted in root of id stack of parent window. Makes debugging/metrics easier
|
||||||
and shorter to read in many cases.
|
and shorter to read in many cases.
|
||||||
|
24
imgui.cpp
24
imgui.cpp
@ -424,6 +424,11 @@ CODE
|
|||||||
When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
|
When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
|
||||||
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
|
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
|
||||||
|
|
||||||
|
- 2023/11/02 (1.90.0) - BeginChild: upgraded 'bool border = true' parameter to 'ImGuiChildFlags flags' type, added ImGuiChildFlags_Border equivalent. As with our prior "bool-to-flags" API updates, the ImGuiChildFlags_Border value is guaranteed to be == true forever to ensure a smoother transition, meaning all existing calls will still work.
|
||||||
|
- old: BeginChild("Name", size, true)
|
||||||
|
- new: BeginChild("Name", size, ImGuiChildFlags_Border)
|
||||||
|
- old: BeginChild("Name", size, false)
|
||||||
|
- new: BeginChild("Name", size) or BeginChild("Name", 0) or BeginChild("Name", size, ImGuiChildFlags_None)
|
||||||
- 2023/09/27 (1.90.0) - io: removed io.MetricsActiveAllocations introduced in 1.63. Same as 'g.DebugMemAllocCount - g.DebugMemFreeCount' (still displayed in Metrics, unlikely to be accessed by end-user).
|
- 2023/09/27 (1.90.0) - io: removed io.MetricsActiveAllocations introduced in 1.63. Same as 'g.DebugMemAllocCount - g.DebugMemFreeCount' (still displayed in Metrics, unlikely to be accessed by end-user).
|
||||||
- 2023/09/26 (1.90.0) - debug tools: Renamed ShowStackToolWindow() ("Stack Tool") to ShowIDStackToolWindow() ("ID Stack Tool"), as earlier name was misleading. Kept inline redirection function. (#4631)
|
- 2023/09/26 (1.90.0) - debug tools: Renamed ShowStackToolWindow() ("Stack Tool") to ShowIDStackToolWindow() ("ID Stack Tool"), as earlier name was misleading. Kept inline redirection function. (#4631)
|
||||||
- 2023/09/15 (1.90.0) - ListBox, Combo: changed signature of "name getter" callback in old one-liner ListBox()/Combo() apis. kept inline redirection function (will obsolete).
|
- 2023/09/15 (1.90.0) - ListBox, Combo: changed signature of "name getter" callback in old one-liner ListBox()/Combo() apis. kept inline redirection function (will obsolete).
|
||||||
@ -5414,22 +5419,23 @@ ImVec2 ImGui::GetItemRectSize()
|
|||||||
return g.LastItemData.Rect.GetSize();
|
return g.LastItemData.Rect.GetSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ImGui::BeginChild(const char* str_id, const ImVec2& size_arg, bool border, ImGuiWindowFlags window_flags)
|
bool ImGui::BeginChild(const char* str_id, const ImVec2& size_arg, ImGuiChildFlags child_flags, ImGuiWindowFlags window_flags)
|
||||||
{
|
{
|
||||||
ImGuiID id = GetCurrentWindow()->GetID(str_id);
|
ImGuiID id = GetCurrentWindow()->GetID(str_id);
|
||||||
return BeginChildEx(str_id, id, size_arg, border, window_flags);
|
return BeginChildEx(str_id, id, size_arg, child_flags, window_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ImGui::BeginChild(ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags window_flags)
|
bool ImGui::BeginChild(ImGuiID id, const ImVec2& size_arg, ImGuiChildFlags child_flags, ImGuiWindowFlags window_flags)
|
||||||
{
|
{
|
||||||
IM_ASSERT(id != 0);
|
return BeginChildEx(NULL, id, size_arg, child_flags, window_flags);
|
||||||
return BeginChildEx(NULL, id, size_arg, border, window_flags);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ImGui::BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags window_flags)
|
bool ImGui::BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, ImGuiChildFlags child_flags, ImGuiWindowFlags window_flags)
|
||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
ImGuiWindow* parent_window = g.CurrentWindow;
|
ImGuiWindow* parent_window = g.CurrentWindow;
|
||||||
|
IM_ASSERT(id != 0);
|
||||||
|
|
||||||
window_flags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_ChildWindow;
|
window_flags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_ChildWindow;
|
||||||
window_flags |= (parent_window->Flags & ImGuiWindowFlags_NoMove); // Inherit the NoMove flag
|
window_flags |= (parent_window->Flags & ImGuiWindowFlags_NoMove); // Inherit the NoMove flag
|
||||||
|
|
||||||
@ -5452,7 +5458,7 @@ bool ImGui::BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, b
|
|||||||
ImFormatStringToTempBuffer(&temp_window_name, NULL, "%s/%08X", parent_window->Name, id);
|
ImFormatStringToTempBuffer(&temp_window_name, NULL, "%s/%08X", parent_window->Name, id);
|
||||||
|
|
||||||
const float backup_border_size = g.Style.ChildBorderSize;
|
const float backup_border_size = g.Style.ChildBorderSize;
|
||||||
if (!border)
|
if ((child_flags & ImGuiChildFlags_Border) == 0)
|
||||||
g.Style.ChildBorderSize = 0.0f;
|
g.Style.ChildBorderSize = 0.0f;
|
||||||
|
|
||||||
// Begin into window
|
// Begin into window
|
||||||
@ -5532,7 +5538,7 @@ bool ImGui::BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags ext
|
|||||||
PushStyleVar(ImGuiStyleVar_ChildRounding, style.FrameRounding);
|
PushStyleVar(ImGuiStyleVar_ChildRounding, style.FrameRounding);
|
||||||
PushStyleVar(ImGuiStyleVar_ChildBorderSize, style.FrameBorderSize);
|
PushStyleVar(ImGuiStyleVar_ChildBorderSize, style.FrameBorderSize);
|
||||||
PushStyleVar(ImGuiStyleVar_WindowPadding, style.FramePadding);
|
PushStyleVar(ImGuiStyleVar_WindowPadding, style.FramePadding);
|
||||||
bool ret = BeginChild(id, size, true, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysUseWindowPadding | extra_flags);
|
bool ret = BeginChild(id, size, ImGuiChildFlags_Border, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysUseWindowPadding | extra_flags);
|
||||||
PopStyleVar(3);
|
PopStyleVar(3);
|
||||||
PopStyleColor();
|
PopStyleColor();
|
||||||
return ret;
|
return ret;
|
||||||
@ -14787,7 +14793,7 @@ void ImGui::ShowDebugLogWindow(bool* p_open)
|
|||||||
SameLine();
|
SameLine();
|
||||||
if (SmallButton("Copy"))
|
if (SmallButton("Copy"))
|
||||||
SetClipboardText(g.DebugLogBuf.c_str());
|
SetClipboardText(g.DebugLogBuf.c_str());
|
||||||
BeginChild("##log", ImVec2(0.0f, 0.0f), true, ImGuiWindowFlags_AlwaysVerticalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar);
|
BeginChild("##log", ImVec2(0.0f, 0.0f), ImGuiChildFlags_Border, ImGuiWindowFlags_AlwaysVerticalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar);
|
||||||
|
|
||||||
ImGuiListClipper clipper;
|
ImGuiListClipper clipper;
|
||||||
clipper.Begin(g.DebugLogIndex.size());
|
clipper.Begin(g.DebugLogIndex.size());
|
||||||
|
17
imgui.h
17
imgui.h
@ -24,7 +24,7 @@
|
|||||||
// Library Version
|
// Library Version
|
||||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
||||||
#define IMGUI_VERSION "1.90 WIP"
|
#define IMGUI_VERSION "1.90 WIP"
|
||||||
#define IMGUI_VERSION_NUM 18996
|
#define IMGUI_VERSION_NUM 18997
|
||||||
#define IMGUI_HAS_TABLE
|
#define IMGUI_HAS_TABLE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -191,6 +191,7 @@ typedef int ImDrawListFlags; // -> enum ImDrawListFlags_ // Flags: f
|
|||||||
typedef int ImFontAtlasFlags; // -> enum ImFontAtlasFlags_ // Flags: for ImFontAtlas build
|
typedef int ImFontAtlasFlags; // -> enum ImFontAtlasFlags_ // Flags: for ImFontAtlas build
|
||||||
typedef int ImGuiBackendFlags; // -> enum ImGuiBackendFlags_ // Flags: for io.BackendFlags
|
typedef int ImGuiBackendFlags; // -> enum ImGuiBackendFlags_ // Flags: for io.BackendFlags
|
||||||
typedef int ImGuiButtonFlags; // -> enum ImGuiButtonFlags_ // Flags: for InvisibleButton()
|
typedef int ImGuiButtonFlags; // -> enum ImGuiButtonFlags_ // Flags: for InvisibleButton()
|
||||||
|
typedef int ImGuiChildFlags; // -> enum ImGuiChildFlags_ // Flags: for BeginChild()
|
||||||
typedef int ImGuiColorEditFlags; // -> enum ImGuiColorEditFlags_ // Flags: for ColorEdit4(), ColorPicker4() etc.
|
typedef int ImGuiColorEditFlags; // -> enum ImGuiColorEditFlags_ // Flags: for ColorEdit4(), ColorPicker4() etc.
|
||||||
typedef int ImGuiConfigFlags; // -> enum ImGuiConfigFlags_ // Flags: for io.ConfigFlags
|
typedef int ImGuiConfigFlags; // -> enum ImGuiConfigFlags_ // Flags: for io.ConfigFlags
|
||||||
typedef int ImGuiComboFlags; // -> enum ImGuiComboFlags_ // Flags: for BeginCombo()
|
typedef int ImGuiComboFlags; // -> enum ImGuiComboFlags_ // Flags: for BeginCombo()
|
||||||
@ -343,8 +344,8 @@ namespace ImGui
|
|||||||
// [Important: due to legacy reason, this is inconsistent with most other functions such as BeginMenu/EndMenu,
|
// [Important: due to legacy reason, this is inconsistent with most other functions such as BeginMenu/EndMenu,
|
||||||
// BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function
|
// BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function
|
||||||
// returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
|
// returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
|
||||||
IMGUI_API bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0, 0), bool border = false, ImGuiWindowFlags window_flags = 0);
|
IMGUI_API bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0, 0), ImGuiChildFlags child_flags = 0, ImGuiWindowFlags window_flags = 0);
|
||||||
IMGUI_API bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0, 0), bool border = false, ImGuiWindowFlags window_flags = 0);
|
IMGUI_API bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0, 0), ImGuiChildFlags child_flags = 0, ImGuiWindowFlags window_flags = 0);
|
||||||
IMGUI_API void EndChild();
|
IMGUI_API void EndChild();
|
||||||
|
|
||||||
// Windows Utilities
|
// Windows Utilities
|
||||||
@ -1010,6 +1011,14 @@ enum ImGuiWindowFlags_
|
|||||||
ImGuiWindowFlags_ChildMenu = 1 << 28, // Don't use! For internal use by BeginMenu()
|
ImGuiWindowFlags_ChildMenu = 1 << 28, // Don't use! For internal use by BeginMenu()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Flags for ImGui::BeginChild()
|
||||||
|
// (Legacy: bit 0 must always correspond to ImGuiChildFlags_Border to be backward compatible with old API using 'bool border'.
|
||||||
|
enum ImGuiChildFlags_
|
||||||
|
{
|
||||||
|
ImGuiChildFlags_None = 0,
|
||||||
|
ImGuiChildFlags_Border = 1 << 0, // Show an outer border and enable WindowPadding. (Important: this is always == 1 for legacy reason)
|
||||||
|
};
|
||||||
|
|
||||||
// Flags for ImGui::InputText()
|
// Flags for ImGui::InputText()
|
||||||
// (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigInputTextCursorBlink and io.ConfigInputTextEnterKeepActive)
|
// (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigInputTextCursorBlink and io.ConfigInputTextEnterKeepActive)
|
||||||
enum ImGuiInputTextFlags_
|
enum ImGuiInputTextFlags_
|
||||||
@ -3114,6 +3123,8 @@ namespace ImGui
|
|||||||
namespace ImGui
|
namespace ImGui
|
||||||
{
|
{
|
||||||
// OBSOLETED in 1.90.0 (from September 2023)
|
// OBSOLETED in 1.90.0 (from September 2023)
|
||||||
|
static inline bool BeginChild(const char* str_id, const ImVec2& size_arg, bool border, ImGuiWindowFlags window_flags) { return BeginChild(str_id, size_arg, border ? ImGuiChildFlags_Border : ImGuiChildFlags_None, window_flags); }
|
||||||
|
static inline bool BeginChild(ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags window_flags) { return BeginChild(id, size_arg, border ? ImGuiChildFlags_Border : ImGuiChildFlags_None, window_flags); }
|
||||||
static inline void ShowStackToolWindow(bool* p_open = NULL) { ShowIDStackToolWindow(p_open); }
|
static inline void ShowStackToolWindow(bool* p_open = NULL) { ShowIDStackToolWindow(p_open); }
|
||||||
IMGUI_API bool ListBox(const char* label, int* current_item, bool (*old_callback)(void* user_data, int idx, const char** out_text), void* user_data, int items_count, int height_in_items = -1);
|
IMGUI_API bool ListBox(const char* label, int* current_item, bool (*old_callback)(void* user_data, int idx, const char** out_text), void* user_data, int items_count, int height_in_items = -1);
|
||||||
IMGUI_API bool Combo(const char* label, int* current_item, bool (*old_callback)(void* user_data, int idx, const char** out_text), void* user_data, int items_count, int popup_max_height_in_items = -1);
|
IMGUI_API bool Combo(const char* label, int* current_item, bool (*old_callback)(void* user_data, int idx, const char** out_text), void* user_data, int items_count, int popup_max_height_in_items = -1);
|
||||||
|
@ -2591,7 +2591,7 @@ static void ShowDemoWindowWidgets()
|
|||||||
static bool embed_all_inside_a_child_window = false;
|
static bool embed_all_inside_a_child_window = false;
|
||||||
ImGui::Checkbox("Embed everything inside a child window for testing _RootWindow flag.", &embed_all_inside_a_child_window);
|
ImGui::Checkbox("Embed everything inside a child window for testing _RootWindow flag.", &embed_all_inside_a_child_window);
|
||||||
if (embed_all_inside_a_child_window)
|
if (embed_all_inside_a_child_window)
|
||||||
ImGui::BeginChild("outer_child", ImVec2(0, ImGui::GetFontSize() * 20.0f), true);
|
ImGui::BeginChild("outer_child", ImVec2(0, ImGui::GetFontSize() * 20.0f), ImGuiChildFlags_Border);
|
||||||
|
|
||||||
// Testing IsWindowFocused() function with its various flags.
|
// Testing IsWindowFocused() function with its various flags.
|
||||||
ImGui::BulletText(
|
ImGui::BulletText(
|
||||||
@ -2639,7 +2639,7 @@ static void ShowDemoWindowWidgets()
|
|||||||
ImGui::IsWindowHovered(ImGuiHoveredFlags_AnyWindow),
|
ImGui::IsWindowHovered(ImGuiHoveredFlags_AnyWindow),
|
||||||
ImGui::IsWindowHovered(ImGuiHoveredFlags_Stationary));
|
ImGui::IsWindowHovered(ImGuiHoveredFlags_Stationary));
|
||||||
|
|
||||||
ImGui::BeginChild("child", ImVec2(0, 50), true);
|
ImGui::BeginChild("child", ImVec2(0, 50), ImGuiChildFlags_Border);
|
||||||
ImGui::Text("This is another child window for testing the _ChildWindows flag.");
|
ImGui::Text("This is another child window for testing the _ChildWindows flag.");
|
||||||
ImGui::EndChild();
|
ImGui::EndChild();
|
||||||
if (embed_all_inside_a_child_window)
|
if (embed_all_inside_a_child_window)
|
||||||
@ -2723,7 +2723,7 @@ static void ShowDemoWindowLayout()
|
|||||||
ImGuiWindowFlags window_flags = ImGuiWindowFlags_HorizontalScrollbar;
|
ImGuiWindowFlags window_flags = ImGuiWindowFlags_HorizontalScrollbar;
|
||||||
if (disable_mouse_wheel)
|
if (disable_mouse_wheel)
|
||||||
window_flags |= ImGuiWindowFlags_NoScrollWithMouse;
|
window_flags |= ImGuiWindowFlags_NoScrollWithMouse;
|
||||||
ImGui::BeginChild("ChildL", ImVec2(ImGui::GetContentRegionAvail().x * 0.5f, 260), false, window_flags);
|
ImGui::BeginChild("ChildL", ImVec2(ImGui::GetContentRegionAvail().x * 0.5f, 260), ImGuiChildFlags_None, window_flags);
|
||||||
for (int i = 0; i < 100; i++)
|
for (int i = 0; i < 100; i++)
|
||||||
ImGui::Text("%04d: scrollable region", i);
|
ImGui::Text("%04d: scrollable region", i);
|
||||||
ImGui::EndChild();
|
ImGui::EndChild();
|
||||||
@ -2739,7 +2739,7 @@ static void ShowDemoWindowLayout()
|
|||||||
if (!disable_menu)
|
if (!disable_menu)
|
||||||
window_flags |= ImGuiWindowFlags_MenuBar;
|
window_flags |= ImGuiWindowFlags_MenuBar;
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_ChildRounding, 5.0f);
|
ImGui::PushStyleVar(ImGuiStyleVar_ChildRounding, 5.0f);
|
||||||
ImGui::BeginChild("ChildR", ImVec2(0, 260), true, window_flags);
|
ImGui::BeginChild("ChildR", ImVec2(0, 260), ImGuiChildFlags_Border, window_flags);
|
||||||
if (!disable_menu && ImGui::BeginMenuBar())
|
if (!disable_menu && ImGui::BeginMenuBar())
|
||||||
{
|
{
|
||||||
if (ImGui::BeginMenu("Menu"))
|
if (ImGui::BeginMenu("Menu"))
|
||||||
@ -2780,14 +2780,15 @@ static void ShowDemoWindowLayout()
|
|||||||
|
|
||||||
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + (float)offset_x);
|
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + (float)offset_x);
|
||||||
ImGui::PushStyleColor(ImGuiCol_ChildBg, IM_COL32(255, 0, 0, 100));
|
ImGui::PushStyleColor(ImGuiCol_ChildBg, IM_COL32(255, 0, 0, 100));
|
||||||
ImGui::BeginChild("Red", ImVec2(200, 100), true, ImGuiWindowFlags_None);
|
ImGui::BeginChild("Red", ImVec2(200, 100), ImGuiChildFlags_Border, ImGuiWindowFlags_None);
|
||||||
|
ImGui::PopStyleColor();
|
||||||
|
|
||||||
for (int n = 0; n < 50; n++)
|
for (int n = 0; n < 50; n++)
|
||||||
ImGui::Text("Some test %d", n);
|
ImGui::Text("Some test %d", n);
|
||||||
ImGui::EndChild();
|
ImGui::EndChild();
|
||||||
bool child_is_hovered = ImGui::IsItemHovered();
|
bool child_is_hovered = ImGui::IsItemHovered();
|
||||||
ImVec2 child_rect_min = ImGui::GetItemRectMin();
|
ImVec2 child_rect_min = ImGui::GetItemRectMin();
|
||||||
ImVec2 child_rect_max = ImGui::GetItemRectMax();
|
ImVec2 child_rect_max = ImGui::GetItemRectMax();
|
||||||
ImGui::PopStyleColor();
|
|
||||||
ImGui::Text("Hovered: %d", child_is_hovered);
|
ImGui::Text("Hovered: %d", child_is_hovered);
|
||||||
ImGui::Text("Rect of child window is: (%.0f,%.0f) (%.0f,%.0f)", child_rect_min.x, child_rect_min.y, child_rect_max.x, child_rect_max.y);
|
ImGui::Text("Rect of child window is: (%.0f,%.0f) (%.0f,%.0f)", child_rect_min.x, child_rect_min.y, child_rect_max.x, child_rect_max.y);
|
||||||
}
|
}
|
||||||
@ -3176,7 +3177,7 @@ static void ShowDemoWindowLayout()
|
|||||||
|
|
||||||
const ImGuiWindowFlags child_flags = enable_extra_decorations ? ImGuiWindowFlags_MenuBar : 0;
|
const ImGuiWindowFlags child_flags = enable_extra_decorations ? ImGuiWindowFlags_MenuBar : 0;
|
||||||
const ImGuiID child_id = ImGui::GetID((void*)(intptr_t)i);
|
const ImGuiID child_id = ImGui::GetID((void*)(intptr_t)i);
|
||||||
const bool child_is_visible = ImGui::BeginChild(child_id, ImVec2(child_w, 200.0f), true, child_flags);
|
const bool child_is_visible = ImGui::BeginChild(child_id, ImVec2(child_w, 200.0f), ImGuiChildFlags_Border, child_flags);
|
||||||
if (ImGui::BeginMenuBar())
|
if (ImGui::BeginMenuBar())
|
||||||
{
|
{
|
||||||
ImGui::TextUnformatted("abc");
|
ImGui::TextUnformatted("abc");
|
||||||
@ -3223,7 +3224,7 @@ static void ShowDemoWindowLayout()
|
|||||||
float child_height = ImGui::GetTextLineHeight() + style.ScrollbarSize + style.WindowPadding.y * 2.0f;
|
float child_height = ImGui::GetTextLineHeight() + style.ScrollbarSize + style.WindowPadding.y * 2.0f;
|
||||||
ImGuiWindowFlags child_flags = ImGuiWindowFlags_HorizontalScrollbar | (enable_extra_decorations ? ImGuiWindowFlags_AlwaysVerticalScrollbar : 0);
|
ImGuiWindowFlags child_flags = ImGuiWindowFlags_HorizontalScrollbar | (enable_extra_decorations ? ImGuiWindowFlags_AlwaysVerticalScrollbar : 0);
|
||||||
ImGuiID child_id = ImGui::GetID((void*)(intptr_t)i);
|
ImGuiID child_id = ImGui::GetID((void*)(intptr_t)i);
|
||||||
bool child_is_visible = ImGui::BeginChild(child_id, ImVec2(-100, child_height), true, child_flags);
|
bool child_is_visible = ImGui::BeginChild(child_id, ImVec2(-100, child_height), ImGuiChildFlags_Border, child_flags);
|
||||||
if (scroll_to_off)
|
if (scroll_to_off)
|
||||||
ImGui::SetScrollX(scroll_to_off_px);
|
ImGui::SetScrollX(scroll_to_off_px);
|
||||||
if (scroll_to_pos)
|
if (scroll_to_pos)
|
||||||
@ -3265,7 +3266,7 @@ static void ShowDemoWindowLayout()
|
|||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0f);
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0f);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2.0f, 1.0f));
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2.0f, 1.0f));
|
||||||
ImVec2 scrolling_child_size = ImVec2(0, ImGui::GetFrameHeightWithSpacing() * 7 + 30);
|
ImVec2 scrolling_child_size = ImVec2(0, ImGui::GetFrameHeightWithSpacing() * 7 + 30);
|
||||||
ImGui::BeginChild("scrolling", scrolling_child_size, true, ImGuiWindowFlags_HorizontalScrollbar);
|
ImGui::BeginChild("scrolling", scrolling_child_size, ImGuiChildFlags_Border, ImGuiWindowFlags_HorizontalScrollbar);
|
||||||
for (int line = 0; line < lines; line++)
|
for (int line = 0; line < lines; line++)
|
||||||
{
|
{
|
||||||
// Display random stuff. For the sake of this trivial demo we are using basic Button() + SameLine()
|
// Display random stuff. For the sake of this trivial demo we are using basic Button() + SameLine()
|
||||||
@ -3409,7 +3410,7 @@ static void ShowDemoWindowLayout()
|
|||||||
}
|
}
|
||||||
if (show_child)
|
if (show_child)
|
||||||
{
|
{
|
||||||
ImGui::BeginChild("child", ImVec2(0, 0), true);
|
ImGui::BeginChild("child", ImVec2(0, 0), ImGuiChildFlags_Border);
|
||||||
ImGui::EndChild();
|
ImGui::EndChild();
|
||||||
}
|
}
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
@ -5958,7 +5959,7 @@ static void ShowDemoWindowColumns()
|
|||||||
{
|
{
|
||||||
ImGui::SetNextWindowContentSize(ImVec2(1500.0f, 0.0f));
|
ImGui::SetNextWindowContentSize(ImVec2(1500.0f, 0.0f));
|
||||||
ImVec2 child_size = ImVec2(0, ImGui::GetFontSize() * 20.0f);
|
ImVec2 child_size = ImVec2(0, ImGui::GetFontSize() * 20.0f);
|
||||||
ImGui::BeginChild("##ScrollingRegion", child_size, false, ImGuiWindowFlags_HorizontalScrollbar);
|
ImGui::BeginChild("##ScrollingRegion", child_size, ImGuiChildFlags_None, ImGuiWindowFlags_HorizontalScrollbar);
|
||||||
ImGui::Columns(10);
|
ImGui::Columns(10);
|
||||||
|
|
||||||
// Also demonstrate using clipper for large vertical lists
|
// Also demonstrate using clipper for large vertical lists
|
||||||
@ -6575,7 +6576,7 @@ void ImGui::ShowStyleEditor(ImGuiStyle* ref)
|
|||||||
"Left-click on color square to open color picker,\n"
|
"Left-click on color square to open color picker,\n"
|
||||||
"Right-click to open edit options menu.");
|
"Right-click to open edit options menu.");
|
||||||
|
|
||||||
ImGui::BeginChild("##colors", ImVec2(0, 0), true, ImGuiWindowFlags_AlwaysVerticalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar | ImGuiWindowFlags_NavFlattened);
|
ImGui::BeginChild("##colors", ImVec2(0, 0), ImGuiChildFlags_Border, ImGuiWindowFlags_AlwaysVerticalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar | ImGuiWindowFlags_NavFlattened);
|
||||||
ImGui::PushItemWidth(ImGui::GetFontSize() * -12);
|
ImGui::PushItemWidth(ImGui::GetFontSize() * -12);
|
||||||
for (int i = 0; i < ImGuiCol_COUNT; i++)
|
for (int i = 0; i < ImGuiCol_COUNT; i++)
|
||||||
{
|
{
|
||||||
@ -6802,7 +6803,7 @@ static void ShowExampleMenuFile()
|
|||||||
{
|
{
|
||||||
static bool enabled = true;
|
static bool enabled = true;
|
||||||
ImGui::MenuItem("Enabled", "", &enabled);
|
ImGui::MenuItem("Enabled", "", &enabled);
|
||||||
ImGui::BeginChild("child", ImVec2(0, 60), true);
|
ImGui::BeginChild("child", ImVec2(0, 60), ImGuiChildFlags_Border);
|
||||||
for (int i = 0; i < 10; i++)
|
for (int i = 0; i < 10; i++)
|
||||||
ImGui::Text("Scrolling Text %d", i);
|
ImGui::Text("Scrolling Text %d", i);
|
||||||
ImGui::EndChild();
|
ImGui::EndChild();
|
||||||
@ -6968,7 +6969,7 @@ struct ExampleAppConsole
|
|||||||
|
|
||||||
// Reserve enough left-over height for 1 separator + 1 input text
|
// Reserve enough left-over height for 1 separator + 1 input text
|
||||||
const float footer_height_to_reserve = ImGui::GetStyle().ItemSpacing.y + ImGui::GetFrameHeightWithSpacing();
|
const float footer_height_to_reserve = ImGui::GetStyle().ItemSpacing.y + ImGui::GetFrameHeightWithSpacing();
|
||||||
if (ImGui::BeginChild("ScrollingRegion", ImVec2(0, -footer_height_to_reserve), false, ImGuiWindowFlags_HorizontalScrollbar))
|
if (ImGui::BeginChild("ScrollingRegion", ImVec2(0, -footer_height_to_reserve), ImGuiChildFlags_None, ImGuiWindowFlags_HorizontalScrollbar))
|
||||||
{
|
{
|
||||||
if (ImGui::BeginPopupContextWindow())
|
if (ImGui::BeginPopupContextWindow())
|
||||||
{
|
{
|
||||||
@ -7279,7 +7280,7 @@ struct ExampleAppLog
|
|||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
|
|
||||||
if (ImGui::BeginChild("scrolling", ImVec2(0, 0), false, ImGuiWindowFlags_HorizontalScrollbar))
|
if (ImGui::BeginChild("scrolling", ImVec2(0, 0), ImGuiChildFlags_None, ImGuiWindowFlags_HorizontalScrollbar))
|
||||||
{
|
{
|
||||||
if (clear)
|
if (clear)
|
||||||
Clear();
|
Clear();
|
||||||
@ -7398,7 +7399,7 @@ static void ShowExampleAppLayout(bool* p_open)
|
|||||||
// Left
|
// Left
|
||||||
static int selected = 0;
|
static int selected = 0;
|
||||||
{
|
{
|
||||||
ImGui::BeginChild("left pane", ImVec2(150, 0), true);
|
ImGui::BeginChild("left pane", ImVec2(150, 0), ImGuiChildFlags_Border);
|
||||||
for (int i = 0; i < 100; i++)
|
for (int i = 0; i < 100; i++)
|
||||||
{
|
{
|
||||||
// FIXME: Good candidate to use ImGuiSelectableFlags_SelectOnNav
|
// FIXME: Good candidate to use ImGuiSelectableFlags_SelectOnNav
|
||||||
@ -7967,7 +7968,7 @@ static void ShowExampleAppCustomRendering(bool* p_open)
|
|||||||
// To use a child window instead we could use, e.g:
|
// To use a child window instead we could use, e.g:
|
||||||
// ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); // Disable padding
|
// ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); // Disable padding
|
||||||
// ImGui::PushStyleColor(ImGuiCol_ChildBg, IM_COL32(50, 50, 50, 255)); // Set a background color
|
// ImGui::PushStyleColor(ImGuiCol_ChildBg, IM_COL32(50, 50, 50, 255)); // Set a background color
|
||||||
// ImGui::BeginChild("canvas", ImVec2(0.0f, 0.0f), true, ImGuiWindowFlags_NoMove);
|
// ImGui::BeginChild("canvas", ImVec2(0.0f, 0.0f), ImGuiChildFlags_Border, ImGuiWindowFlags_NoMove);
|
||||||
// ImGui::PopStyleColor();
|
// ImGui::PopStyleColor();
|
||||||
// ImGui::PopStyleVar();
|
// ImGui::PopStyleVar();
|
||||||
// [...]
|
// [...]
|
||||||
|
@ -3006,7 +3006,7 @@ namespace ImGui
|
|||||||
IMGUI_API void LogSetNextTextDecoration(const char* prefix, const char* suffix);
|
IMGUI_API void LogSetNextTextDecoration(const char* prefix, const char* suffix);
|
||||||
|
|
||||||
// Popups, Modals, Tooltips
|
// Popups, Modals, Tooltips
|
||||||
IMGUI_API bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags window_flags);
|
IMGUI_API bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, ImGuiChildFlags child_flags, ImGuiWindowFlags window_flags);
|
||||||
IMGUI_API void OpenPopupEx(ImGuiID id, ImGuiPopupFlags popup_flags = ImGuiPopupFlags_None);
|
IMGUI_API void OpenPopupEx(ImGuiID id, ImGuiPopupFlags popup_flags = ImGuiPopupFlags_None);
|
||||||
IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup);
|
IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup);
|
||||||
IMGUI_API void ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to_window_under_popup);
|
IMGUI_API void ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to_window_under_popup);
|
||||||
|
@ -5051,7 +5051,7 @@ void ImGui::DebugNodeInputTextState(ImGuiInputTextState* state)
|
|||||||
Text("CurLenW: %d, CurLenA: %d, Cursor: %d, Selection: %d..%d", state->CurLenW, state->CurLenA, stb_state->cursor, stb_state->select_start, stb_state->select_end);
|
Text("CurLenW: %d, CurLenA: %d, Cursor: %d, Selection: %d..%d", state->CurLenW, state->CurLenA, stb_state->cursor, stb_state->select_start, stb_state->select_end);
|
||||||
Text("has_preferred_x: %d (%.2f)", stb_state->has_preferred_x, stb_state->preferred_x);
|
Text("has_preferred_x: %d (%.2f)", stb_state->has_preferred_x, stb_state->preferred_x);
|
||||||
Text("undo_point: %d, redo_point: %d, undo_char_point: %d, redo_char_point: %d", undo_state->undo_point, undo_state->redo_point, undo_state->undo_char_point, undo_state->redo_char_point);
|
Text("undo_point: %d, redo_point: %d, undo_char_point: %d, redo_char_point: %d", undo_state->undo_point, undo_state->redo_point, undo_state->undo_char_point, undo_state->redo_char_point);
|
||||||
if (BeginChild("undopoints", ImVec2(0.0f, GetTextLineHeight() * 15), true)) // Visualize undo state
|
if (BeginChild("undopoints", ImVec2(0.0f, GetTextLineHeight() * 15), ImGuiChildFlags_Border)) // Visualize undo state
|
||||||
{
|
{
|
||||||
PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0, 0));
|
PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0, 0));
|
||||||
for (int n = 0; n < STB_TEXTEDIT_UNDOSTATECOUNT; n++)
|
for (int n = 0; n < STB_TEXTEDIT_UNDOSTATECOUNT; n++)
|
||||||
|
Loading…
Reference in New Issue
Block a user