mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Internals: removed ImGuiInputSource_Nav enum,
Essentially finishing the work of removing Nav a dual input source (with e.g. removal of NavInput[]).
This commit is contained in:
		@@ -3791,7 +3791,8 @@ void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window)
 | 
				
			|||||||
    if (id)
 | 
					    if (id)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        g.ActiveIdIsAlive = id;
 | 
					        g.ActiveIdIsAlive = id;
 | 
				
			||||||
        g.ActiveIdSource = (g.NavActivateId == id || g.NavJustMovedToId == id) ? (ImGuiInputSource)ImGuiInputSource_Nav : ImGuiInputSource_Mouse;
 | 
					        g.ActiveIdSource = (g.NavActivateId == id || g.NavJustMovedToId == id) ? g.NavInputSource : ImGuiInputSource_Mouse;
 | 
				
			||||||
 | 
					        IM_ASSERT(g.ActiveIdSource != ImGuiInputSource_None);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Clear declaration of inputs claimed by the widget
 | 
					    // Clear declaration of inputs claimed by the widget
 | 
				
			||||||
@@ -5275,7 +5276,7 @@ bool ImGui::BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, b
 | 
				
			|||||||
        FocusWindow(child_window);
 | 
					        FocusWindow(child_window);
 | 
				
			||||||
        NavInitWindow(child_window, false);
 | 
					        NavInitWindow(child_window, false);
 | 
				
			||||||
        SetActiveID(id + 1, child_window); // Steal ActiveId with another arbitrary id so that key-press won't activate child item
 | 
					        SetActiveID(id + 1, child_window); // Steal ActiveId with another arbitrary id so that key-press won't activate child item
 | 
				
			||||||
        g.ActiveIdSource = ImGuiInputSource_Nav;
 | 
					        g.ActiveIdSource = g.NavInputSource;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return ret;
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -8638,7 +8639,7 @@ void ImGui::SetNextFrameWantCaptureMouse(bool want_capture_mouse)
 | 
				
			|||||||
#ifndef IMGUI_DISABLE_DEBUG_TOOLS
 | 
					#ifndef IMGUI_DISABLE_DEBUG_TOOLS
 | 
				
			||||||
static const char* GetInputSourceName(ImGuiInputSource source)
 | 
					static const char* GetInputSourceName(ImGuiInputSource source)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    const char* input_source_names[] = { "None", "Mouse", "Keyboard", "Gamepad", "Nav", "Clipboard" };
 | 
					    const char* input_source_names[] = { "None", "Mouse", "Keyboard", "Gamepad", "Clipboard" };
 | 
				
			||||||
    IM_ASSERT(IM_ARRAYSIZE(input_source_names) == ImGuiInputSource_COUNT && source >= 0 && source < ImGuiInputSource_COUNT);
 | 
					    IM_ASSERT(IM_ARRAYSIZE(input_source_names) == ImGuiInputSource_COUNT && source >= 0 && source < ImGuiInputSource_COUNT);
 | 
				
			||||||
    return input_source_names[source];
 | 
					    return input_source_names[source];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -10572,7 +10573,7 @@ void ImGui::SetFocusID(ImGuiID id, ImGuiWindow* window)
 | 
				
			|||||||
    if (g.LastItemData.ID == id)
 | 
					    if (g.LastItemData.ID == id)
 | 
				
			||||||
        window->NavRectRel[nav_layer] = WindowRectAbsToRel(window, g.LastItemData.NavRect);
 | 
					        window->NavRectRel[nav_layer] = WindowRectAbsToRel(window, g.LastItemData.NavRect);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (g.ActiveIdSource == ImGuiInputSource_Nav)
 | 
					    if (g.ActiveIdSource == ImGuiInputSource_Keyboard || g.ActiveIdSource == ImGuiInputSource_Gamepad)
 | 
				
			||||||
        g.NavDisableMouseHover = true;
 | 
					        g.NavDisableMouseHover = true;
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        g.NavDisableHighlight = true;
 | 
					        g.NavDisableHighlight = true;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1258,7 +1258,6 @@ enum ImGuiInputSource
 | 
				
			|||||||
    ImGuiInputSource_Keyboard,
 | 
					    ImGuiInputSource_Keyboard,
 | 
				
			||||||
    ImGuiInputSource_Gamepad,
 | 
					    ImGuiInputSource_Gamepad,
 | 
				
			||||||
    ImGuiInputSource_Clipboard,     // Currently only used by InputText()
 | 
					    ImGuiInputSource_Clipboard,     // Currently only used by InputText()
 | 
				
			||||||
    ImGuiInputSource_Nav,           // Stored in g.ActiveIdSource only
 | 
					 | 
				
			||||||
    ImGuiInputSource_COUNT
 | 
					    ImGuiInputSource_COUNT
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1786,7 +1785,7 @@ struct ImGuiContext
 | 
				
			|||||||
    bool                    ActiveIdHasBeenEditedThisFrame;
 | 
					    bool                    ActiveIdHasBeenEditedThisFrame;
 | 
				
			||||||
    ImVec2                  ActiveIdClickOffset;                // Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior)
 | 
					    ImVec2                  ActiveIdClickOffset;                // Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior)
 | 
				
			||||||
    ImGuiWindow*            ActiveIdWindow;
 | 
					    ImGuiWindow*            ActiveIdWindow;
 | 
				
			||||||
    ImGuiInputSource        ActiveIdSource;                     // Activating with mouse or nav (gamepad/keyboard)
 | 
					    ImGuiInputSource        ActiveIdSource;                     // Activating source: ImGuiInputSource_Mouse OR ImGuiInputSource_Keyboard OR ImGuiInputSource_Gamepad
 | 
				
			||||||
    int                     ActiveIdMouseButton;
 | 
					    int                     ActiveIdMouseButton;
 | 
				
			||||||
    ImGuiID                 ActiveIdPreviousFrame;
 | 
					    ImGuiID                 ActiveIdPreviousFrame;
 | 
				
			||||||
    bool                    ActiveIdPreviousFrameIsAlive;
 | 
					    bool                    ActiveIdPreviousFrameIsAlive;
 | 
				
			||||||
