mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Misc: tweaks + minor changes merged from master to reduce branch drift. Removed code that ended up unused.
This commit is contained in:
		
							
								
								
									
										24
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -262,14 +262,15 @@ | |||||||
|  Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code. |  Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code. | ||||||
|  Also read releases logs https://github.com/ocornut/imgui/releases for more details. |  Also read releases logs https://github.com/ocornut/imgui/releases for more details. | ||||||
|  |  | ||||||
|  |  (Viewport Branch) | ||||||
|  - 2018/XX/XX (1.XX) - Moved IME support functions from io.ImeSetInputScreenPosFn, io.ImeWindowHandle to the PlatformIO api. |  - 2018/XX/XX (1.XX) - Moved IME support functions from io.ImeSetInputScreenPosFn, io.ImeWindowHandle to the PlatformIO api. | ||||||
|  |  - 2018/XX/XX (1.XX) - removed io.DisplayVisibleMin, io.DisplayVisibleMax settings (it was used to clip within the DisplayMin..DisplayMax range, I don't know of anyone using it) | ||||||
|  |  | ||||||
|  - 2018/04/09 (1.61) - IM_DELETE() helper function added in 1.60 doesn't clear the input _pointer_ reference, more consistent with expectation and allows passing r-value. |  - 2018/04/09 (1.61) - IM_DELETE() helper function added in 1.60 doesn't clear the input _pointer_ reference, more consistent with expectation and allows passing r-value. | ||||||
|  - 2018/03/20 (1.60) - Renamed io.WantMoveMouse to io.WantSetMousePos for consistency and ease of understanding (was added in 1.52, _not_ used by core and only honored by some binding ahead of merging the Nav branch). |  - 2018/03/20 (1.60) - Renamed io.WantMoveMouse to io.WantSetMousePos for consistency and ease of understanding (was added in 1.52, _not_ used by core and only honored by some binding ahead of merging the Nav branch). | ||||||
|  - 2018/03/12 (1.60) - Removed ImGuiCol_CloseButton, ImGuiCol_CloseButtonActive, ImGuiCol_CloseButtonHovered as the closing cross uses regular button colors now. |  - 2018/03/12 (1.60) - Removed ImGuiCol_CloseButton, ImGuiCol_CloseButtonActive, ImGuiCol_CloseButtonHovered as the closing cross uses regular button colors now. | ||||||
|  - 2018/03/08 (1.60) - Changed ImFont::DisplayOffset.y to default to 0 instead of +1. Fixed rounding of Ascent/Descent to match TrueType renderer. If you were adding or subtracting to ImFont::DisplayOffset check if your fonts are correctly aligned vertically. |  - 2018/03/08 (1.60) - Changed ImFont::DisplayOffset.y to default to 0 instead of +1. Fixed rounding of Ascent/Descent to match TrueType renderer. If you were adding or subtracting to ImFont::DisplayOffset check if your fonts are correctly aligned vertically. | ||||||
|  - 2018/03/03 (1.60) - Renamed ImGuiStyleVar_Count_ to ImGuiStyleVar_COUNT and ImGuiMouseCursor_Count_ to ImGuiMouseCursor_COUNT for consistency with other public enums. |  - 2018/03/03 (1.60) - Renamed ImGuiStyleVar_Count_ to ImGuiStyleVar_COUNT and ImGuiMouseCursor_Count_ to ImGuiMouseCursor_COUNT for consistency with other public enums. | ||||||
|  - 2018/02/27 (1.XX) - removed io.DisplayVisibleMin, io.DisplayVisibleMax settings (it was used to clip within the DisplayMin..DisplayMax range, I don't know of anyone using it) |  | ||||||
|  - 2018/02/18 (1.60) - BeginDragDropSource(): temporarily removed the optional mouse_button=0 parameter because it is not really usable in many situations at the moment. |  - 2018/02/18 (1.60) - BeginDragDropSource(): temporarily removed the optional mouse_button=0 parameter because it is not really usable in many situations at the moment. | ||||||
|  - 2018/02/16 (1.60) - obsoleted the io.RenderDrawListsFn callback, you can call your graphics engine render function after ImGui::Render(). Use ImGui::GetDrawData() to retrieve the ImDrawData* to display. |  - 2018/02/16 (1.60) - obsoleted the io.RenderDrawListsFn callback, you can call your graphics engine render function after ImGui::Render(). Use ImGui::GetDrawData() to retrieve the ImDrawData* to display. | ||||||
|  - 2018/02/07 (1.60) - reorganized context handling to be more explicit, |  - 2018/02/07 (1.60) - reorganized context handling to be more explicit, | ||||||
| @@ -4247,10 +4248,6 @@ static void LoadIniSettingsFromMemory(const char* buf_readonly) | |||||||
|  |  | ||||||
|         if (line[0] == '[' && line_end > line && line_end[-1] == ']') |         if (line[0] == '[' && line_end > line && line_end[-1] == ']') | ||||||
|         { |         { | ||||||
|             // Close last entry |  | ||||||
|             if (entry_data && entry_handler && entry_handler->ReadCloseFn) |  | ||||||
|                 entry_handler->ReadCloseFn(&g, entry_handler, entry_data); |  | ||||||
|  |  | ||||||
|             // Parse "[Type][Name]". Note that 'Name' can itself contains [] characters, which is acceptable with the current format and parsing code. |             // Parse "[Type][Name]". Note that 'Name' can itself contains [] characters, which is acceptable with the current format and parsing code. | ||||||
|             line_end[-1] = 0; |             line_end[-1] = 0; | ||||||
|             const char* name_end = line_end - 1;  |             const char* name_end = line_end - 1;  | ||||||
| @@ -4277,10 +4274,6 @@ static void LoadIniSettingsFromMemory(const char* buf_readonly) | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Close last entry |  | ||||||
|     if (entry_data && entry_handler && entry_handler->ReadCloseFn) |  | ||||||
|         entry_handler->ReadCloseFn(&g, entry_handler, entry_data); |  | ||||||
|  |  | ||||||
|     ImGui::MemFree(buf); |     ImGui::MemFree(buf); | ||||||
|     g.SettingsLoaded = true; |     g.SettingsLoaded = true; | ||||||
| } | } | ||||||
| @@ -5966,16 +5959,13 @@ static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGuiWindowFl | |||||||
|     g.WindowsById.SetVoidPtr(window->ID, window); |     g.WindowsById.SetVoidPtr(window->ID, window); | ||||||
|  |  | ||||||
|     // Default/arbitrary window position. Use SetNextWindowPos() with the appropriate condition flag to change the initial position of a window. |     // Default/arbitrary window position. Use SetNextWindowPos() with the appropriate condition flag to change the initial position of a window. | ||||||
|     window->Pos = ImVec2(60, 60); |     ImGuiViewport* main_viewport = ImGui::GetMainViewport(); | ||||||
|  |     window->Pos = main_viewport->Pos + ImVec2(60, 60); | ||||||
|  |  | ||||||
|     // User can disable loading and saving of settings. Tooltip and child windows also don't store settings. |     // User can disable loading and saving of settings. Tooltip and child windows also don't store settings. | ||||||
|     if (!(flags & ImGuiWindowFlags_NoSavedSettings)) |     if (!(flags & ImGuiWindowFlags_NoSavedSettings)) | ||||||
|     { |     { | ||||||
|         // Retrieve settings from .ini file |         // Retrieve settings from .ini file | ||||||
|         // Use SetWindowPos() or SetNextWindowPos() with the appropriate condition flag to change the initial position of a window. |  | ||||||
|         ImGuiViewport* main_viewport = ImGui::GetMainViewport(); |  | ||||||
|         window->Pos = main_viewport->Pos + ImVec2(60, 60); |  | ||||||
|  |  | ||||||
|         if (ImGuiWindowSettings* settings = ImGui::FindWindowSettings(window->ID)) |         if (ImGuiWindowSettings* settings = ImGui::FindWindowSettings(window->ID)) | ||||||
|         { |         { | ||||||
|             SetWindowConditionAllowFlags(window, ImGuiCond_FirstUseEver, false); |             SetWindowConditionAllowFlags(window, ImGuiCond_FirstUseEver, false); | ||||||
| @@ -6784,9 +6774,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | |||||||
|         if (!window->Collapsed) |         if (!window->Collapsed) | ||||||
|             UpdateManualResize(window, size_auto_fit, &border_held, resize_grip_count, &resize_grip_col[0]); |             UpdateManualResize(window, size_auto_fit, &border_held, resize_grip_count, &resize_grip_col[0]); | ||||||
|  |  | ||||||
|         // When a window is marked as owning its viewport, we immediately update the viewport after a resize |  | ||||||
|         window->ViewportPos = window->Viewport->Pos; |  | ||||||
|  |  | ||||||
|         // Synchronize window --> viewport |         // Synchronize window --> viewport | ||||||
|         if (window->ViewportOwned) |         if (window->ViewportOwned) | ||||||
|         { |         { | ||||||
| @@ -6797,6 +6784,9 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | |||||||
|             viewport_rect = window->Viewport->GetRect(); |             viewport_rect = window->Viewport->GetRect(); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         // Save last knonw viewport position within the window itself (so it can be saved in .ini file and restored) | ||||||
|  |         window->ViewportPos = window->Viewport->Pos; | ||||||
|  |  | ||||||
|         // Default item width. Make it proportional to window size if window manually resizes |         // Default item width. Make it proportional to window size if window manually resizes | ||||||
|         if (window->Size.x > 0.0f && !(flags & ImGuiWindowFlags_Tooltip) && !(flags & ImGuiWindowFlags_AlwaysAutoResize)) |         if (window->Size.x > 0.0f && !(flags & ImGuiWindowFlags_Tooltip) && !(flags & ImGuiWindowFlags_AlwaysAutoResize)) | ||||||
|             window->ItemWidthDefault = (float)(int)(window->Size.x * 0.65f); |             window->ItemWidthDefault = (float)(int)(window->Size.x * 0.65f); | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -798,7 +798,6 @@ enum ImGuiConfigFlags_ | |||||||
|     ImGuiConfigFlags_ViewportsEnable         = 1 << 10,  // Viewport enable flags (require both ImGuiConfigFlags_PlatformHasViewports + ImGuiConfigFlags_RendererHasViewports set by the respective back-ends) |     ImGuiConfigFlags_ViewportsEnable         = 1 << 10,  // Viewport enable flags (require both ImGuiConfigFlags_PlatformHasViewports + ImGuiConfigFlags_RendererHasViewports set by the respective back-ends) | ||||||
|     ImGuiConfigFlags_ViewportsNoTaskBarIcons = 1 << 11,  // Disable task bars icons for all secondary viewports (will set ImGuiViewportFlags_NoTaskBarIcon on them) |     ImGuiConfigFlags_ViewportsNoTaskBarIcons = 1 << 11,  // Disable task bars icons for all secondary viewports (will set ImGuiViewportFlags_NoTaskBarIcon on them) | ||||||
|     ImGuiConfigFlags_ViewportsNoMerge        = 1 << 12,  // All floating windows _always_ have create their own viewport and platform window. |     ImGuiConfigFlags_ViewportsNoMerge        = 1 << 12,  // All floating windows _always_ have create their own viewport and platform window. | ||||||
|  |  | ||||||
|     ImGuiConfigFlags_DpiEnableScaleViewports = 1 << 13, |     ImGuiConfigFlags_DpiEnableScaleViewports = 1 << 13, | ||||||
|     ImGuiConfigFlags_DpiEnableScaleFonts     = 1 << 14, |     ImGuiConfigFlags_DpiEnableScaleFonts     = 1 << 14, | ||||||
|  |  | ||||||
| @@ -1953,7 +1952,7 @@ struct ImGuiViewport | |||||||
|     ImDrawData*         DrawData;               // The ImDrawData corresponding to this viewport. Valid after Render() and until the next call to NewFrame(). |     ImDrawData*         DrawData;               // The ImDrawData corresponding to this viewport. Valid after Render() and until the next call to NewFrame(). | ||||||
|  |  | ||||||
|     void*               PlatformUserData;       // void* to hold custom data structure for the platform (e.g. windowing info, render context) |     void*               PlatformUserData;       // void* to hold custom data structure for the platform (e.g. windowing info, render context) | ||||||
|     void*               PlatformHandle;         // void* for FindViewportByPlatformHandle(). (e.g. HWND, GlfwWindow*, SDL_Window*) |     void*               PlatformHandle;         // void* for FindViewportByPlatformHandle(). (e.g. suggested to use natural platform handle such as HWND, GlfwWindow*, SDL_Window*) | ||||||
|     bool                PlatformRequestClose;   // Platform window requested closure |     bool                PlatformRequestClose;   // Platform window requested closure | ||||||
|     bool                PlatformRequestMove;    // Platform window requested move (e.g. window was moved using OS windowing facility) |     bool                PlatformRequestMove;    // Platform window requested move (e.g. window was moved using OS windowing facility) | ||||||
|     bool                PlatformRequestResize;  // Platform window requested resize (e.g. window was resize using OS windowing facility) |     bool                PlatformRequestResize;  // Platform window requested resize (e.g. window was resize using OS windowing facility) | ||||||
|   | |||||||
| @@ -417,7 +417,6 @@ struct ImGuiSettingsHandler | |||||||
|     const char* TypeName;   // Short description stored in .ini file. Disallowed characters: '[' ']'   |     const char* TypeName;   // Short description stored in .ini file. Disallowed characters: '[' ']'   | ||||||
|     ImGuiID     TypeHash;   // == ImHash(TypeName, 0, 0) |     ImGuiID     TypeHash;   // == ImHash(TypeName, 0, 0) | ||||||
|     void*       (*ReadOpenFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, const char* name);              // Read: Called when entering into a new ini entry e.g. "[Window][Name]" |     void*       (*ReadOpenFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, const char* name);              // Read: Called when entering into a new ini entry e.g. "[Window][Name]" | ||||||
|     void        (*ReadCloseFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, void* entry);                  // Read: Called when closing an existing entry, so code can validate overall data. [Optional] |  | ||||||
|     void        (*ReadLineFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, void* entry, const char* line); // Read: Called for every line of text within an ini entry |     void        (*ReadLineFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, void* entry, const char* line); // Read: Called for every line of text within an ini entry | ||||||
|     void        (*WriteAllFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* out_buf);      // Write: Output every entries into 'out_buf' |     void        (*WriteAllFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* out_buf);      // Write: Output every entries into 'out_buf' | ||||||
|     void*       UserData; |     void*       UserData; | ||||||
| @@ -499,7 +498,6 @@ struct ImDrawDataBuilder | |||||||
|  |  | ||||||
|     void Clear()            { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].resize(0); } |     void Clear()            { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].resize(0); } | ||||||
|     void ClearFreeMemory()  { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].clear(); } |     void ClearFreeMemory()  { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].clear(); } | ||||||
|     int  GetDrawListCount() const { int count = 0; for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) count += Layers[n].Size; return count; } |  | ||||||
|     IMGUI_API void FlattenIntoSingleLayer(); |     IMGUI_API void FlattenIntoSingleLayer(); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| @@ -946,7 +944,7 @@ struct IMGUI_API ImGuiWindow | |||||||
|     ImGuiID                 ViewportId;                         // We backup the viewport id (since the viewport may disappear or never be created if the window is inactive) |     ImGuiID                 ViewportId;                         // We backup the viewport id (since the viewport may disappear or never be created if the window is inactive) | ||||||
|     ImVec2                  ViewportPos;                        // We backup the viewport position (since the viewport may disappear or never be created if the window is inactive) |     ImVec2                  ViewportPos;                        // We backup the viewport position (since the viewport may disappear or never be created if the window is inactive) | ||||||
|     int                     ViewportAllowPlatformMonitorExtend; // Reset to -1 every frame (index is guaranteed to be valid between NewFrame..EndFrame), only used in the Appearing frame of a tooltip/popup to enforce clamping to a given monitor |     int                     ViewportAllowPlatformMonitorExtend; // Reset to -1 every frame (index is guaranteed to be valid between NewFrame..EndFrame), only used in the Appearing frame of a tooltip/popup to enforce clamping to a given monitor | ||||||
|     ImVec2                  Pos;                                // Position rounded-up to nearest pixel |     ImVec2                  Pos;                                // Position (always rounded-up to nearest pixel) | ||||||
|     ImVec2                  Size;                               // Current size (==SizeFull or collapsed title bar size) |     ImVec2                  Size;                               // Current size (==SizeFull or collapsed title bar size) | ||||||
|     ImVec2                  SizeFull;                           // Size when non collapsed |     ImVec2                  SizeFull;                           // Size when non collapsed | ||||||
|     ImVec2                  SizeFullAtLastBegin;                // Copy of SizeFull at the end of Begin. This is the reference value we'll use on the next frame to decide if we need scrollbars. |     ImVec2                  SizeFullAtLastBegin;                // Copy of SizeFull at the end of Begin. This is the reference value we'll use on the next frame to decide if we need scrollbars. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user