|
|
|
@ -52,7 +52,7 @@ Index of this file: |
|
|
|
|
// - sub section: ShowDemoWindowLayout()
|
|
|
|
|
// - sub section: ShowDemoWindowPopups()
|
|
|
|
|
// - sub section: ShowDemoWindowTables()
|
|
|
|
|
// - sub section: ShowDemoWindowMisc()
|
|
|
|
|
// - sub section: ShowDemoWindowInputs()
|
|
|
|
|
// [SECTION] About Window / ShowAboutWindow()
|
|
|
|
|
// [SECTION] Style Editor / ShowStyleEditor()
|
|
|
|
|
// [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar()
|
|
|
|
@ -248,7 +248,7 @@ void ImGui::ShowUserGuide() |
|
|
|
|
// - ShowDemoWindowPopups()
|
|
|
|
|
// - ShowDemoWindowTables()
|
|
|
|
|
// - ShowDemoWindowColumns()
|
|
|
|
|
// - ShowDemoWindowMisc()
|
|
|
|
|
// - ShowDemoWindowInputs()
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
// We split the contents of the big ShowDemoWindow() function into smaller functions
|
|
|
|
@ -258,7 +258,7 @@ static void ShowDemoWindowLayout(); |
|
|
|
|
static void ShowDemoWindowPopups(); |
|
|
|
|
static void ShowDemoWindowTables(); |
|
|
|
|
static void ShowDemoWindowColumns(); |
|
|
|
|
static void ShowDemoWindowMisc(); |
|
|
|
|
static void ShowDemoWindowInputs(); |
|
|
|
|
|
|
|
|
|
// Demonstrate most Dear ImGui features (this is big function!)
|
|
|
|
|
// You may execute this function to experiment with the UI and understand what it does.
|
|
|
|
@ -559,7 +559,7 @@ void ImGui::ShowDemoWindow(bool* p_open) |
|
|
|
|
ShowDemoWindowLayout(); |
|
|
|
|
ShowDemoWindowPopups(); |
|
|
|
|
ShowDemoWindowTables(); |
|
|
|
|
ShowDemoWindowMisc(); |
|
|
|
|
ShowDemoWindowInputs(); |
|
|
|
|
|
|
|
|
|
// End of ShowDemoWindow()
|
|
|
|
|
ImGui::PopItemWidth(); |
|
|
|
@ -2518,6 +2518,26 @@ static void ShowDemoWindowWidgets() |
|
|
|
|
ImGui::SameLine(); HelpMarker("Demonstrate using BeginDisabled()/EndDisabled() across this section."); |
|
|
|
|
ImGui::TreePop(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
IMGUI_DEMO_MARKER("Widgets/Text Filter"); |
|
|
|
|
if (ImGui::TreeNode("Text Filter")) |
|
|
|
|
{ |
|
|
|
|
// Helper class to easy setup a text filter.
|
|
|
|
|
// You may want to implement a more feature-full filtering scheme in your own application.
|
|
|
|
|
HelpMarker("Not a widget per-se, but ImGuiTextFilter is a helper to perform simple filtering on text strings."); |
|
|
|
|
static ImGuiTextFilter filter; |
|
|
|
|
ImGui::Text("Filter usage:\n" |
|
|
|
|
" \"\" display all lines\n" |
|
|
|
|
" \"xxx\" display lines containing \"xxx\"\n" |
|
|
|
|
" \"xxx,yyy\" display lines containing \"xxx\" or \"yyy\"\n" |
|
|
|
|
" \"-xxx\" hide lines containing \"xxx\""); |
|
|
|
|
filter.Draw(); |
|
|
|
|
const char* lines[] = { "aaa1.c", "bbb1.c", "ccc1.c", "aaa2.cpp", "bbb2.cpp", "ccc2.cpp", "abc.h", "hello, world" }; |
|
|
|
|
for (int i = 0; i < IM_ARRAYSIZE(lines); i++) |
|
|
|
|
if (filter.PassFilter(lines[i])) |
|
|
|
|
ImGui::BulletText("%s", lines[i]); |
|
|
|
|
ImGui::TreePop(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void ShowDemoWindowLayout() |
|
|
|
@ -5686,26 +5706,8 @@ static void ShowDemoWindowColumns() |
|
|
|
|
|
|
|
|
|
namespace ImGui { extern ImGuiKeyData* GetKeyData(ImGuiKey key); } |
|
|
|
|
|
|
|
|
|
static void ShowDemoWindowMisc() |
|
|
|
|
static void ShowDemoWindowInputs() |
|
|
|
|
{ |
|
|
|
|
IMGUI_DEMO_MARKER("Filtering"); |
|
|
|
|
if (ImGui::CollapsingHeader("Filtering")) |
|
|
|
|
{ |
|
|
|
|
// Helper class to easy setup a text filter.
|
|
|
|
|
// You may want to implement a more feature-full filtering scheme in your own application.
|
|
|
|
|
static ImGuiTextFilter filter; |
|
|
|
|
ImGui::Text("Filter usage:\n" |
|
|
|
|
" \"\" display all lines\n" |
|
|
|
|
" \"xxx\" display lines containing \"xxx\"\n" |
|
|
|
|
" \"xxx,yyy\" display lines containing \"xxx\" or \"yyy\"\n" |
|
|
|
|
" \"-xxx\" hide lines containing \"xxx\""); |
|
|
|
|
filter.Draw(); |
|
|
|
|
const char* lines[] = { "aaa1.c", "bbb1.c", "ccc1.c", "aaa2.cpp", "bbb2.cpp", "ccc2.cpp", "abc.h", "hello, world" }; |
|
|
|
|
for (int i = 0; i < IM_ARRAYSIZE(lines); i++) |
|
|
|
|
if (filter.PassFilter(lines[i])) |
|
|
|
|
ImGui::BulletText("%s", lines[i]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
IMGUI_DEMO_MARKER("Inputs, Navigation & Focus"); |
|
|
|
|
if (ImGui::CollapsingHeader("Inputs, Navigation & Focus")) |
|
|
|
|
{ |
|
|
|
@ -5744,6 +5746,35 @@ static void ShowDemoWindowMisc() |
|
|
|
|
ImGui::TreePop(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Display mouse cursors
|
|
|
|
|
IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Mouse Cursors"); |
|
|
|
|
if (ImGui::TreeNode("Mouse Cursors")) |
|
|
|
|
{ |
|
|
|
|
const char* mouse_cursors_names[] = { "Arrow", "TextInput", "ResizeAll", "ResizeNS", "ResizeEW", "ResizeNESW", "ResizeNWSE", "Hand", "NotAllowed" }; |
|
|
|
|
IM_ASSERT(IM_ARRAYSIZE(mouse_cursors_names) == ImGuiMouseCursor_COUNT); |
|
|
|
|
|
|
|
|
|
ImGuiMouseCursor current = ImGui::GetMouseCursor(); |
|
|
|
|
ImGui::Text("Current mouse cursor = %d: %s", current, mouse_cursors_names[current]); |
|
|
|
|
ImGui::BeginDisabled(true); |
|
|
|
|
ImGui::CheckboxFlags("io.BackendFlags: HasMouseCursors", &io.BackendFlags, ImGuiBackendFlags_HasMouseCursors); |
|
|
|
|
ImGui::EndDisabled(); |
|
|
|
|
|
|
|
|
|
ImGui::Text("Hover to see mouse cursors:"); |
|
|
|
|
ImGui::SameLine(); HelpMarker( |
|
|
|
|
"Your application can render a different mouse cursor based on what ImGui::GetMouseCursor() returns. " |
|
|
|
|
"If software cursor rendering (io.MouseDrawCursor) is set ImGui will draw the right cursor for you, " |
|
|
|
|
"otherwise your backend needs to handle it."); |
|
|
|
|
for (int i = 0; i < ImGuiMouseCursor_COUNT; i++) |
|
|
|
|
{ |
|
|
|
|
char label[32]; |
|
|
|
|
sprintf(label, "Mouse cursor %d: %s", i, mouse_cursors_names[i]); |
|
|
|
|
ImGui::Bullet(); ImGui::Selectable(label, false); |
|
|
|
|
if (ImGui::IsItemHovered()) |
|
|
|
|
ImGui::SetMouseCursor(i); |
|
|
|
|
} |
|
|
|
|
ImGui::TreePop(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Display Keyboard/Mouse state
|
|
|
|
|
IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Keyboard, Gamepad & Navigation State"); |
|
|
|
|
if (ImGui::TreeNode("Keyboard, Gamepad & Navigation State")) |
|
|
|
@ -5936,30 +5967,6 @@ static void ShowDemoWindowMisc() |
|
|
|
|
ImGui::Text("io.MouseDelta: (%.1f, %.1f)", mouse_delta.x, mouse_delta.y); |
|
|
|
|
ImGui::TreePop(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Mouse cursors"); |
|
|
|
|
if (ImGui::TreeNode("Mouse cursors")) |
|
|
|
|
{ |
|
|
|
|
const char* mouse_cursors_names[] = { "Arrow", "TextInput", "ResizeAll", "ResizeNS", "ResizeEW", "ResizeNESW", "ResizeNWSE", "Hand", "NotAllowed" }; |
|
|
|
|
IM_ASSERT(IM_ARRAYSIZE(mouse_cursors_names) == ImGuiMouseCursor_COUNT); |
|
|
|
|
|
|
|
|
|
ImGuiMouseCursor current = ImGui::GetMouseCursor(); |
|
|
|
|
ImGui::Text("Current mouse cursor = %d: %s", current, mouse_cursors_names[current]); |
|
|
|
|
ImGui::Text("Hover to see mouse cursors:"); |
|
|
|
|
ImGui::SameLine(); HelpMarker( |
|
|
|
|
"Your application can render a different mouse cursor based on what ImGui::GetMouseCursor() returns. " |
|
|
|
|
"If software cursor rendering (io.MouseDrawCursor) is set ImGui will draw the right cursor for you, " |
|
|
|
|
"otherwise your backend needs to handle it."); |
|
|
|
|
for (int i = 0; i < ImGuiMouseCursor_COUNT; i++) |
|
|
|
|
{ |
|
|
|
|
char label[32]; |
|
|
|
|
sprintf(label, "Mouse cursor %d: %s", i, mouse_cursors_names[i]); |
|
|
|
|
ImGui::Bullet(); ImGui::Selectable(label, false); |
|
|
|
|
if (ImGui::IsItemHovered()) |
|
|
|
|
ImGui::SetMouseCursor(i); |
|
|
|
|
} |
|
|
|
|
ImGui::TreePop(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|