mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	IO: Reorder enums, compact a little in header. Removed const from internal GetKeyData().
This commit is contained in:
		
							
								
								
									
										12
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -7444,7 +7444,7 @@ bool ImGui::IsMouseHoveringRect(const ImVec2& r_min, const ImVec2& r_max, bool c | |||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
|  |  | ||||||
| const ImGuiKeyData* ImGui::GetKeyData(ImGuiKey key) | ImGuiKeyData* ImGui::GetKeyData(ImGuiKey key) | ||||||
| { | { | ||||||
|     ImGuiContext& g = *GImGui; |     ImGuiContext& g = *GImGui; | ||||||
|     int index; |     int index; | ||||||
| @@ -7476,15 +7476,15 @@ static const char* const GKeyNames[] = | |||||||
| { | { | ||||||
|     "Tab", "LeftArrow", "RightArrow", "UpArrow", "DownArrow", "PageUp", "PageDown", |     "Tab", "LeftArrow", "RightArrow", "UpArrow", "DownArrow", "PageUp", "PageDown", | ||||||
|     "Home", "End", "Insert", "Delete", "Backspace", "Space", "Enter", "Escape", |     "Home", "End", "Insert", "Delete", "Backspace", "Space", "Enter", "Escape", | ||||||
|  |     "LeftCtrl", "LeftShift", "LeftAlt", "LeftSuper", "RightCtrl", "RightShift", "RightAlt", "RightSuper", "Menu", | ||||||
|  |     "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", | ||||||
|  |     "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", | ||||||
|  |     "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", | ||||||
|     "Apostrophe", "Comma", "Minus", "Period", "Slash", "Semicolon", "Equal", "LeftBracket", |     "Apostrophe", "Comma", "Minus", "Period", "Slash", "Semicolon", "Equal", "LeftBracket", | ||||||
|     "Backslash", "RightBracket", "GraveAccent", "CapsLock", "ScrollLock", "NumLock", "PrintScreen", |     "Backslash", "RightBracket", "GraveAccent", "CapsLock", "ScrollLock", "NumLock", "PrintScreen", | ||||||
|     "Pause", "Keypad0", "Keypad1", "Keypad2", "Keypad3", "Keypad4", "Keypad5", "Keypad6", |     "Pause", "Keypad0", "Keypad1", "Keypad2", "Keypad3", "Keypad4", "Keypad5", "Keypad6", | ||||||
|     "Keypad7", "Keypad8", "Keypad9", "KeypadDecimal", "KeypadDivide", "KeypadMultiply", |     "Keypad7", "Keypad8", "Keypad9", "KeypadDecimal", "KeypadDivide", "KeypadMultiply", | ||||||
|     "KeypadSubtract", "KeypadAdd", "KeypadEnter", "KeypadEqual", "LeftCtrl", "LeftShift", |     "KeypadSubtract", "KeypadAdd", "KeypadEnter", "KeypadEqual" | ||||||
|     "LeftAlt", "LeftSuper", "RightCtrl", "RightShift", "RightAlt", "RightSuper", "Menu", |  | ||||||
|     "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", |  | ||||||
|     "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", |  | ||||||
|     "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12" |  | ||||||
| }; | }; | ||||||
| IM_STATIC_ASSERT(ImGuiKey_NamedKey_COUNT == IM_ARRAYSIZE(GKeyNames)); | IM_STATIC_ASSERT(ImGuiKey_NamedKey_COUNT == IM_ARRAYSIZE(GKeyNames)); | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										82
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -1358,6 +1358,15 @@ enum ImGuiKey_ | |||||||
|     ImGuiKey_Space, |     ImGuiKey_Space, | ||||||
|     ImGuiKey_Enter, |     ImGuiKey_Enter, | ||||||
|     ImGuiKey_Escape, |     ImGuiKey_Escape, | ||||||
|  |     ImGuiKey_LeftCtrl, ImGuiKey_LeftShift, ImGuiKey_LeftAlt, ImGuiKey_LeftSuper, | ||||||
|  |     ImGuiKey_RightCtrl, ImGuiKey_RightShift, ImGuiKey_RightAlt, ImGuiKey_RightSuper, | ||||||
|  |     ImGuiKey_Menu, | ||||||
|  |     ImGuiKey_0, ImGuiKey_1, ImGuiKey_2, ImGuiKey_3, ImGuiKey_4, ImGuiKey_5, ImGuiKey_6, ImGuiKey_7, ImGuiKey_8, ImGuiKey_9, | ||||||
|  |     ImGuiKey_A, ImGuiKey_B, ImGuiKey_C, ImGuiKey_D, ImGuiKey_E, ImGuiKey_F, ImGuiKey_G, ImGuiKey_H, ImGuiKey_I, ImGuiKey_J, | ||||||
|  |     ImGuiKey_K, ImGuiKey_L, ImGuiKey_M, ImGuiKey_N, ImGuiKey_O, ImGuiKey_P, ImGuiKey_Q, ImGuiKey_R, ImGuiKey_S, ImGuiKey_T, | ||||||
|  |     ImGuiKey_U, ImGuiKey_V, ImGuiKey_W, ImGuiKey_X, ImGuiKey_Y, ImGuiKey_Z, | ||||||
|  |     ImGuiKey_F1, ImGuiKey_F2, ImGuiKey_F3, ImGuiKey_F4, ImGuiKey_F5, ImGuiKey_F6, | ||||||
|  |     ImGuiKey_F7, ImGuiKey_F8, ImGuiKey_F9, ImGuiKey_F10, ImGuiKey_F11, ImGuiKey_F12, | ||||||
|     ImGuiKey_Apostrophe,        // ' |     ImGuiKey_Apostrophe,        // ' | ||||||
|     ImGuiKey_Comma,             // , |     ImGuiKey_Comma,             // , | ||||||
|     ImGuiKey_Minus,             // - |     ImGuiKey_Minus,             // - | ||||||
| @@ -1366,7 +1375,7 @@ enum ImGuiKey_ | |||||||
|     ImGuiKey_Semicolon,         // ; |     ImGuiKey_Semicolon,         // ; | ||||||
|     ImGuiKey_Equal,             // = |     ImGuiKey_Equal,             // = | ||||||
|     ImGuiKey_LeftBracket,       // [ |     ImGuiKey_LeftBracket,       // [ | ||||||
|     ImGuiKey_Backslash,     // \ (this text inhibit multiline comment caused by backlash) |     ImGuiKey_Backslash,         // \ (this text inhibit multiline comment caused by backslash) | ||||||
|     ImGuiKey_RightBracket,      // ] |     ImGuiKey_RightBracket,      // ] | ||||||
|     ImGuiKey_GraveAccent,       // ` |     ImGuiKey_GraveAccent,       // ` | ||||||
|     ImGuiKey_CapsLock, |     ImGuiKey_CapsLock, | ||||||
| @@ -1374,16 +1383,8 @@ enum ImGuiKey_ | |||||||
|     ImGuiKey_NumLock, |     ImGuiKey_NumLock, | ||||||
|     ImGuiKey_PrintScreen, |     ImGuiKey_PrintScreen, | ||||||
|     ImGuiKey_Pause, |     ImGuiKey_Pause, | ||||||
|     ImGuiKey_Keypad0, |     ImGuiKey_Keypad0, ImGuiKey_Keypad1, ImGuiKey_Keypad2, ImGuiKey_Keypad3, ImGuiKey_Keypad4, | ||||||
|     ImGuiKey_Keypad1, |     ImGuiKey_Keypad5, ImGuiKey_Keypad6, ImGuiKey_Keypad7, ImGuiKey_Keypad8, ImGuiKey_Keypad9, | ||||||
|     ImGuiKey_Keypad2, |  | ||||||
|     ImGuiKey_Keypad3, |  | ||||||
|     ImGuiKey_Keypad4, |  | ||||||
|     ImGuiKey_Keypad5, |  | ||||||
|     ImGuiKey_Keypad6, |  | ||||||
|     ImGuiKey_Keypad7, |  | ||||||
|     ImGuiKey_Keypad8, |  | ||||||
|     ImGuiKey_Keypad9, |  | ||||||
|     ImGuiKey_KeypadDecimal, |     ImGuiKey_KeypadDecimal, | ||||||
|     ImGuiKey_KeypadDivide, |     ImGuiKey_KeypadDivide, | ||||||
|     ImGuiKey_KeypadMultiply, |     ImGuiKey_KeypadMultiply, | ||||||
| @@ -1391,69 +1392,12 @@ enum ImGuiKey_ | |||||||
|     ImGuiKey_KeypadAdd, |     ImGuiKey_KeypadAdd, | ||||||
|     ImGuiKey_KeypadEnter, |     ImGuiKey_KeypadEnter, | ||||||
|     ImGuiKey_KeypadEqual, |     ImGuiKey_KeypadEqual, | ||||||
|     ImGuiKey_LeftCtrl, |  | ||||||
|     ImGuiKey_LeftShift, |  | ||||||
|     ImGuiKey_LeftAlt, |  | ||||||
|     ImGuiKey_LeftSuper, |  | ||||||
|     ImGuiKey_RightCtrl, |  | ||||||
|     ImGuiKey_RightShift, |  | ||||||
|     ImGuiKey_RightAlt, |  | ||||||
|     ImGuiKey_RightSuper, |  | ||||||
|     ImGuiKey_Menu, |  | ||||||
|     ImGuiKey_0, |  | ||||||
|     ImGuiKey_1, |  | ||||||
|     ImGuiKey_2, |  | ||||||
|     ImGuiKey_3, |  | ||||||
|     ImGuiKey_4, |  | ||||||
|     ImGuiKey_5, |  | ||||||
|     ImGuiKey_6, |  | ||||||
|     ImGuiKey_7, |  | ||||||
|     ImGuiKey_8, |  | ||||||
|     ImGuiKey_9, |  | ||||||
|     ImGuiKey_A, |  | ||||||
|     ImGuiKey_B, |  | ||||||
|     ImGuiKey_C, |  | ||||||
|     ImGuiKey_D, |  | ||||||
|     ImGuiKey_E, |  | ||||||
|     ImGuiKey_F, |  | ||||||
|     ImGuiKey_G, |  | ||||||
|     ImGuiKey_H, |  | ||||||
|     ImGuiKey_I, |  | ||||||
|     ImGuiKey_J, |  | ||||||
|     ImGuiKey_K, |  | ||||||
|     ImGuiKey_L, |  | ||||||
|     ImGuiKey_M, |  | ||||||
|     ImGuiKey_N, |  | ||||||
|     ImGuiKey_O, |  | ||||||
|     ImGuiKey_P, |  | ||||||
|     ImGuiKey_Q, |  | ||||||
|     ImGuiKey_R, |  | ||||||
|     ImGuiKey_S, |  | ||||||
|     ImGuiKey_T, |  | ||||||
|     ImGuiKey_U, |  | ||||||
|     ImGuiKey_V, |  | ||||||
|     ImGuiKey_W, |  | ||||||
|     ImGuiKey_X, |  | ||||||
|     ImGuiKey_Y, |  | ||||||
|     ImGuiKey_Z, |  | ||||||
|     ImGuiKey_F1, |  | ||||||
|     ImGuiKey_F2, |  | ||||||
|     ImGuiKey_F3, |  | ||||||
|     ImGuiKey_F4, |  | ||||||
|     ImGuiKey_F5, |  | ||||||
|     ImGuiKey_F6, |  | ||||||
|     ImGuiKey_F7, |  | ||||||
|     ImGuiKey_F8, |  | ||||||
|     ImGuiKey_F9, |  | ||||||
|     ImGuiKey_F10, |  | ||||||
|     ImGuiKey_F11, |  | ||||||
|     ImGuiKey_F12, |  | ||||||
|     ImGuiKey_COUNT,             // No valid ImGuiKey is ever greater than this value |     ImGuiKey_COUNT,             // No valid ImGuiKey is ever greater than this value | ||||||
|  |  | ||||||
|     // Legacy range used by legacy io.KeyMap[]. Prior to 1.87 we required user to fill io.KeysDown[512] using their own native index. |     // Legacy range used by legacy io.KeyMap[]. Prior to 1.87 we required user to fill io.KeysDown[512] using their own native index. | ||||||
|     // We are ditching this method but keeping a legacy path for user code doing e.g. IsKeyPressed(MY_NATIVE_KEY_CODE) |     // We are ditching this method but keeping a legacy path for user code doing e.g. IsKeyPressed(MY_NATIVE_KEY_CODE) | ||||||
|     ImGuiKey_LegacyNativeKey_BEGIN  = 0, |     ImGuiKey_LegacyNativeKey_BEGIN  = 0, | ||||||
|     ImGuiKey_LegacyNativeKey_END    = 512,  // First index after valid range |     ImGuiKey_LegacyNativeKey_END    = 512, | ||||||
|     ImGuiKey_NamedKey_BEGIN         = 512, |     ImGuiKey_NamedKey_BEGIN         = 512, | ||||||
|     ImGuiKey_NamedKey_END           = ImGuiKey_COUNT, |     ImGuiKey_NamedKey_END           = ImGuiKey_COUNT, | ||||||
|     ImGuiKey_NamedKey_COUNT         = ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN, |     ImGuiKey_NamedKey_COUNT         = ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN, | ||||||
|   | |||||||
| @@ -483,6 +483,7 @@ void ImGui::ShowDemoWindow(bool* p_open) | |||||||
|                 "Here we expose them as read-only fields to avoid breaking interactions with your backend."); |                 "Here we expose them as read-only fields to avoid breaking interactions with your backend."); | ||||||
|  |  | ||||||
|             // Make a local copy to avoid modifying actual backend flags. |             // Make a local copy to avoid modifying actual backend flags. | ||||||
|  |             // FIXME: We don't use BeginDisabled() to keep label bright, maybe we need a BeginReadonly() equivalent.. | ||||||
|             ImGuiBackendFlags backend_flags = io.BackendFlags; |             ImGuiBackendFlags backend_flags = io.BackendFlags; | ||||||
|             ImGui::CheckboxFlags("io.BackendFlags: HasGamepad",           &backend_flags, ImGuiBackendFlags_HasGamepad); |             ImGui::CheckboxFlags("io.BackendFlags: HasGamepad",           &backend_flags, ImGuiBackendFlags_HasGamepad); | ||||||
|             ImGui::CheckboxFlags("io.BackendFlags: HasMouseCursors",      &backend_flags, ImGuiBackendFlags_HasMouseCursors); |             ImGui::CheckboxFlags("io.BackendFlags: HasMouseCursors",      &backend_flags, ImGuiBackendFlags_HasMouseCursors); | ||||||
| @@ -5637,7 +5638,7 @@ static void ShowDemoWindowColumns() | |||||||
|     ImGui::TreePop(); |     ImGui::TreePop(); | ||||||
| } | } | ||||||
|  |  | ||||||
| namespace ImGui { extern const ImGuiKeyData* GetKeyData(ImGuiKey key); } | namespace ImGui { extern ImGuiKeyData* GetKeyData(ImGuiKey key); } | ||||||
|  |  | ||||||
| static void ShowDemoWindowMisc() | static void ShowDemoWindowMisc() | ||||||
| { | { | ||||||
| @@ -5702,9 +5703,9 @@ static void ShowDemoWindowMisc() | |||||||
| #else | #else | ||||||
|             struct funcs { static bool IsNativeDupe(ImGuiKey key) { return key < ImGuiKey_LegacyNativeKey_END && ImGui::GetIO().KeyMap[key] != -1; } }; // Hide Native<>ImGuiKey duplicates when both exists in the array |             struct funcs { static bool IsNativeDupe(ImGuiKey key) { return key < ImGuiKey_LegacyNativeKey_END && ImGui::GetIO().KeyMap[key] != -1; } }; // Hide Native<>ImGuiKey duplicates when both exists in the array | ||||||
| #endif | #endif | ||||||
|             ImGui::Text("Keys down:");          for (int i = 0; i < ImGuiKey_KeysData_SIZE; i++) { ImGuiKey key = (ImGuiKey)(i + ImGuiKey_KeysData_OFFSET); if (funcs::IsNativeDupe(key)) continue; if (ImGui::IsKeyDown(key)) { ImGui::SameLine(); ImGui::Text("\"%s\" %d (0x%X) (%.02f secs)", ImGui::GetKeyName(key), key, key, ImGui::GetKeyData(key)->DownDuration); } } |             ImGui::Text("Keys down:");          for (int i = 0; i < ImGuiKey_KeysData_SIZE; i++) { ImGuiKey key = (ImGuiKey)(i + ImGuiKey_KeysData_OFFSET); if (funcs::IsNativeDupe(key)) continue; if (ImGui::IsKeyDown(key)) { ImGui::SameLine(); ImGui::Text("\"%s\" %d (%.02f secs)", ImGui::GetKeyName(key), key, ImGui::GetKeyData(key)->DownDuration); } } | ||||||
|             ImGui::Text("Keys pressed:");       for (int i = 0; i < ImGuiKey_KeysData_SIZE; i++) { ImGuiKey key = (ImGuiKey)(i + ImGuiKey_KeysData_OFFSET); if (funcs::IsNativeDupe(key)) continue; if (ImGui::IsKeyPressed(key)) { ImGui::SameLine(); ImGui::Text("\"%s\" %d (0x%X)", ImGui::GetKeyName(key), key, key); } } |             ImGui::Text("Keys pressed:");       for (int i = 0; i < ImGuiKey_KeysData_SIZE; i++) { ImGuiKey key = (ImGuiKey)(i + ImGuiKey_KeysData_OFFSET); if (funcs::IsNativeDupe(key)) continue; if (ImGui::IsKeyPressed(key)) { ImGui::SameLine(); ImGui::Text("\"%s\" %d", ImGui::GetKeyName(key), key); } } | ||||||
|             ImGui::Text("Keys released:");      for (int i = 0; i < ImGuiKey_KeysData_SIZE; i++) { ImGuiKey key = (ImGuiKey)(i + ImGuiKey_KeysData_OFFSET); if (funcs::IsNativeDupe(key)) continue; if (ImGui::IsKeyReleased(key)) { ImGui::SameLine(); ImGui::Text("\"%s\" %d (0x%X)", ImGui::GetKeyName(key), key, key); } } |             ImGui::Text("Keys released:");      for (int i = 0; i < ImGuiKey_KeysData_SIZE; i++) { ImGuiKey key = (ImGuiKey)(i + ImGuiKey_KeysData_OFFSET); if (funcs::IsNativeDupe(key)) continue; if (ImGui::IsKeyReleased(key)) { ImGui::SameLine(); ImGui::Text("\"%s\" %d", ImGui::GetKeyName(key), key); } } | ||||||
|             ImGui::Text("Keys mods: %s%s%s%s", io.KeyCtrl ? "CTRL " : "", io.KeyShift ? "SHIFT " : "", io.KeyAlt ? "ALT " : "", io.KeySuper ? "SUPER " : ""); |             ImGui::Text("Keys mods: %s%s%s%s", io.KeyCtrl ? "CTRL " : "", io.KeyShift ? "SHIFT " : "", io.KeyAlt ? "ALT " : "", io.KeySuper ? "SUPER " : ""); | ||||||
|             ImGui::Text("Chars queue:");        for (int i = 0; i < io.InputQueueCharacters.Size; i++) { ImWchar c = io.InputQueueCharacters[i]; ImGui::SameLine();  ImGui::Text("\'%c\' (0x%04X)", (c > ' ' && c <= 255) ? (char)c : '?', c); } // FIXME: We should convert 'c' to UTF-8 here but the functions are not public. |             ImGui::Text("Chars queue:");        for (int i = 0; i < io.InputQueueCharacters.Size; i++) { ImWchar c = io.InputQueueCharacters[i]; ImGui::SameLine();  ImGui::Text("\'%c\' (0x%04X)", (c > ' ' && c <= 255) ? (char)c : '?', c); } // FIXME: We should convert 'c' to UTF-8 here but the functions are not public. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -937,7 +937,6 @@ struct ImGuiInputEvent | |||||||
| { | { | ||||||
|     ImGuiInputEventType             Type; |     ImGuiInputEventType             Type; | ||||||
|     ImGuiInputSource                Source; |     ImGuiInputSource                Source; | ||||||
|     bool                            SubmittedByTestEngine; |  | ||||||
|     union |     union | ||||||
|     { |     { | ||||||
|         ImGuiInputEventMousePos     MousePos;       // if Type == ImGuiInputEventType_MousePos |         ImGuiInputEventMousePos     MousePos;       // if Type == ImGuiInputEventType_MousePos | ||||||
| @@ -948,6 +947,7 @@ struct ImGuiInputEvent | |||||||
|         ImGuiInputEventText         Text;           // if Type == ImGuiInputEventType_Text |         ImGuiInputEventText         Text;           // if Type == ImGuiInputEventType_Text | ||||||
|         ImGuiInputEventAppFocused   AppFocused;     // if Type == ImGuiInputEventType_Focus |         ImGuiInputEventAppFocused   AppFocused;     // if Type == ImGuiInputEventType_Focus | ||||||
|     }; |     }; | ||||||
|  |     bool                            AddedByTestEngine; | ||||||
|  |  | ||||||
|     ImGuiInputEvent() { memset(this, 0, sizeof(*this)); } |     ImGuiInputEvent() { memset(this, 0, sizeof(*this)); } | ||||||
| }; | }; | ||||||
| @@ -2640,7 +2640,7 @@ namespace ImGui | |||||||
|     // FIXME: Eventually we should aim to move e.g. IsActiveIdUsingKey() into IsKeyXXX functions. |     // FIXME: Eventually we should aim to move e.g. IsActiveIdUsingKey() into IsKeyXXX functions. | ||||||
|     inline bool             IsNamedKey(ImGuiKey key)                                    { return key >= ImGuiKey_NamedKey_BEGIN && key < ImGuiKey_NamedKey_END; } |     inline bool             IsNamedKey(ImGuiKey key)                                    { return key >= ImGuiKey_NamedKey_BEGIN && key < ImGuiKey_NamedKey_END; } | ||||||
|     inline bool             IsLegacyKey(ImGuiKey key)                                   { return key >= ImGuiKey_LegacyNativeKey_BEGIN && key < ImGuiKey_LegacyNativeKey_END; } |     inline bool             IsLegacyKey(ImGuiKey key)                                   { return key >= ImGuiKey_LegacyNativeKey_BEGIN && key < ImGuiKey_LegacyNativeKey_END; } | ||||||
|     IMGUI_API const ImGuiKeyData* GetKeyData(ImGuiKey key); |     IMGUI_API ImGuiKeyData* GetKeyData(ImGuiKey key); | ||||||
|     IMGUI_API void          SetItemUsingMouseWheel(); |     IMGUI_API void          SetItemUsingMouseWheel(); | ||||||
|     IMGUI_API void          SetActiveIdUsingNavAndKeys(); |     IMGUI_API void          SetActiveIdUsingNavAndKeys(); | ||||||
|     inline bool             IsActiveIdUsingNavDir(ImGuiDir dir)                         { ImGuiContext& g = *GImGui; return (g.ActiveIdUsingNavDirMask & (1 << dir)) != 0; } |     inline bool             IsActiveIdUsingNavDir(ImGuiDir dir)                         { ImGuiContext& g = *GImGui; return (g.ActiveIdUsingNavDirMask & (1 << dir)) != 0; } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user