mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	Added ShowAboutWindow(), About Window now showing various config/build information.
This commit is contained in:
		@@ -39,6 +39,9 @@ Other Changes:
 | 
			
		||||
 | 
			
		||||
- When the focused window become inactive don't restore focus to a window with the ImGuiWindowFlags_NoInputs flag. (#2213) [@zzzyap]
 | 
			
		||||
- Separator: Fixed Separator() outputting an extraneous empty line when captured into clipboard/text/file. 
 | 
			
		||||
- Demo: Added ShowAboutWindow() call, previously was only accessible from the demo window.
 | 
			
		||||
- Demo: ShowAboutWindow() now display various Build/Config Information (compiler, os, etc.) that can easily be copied into bug reports.
 | 
			
		||||
- Fixed build issue with osxcross and macOS. (#2218) [@dos1]
 | 
			
		||||
- Examples: SDL: changed the signature of ImGui_ImplSDL2_ProcessEvent() to use a const SDL_Event*. (#2187)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1096,7 +1096,7 @@ ImGuiIO::ImGuiIO()
 | 
			
		||||
    ConfigInputTextCursorBlink = true;
 | 
			
		||||
    ConfigResizeWindowsFromEdges = false;
 | 
			
		||||
 | 
			
		||||
    // Settings (User Functions)
 | 
			
		||||
    // Platform Functions
 | 
			
		||||
    GetClipboardTextFn = GetClipboardTextFn_DefaultImpl;   // Platform dependent default implementations
 | 
			
		||||
    SetClipboardTextFn = SetClipboardTextFn_DefaultImpl;
 | 
			
		||||
    ClipboardUserData = NULL;
 | 
			
		||||
@@ -1107,7 +1107,7 @@ ImGuiIO::ImGuiIO()
 | 
			
		||||
    RenderDrawListsFn = NULL;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    // Input (NB: we already have memset zero the entire structure)
 | 
			
		||||
    // Input (NB: we already have memset zero the entire structure!)
 | 
			
		||||
    MousePos = ImVec2(-FLT_MAX, -FLT_MAX);
 | 
			
		||||
    MousePosPrev = ImVec2(-FLT_MAX, -FLT_MAX);
 | 
			
		||||
    MouseDragThreshold = 6.0f;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								imgui.h
									
									
									
									
									
								
							@@ -204,7 +204,8 @@ namespace ImGui
 | 
			
		||||
 | 
			
		||||
    // Demo, Debug, Information
 | 
			
		||||
    IMGUI_API void          ShowDemoWindow(bool* p_open = NULL);        // create demo/test window (previously called ShowTestWindow). demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application!
 | 
			
		||||
    IMGUI_API void          ShowMetricsWindow(bool* p_open = NULL);     // create metrics window. display ImGui internals: draw commands (with individual draw calls and vertices), window list, basic internal state, etc.
 | 
			
		||||
    IMGUI_API void          ShowAboutWindow(bool* p_open = NULL);       // create about window. display Dear ImGui version, credits and build/system information.
 | 
			
		||||
    IMGUI_API void          ShowMetricsWindow(bool* p_open = NULL);     // create metrics window. display Dear ImGui internals: draw commands (with individual draw calls and vertices), window list, basic internal state, etc.
 | 
			
		||||
    IMGUI_API void          ShowStyleEditor(ImGuiStyle* ref = NULL);    // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style)
 | 
			
		||||
    IMGUI_API bool          ShowStyleSelector(const char* label);       // add style selector block (not a window), essentially a combo listing the default styles.
 | 
			
		||||
    IMGUI_API void          ShowFontSelector(const char* label);        // add font selector block (not a window), essentially a combo listing the loaded fonts.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										129
									
								
								imgui_demo.cpp
									
									
									
									
									
								
							
							
						
						
									
										129
									
								
								imgui_demo.cpp
									
									
									
									
									
								
							@@ -27,6 +27,7 @@ Index of this file:
 | 
			
		||||
 | 
			
		||||
// [SECTION] Forward Declarations, Helpers
 | 
			
		||||
// [SECTION] Demo Window / ShowDemoWindow()
 | 
			
		||||
// [SECTION] About Window / ShowAboutWindow()
 | 
			
		||||
// [SECTION] Style Editor / ShowStyleEditor()
 | 
			
		||||
// [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar()
 | 
			
		||||
// [SECTION] Example App: Debug Console / ShowExampleAppConsole()
 | 
			
		||||
@@ -198,15 +199,7 @@ void ImGui::ShowDemoWindow(bool* p_open)
 | 
			
		||||
 | 
			
		||||
    if (show_app_metrics)             { ImGui::ShowMetricsWindow(&show_app_metrics); }
 | 
			
		||||
    if (show_app_style_editor)        { ImGui::Begin("Style Editor", &show_app_style_editor); ImGui::ShowStyleEditor(); ImGui::End(); }
 | 
			
		||||
    if (show_app_about)
 | 
			
		||||
    {
 | 
			
		||||
        ImGui::Begin("About Dear ImGui", &show_app_about, ImGuiWindowFlags_AlwaysAutoResize);
 | 
			
		||||
        ImGui::Text("Dear ImGui, %s", ImGui::GetVersion());
 | 
			
		||||
        ImGui::Separator();
 | 
			
		||||
        ImGui::Text("By Omar Cornut and all dear imgui contributors.");
 | 
			
		||||
        ImGui::Text("Dear ImGui is licensed under the MIT License, see LICENSE for more information.");
 | 
			
		||||
        ImGui::End();
 | 
			
		||||
    }
 | 
			
		||||
    if (show_app_about)               { ShowAboutWindow(&show_app_about); }
 | 
			
		||||
 | 
			
		||||
    // Demonstrate the various window flags. Typically you would just use the default!
 | 
			
		||||
    static bool no_titlebar = false;
 | 
			
		||||
@@ -2456,6 +2449,123 @@ static void ShowDemoWindowMisc()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
// [SECTION] About Window / ShowAboutWindow()
 | 
			
		||||
// Access from ImGui Demo -> Help -> About
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
void ImGui::ShowAboutWindow(bool* p_open)
 | 
			
		||||
{
 | 
			
		||||
    ImGui::Begin("About Dear ImGui", p_open, ImGuiWindowFlags_AlwaysAutoResize);
 | 
			
		||||
    ImGui::Text("Dear ImGui, %s", ImGui::GetVersion());
 | 
			
		||||
    ImGui::Separator();
 | 
			
		||||
    ImGui::Text("By Omar Cornut and all dear imgui contributors.");
 | 
			
		||||
    ImGui::Text("Dear ImGui is licensed under the MIT License, see LICENSE for more information.");
 | 
			
		||||
 | 
			
		||||
    static bool show_config_info = false;
 | 
			
		||||
    ImGui::Checkbox("Config/Build Information", &show_config_info);
 | 
			
		||||
    if (show_config_info)
 | 
			
		||||
    {
 | 
			
		||||
        ImGuiIO& io = ImGui::GetIO();
 | 
			
		||||
        ImGuiStyle& style = ImGui::GetStyle();
 | 
			
		||||
 | 
			
		||||
        bool copy_to_clipboard = ImGui::Button("Copy to clipboard");
 | 
			
		||||
        ImGui::BeginChildFrame(ImGui::GetID("cfginfos"), ImVec2(0, ImGui::GetTextLineHeightWithSpacing() * 18), ImGuiWindowFlags_NoMove);
 | 
			
		||||
        if (copy_to_clipboard)
 | 
			
		||||
            ImGui::LogToClipboard();
 | 
			
		||||
 | 
			
		||||
        ImGui::Text("Dear ImGui %s (%d)", IMGUI_VERSION, IMGUI_VERSION_NUM);
 | 
			
		||||
        ImGui::Separator();
 | 
			
		||||
        ImGui::Text("sizeof(size_t): %d, sizeof(ImDrawIdx): %d, sizeof(ImDrawVert): %d", (int)sizeof(size_t), (int)sizeof(ImDrawIdx), (int)sizeof(ImDrawVert));
 | 
			
		||||
        ImGui::Text("define: __cplusplus=%d", (int)__cplusplus);
 | 
			
		||||
#ifdef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
 | 
			
		||||
        ImGui::Text("define: IMGUI_DISABLE_OBSOLETE_FUNCTIONS");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS
 | 
			
		||||
        ImGui::Text("define: IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS
 | 
			
		||||
        ImGui::Text("define: IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef IMGUI_DISABLE_WIN32_FUNCTIONS
 | 
			
		||||
        ImGui::Text("define: IMGUI_DISABLE_WIN32_FUNCTIONS");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS
 | 
			
		||||
        ImGui::Text("define: IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef IMGUI_DISABLE_MATH_FUNCTIONS
 | 
			
		||||
        ImGui::Text("define: IMGUI_DISABLE_MATH_FUNCTIONS");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef IMGUI_DISABLE_DEFAULT_ALLOCATORS
 | 
			
		||||
        ImGui::Text("define: IMGUI_DISABLE_DEFAULT_ALLOCATORS");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef IMGUI_USE_BGRA_PACKED_COLOR
 | 
			
		||||
        ImGui::Text("define: IMGUI_USE_BGRA_PACKED_COLOR");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
        ImGui::Text("define: _WIN32");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef _WIN64
 | 
			
		||||
        ImGui::Text("define: _WIN64");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef __linux__
 | 
			
		||||
        ImGui::Text("define: __linux__");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
        ImGui::Text("define: __APPLE__");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef _MSC_VER
 | 
			
		||||
        ImGui::Text("define: _MSC_VER=%d", _MSC_VER);
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef __MINGW32__
 | 
			
		||||
        ImGui::Text("define: __MINGW32__");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef __MINGW64__
 | 
			
		||||
        ImGui::Text("define: __MINGW64__");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef __GNUC__
 | 
			
		||||
        ImGui::Text("define: __GNUC__=%d", (int)__GNUC__);
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef __clang_version__
 | 
			
		||||
        ImGui::Text("define: __clang_version__=%s", __clang_version__);
 | 
			
		||||
#endif
 | 
			
		||||
        ImGui::Separator();
 | 
			
		||||
        ImGui::Text("io.ConfigFlags: 0x%08X", io.ConfigFlags);
 | 
			
		||||
        if (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard)    ImGui::Text(" NavEnableKeyboard");
 | 
			
		||||
        if (io.ConfigFlags & ImGuiConfigFlags_NavEnableGamepad)     ImGui::Text(" NavEnableGamepad");
 | 
			
		||||
        if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) ImGui::Text(" NavEnableSetMousePos");
 | 
			
		||||
        if (io.ConfigFlags & ImGuiConfigFlags_NavNoCaptureKeyboard) ImGui::Text(" NavNoCaptureKeyboard");
 | 
			
		||||
        if (io.ConfigFlags & ImGuiConfigFlags_NoMouse)              ImGui::Text(" NoMouse");
 | 
			
		||||
        if (io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange)  ImGui::Text(" NoMouseCursorChange");
 | 
			
		||||
        if (io.ConfigFlags & ImGuiConfigFlags_IsSRGB)               ImGui::Text(" IsSRGB");
 | 
			
		||||
        if (io.ConfigFlags & ImGuiConfigFlags_IsTouchScreen)        ImGui::Text(" IsTouchScreen");
 | 
			
		||||
        if (io.MouseDrawCursor)                                     ImGui::Text(" MouseDrawCursor");
 | 
			
		||||
        if (io.ConfigMacOSXBehaviors)                               ImGui::Text(" ConfigMacOSXBehaviors");
 | 
			
		||||
        if (io.ConfigInputTextCursorBlink)                          ImGui::Text(" ConfigInputTextCursorBlink");
 | 
			
		||||
        if (io.ConfigResizeWindowsFromEdges)                        ImGui::Text(" ConfigResizeWindowsFromEdges");
 | 
			
		||||
        ImGui::Text("io.BackendFlags: 0x%08X", io.BackendFlags);
 | 
			
		||||
        if (io.BackendFlags & ImGuiBackendFlags_HasGamepad)         ImGui::Text(" HasGamepad");
 | 
			
		||||
        if (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors)    ImGui::Text(" HasMouseCursors");
 | 
			
		||||
        if (io.BackendFlags & ImGuiBackendFlags_HasSetMousePos)     ImGui::Text(" HasSetMousePos");
 | 
			
		||||
        ImGui::Separator();
 | 
			
		||||
        ImGui::Text("io.Fonts: %d fonts, Flags: 0x%08X, TexSize: %d,%d", io.Fonts->Fonts.Size, io.Fonts->Flags, io.Fonts->TexWidth, io.Fonts->TexHeight);
 | 
			
		||||
        ImGui::Text("io.DisplaySize: %.2f,%.2f", io.DisplaySize.x, io.DisplaySize.y);
 | 
			
		||||
        ImGui::Separator();
 | 
			
		||||
        ImGui::Text("style.WindowPadding: %.2f,%.2f", style.WindowPadding.x, style.WindowPadding.y);
 | 
			
		||||
        ImGui::Text("style.WindowBorderSize: %.2f", style.WindowBorderSize);
 | 
			
		||||
        ImGui::Text("style.FramePadding: %.2f,%.2f", style.FramePadding.x, style.FramePadding.y);
 | 
			
		||||
        ImGui::Text("style.FrameRounding: %.2f", style.FrameRounding);
 | 
			
		||||
        ImGui::Text("style.FrameBorderSize: %.2f", style.FrameBorderSize);
 | 
			
		||||
        ImGui::Text("style.ItemSpacing: %.2f,%.2f", style.ItemSpacing.x, style.ItemSpacing.y);
 | 
			
		||||
        ImGui::Text("style.ItemInnerSpacing: %.2f,%.2f", style.ItemInnerSpacing.x, style.ItemInnerSpacing.y);
 | 
			
		||||
 | 
			
		||||
        if (copy_to_clipboard)
 | 
			
		||||
            ImGui::LogFinish();
 | 
			
		||||
        ImGui::EndChildFrame();
 | 
			
		||||
    }
 | 
			
		||||
    ImGui::End();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
// [SECTION] Style Editor / ShowStyleEditor()
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
@@ -3650,6 +3760,7 @@ static void ShowExampleAppCustomRendering(bool* p_open)
 | 
			
		||||
// End of Demo code
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
void ImGui::ShowAboutWindow(bool*) {}
 | 
			
		||||
void ImGui::ShowDemoWindow(bool*) {}
 | 
			
		||||
void ImGui::ShowUserGuide() {}
 | 
			
		||||
void ImGui::ShowStyleEditor(ImGuiStyle*) {}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user