mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-16 03:53:28 +01:00
Merge branch 'master' into docking
# Conflicts: # backends/imgui_impl_sdl.cpp # imgui_demo.cpp
This commit is contained in:
commit
6fd2ee9416
@ -21,6 +21,7 @@
|
|||||||
// CHANGELOG
|
// CHANGELOG
|
||||||
// (minor and older changes stripped away, please see git history for details)
|
// (minor and older changes stripped away, please see git history for details)
|
||||||
// 2022-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface.
|
// 2022-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface.
|
||||||
|
// 2022-09-26: Inputs: Disable SDL 2.0.22 new "auto capture" (SDL_HINT_MOUSE_AUTO_CAPTURE) which prevents drag and drop across windows for multi-viewport support + don't capture when drag and dropping. (#5710)
|
||||||
// 2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported).
|
// 2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported).
|
||||||
// 2022-03-22: Inputs: Fix mouse position issues when dragging outside of boundaries. SDL_CaptureMouse() erroneously still gives out LEAVE events when hovering OS decorations.
|
// 2022-03-22: Inputs: Fix mouse position issues when dragging outside of boundaries. SDL_CaptureMouse() erroneously still gives out LEAVE events when hovering OS decorations.
|
||||||
// 2022-03-22: Inputs: Added support for extra mouse buttons (SDL_BUTTON_X1/SDL_BUTTON_X2).
|
// 2022-03-22: Inputs: Added support for extra mouse buttons (SDL_BUTTON_X1/SDL_BUTTON_X2).
|
||||||
@ -80,7 +81,6 @@
|
|||||||
#else
|
#else
|
||||||
#define SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE 0
|
#define SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE 0
|
||||||
#endif
|
#endif
|
||||||
#define SDL_HAS_MOUSE_FOCUS_CLICKTHROUGH SDL_VERSION_ATLEAST(2,0,5)
|
|
||||||
#define SDL_HAS_WINDOW_ALPHA SDL_VERSION_ATLEAST(2,0,5)
|
#define SDL_HAS_WINDOW_ALPHA SDL_VERSION_ATLEAST(2,0,5)
|
||||||
#define SDL_HAS_ALWAYS_ON_TOP SDL_VERSION_ATLEAST(2,0,5)
|
#define SDL_HAS_ALWAYS_ON_TOP SDL_VERSION_ATLEAST(2,0,5)
|
||||||
#define SDL_HAS_USABLE_DISPLAY_BOUNDS SDL_VERSION_ATLEAST(2,0,5)
|
#define SDL_HAS_USABLE_DISPLAY_BOUNDS SDL_VERSION_ATLEAST(2,0,5)
|
||||||
@ -421,15 +421,20 @@ static bool ImGui_ImplSDL2_Init(SDL_Window* window, SDL_Renderer* renderer, void
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set SDL hint to receive mouse click events on window focus, otherwise SDL doesn't emit the event.
|
// From 2.0.5: Set SDL hint to receive mouse click events on window focus, otherwise SDL doesn't emit the event.
|
||||||
// Without this, when clicking to gain focus, our widgets wouldn't activate even though they showed as hovered.
|
// Without this, when clicking to gain focus, our widgets wouldn't activate even though they showed as hovered.
|
||||||
// (This is unfortunately a global SDL setting, so enabling it might have a side-effect on your application.
|
// (This is unfortunately a global SDL setting, so enabling it might have a side-effect on your application.
|
||||||
// It is unlikely to make a difference, but if your app absolutely needs to ignore the initial on-focus click:
|
// It is unlikely to make a difference, but if your app absolutely needs to ignore the initial on-focus click:
|
||||||
// you can ignore SDL_MOUSEBUTTONDOWN events coming right after a SDL_WINDOWEVENT_FOCUS_GAINED)
|
// you can ignore SDL_MOUSEBUTTONDOWN events coming right after a SDL_WINDOWEVENT_FOCUS_GAINED)
|
||||||
#if SDL_HAS_MOUSE_FOCUS_CLICKTHROUGH
|
#ifdef SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH
|
||||||
SDL_SetHint(SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH, "1");
|
SDL_SetHint(SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH, "1");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// From 2.0.22: Disable auto-capture, this is preventing drag and drop across multiple windows (see #5710)
|
||||||
|
#ifdef SDL_HINT_MOUSE_AUTO_CAPTURE
|
||||||
|
SDL_SetHint(SDL_HINT_MOUSE_AUTO_CAPTURE, "0");
|
||||||
|
#endif
|
||||||
|
|
||||||
// Update monitors
|
// Update monitors
|
||||||
ImGui_ImplSDL2_UpdateMonitors();
|
ImGui_ImplSDL2_UpdateMonitors();
|
||||||
|
|
||||||
@ -503,7 +508,7 @@ static void ImGui_ImplSDL2_UpdateMouseData()
|
|||||||
// We forward mouse input when hovered or captured (via SDL_MOUSEMOTION) or when focused (below)
|
// We forward mouse input when hovered or captured (via SDL_MOUSEMOTION) or when focused (below)
|
||||||
#if SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE
|
#if SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE
|
||||||
// SDL_CaptureMouse() let the OS know e.g. that our imgui drag outside the SDL window boundaries shouldn't e.g. trigger other operations outside
|
// SDL_CaptureMouse() let the OS know e.g. that our imgui drag outside the SDL window boundaries shouldn't e.g. trigger other operations outside
|
||||||
SDL_CaptureMouse(bd->MouseButtonsDown != 0 ? SDL_TRUE : SDL_FALSE);
|
SDL_CaptureMouse((bd->MouseButtonsDown != 0 && ImGui::GetDragDropPayload() == NULL) ? SDL_TRUE : SDL_FALSE);
|
||||||
SDL_Window* focused_window = SDL_GetKeyboardFocus();
|
SDL_Window* focused_window = SDL_GetKeyboardFocus();
|
||||||
const bool is_app_focused = (focused_window && (bd->Window == focused_window || ImGui::FindViewportByPlatformHandle((void*)focused_window)));
|
const bool is_app_focused = (focused_window && (bd->Window == focused_window || ImGui::FindViewportByPlatformHandle((void*)focused_window)));
|
||||||
#else
|
#else
|
||||||
|
@ -26,12 +26,6 @@
|
|||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <webgpu/webgpu.h>
|
#include <webgpu/webgpu.h>
|
||||||
|
|
||||||
#define HAS_EMSCRIPTEN_VERSION(major, minor, tiny) (__EMSCRIPTEN_major__ > (major) || (__EMSCRIPTEN_major__ == (major) && __EMSCRIPTEN_minor__ > (minor)) || (__EMSCRIPTEN_major__ == (major) && __EMSCRIPTEN_minor__ == (minor) && __EMSCRIPTEN_tiny__ >= (tiny)))
|
|
||||||
|
|
||||||
#if defined(__EMSCRIPTEN__) && !HAS_EMSCRIPTEN_VERSION(2, 0, 20)
|
|
||||||
#error "Requires at least emscripten 2.0.20"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Dear ImGui prototypes from imgui_internal.h
|
// Dear ImGui prototypes from imgui_internal.h
|
||||||
extern ImGuiID ImHashData(const void* data_p, size_t data_size, ImU32 seed = 0);
|
extern ImGuiID ImHashData(const void* data_p, size_t data_size, ImU32 seed = 0);
|
||||||
|
|
||||||
|
@ -215,6 +215,8 @@ Other Changes:
|
|||||||
- Demo: Added more explicit "Center window" mode to "Overlay example". (#5618)
|
- Demo: Added more explicit "Center window" mode to "Overlay example". (#5618)
|
||||||
- Examples: Added all SDL examples to default VS solution.
|
- Examples: Added all SDL examples to default VS solution.
|
||||||
- Backends: GLFW: Honor GLFW_CURSOR_DISABLED by not setting mouse position. (#5625) [@scorpion-26]
|
- Backends: GLFW: Honor GLFW_CURSOR_DISABLED by not setting mouse position. (#5625) [@scorpion-26]
|
||||||
|
- Backends: SDL: Disable SDL 2.0.22 new "auto capture" which prevents drag and drop across windows
|
||||||
|
(e.g. for multi-viewport support) and don't capture mouse when drag and dropping. (#5710)
|
||||||
- Backends: Metal: Use __bridge for ARC based systems. (#5403) [@stack]
|
- Backends: Metal: Use __bridge for ARC based systems. (#5403) [@stack]
|
||||||
- Backends: Metal: Add dispatch synchronization. (#5447) [@luigifcruz]
|
- Backends: Metal: Add dispatch synchronization. (#5447) [@luigifcruz]
|
||||||
- Backends: Metal: Update deprecated property 'sampleCount'->'rasterSampleCount'. (#5603) [@dcvz]
|
- Backends: Metal: Update deprecated property 'sampleCount'->'rasterSampleCount'. (#5603) [@dcvz]
|
||||||
|
109
imgui_demo.cpp
109
imgui_demo.cpp
@ -50,8 +50,10 @@
|
|||||||
|
|
||||||
Index of this file:
|
Index of this file:
|
||||||
|
|
||||||
// [SECTION] Forward Declarations, Helpers
|
// [SECTION] Forward Declarations
|
||||||
|
// [SECTION] Helpers
|
||||||
// [SECTION] Demo Window / ShowDemoWindow()
|
// [SECTION] Demo Window / ShowDemoWindow()
|
||||||
|
// - ShowDemoWindow()
|
||||||
// - sub section: ShowDemoWindowWidgets()
|
// - sub section: ShowDemoWindowWidgets()
|
||||||
// - sub section: ShowDemoWindowLayout()
|
// - sub section: ShowDemoWindowLayout()
|
||||||
// - sub section: ShowDemoWindowPopups()
|
// - sub section: ShowDemoWindowPopups()
|
||||||
@ -59,6 +61,7 @@ Index of this file:
|
|||||||
// - sub section: ShowDemoWindowInputs()
|
// - sub section: ShowDemoWindowInputs()
|
||||||
// [SECTION] About Window / ShowAboutWindow()
|
// [SECTION] About Window / ShowAboutWindow()
|
||||||
// [SECTION] Style Editor / ShowStyleEditor()
|
// [SECTION] Style Editor / ShowStyleEditor()
|
||||||
|
// [SECTION] User Guide / ShowUserGuide()
|
||||||
// [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar()
|
// [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar()
|
||||||
// [SECTION] Example App: Debug Console / ShowExampleAppConsole()
|
// [SECTION] Example App: Debug Console / ShowExampleAppConsole()
|
||||||
// [SECTION] Example App: Debug Log / ShowExampleAppLog()
|
// [SECTION] Example App: Debug Log / ShowExampleAppLog()
|
||||||
@ -192,6 +195,19 @@ static void ShowExampleAppWindowTitles(bool* p_open);
|
|||||||
static void ShowExampleAppCustomRendering(bool* p_open);
|
static void ShowExampleAppCustomRendering(bool* p_open);
|
||||||
static void ShowExampleMenuFile();
|
static void ShowExampleMenuFile();
|
||||||
|
|
||||||
|
// We split the contents of the big ShowDemoWindow() function into smaller functions
|
||||||
|
// (because the link time of very large functions grow non-linearly)
|
||||||
|
static void ShowDemoWindowWidgets();
|
||||||
|
static void ShowDemoWindowLayout();
|
||||||
|
static void ShowDemoWindowPopups();
|
||||||
|
static void ShowDemoWindowTables();
|
||||||
|
static void ShowDemoWindowColumns();
|
||||||
|
static void ShowDemoWindowInputs();
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// [SECTION] Helpers
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
// Helper to display a little (?) mark which shows a tooltip when hovered.
|
// Helper to display a little (?) mark which shows a tooltip when hovered.
|
||||||
// In your own code you may want to display an actual icon if you are using a merged icon fonts (see docs/FONTS.md)
|
// In your own code you may want to display an actual icon if you are using a merged icon fonts (see docs/FONTS.md)
|
||||||
static void HelpMarker(const char* desc)
|
static void HelpMarker(const char* desc)
|
||||||
@ -219,46 +235,16 @@ static void ShowDockingDisabledMessage()
|
|||||||
|
|
||||||
// Helper to wire demo markers located in code to an interactive browser
|
// Helper to wire demo markers located in code to an interactive browser
|
||||||
typedef void (*ImGuiDemoMarkerCallback)(const char* file, int line, const char* section, void* user_data);
|
typedef void (*ImGuiDemoMarkerCallback)(const char* file, int line, const char* section, void* user_data);
|
||||||
extern ImGuiDemoMarkerCallback GImGuiDemoMarkerCallback;
|
extern ImGuiDemoMarkerCallback GImGuiDemoMarkerCallback;
|
||||||
extern void* GImGuiDemoMarkerCallbackUserData;
|
extern void* GImGuiDemoMarkerCallbackUserData;
|
||||||
ImGuiDemoMarkerCallback GImGuiDemoMarkerCallback = NULL;
|
ImGuiDemoMarkerCallback GImGuiDemoMarkerCallback = NULL;
|
||||||
void* GImGuiDemoMarkerCallbackUserData = NULL;
|
void* GImGuiDemoMarkerCallbackUserData = NULL;
|
||||||
#define IMGUI_DEMO_MARKER(section) do { if (GImGuiDemoMarkerCallback != NULL) GImGuiDemoMarkerCallback(__FILE__, __LINE__, section, GImGuiDemoMarkerCallbackUserData); } while (0)
|
#define IMGUI_DEMO_MARKER(section) do { if (GImGuiDemoMarkerCallback != NULL) GImGuiDemoMarkerCallback(__FILE__, __LINE__, section, GImGuiDemoMarkerCallbackUserData); } while (0)
|
||||||
|
|
||||||
// Helper to display basic user controls.
|
|
||||||
void ImGui::ShowUserGuide()
|
|
||||||
{
|
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
|
||||||
ImGui::BulletText("Double-click on title bar to collapse window.");
|
|
||||||
ImGui::BulletText(
|
|
||||||
"Click and drag on lower corner to resize window\n"
|
|
||||||
"(double-click to auto fit window to its contents).");
|
|
||||||
ImGui::BulletText("CTRL+Click on a slider or drag box to input value as text.");
|
|
||||||
ImGui::BulletText("TAB/SHIFT+TAB to cycle through keyboard editable fields.");
|
|
||||||
ImGui::BulletText("CTRL+Tab to select a window.");
|
|
||||||
if (io.FontAllowUserScaling)
|
|
||||||
ImGui::BulletText("CTRL+Mouse Wheel to zoom window contents.");
|
|
||||||
ImGui::BulletText("While inputing text:\n");
|
|
||||||
ImGui::Indent();
|
|
||||||
ImGui::BulletText("CTRL+Left/Right to word jump.");
|
|
||||||
ImGui::BulletText("CTRL+A or double-click to select all.");
|
|
||||||
ImGui::BulletText("CTRL+X/C/V to use clipboard cut/copy/paste.");
|
|
||||||
ImGui::BulletText("CTRL+Z,CTRL+Y to undo/redo.");
|
|
||||||
ImGui::BulletText("ESCAPE to revert.");
|
|
||||||
ImGui::Unindent();
|
|
||||||
ImGui::BulletText("With keyboard navigation enabled:");
|
|
||||||
ImGui::Indent();
|
|
||||||
ImGui::BulletText("Arrow keys to navigate.");
|
|
||||||
ImGui::BulletText("Space to activate a widget.");
|
|
||||||
ImGui::BulletText("Return to input text into a widget.");
|
|
||||||
ImGui::BulletText("Escape to deactivate a widget, close popup, exit child window.");
|
|
||||||
ImGui::BulletText("Alt to jump to the menu layer of a window.");
|
|
||||||
ImGui::Unindent();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// [SECTION] Demo Window / ShowDemoWindow()
|
// [SECTION] Demo Window / ShowDemoWindow()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
// - ShowDemoWindow()
|
||||||
// - ShowDemoWindowWidgets()
|
// - ShowDemoWindowWidgets()
|
||||||
// - ShowDemoWindowLayout()
|
// - ShowDemoWindowLayout()
|
||||||
// - ShowDemoWindowPopups()
|
// - ShowDemoWindowPopups()
|
||||||
@ -267,29 +253,19 @@ void ImGui::ShowUserGuide()
|
|||||||
// - ShowDemoWindowInputs()
|
// - ShowDemoWindowInputs()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
// We split the contents of the big ShowDemoWindow() function into smaller functions
|
|
||||||
// (because the link time of very large functions grow non-linearly)
|
|
||||||
static void ShowDemoWindowWidgets();
|
|
||||||
static void ShowDemoWindowLayout();
|
|
||||||
static void ShowDemoWindowPopups();
|
|
||||||
static void ShowDemoWindowTables();
|
|
||||||
static void ShowDemoWindowColumns();
|
|
||||||
static void ShowDemoWindowInputs();
|
|
||||||
|
|
||||||
// Demonstrate most Dear ImGui features (this is big function!)
|
// Demonstrate most Dear ImGui features (this is big function!)
|
||||||
// You may execute this function to experiment with the UI and understand what it does.
|
// You may execute this function to experiment with the UI and understand what it does.
|
||||||
// You may then search for keywords in the code when you are interested by a specific feature.
|
// You may then search for keywords in the code when you are interested by a specific feature.
|
||||||
void ImGui::ShowDemoWindow(bool* p_open)
|
void ImGui::ShowDemoWindow(bool* p_open)
|
||||||
{
|
{
|
||||||
// Exceptionally add an extra assert here for people confused about initial Dear ImGui setup
|
// Exceptionally add an extra assert here for people confused about initial Dear ImGui setup
|
||||||
// Most ImGui functions would normally just crash if the context is missing.
|
// Most functions would normally just crash if the context is missing.
|
||||||
IM_ASSERT(ImGui::GetCurrentContext() != NULL && "Missing dear imgui context. Refer to examples app!");
|
IM_ASSERT(ImGui::GetCurrentContext() != NULL && "Missing dear imgui context. Refer to examples app!");
|
||||||
|
|
||||||
// Examples Apps (accessible from the "Examples" menu)
|
// Examples Apps (accessible from the "Examples" menu)
|
||||||
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;
|
||||||
@ -305,7 +281,6 @@ 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);
|
||||||
@ -318,7 +293,7 @@ void ImGui::ShowDemoWindow(bool* p_open)
|
|||||||
if (show_app_window_titles) ShowExampleAppWindowTitles(&show_app_window_titles);
|
if (show_app_window_titles) ShowExampleAppWindowTitles(&show_app_window_titles);
|
||||||
if (show_app_custom_rendering) ShowExampleAppCustomRendering(&show_app_custom_rendering);
|
if (show_app_custom_rendering) ShowExampleAppCustomRendering(&show_app_custom_rendering);
|
||||||
|
|
||||||
// Dear ImGui Apps (accessible from the "Tools" menu)
|
// Dear ImGui Tools/Apps (accessible from the "Tools" menu)
|
||||||
static bool show_app_metrics = false;
|
static bool show_app_metrics = false;
|
||||||
static bool show_app_debug_log = false;
|
static bool show_app_debug_log = false;
|
||||||
static bool show_app_stack_tool = false;
|
static bool show_app_stack_tool = false;
|
||||||
@ -383,10 +358,8 @@ void ImGui::ShowDemoWindow(bool* p_open)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Most "big" widgets share a common width settings by default. See 'Demo->Layout->Widgets Width' for details.
|
// Most "big" widgets share a common width settings by default. See 'Demo->Layout->Widgets Width' for details.
|
||||||
|
|
||||||
// e.g. Use 2/3 of the space for widgets and 1/3 for labels (right align)
|
// e.g. Use 2/3 of the space for widgets and 1/3 for labels (right align)
|
||||||
//ImGui::PushItemWidth(-ImGui::GetWindowWidth() * 0.35f);
|
//ImGui::PushItemWidth(-ImGui::GetWindowWidth() * 0.35f);
|
||||||
|
|
||||||
// e.g. Leave a fixed amount of width for labels (by passing a negative value), the rest goes to widgets.
|
// e.g. Leave a fixed amount of width for labels (by passing a negative value), the rest goes to widgets.
|
||||||
ImGui::PushItemWidth(ImGui::GetFontSize() * -12);
|
ImGui::PushItemWidth(ImGui::GetFontSize() * -12);
|
||||||
|
|
||||||
@ -6517,6 +6490,40 @@ void ImGui::ShowStyleEditor(ImGuiStyle* ref)
|
|||||||
ImGui::PopItemWidth();
|
ImGui::PopItemWidth();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// [SECTION] User Guide / ShowUserGuide()
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void ImGui::ShowUserGuide()
|
||||||
|
{
|
||||||
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
|
ImGui::BulletText("Double-click on title bar to collapse window.");
|
||||||
|
ImGui::BulletText(
|
||||||
|
"Click and drag on lower corner to resize window\n"
|
||||||
|
"(double-click to auto fit window to its contents).");
|
||||||
|
ImGui::BulletText("CTRL+Click on a slider or drag box to input value as text.");
|
||||||
|
ImGui::BulletText("TAB/SHIFT+TAB to cycle through keyboard editable fields.");
|
||||||
|
ImGui::BulletText("CTRL+Tab to select a window.");
|
||||||
|
if (io.FontAllowUserScaling)
|
||||||
|
ImGui::BulletText("CTRL+Mouse Wheel to zoom window contents.");
|
||||||
|
ImGui::BulletText("While inputing text:\n");
|
||||||
|
ImGui::Indent();
|
||||||
|
ImGui::BulletText("CTRL+Left/Right to word jump.");
|
||||||
|
ImGui::BulletText("CTRL+A or double-click to select all.");
|
||||||
|
ImGui::BulletText("CTRL+X/C/V to use clipboard cut/copy/paste.");
|
||||||
|
ImGui::BulletText("CTRL+Z,CTRL+Y to undo/redo.");
|
||||||
|
ImGui::BulletText("ESCAPE to revert.");
|
||||||
|
ImGui::Unindent();
|
||||||
|
ImGui::BulletText("With keyboard navigation enabled:");
|
||||||
|
ImGui::Indent();
|
||||||
|
ImGui::BulletText("Arrow keys to navigate.");
|
||||||
|
ImGui::BulletText("Space to activate a widget.");
|
||||||
|
ImGui::BulletText("Return to input text into a widget.");
|
||||||
|
ImGui::BulletText("Escape to deactivate a widget, close popup, exit child window.");
|
||||||
|
ImGui::BulletText("Alt to jump to the menu layer of a window.");
|
||||||
|
ImGui::Unindent();
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar()
|
// [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -213,7 +213,7 @@ namespace ImStb
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Debug Logging for ShowDebugLogWindow(). This is designed for relatively rare events so please don't spam.
|
// Debug Logging for ShowDebugLogWindow(). This is designed for relatively rare events so please don't spam.
|
||||||
#define IMGUI_DEBUG_LOG(...) ImGui::DebugLog(__VA_ARGS__);
|
#define IMGUI_DEBUG_LOG(...) ImGui::DebugLog(__VA_ARGS__)
|
||||||
#define IMGUI_DEBUG_LOG_ACTIVEID(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventActiveId) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
#define IMGUI_DEBUG_LOG_ACTIVEID(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventActiveId) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
||||||
#define IMGUI_DEBUG_LOG_FOCUS(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventFocus) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
#define IMGUI_DEBUG_LOG_FOCUS(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventFocus) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
||||||
#define IMGUI_DEBUG_LOG_POPUP(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventPopup) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
#define IMGUI_DEBUG_LOG_POPUP(...) do { if (g.DebugLogFlags & ImGuiDebugLogFlags_EventPopup) IMGUI_DEBUG_LOG(__VA_ARGS__); } while (0)
|
||||||
|
Loading…
Reference in New Issue
Block a user