@@ -1842,7 +1841,7 @@ struct ImGuiContext
 | 
				
			|||||||
    ImGuiKeyChord           NavJustMovedToKeyMods;
 | 
					    ImGuiKeyChord           NavJustMovedToKeyMods;
 | 
				
			||||||
    ImGuiID                 NavNextActivateId;                  // Set by ActivateItem(), queued until next frame.
 | 
					    ImGuiID                 NavNextActivateId;                  // Set by ActivateItem(), queued until next frame.
 | 
				
			||||||
    ImGuiActivateFlags      NavNextActivateFlags;
 | 
					    ImGuiActivateFlags      NavNextActivateFlags;
 | 
				
			||||||
    ImGuiInputSource        NavInputSource;                     // Keyboard or Gamepad mode? THIS WILL ONLY BE None or NavGamepad or NavKeyboard.
 | 
					    ImGuiInputSource        NavInputSource;                     // Keyboard or Gamepad mode? THIS CAN ONLY BE ImGuiInputSource_Keyboard or ImGuiInputSource_Mouse
 | 
				
			||||||
    ImGuiNavLayer           NavLayer;                           // Layer we are navigating on. For now the system is hard-coded for 0=main contents and 1=menu/title bar, may expose layers later.
 | 
					    ImGuiNavLayer           NavLayer;                           // Layer we are navigating on. For now the system is hard-coded for 0=main contents and 1=menu/title bar, may expose layers later.
 | 
				
			||||||
    bool                    NavIdIsAlive;                       // Nav widget has been seen this frame ~~ NavRectRel is valid
 | 
					    bool                    NavIdIsAlive;                       // Nav widget has been seen this frame ~~ NavRectRel is valid
 | 
				
			||||||
    bool                    NavMousePosDirty;                   // When set we will update mouse position if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) if set (NB: this not enabled by default)
 | 
					    bool                    NavMousePosDirty;                   // When set we will update mouse position if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) if set (NB: this not enabled by default)
 | 
				
			||||||
