mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-17 20:52:36 +01:00
Updated ImGui.
This commit is contained in:
83
3rdparty/dear-imgui/imgui_demo.cpp
vendored
83
3rdparty/dear-imgui/imgui_demo.cpp
vendored
@@ -1,10 +1,12 @@
|
||||
// dear imgui, v1.89.7 WIP
|
||||
// dear imgui, v1.89.8 WIP
|
||||
// (demo code)
|
||||
|
||||
// Help:
|
||||
// - Read FAQ at http://dearimgui.com/faq
|
||||
// - Newcomers, read 'Programmer guide' in imgui.cpp for notes on how to setup Dear ImGui in your codebase.
|
||||
// - Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp. All applications in examples/ are doing that.
|
||||
// - Need help integrating Dear ImGui in your codebase?
|
||||
// - Read Getting Started https://github.com/ocornut/imgui/wiki/Getting-Started
|
||||
// - Read 'Programmer guide' in imgui.cpp for notes on how to setup Dear ImGui in your codebase.
|
||||
// Read imgui.cpp for more details, documentation and comments.
|
||||
// Get the latest version at https://github.com/ocornut/imgui
|
||||
|
||||
@@ -91,11 +93,7 @@ Index of this file:
|
||||
#include <math.h> // sqrtf, powf, cosf, sinf, floorf, ceilf
|
||||
#include <stdio.h> // vsnprintf, sscanf, printf
|
||||
#include <stdlib.h> // NULL, malloc, free, atoi
|
||||
#if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier
|
||||
#include <stddef.h> // intptr_t
|
||||
#else
|
||||
#include <stdint.h> // intptr_t
|
||||
#endif
|
||||
|
||||
// Visual Studio warnings
|
||||
#ifdef _MSC_VER
|
||||
@@ -1260,16 +1258,16 @@ static void ShowDemoWindowWidgets()
|
||||
IMGUI_DEMO_MARKER("Widgets/Selectables/Basic");
|
||||
if (ImGui::TreeNode("Basic"))
|
||||
{
|
||||
static bool selection[5] = { false, true, false, false, false };
|
||||
static bool selection[5] = { false, true, false, false };
|
||||
ImGui::Selectable("1. I am selectable", &selection[0]);
|
||||
ImGui::Selectable("2. I am selectable", &selection[1]);
|
||||
ImGui::Text("(I am not selectable)");
|
||||
ImGui::Selectable("4. I am selectable", &selection[3]);
|
||||
if (ImGui::Selectable("5. I am double clickable", selection[4], ImGuiSelectableFlags_AllowDoubleClick))
|
||||
ImGui::Selectable("3. I am selectable", &selection[2]);
|
||||
if (ImGui::Selectable("4. I am double clickable", selection[3], ImGuiSelectableFlags_AllowDoubleClick))
|
||||
if (ImGui::IsMouseDoubleClicked(0))
|
||||
selection[4] = !selection[4];
|
||||
selection[3] = !selection[3];
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
IMGUI_DEMO_MARKER("Widgets/Selectables/Single Selection");
|
||||
if (ImGui::TreeNode("Selection State: Single Selection"))
|
||||
{
|
||||
@@ -1301,17 +1299,18 @@ static void ShowDemoWindowWidgets()
|
||||
}
|
||||
ImGui::TreePop();
|
||||
}
|
||||
IMGUI_DEMO_MARKER("Widgets/Selectables/Rendering more text into the same line");
|
||||
if (ImGui::TreeNode("Rendering more text into the same line"))
|
||||
IMGUI_DEMO_MARKER("Widgets/Selectables/Rendering more items on the same line");
|
||||
if (ImGui::TreeNode("Rendering more items on the same line"))
|
||||
{
|
||||
// Using the Selectable() override that takes "bool* p_selected" parameter,
|
||||
// this function toggle your bool value automatically.
|
||||
// (1) Using SetNextItemAllowOverlap()
|
||||
// (2) Using the Selectable() override that takes "bool* p_selected" parameter, the bool value is toggled automatically.
|
||||
static bool selected[3] = { false, false, false };
|
||||
ImGui::Selectable("main.c", &selected[0]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes");
|
||||
ImGui::Selectable("Hello.cpp", &selected[1]); ImGui::SameLine(300); ImGui::Text("12,345 bytes");
|
||||
ImGui::Selectable("Hello.h", &selected[2]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes");
|
||||
ImGui::SetNextItemAllowOverlap(); ImGui::Selectable("main.c", &selected[0]); ImGui::SameLine(); ImGui::SmallButton("Link 1");
|
||||
ImGui::SetNextItemAllowOverlap(); ImGui::Selectable("Hello.cpp", &selected[1]); ImGui::SameLine(); ImGui::SmallButton("Link 2");
|
||||
ImGui::SetNextItemAllowOverlap(); ImGui::Selectable("Hello.h", &selected[2]); ImGui::SameLine(); ImGui::SmallButton("Link 3");
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
IMGUI_DEMO_MARKER("Widgets/Selectables/In columns");
|
||||
if (ImGui::TreeNode("In columns"))
|
||||
{
|
||||
@@ -1347,6 +1346,7 @@ static void ShowDemoWindowWidgets()
|
||||
}
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
IMGUI_DEMO_MARKER("Widgets/Selectables/Grid");
|
||||
if (ImGui::TreeNode("Grid"))
|
||||
{
|
||||
@@ -1480,6 +1480,7 @@ static void ShowDemoWindowWidgets()
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
IMGUI_DEMO_MARKER("Widgets/Text Input/Completion, History, Edit Callbacks");
|
||||
if (ImGui::TreeNode("Completion, History, Edit Callbacks"))
|
||||
{
|
||||
struct Funcs
|
||||
@@ -1579,6 +1580,18 @@ static void ShowDemoWindowWidgets()
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
IMGUI_DEMO_MARKER("Widgets/Text Input/Miscellaneous");
|
||||
if (ImGui::TreeNode("Miscellaneous"))
|
||||
{
|
||||
static char buf1[16];
|
||||
static ImGuiInputTextFlags flags = ImGuiInputTextFlags_EscapeClearsAll;
|
||||
ImGui::CheckboxFlags("ImGuiInputTextFlags_EscapeClearsAll", &flags, ImGuiInputTextFlags_EscapeClearsAll);
|
||||
ImGui::CheckboxFlags("ImGuiInputTextFlags_ReadOnly", &flags, ImGuiInputTextFlags_ReadOnly);
|
||||
ImGui::CheckboxFlags("ImGuiInputTextFlags_NoUndoRedo", &flags, ImGuiInputTextFlags_NoUndoRedo);
|
||||
ImGui::InputText("Hello", buf1, IM_ARRAYSIZE(buf1), flags);
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
@@ -2793,11 +2806,11 @@ static void ShowDemoWindowLayout()
|
||||
// Text
|
||||
IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/SameLine");
|
||||
ImGui::Text("Two items: Hello"); ImGui::SameLine();
|
||||
ImGui::TextColored(ImVec4(1,1,0,1), "Sailor");
|
||||
ImGui::TextColored(ImVec4(1, 1, 0, 1), "Sailor");
|
||||
|
||||
// Adjust spacing
|
||||
ImGui::Text("More spacing: Hello"); ImGui::SameLine(0, 20);
|
||||
ImGui::TextColored(ImVec4(1,1,0,1), "Sailor");
|
||||
ImGui::TextColored(ImVec4(1, 1, 0, 1), "Sailor");
|
||||
|
||||
// Button
|
||||
ImGui::AlignTextToFramePadding();
|
||||
@@ -3395,6 +3408,36 @@ static void ShowDemoWindowLayout()
|
||||
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
IMGUI_DEMO_MARKER("Layout/Overlap Mode");
|
||||
if (ImGui::TreeNode("Overlap Mode"))
|
||||
{
|
||||
static bool enable_allow_overlap = true;
|
||||
|
||||
HelpMarker(
|
||||
"Hit-testing is by default performed in item submission order, which generally is perceived as 'back-to-front'.\n\n"
|
||||
"By using SetNextItemAllowOverlap() you can notify that an item may be overlapped by another. Doing so alters the hovering logic: items using AllowOverlap mode requires an extra frame to accept hovered state.");
|
||||
ImGui::Checkbox("Enable AllowOverlap", &enable_allow_overlap);
|
||||
|
||||
ImVec2 button1_pos = ImGui::GetCursorScreenPos();
|
||||
ImVec2 button2_pos = ImVec2(button1_pos.x + 50.0f, button1_pos.y + 50.0f);
|
||||
if (enable_allow_overlap)
|
||||
ImGui::SetNextItemAllowOverlap();
|
||||
ImGui::Button("Button 1", ImVec2(80, 80));
|
||||
ImGui::SetCursorScreenPos(button2_pos);
|
||||
ImGui::Button("Button 2", ImVec2(80, 80));
|
||||
|
||||
// This is typically used with width-spanning items.
|
||||
// (note that Selectable() has a dedicated flag ImGuiSelectableFlags_AllowOverlap, which is a shortcut
|
||||
// for using SetNextItemAllowOverlap(). For demo purpose we use SetNextItemAllowOverlap() here.)
|
||||
if (enable_allow_overlap)
|
||||
ImGui::SetNextItemAllowOverlap();
|
||||
ImGui::Selectable("Some Selectable", false);
|
||||
ImGui::SameLine();
|
||||
ImGui::SmallButton("++");
|
||||
|
||||
ImGui::TreePop();
|
||||
}
|
||||
}
|
||||
|
||||
static void ShowDemoWindowPopups()
|
||||
|
||||
Reference in New Issue
Block a user