|
@@ -243,6 +243,7 @@ void ImGui::ShowDemoWindow(bool* p_open)
|
|
static bool show_app_main_menu_bar = false;
|
|
static bool show_app_main_menu_bar = false;
|
|
static bool show_app_dockspace = false;
|
|
static bool show_app_dockspace = false;
|
|
static bool show_app_documents = false;
|
|
static bool show_app_documents = false;
|
|
|
|
+
|
|
static bool show_app_console = false;
|
|
static bool show_app_console = false;
|
|
static bool show_app_log = false;
|
|
static bool show_app_log = false;
|
|
static bool show_app_layout = false;
|
|
static bool show_app_layout = false;
|
|
@@ -257,6 +258,7 @@ void ImGui::ShowDemoWindow(bool* p_open)
|
|
if (show_app_main_menu_bar) ShowExampleAppMainMenuBar();
|
|
if (show_app_main_menu_bar) ShowExampleAppMainMenuBar();
|
|
if (show_app_dockspace) ShowExampleAppDockSpace(&show_app_dockspace); // Process the Docking app first, as explicit DockSpace() nodes needs to be submitted early (read comments near the DockSpace function)
|
|
if (show_app_dockspace) ShowExampleAppDockSpace(&show_app_dockspace); // Process the Docking app first, as explicit DockSpace() nodes needs to be submitted early (read comments near the DockSpace function)
|
|
if (show_app_documents) ShowExampleAppDocuments(&show_app_documents); // Process the Document app next, as it may also use a DockSpace()
|
|
if (show_app_documents) ShowExampleAppDocuments(&show_app_documents); // Process the Document app next, as it may also use a DockSpace()
|
|
|
|
+
|
|
if (show_app_console) ShowExampleAppConsole(&show_app_console);
|
|
if (show_app_console) ShowExampleAppConsole(&show_app_console);
|
|
if (show_app_log) ShowExampleAppLog(&show_app_log);
|
|
if (show_app_log) ShowExampleAppLog(&show_app_log);
|
|
if (show_app_layout) ShowExampleAppLayout(&show_app_layout);
|
|
if (show_app_layout) ShowExampleAppLayout(&show_app_layout);
|
|
@@ -1545,7 +1547,8 @@ static void ShowDemoWindowWidgets()
|
|
{
|
|
{
|
|
static float begin = 10, end = 90;
|
|
static float begin = 10, end = 90;
|
|
static int begin_i = 100, end_i = 1000;
|
|
static int begin_i = 100, end_i = 1000;
|
|
- ImGui::DragFloatRange2("range", &begin, &end, 0.25f, 0.0f, 100.0f, "Min: %.1f %%", "Max: %.1f %%");
|
|
|
|
|
|
+ ImGui::DragFloatRange2("range float", &begin, &end, 0.25f, 0.0f, 100.0f, "Min: %.1f %%", "Max: %.1f %%");
|
|
|
|
+ ImGui::DragIntRange2("range int", &begin_i, &end_i, 5, 0, 1000, "Min: %d units", "Max: %d units");
|
|
ImGui::DragIntRange2("range int (no bounds)", &begin_i, &end_i, 5, 0, 0, "Min: %d units", "Max: %d units");
|
|
ImGui::DragIntRange2("range int (no bounds)", &begin_i, &end_i, 5, 0, 0, "Min: %d units", "Max: %d units");
|
|
ImGui::TreePop();
|
|
ImGui::TreePop();
|
|
}
|
|
}
|
|
@@ -2026,12 +2029,6 @@ static void ShowDemoWindowLayout()
|
|
ImGui::Checkbox("Disable Mouse Wheel", &disable_mouse_wheel);
|
|
ImGui::Checkbox("Disable Mouse Wheel", &disable_mouse_wheel);
|
|
ImGui::Checkbox("Disable Menu", &disable_menu);
|
|
ImGui::Checkbox("Disable Menu", &disable_menu);
|
|
|
|
|
|
- static int line = 50;
|
|
|
|
- bool goto_line = ImGui::Button("Goto");
|
|
|
|
- ImGui::SameLine();
|
|
|
|
- ImGui::SetNextItemWidth(100);
|
|
|
|
- goto_line |= ImGui::InputInt("##Line", &line, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue);
|
|
|
|
-
|
|
|
|
// Child 1: no border, enable horizontal scrollbar
|
|
// Child 1: no border, enable horizontal scrollbar
|
|
{
|
|
{
|
|
ImGuiWindowFlags window_flags = ImGuiWindowFlags_HorizontalScrollbar;
|
|
ImGuiWindowFlags window_flags = ImGuiWindowFlags_HorizontalScrollbar;
|
|
@@ -2039,13 +2036,7 @@ static void ShowDemoWindowLayout()
|
|
window_flags |= ImGuiWindowFlags_NoScrollWithMouse;
|
|
window_flags |= ImGuiWindowFlags_NoScrollWithMouse;
|
|
ImGui::BeginChild("ChildL", ImVec2(ImGui::GetWindowContentRegionWidth() * 0.5f, 260), false, window_flags);
|
|
ImGui::BeginChild("ChildL", ImVec2(ImGui::GetWindowContentRegionWidth() * 0.5f, 260), false, 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);
|
|
- if (goto_line && line == i)
|
|
|
|
- ImGui::SetScrollHereY();
|
|
|
|
- }
|
|
|
|
- if (goto_line && line >= 100)
|
|
|
|
- ImGui::SetScrollHereY();
|
|
|
|
ImGui::EndChild();
|
|
ImGui::EndChild();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2091,15 +2082,21 @@ static void ShowDemoWindowLayout()
|
|
// - Using ImGui::GetItemRectMin/Max() to query the "item" state (because the child window is an item from
|
|
// - Using ImGui::GetItemRectMin/Max() to query the "item" state (because the child window is an item from
|
|
// the POV of the parent window). See 'Demo->Querying Status (Active/Focused/Hovered etc.)' for details.
|
|
// the POV of the parent window). See 'Demo->Querying Status (Active/Focused/Hovered etc.)' for details.
|
|
{
|
|
{
|
|
- ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 10);
|
|
|
|
|
|
+ static int offset_x = 0;
|
|
|
|
+ ImGui::SetNextItemWidth(100);
|
|
|
|
+ ImGui::DragInt("Offset X", &offset_x, 1.0f, -1000, 1000);
|
|
|
|
+
|
|
|
|
+ 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), true, ImGuiWindowFlags_None);
|
|
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();
|
|
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::PopStyleColor();
|
|
|
|
+ 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);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2485,8 +2482,6 @@ static void ShowDemoWindowLayout()
|
|
static float scroll_to_pos_px = 200.0f;
|
|
static float scroll_to_pos_px = 200.0f;
|
|
|
|
|
|
ImGui::Checkbox("Decoration", &enable_extra_decorations);
|
|
ImGui::Checkbox("Decoration", &enable_extra_decorations);
|
|
- ImGui::SameLine();
|
|
|
|
- HelpMarker("We expose this for testing because scrolling sometimes had issues with window decoration such as menu-bars.");
|
|
|
|
|
|
|
|
ImGui::Checkbox("Track", &enable_track);
|
|
ImGui::Checkbox("Track", &enable_track);
|
|
ImGui::PushItemWidth(100);
|
|
ImGui::PushItemWidth(100);
|
|
@@ -3918,7 +3913,28 @@ void ImGui::ShowStyleEditor(ImGuiStyle* ref)
|
|
ImGui::PushItemWidth(100);
|
|
ImGui::PushItemWidth(100);
|
|
ImGui::DragFloat("Curve Tessellation Tolerance", &style.CurveTessellationTol, 0.02f, 0.10f, 10.0f, "%.2f");
|
|
ImGui::DragFloat("Curve Tessellation Tolerance", &style.CurveTessellationTol, 0.02f, 0.10f, 10.0f, "%.2f");
|
|
if (style.CurveTessellationTol < 0.10f) style.CurveTessellationTol = 0.10f;
|
|
if (style.CurveTessellationTol < 0.10f) style.CurveTessellationTol = 0.10f;
|
|
- ImGui::DragFloat("Circle segment Max Error", &style.CircleSegmentMaxError, 0.01f, 0.10f, 10.0f, "%.2f");
|
|
|
|
|
|
+
|
|
|
|
+ // When editing the "Circle Segment Max Error" value, draw a preview of its effect on auto-tessellated circles.
|
|
|
|
+ ImGui::DragFloat("Circle Segment Max Error", &style.CircleSegmentMaxError, 0.01f, 0.10f, 10.0f, "%.2f");
|
|
|
|
+ if (ImGui::IsItemActive())
|
|
|
|
+ {
|
|
|
|
+ ImGui::SetNextWindowPos(ImGui::GetCursorScreenPos());
|
|
|
|
+ ImGui::BeginTooltip();
|
|
|
|
+ ImVec2 p = ImGui::GetCursorScreenPos();
|
|
|
|
+ float RAD_MIN = 10.0f, RAD_MAX = 80.0f;
|
|
|
|
+ float off_x = 10.0f;
|
|
|
|
+ for (int n = 0; n < 7; n++)
|
|
|
|
+ {
|
|
|
|
+ const float rad = RAD_MIN + (RAD_MAX - RAD_MIN) * (float)n / (7.0f - 1.0f);
|
|
|
|
+ ImGui::GetWindowDrawList()->AddCircle(ImVec2(p.x + off_x + rad, p.y + RAD_MAX), rad, ImGui::GetColorU32(ImGuiCol_Text), 0);
|
|
|
|
+ off_x += 10.0f + rad * 2.0f;
|
|
|
|
+ }
|
|
|
|
+ ImGui::Dummy(ImVec2(off_x, RAD_MAX * 2.0f));
|
|
|
|
+ ImGui::EndTooltip();
|
|
|
|
+ }
|
|
|
|
+ ImGui::SameLine();
|
|
|
|
+ HelpMarker("When drawing circle primitives with \"num_segments == 0\" tesselation will be calculated automatically.");
|
|
|
|
+
|
|
ImGui::DragFloat("Global Alpha", &style.Alpha, 0.005f, 0.20f, 1.0f, "%.2f"); // Not exposing zero here so user doesn't "lose" the UI (zero alpha clips all widgets). But application code could have a toggle to switch between zero and non-zero.
|
|
ImGui::DragFloat("Global Alpha", &style.Alpha, 0.005f, 0.20f, 1.0f, "%.2f"); // Not exposing zero here so user doesn't "lose" the UI (zero alpha clips all widgets). But application code could have a toggle to switch between zero and non-zero.
|
|
ImGui::PopItemWidth();
|
|
ImGui::PopItemWidth();
|
|
|
|
|