@@ -2080,7 +2079,7 @@ struct ImGuiContext
 | 
				
			|||||||
        NavJustMovedToId = NavJustMovedToFocusScopeId = NavNextActivateId = 0;
 | 
					        NavJustMovedToId = NavJustMovedToFocusScopeId = NavNextActivateId = 0;
 | 
				
			||||||
        NavActivateFlags = NavNextActivateFlags = ImGuiActivateFlags_None;
 | 
					        NavActivateFlags = NavNextActivateFlags = ImGuiActivateFlags_None;
 | 
				
			||||||
        NavJustMovedToKeyMods = ImGuiMod_None;
 | 
					        NavJustMovedToKeyMods = ImGuiMod_None;
 | 
				
			||||||
        NavInputSource = ImGuiInputSource_None;
 | 
					        NavInputSource = ImGuiInputSource_Keyboard;
 | 
				
			||||||
        NavLayer = ImGuiNavLayer_Main;
 | 
					        NavLayer = ImGuiNavLayer_Main;
 | 
				
			||||||
        NavIdIsAlive = false;
 | 
					        NavIdIsAlive = false;
 | 
				
			||||||
        NavMousePosDirty = false;
 | 
					        NavMousePosDirty = false;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -622,7 +622,7 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
 | 
				
			|||||||
            // Set active id so it can be queried by user via IsItemActive(), equivalent of holding the mouse button.
 | 
					            // Set active id so it can be queried by user via IsItemActive(), equivalent of holding the mouse button.
 | 
				
			||||||
            pressed = true;
 | 
					            pressed = true;
 | 
				
			||||||
            SetActiveID(id, window);
 | 
					            SetActiveID(id, window);
 | 
				
			||||||
            g.ActiveIdSource = ImGuiInputSource_Nav;
 | 
					            g.ActiveIdSource = g.NavInputSource;
 | 
				
			||||||
            if (!(flags & ImGuiButtonFlags_NoNavFocus))
 | 
					            if (!(flags & ImGuiButtonFlags_NoNavFocus))
 | 
				
			||||||
                SetFocusID(id, window);
 | 
					                SetFocusID(id, window);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -660,7 +660,7 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
 | 
				
			|||||||
            if (!(flags & ImGuiButtonFlags_NoNavFocus))
 | 
					            if (!(flags & ImGuiButtonFlags_NoNavFocus))
 | 
				
			||||||
                g.NavDisableHighlight = true;
 | 
					                g.NavDisableHighlight = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else if (g.ActiveIdSource == ImGuiInputSource_Nav)
 | 
					        else if (g.ActiveIdSource == ImGuiInputSource_Keyboard || g.ActiveIdSource == ImGuiInputSource_Gamepad)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            // When activated using Nav, we hold on the ActiveID until activation button is released
 | 
					            // When activated using Nav, we hold on the ActiveID until activation button is released
 | 
				
			||||||
            if (g.NavActivateDownId != id)
 | 
					            if (g.NavActivateDownId != id)
 | 
				
			||||||
@@ -2245,7 +2245,7 @@ bool ImGui::DragBehaviorT(ImGuiDataType data_type, TYPE* v, float v_speed, const
 | 
				
			|||||||
        if (g.IO.KeyShift)
 | 
					        if (g.IO.KeyShift)
 | 
				
			||||||
            adjust_delta *= 10.0f;
 | 
					            adjust_delta *= 10.0f;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else if (g.ActiveIdSource == ImGuiInputSource_Nav)
 | 
					    else if (g.ActiveIdSource == ImGuiInputSource_Keyboard || g.ActiveIdSource == ImGuiInputSource_Gamepad)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        const int decimal_precision = is_floating_point ? ImParseFormatPrecision(format, 3) : 0;
 | 
					        const int decimal_precision = is_floating_point ? ImParseFormatPrecision(format, 3) : 0;
 | 
				
			||||||
        const bool tweak_slow = IsKeyDown((g.NavInputSource == ImGuiInputSource_Gamepad) ? ImGuiKey_NavGamepadTweakSlow : ImGuiKey_NavKeyboardTweakSlow);
 | 
					        const bool tweak_slow = IsKeyDown((g.NavInputSource == ImGuiInputSource_Gamepad) ? ImGuiKey_NavGamepadTweakSlow : ImGuiKey_NavKeyboardTweakSlow);
 | 
				
			||||||
@@ -2352,7 +2352,7 @@ bool ImGui::DragBehavior(ImGuiID id, ImGuiDataType data_type, void* p_v, float v
 | 
				
			|||||||
        // Those are the things we can do easily outside the DragBehaviorT<> template, saves code generation.
 | 
					        // Those are the things we can do easily outside the DragBehaviorT<> template, saves code generation.
 | 
				
			||||||
        if (g.ActiveIdSource == ImGuiInputSource_Mouse && !g.IO.MouseDown[0])
 | 
					        if (g.ActiveIdSource == ImGuiInputSource_Mouse && !g.IO.MouseDown[0])
 | 
				
			||||||
            ClearActiveID();
 | 
					            ClearActiveID();
 | 
				
			||||||
        else if (g.ActiveIdSource == ImGuiInputSource_Nav && g.NavActivatePressedId == id && !g.ActiveIdIsJustActivated)
 | 
					        else if ((g.ActiveIdSource == ImGuiInputSource_Keyboard || g.ActiveIdSource == ImGuiInputSource_Gamepad) && g.NavActivatePressedId == id && !g.ActiveIdIsJustActivated)
 | 
				
			||||||
            ClearActiveID();
 | 
					            ClearActiveID();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (g.ActiveId != id)
 | 
					    if (g.ActiveId != id)
 | 
				
			||||||
@@ -2821,7 +2821,7 @@ bool ImGui::SliderBehaviorT(const ImRect& bb, ImGuiID id, ImGuiDataType data_typ
 | 
				
			|||||||
                set_new_value = true;
 | 
					                set_new_value = true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else if (g.ActiveIdSource == ImGuiInputSource_Nav)
 | 
					        else if (g.ActiveIdSource == ImGuiInputSource_Keyboard || g.ActiveIdSource == ImGuiInputSource_Gamepad)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (g.ActiveIdIsJustActivated)
 | 
					            if (g.ActiveIdIsJustActivated)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user