mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn() API.
Ref #2589, #2598, #3108, #3113, #3653, #4642
This commit is contained in:
		| @@ -246,8 +246,10 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw | |||||||
|     io.SetClipboardTextFn = ImGui_ImplGlfw_SetClipboardText; |     io.SetClipboardTextFn = ImGui_ImplGlfw_SetClipboardText; | ||||||
|     io.GetClipboardTextFn = ImGui_ImplGlfw_GetClipboardText; |     io.GetClipboardTextFn = ImGui_ImplGlfw_GetClipboardText; | ||||||
|     io.ClipboardUserData = bd->Window; |     io.ClipboardUserData = bd->Window; | ||||||
|  |  | ||||||
|  |     // Set platform dependent data in viewport | ||||||
| #if defined(_WIN32) | #if defined(_WIN32) | ||||||
|     io.ImeWindowHandle = (void*)glfwGetWin32Window(bd->Window); |     ImGui::GetMainViewport()->PlatformHandleRaw = (void*)glfwGetWin32Window(bd->Window); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|     // Create mouse cursors |     // Create mouse cursors | ||||||
|   | |||||||
| @@ -230,11 +230,12 @@ static bool ImGui_ImplSDL2_Init(SDL_Window* window) | |||||||
|     bd->MouseCursors[ImGuiMouseCursor_Hand] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_HAND); |     bd->MouseCursors[ImGuiMouseCursor_Hand] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_HAND); | ||||||
|     bd->MouseCursors[ImGuiMouseCursor_NotAllowed] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NO); |     bd->MouseCursors[ImGuiMouseCursor_NotAllowed] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NO); | ||||||
|  |  | ||||||
|  |     // Set platform dependent data in viewport | ||||||
| #ifdef _WIN32 | #ifdef _WIN32 | ||||||
|     SDL_SysWMinfo info; |     SDL_SysWMinfo info; | ||||||
|     SDL_VERSION(&info.version); |     SDL_VERSION(&info.version); | ||||||
|     if (SDL_GetWindowWMInfo(window, &info)) |     if (SDL_GetWindowWMInfo(window, &info)) | ||||||
|         io.ImeWindowHandle = info.info.win.window; |         ImGui::GetMainViewport()->PlatformHandleRaw = (void*)info.info.win.window; | ||||||
| #else | #else | ||||||
|     (void)window; |     (void)window; | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -122,7 +122,8 @@ bool    ImGui_ImplWin32_Init(void* hwnd) | |||||||
|     bd->Time = perf_counter; |     bd->Time = perf_counter; | ||||||
|     bd->LastMouseCursor = ImGuiMouseCursor_COUNT; |     bd->LastMouseCursor = ImGuiMouseCursor_COUNT; | ||||||
|  |  | ||||||
|     io.ImeWindowHandle = hwnd; |     // Set platform dependent data in viewport | ||||||
|  |     ImGui::GetMainViewport()->PlatformHandleRaw = (void*)hwnd; | ||||||
|  |  | ||||||
|     // Keyboard mapping. Dear ImGui will use those indices to peek into the io.KeysDown[] array that we will update during the application lifetime. |     // Keyboard mapping. Dear ImGui will use those indices to peek into the io.KeysDown[] array that we will update during the application lifetime. | ||||||
|     io.KeyMap[ImGuiKey_Tab] = VK_TAB; |     io.KeyMap[ImGuiKey_Tab] = VK_TAB; | ||||||
|   | |||||||
| @@ -43,6 +43,14 @@ Breaking Changes: | |||||||
|   - ImGui::TreeAdvanceToLabelPos()      -> use ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetTreeNodeToLabelSpacing()); |   - ImGui::TreeAdvanceToLabelPos()      -> use ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetTreeNodeToLabelSpacing()); | ||||||
|   - ImFontAtlas::CustomRect             -> use ImFontAtlasCustomRect |   - ImFontAtlas::CustomRect             -> use ImFontAtlasCustomRect | ||||||
|   - ImGuiColorEditFlags_RGB/HSV/HEX     -> use ImGuiColorEditFlags_DisplayRGB/HSV/Hex |   - ImGuiColorEditFlags_RGB/HSV/HEX     -> use ImGuiColorEditFlags_DisplayRGB/HSV/Hex | ||||||
|  | - Removed io.ImeSetInputScreenPosFn() in favor of more flexible io.SetPlatformImeDataFn() for IME support. | ||||||
|  |   Because this field was mostly only ever used by Dear ImGui internally, not by backends nor the vast majority | ||||||
|  |   of user code, this should only affect a very small fraction for users who are already very IME-aware. | ||||||
|  | - Obsoleted 'void* io.ImeWindowHandle' in favor of writing to 'void* ImGuiViewport::PlatformHandleRaw'. | ||||||
|  |   This removes an incompatibility between 'master' and 'multi-viewports' backends and toward enabling | ||||||
|  |   better support for IME. Updated backends accordingly. Because the old field is set by existing backends, | ||||||
|  |   we are keeping it (marked as obsolete). | ||||||
|  |  | ||||||
|  |  | ||||||
| Other Changes: | Other Changes: | ||||||
|  |  | ||||||
| @@ -50,6 +58,9 @@ Other Changes: | |||||||
|   which would makes the draw operation of some backends assert (e.g. Metal with debugging). (#4857) |   which would makes the draw operation of some backends assert (e.g. Metal with debugging). (#4857) | ||||||
| - Tables, ImDrawListSplitter: Fixed erroneously stripping trailing ImDrawList::AddCallback() when submitted in | - Tables, ImDrawListSplitter: Fixed erroneously stripping trailing ImDrawList::AddCallback() when submitted in | ||||||
|   last column or last channel and when there are no other drawing operation. (#4843, #4844) [@hoffstadt] |   last column or last channel and when there are no other drawing operation. (#4843, #4844) [@hoffstadt] | ||||||
|  | - Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn() API, | ||||||
|  |   now taking a ImGuiPlatformImeData structure which we can more easily extend in the future. | ||||||
|  | - Platform IME: moved io.ImeWindowHandle to GetMainViewport()->PlatformHandleRaw. | ||||||
| - Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init (added in 1.86). (#4468, #4830) [@dymk] | - Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init (added in 1.86). (#4468, #4830) [@dymk] | ||||||
|   It would generally not have noticeable side-effect at runtime but would be detected by runtime checkers. |   It would generally not have noticeable side-effect at runtime but would be detected by runtime checkers. | ||||||
| - Backends: Metal: Added Apple Metal C++ API support. (#4824, #4746) [@luigifcruz] | - Backends: Metal: Added Apple Metal C++ API support. (#4824, #4746) [@luigifcruz] | ||||||
|   | |||||||
| @@ -607,8 +607,8 @@ Text input: it is up to your application to pass the right character code by cal | |||||||
| The applications in examples/ are doing that. | The applications in examples/ are doing that. | ||||||
| Windows: you can use the WM_CHAR or WM_UNICHAR or WM_IME_CHAR message (depending if your app is built using Unicode or MultiByte mode). | Windows: you can use the WM_CHAR or WM_UNICHAR or WM_IME_CHAR message (depending if your app is built using Unicode or MultiByte mode). | ||||||
| You may also use MultiByteToWideChar() or ToUnicode() to retrieve Unicode codepoints from MultiByte characters or keyboard state. | You may also use MultiByteToWideChar() or ToUnicode() to retrieve Unicode codepoints from MultiByte characters or keyboard state. | ||||||
| Windows: if your language is relying on an Input Method Editor (IME), you copy the HWND of your window to io.ImeWindowHandle in order for | Windows: if your language is relying on an Input Method Editor (IME), you can write your HWND to ImGui::GetMainViewport()->PlatformHandleRaw | ||||||
| the default implementation of io.ImeSetInputScreenPosFn() to set your Microsoft IME position correctly. | in order for the default the default implementation of io.SetPlatformImeDataFn() to set your Microsoft IME position correctly. | ||||||
|  |  | ||||||
| ##### [Return to Index](#index) | ##### [Return to Index](#index) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -386,6 +386,7 @@ CODE | |||||||
|  When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files. |  When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files. | ||||||
|  You can read releases logs https://github.com/ocornut/imgui/releases for more details. |  You can read releases logs https://github.com/ocornut/imgui/releases for more details. | ||||||
|  |  | ||||||
|  |  - 2022/03/05 (1.87) - removed io.ImeSetInputScreenPosFn() in favor of more flexible io.SetPlatformImeDataFn(). Removed 'void* io.ImeWindowHandle' in favor of writing to 'void* ImGuiViewport::PlatformHandleRaw'. | ||||||
|  - 2022/03/01 (1.87) - commented out redirecting functions/enums names that were marked obsolete in 1.69, 1.70, 1.71, 1.72 (March-July 2019) |  - 2022/03/01 (1.87) - commented out redirecting functions/enums names that were marked obsolete in 1.69, 1.70, 1.71, 1.72 (March-July 2019) | ||||||
|                         - ImGui::SetNextTreeNodeOpen()        -> use ImGui::SetNextItemOpen() |                         - ImGui::SetNextTreeNodeOpen()        -> use ImGui::SetNextItemOpen() | ||||||
|                         - ImGui::GetContentRegionAvailWidth() -> use ImGui::GetContentRegionAvail().x |                         - ImGui::GetContentRegionAvailWidth() -> use ImGui::GetContentRegionAvail().x | ||||||
| @@ -919,7 +920,7 @@ static void             WindowSettingsHandler_WriteAll(ImGuiContext*, ImGuiSetti | |||||||
| // Platform Dependents default implementation for IO functions | // Platform Dependents default implementation for IO functions | ||||||
| static const char*      GetClipboardTextFn_DefaultImpl(void* user_data); | static const char*      GetClipboardTextFn_DefaultImpl(void* user_data); | ||||||
| static void             SetClipboardTextFn_DefaultImpl(void* user_data, const char* text); | static void             SetClipboardTextFn_DefaultImpl(void* user_data, const char* text); | ||||||
| static void             ImeSetInputScreenPosFn_DefaultImpl(int x, int y); | static void             SetPlatformImeDataFn_DefaultImpl(ImGuiViewport* viewport, ImGuiPlatformImeData* data); | ||||||
|  |  | ||||||
| namespace ImGui | namespace ImGui | ||||||
| { | { | ||||||
| @@ -1136,8 +1137,7 @@ ImGuiIO::ImGuiIO() | |||||||
|     GetClipboardTextFn = GetClipboardTextFn_DefaultImpl;   // Platform dependent default implementations |     GetClipboardTextFn = GetClipboardTextFn_DefaultImpl;   // Platform dependent default implementations | ||||||
|     SetClipboardTextFn = SetClipboardTextFn_DefaultImpl; |     SetClipboardTextFn = SetClipboardTextFn_DefaultImpl; | ||||||
|     ClipboardUserData = NULL; |     ClipboardUserData = NULL; | ||||||
|     ImeSetInputScreenPosFn = ImeSetInputScreenPosFn_DefaultImpl; |     SetPlatformImeDataFn = SetPlatformImeDataFn_DefaultImpl; | ||||||
|     ImeWindowHandle = NULL; |  | ||||||
|  |  | ||||||
|     // 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); |     MousePos = ImVec2(-FLT_MAX, -FLT_MAX); | ||||||
| @@ -4553,9 +4553,11 @@ void ImGui::EndFrame() | |||||||
|     ErrorCheckEndFrameSanityChecks(); |     ErrorCheckEndFrameSanityChecks(); | ||||||
|  |  | ||||||
|     // Notify OS when our Input Method Editor cursor has moved (e.g. CJK inputs using Microsoft IME) |     // Notify OS when our Input Method Editor cursor has moved (e.g. CJK inputs using Microsoft IME) | ||||||
|     if (g.IO.ImeSetInputScreenPosFn && (g.PlatformImeLastPos.x == FLT_MAX || ImLengthSqr(g.PlatformImeLastPos - g.PlatformImePos) > 0.0001f)) |     if (g.IO.SetPlatformImeDataFn && (g.PlatformImeLastPos.x == FLT_MAX || ImLengthSqr(g.PlatformImeLastPos - g.PlatformImePos) > 0.0001f)) | ||||||
|     { |     { | ||||||
|         g.IO.ImeSetInputScreenPosFn((int)g.PlatformImePos.x, (int)g.PlatformImePos.y); |         ImGuiPlatformImeData data; | ||||||
|  |         data.InputPos = g.PlatformImePos; | ||||||
|  |         g.IO.SetPlatformImeDataFn(GetMainViewport(), &data); | ||||||
|         g.PlatformImeLastPos = g.PlatformImePos; |         g.PlatformImeLastPos = g.PlatformImePos; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -11500,16 +11502,22 @@ static void SetClipboardTextFn_DefaultImpl(void*, const char* text) | |||||||
| #pragma comment(lib, "imm32") | #pragma comment(lib, "imm32") | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y) | static void SetPlatformImeDataFn_DefaultImpl(ImGuiViewport* viewport, ImGuiPlatformImeData* data) | ||||||
| { | { | ||||||
|     // Notify OS Input Method Editor of text input position |     // Notify OS Input Method Editor of text input position | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |     HWND hwnd = (HWND)viewport->PlatformHandleRaw; | ||||||
|     if (HWND hwnd = (HWND)io.ImeWindowHandle) | #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS | ||||||
|  |     if (hwnd == 0) | ||||||
|  |         hwnd = (HWND)ImGui::GetIO().ImeWindowHandle; | ||||||
|  | #endif | ||||||
|  |     if (hwnd == 0) | ||||||
|  |         return; | ||||||
|  |  | ||||||
|     if (HIMC himc = ::ImmGetContext(hwnd)) |     if (HIMC himc = ::ImmGetContext(hwnd)) | ||||||
|     { |     { | ||||||
|         COMPOSITIONFORM cf; |         COMPOSITIONFORM cf; | ||||||
|             cf.ptCurrentPos.x = x; |         cf.ptCurrentPos.x = (LONG)data->InputPos.x; | ||||||
|             cf.ptCurrentPos.y = y; |         cf.ptCurrentPos.y = (LONG)data->InputPos.y; | ||||||
|         cf.dwStyle = CFS_FORCE_POSITION; |         cf.dwStyle = CFS_FORCE_POSITION; | ||||||
|         ::ImmSetCompositionWindow(himc, &cf); |         ::ImmSetCompositionWindow(himc, &cf); | ||||||
|         ::ImmReleaseContext(hwnd, himc); |         ::ImmReleaseContext(hwnd, himc); | ||||||
| @@ -11518,7 +11526,7 @@ static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y) | |||||||
|  |  | ||||||
| #else | #else | ||||||
|  |  | ||||||
| static void ImeSetInputScreenPosFn_DefaultImpl(int, int) {} | static void SetPlatformImeDataFn_De(int, int) {} | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										25
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -35,6 +35,7 @@ Index of this file: | |||||||
| // [SECTION] Drawing API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawFlags, ImDrawListFlags, ImDrawList, ImDrawData) | // [SECTION] Drawing API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawFlags, ImDrawListFlags, ImDrawList, ImDrawData) | ||||||
| // [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontGlyphRangesBuilder, ImFontAtlasFlags, ImFontAtlas, ImFont) | // [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontGlyphRangesBuilder, ImFontAtlasFlags, ImFontAtlas, ImFont) | ||||||
| // [SECTION] Viewports (ImGuiViewportFlags, ImGuiViewport) | // [SECTION] Viewports (ImGuiViewportFlags, ImGuiViewport) | ||||||
|  | // [SECTION] Platform Dependent Interfaces (ImGuiPlatformImeData) | ||||||
| // [SECTION] Obsolete functions and types | // [SECTION] Obsolete functions and types | ||||||
|  |  | ||||||
| */ | */ | ||||||
| @@ -64,7 +65,7 @@ Index of this file: | |||||||
| // Version | // Version | ||||||
| // (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) | // (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) | ||||||
| #define IMGUI_VERSION               "1.87 WIP" | #define IMGUI_VERSION               "1.87 WIP" | ||||||
| #define IMGUI_VERSION_NUM           18602 | #define IMGUI_VERSION_NUM           18603 | ||||||
| #define IMGUI_CHECKVERSION()        ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) | #define IMGUI_CHECKVERSION()        ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) | ||||||
| #define IMGUI_HAS_TABLE | #define IMGUI_HAS_TABLE | ||||||
|  |  | ||||||
| @@ -154,6 +155,7 @@ struct ImGuiInputTextCallbackData;  // Shared state of InputText() when using cu | |||||||
| struct ImGuiListClipper;            // Helper to manually clip large list of items | struct ImGuiListClipper;            // Helper to manually clip large list of items | ||||||
| struct ImGuiOnceUponAFrame;         // Helper for running a block of code not more than once a frame | struct ImGuiOnceUponAFrame;         // Helper for running a block of code not more than once a frame | ||||||
| struct ImGuiPayload;                // User data payload for drag and drop operations | struct ImGuiPayload;                // User data payload for drag and drop operations | ||||||
|  | struct ImGuiPlatformImeData;        // Platform IME data for io.SetPlatformImeDataFn() function. | ||||||
| struct ImGuiSizeCallbackData;       // Callback data when using SetNextWindowSizeConstraints() (rare/advanced use) | struct ImGuiSizeCallbackData;       // Callback data when using SetNextWindowSizeConstraints() (rare/advanced use) | ||||||
| struct ImGuiStorage;                // Helper for key->value storage | struct ImGuiStorage;                // Helper for key->value storage | ||||||
| struct ImGuiStyle;                  // Runtime data for styling/colors | struct ImGuiStyle;                  // Runtime data for styling/colors | ||||||
| @@ -1868,8 +1870,12 @@ struct ImGuiIO | |||||||
|  |  | ||||||
|     // Optional: Notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME on Windows) |     // Optional: Notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME on Windows) | ||||||
|     // (default to use native imm32 api on Windows) |     // (default to use native imm32 api on Windows) | ||||||
|     void        (*ImeSetInputScreenPosFn)(int x, int y); |     void        (*SetPlatformImeDataFn)(ImGuiViewport* viewport, ImGuiPlatformImeData* data); | ||||||
|     void*       ImeWindowHandle;                // = NULL           // (Windows) Set this to your HWND to get automatic IME cursor positioning. | #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS | ||||||
|  |     void*       ImeWindowHandle;                // = NULL           // [Obsolete] Set ImGuiViewport::PlatformHandleRaw instead. Set this to your HWND to get automatic IME cursor positioning. | ||||||
|  | #else | ||||||
|  |     void*       _UnusedPadding;                                     // Unused field to keep data structure the same size. | ||||||
|  | #endif | ||||||
|  |  | ||||||
|     //------------------------------------------------------------------ |     //------------------------------------------------------------------ | ||||||
|     // Input - Fill before calling NewFrame() |     // Input - Fill before calling NewFrame() | ||||||
| @@ -2809,6 +2815,9 @@ struct ImGuiViewport | |||||||
|     ImVec2              WorkPos;                // Work Area: Position of the viewport minus task bars, menus bars, status bars (>= Pos) |     ImVec2              WorkPos;                // Work Area: Position of the viewport minus task bars, menus bars, status bars (>= Pos) | ||||||
|     ImVec2              WorkSize;               // Work Area: Size of the viewport minus task bars, menu bars, status bars (<= Size) |     ImVec2              WorkSize;               // Work Area: Size of the viewport minus task bars, menu bars, status bars (<= Size) | ||||||
|  |  | ||||||
|  |     // Platform/Backend Dependent Data | ||||||
|  |     void*               PlatformHandleRaw;      // void* to hold lower-level, platform-native window handle (under Win32 this is expected to be a HWND, unused for other platforms) | ||||||
|  |  | ||||||
|     ImGuiViewport()     { memset(this, 0, sizeof(*this)); } |     ImGuiViewport()     { memset(this, 0, sizeof(*this)); } | ||||||
|  |  | ||||||
|     // Helpers |     // Helpers | ||||||
| @@ -2816,6 +2825,16 @@ struct ImGuiViewport | |||||||
|     ImVec2              GetWorkCenter() const   { return ImVec2(WorkPos.x + WorkSize.x * 0.5f, WorkPos.y + WorkSize.y * 0.5f); } |     ImVec2              GetWorkCenter() const   { return ImVec2(WorkPos.x + WorkSize.x * 0.5f, WorkPos.y + WorkSize.y * 0.5f); } | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | //----------------------------------------------------------------------------- | ||||||
|  | // [SECTION] Platform Dependent Interfaces | ||||||
|  | //----------------------------------------------------------------------------- | ||||||
|  |  | ||||||
|  | // (Optional) Support for IME (Input Method Editor) via the io.SetPlatformImeDataFn() function. | ||||||
|  | struct ImGuiPlatformImeData | ||||||
|  | { | ||||||
|  |     ImVec2  InputPos;           // Position of the input cursor | ||||||
|  | }; | ||||||
|  |  | ||||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||||
| // [SECTION] Obsolete functions and types | // [SECTION] Obsolete functions and types | ||||||
| // (Will be removed! Read 'API BREAKING CHANGES' section in imgui.cpp for details) | // (Will be removed! Read 'API BREAKING CHANGES' section in imgui.cpp for details) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user