mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 01:34:32 +00:00 
			
		
		
		
	Internals: Rename ImGuiSelectableFlags_PressedOnXXX to ImGuiSelectableFlags_SelectOnXXX, ImGuiButtonFlags_NoHoveredOnNav to ImGuiButtonFlags_NoHoveredOnFocus.
This commit is contained in:
		@@ -430,7 +430,7 @@ enum ImGuiButtonFlags_
 | 
			
		||||
    ImGuiButtonFlags_NoKeyModifiers         = 1 << 12,  // disable mouse interaction if a key modifier is held
 | 
			
		||||
    ImGuiButtonFlags_NoHoldingActiveId      = 1 << 13,  // don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)
 | 
			
		||||
    ImGuiButtonFlags_NoNavFocus             = 1 << 14,  // don't override navigation focus when activated
 | 
			
		||||
    ImGuiButtonFlags_NoHoveredOnNav         = 1 << 15,  // don't report as hovered when navigated on
 | 
			
		||||
    ImGuiButtonFlags_NoHoveredOnFocus       = 1 << 15,  // don't report as hovered when nav focus is on this item
 | 
			
		||||
    ImGuiButtonFlags_MouseButtonLeft        = 1 << 16,  // [Default] react on left mouse button
 | 
			
		||||
    ImGuiButtonFlags_MouseButtonRight       = 1 << 17,  // react on right mouse button
 | 
			
		||||
    ImGuiButtonFlags_MouseButtonMiddle      = 1 << 18,  // react on center mouse button
 | 
			
		||||
@@ -470,8 +470,8 @@ enum ImGuiSelectableFlagsPrivate_
 | 
			
		||||
{
 | 
			
		||||
    // NB: need to be in sync with last value of ImGuiSelectableFlags_
 | 
			
		||||
    ImGuiSelectableFlags_NoHoldingActiveID  = 1 << 20,
 | 
			
		||||
    ImGuiSelectableFlags_PressedOnClick     = 1 << 21,
 | 
			
		||||
    ImGuiSelectableFlags_PressedOnRelease   = 1 << 22,
 | 
			
		||||
    ImGuiSelectableFlags_SelectOnClick      = 1 << 21,  // Override button behavior to react on Click (default is Click+Release)
 | 
			
		||||
    ImGuiSelectableFlags_SelectOnRelease    = 1 << 22,  // Override button behavior to react on Release (default is Click+Release)
 | 
			
		||||
    ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 23,  // FIXME: We may be able to remove this (added in 6251d379 for menus)
 | 
			
		||||
    ImGuiSelectableFlags_DrawHoveredWhenHeld= 1 << 24,  // Always show active when held, even is not hovered. This concept could probably be renamed/formalized somehow.
 | 
			
		||||
    ImGuiSelectableFlags_SetNavIdOnHover    = 1 << 25
 | 
			
		||||
 
 | 
			
		||||
@@ -572,7 +572,7 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
 | 
			
		||||
    // Gamepad/Keyboard navigation
 | 
			
		||||
    // We report navigated item as hovered but we don't set g.HoveredId to not interfere with mouse.
 | 
			
		||||
    if (g.NavId == id && !g.NavDisableHighlight && g.NavDisableMouseHover && (g.ActiveId == 0 || g.ActiveId == id || g.ActiveId == window->MoveId))
 | 
			
		||||
        if (!(flags & ImGuiButtonFlags_NoHoveredOnNav))
 | 
			
		||||
        if (!(flags & ImGuiButtonFlags_NoHoveredOnFocus))
 | 
			
		||||
            hovered = true;
 | 
			
		||||
    if (g.NavActivateDownId == id)
 | 
			
		||||
    {
 | 
			
		||||
@@ -5665,8 +5665,8 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
 | 
			
		||||
    // We use NoHoldingActiveID on menus so user can click and _hold_ on a menu then drag to browse child entries
 | 
			
		||||
    ImGuiButtonFlags button_flags = 0;
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_NoHoldingActiveID) { button_flags |= ImGuiButtonFlags_NoHoldingActiveId; }
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_PressedOnClick)    { button_flags |= ImGuiButtonFlags_PressedOnClick; }
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_PressedOnRelease)  { button_flags |= ImGuiButtonFlags_PressedOnRelease; }
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_SelectOnClick)     { button_flags |= ImGuiButtonFlags_PressedOnClick; }
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_SelectOnRelease)   { button_flags |= ImGuiButtonFlags_PressedOnRelease; }
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_Disabled)          { button_flags |= ImGuiButtonFlags_Disabled; }
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_AllowDoubleClick)  { button_flags |= ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnDoubleClick; }
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_AllowItemOverlap)  { button_flags |= ImGuiButtonFlags_AllowItemOverlap; }
 | 
			
		||||
@@ -6267,7 +6267,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled)
 | 
			
		||||
        window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * 0.5f);
 | 
			
		||||
        PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(style.ItemSpacing.x * 2.0f, style.ItemSpacing.y));
 | 
			
		||||
        float w = label_size.x;
 | 
			
		||||
        pressed = Selectable(label, menu_is_open, ImGuiSelectableFlags_NoHoldingActiveID | ImGuiSelectableFlags_PressedOnClick | ImGuiSelectableFlags_DontClosePopups | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f));
 | 
			
		||||
        pressed = Selectable(label, menu_is_open, ImGuiSelectableFlags_NoHoldingActiveID | ImGuiSelectableFlags_SelectOnClick | ImGuiSelectableFlags_DontClosePopups | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f));
 | 
			
		||||
        PopStyleVar();
 | 
			
		||||
        window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * (-1.0f + 0.5f)); // -1 spacing to compensate the spacing added when Selectable() did a SameLine(). It would also work to call SameLine() ourselves after the PopStyleVar().
 | 
			
		||||
    }
 | 
			
		||||
@@ -6277,7 +6277,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled)
 | 
			
		||||
        popup_pos = ImVec2(pos.x, pos.y - style.WindowPadding.y);
 | 
			
		||||
        float w = window->DC.MenuColumns.DeclColumns(label_size.x, 0.0f, IM_FLOOR(g.FontSize * 1.20f)); // Feedback to next frame
 | 
			
		||||
        float extra_w = ImMax(0.0f, GetContentRegionAvail().x - w);
 | 
			
		||||
        pressed = Selectable(label, menu_is_open, ImGuiSelectableFlags_NoHoldingActiveID | ImGuiSelectableFlags_PressedOnClick | ImGuiSelectableFlags_DontClosePopups | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f));
 | 
			
		||||
        pressed = Selectable(label, menu_is_open, ImGuiSelectableFlags_NoHoldingActiveID | ImGuiSelectableFlags_SelectOnClick | ImGuiSelectableFlags_DontClosePopups | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f));
 | 
			
		||||
        ImU32 text_col = GetColorU32(enabled ? ImGuiCol_Text : ImGuiCol_TextDisabled);
 | 
			
		||||
        RenderArrow(window->DrawList, pos + ImVec2(window->DC.MenuColumns.Pos[2] + extra_w + g.FontSize * 0.30f, 0.0f), text_col, ImGuiDir_Right);
 | 
			
		||||
    }
 | 
			
		||||
@@ -6407,7 +6407,7 @@ bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, boo
 | 
			
		||||
 | 
			
		||||
    // We've been using the equivalent of ImGuiSelectableFlags_SetNavIdOnHover on all Selectable() since early Nav system days (commit 43ee5d73),
 | 
			
		||||
    // but I am unsure whether this should be kept at all. For now moved it to be an opt-in feature used by menus only.
 | 
			
		||||
    ImGuiSelectableFlags flags = ImGuiSelectableFlags_PressedOnRelease | ImGuiSelectableFlags_SetNavIdOnHover | (enabled ? 0 : ImGuiSelectableFlags_Disabled);
 | 
			
		||||
    ImGuiSelectableFlags flags = ImGuiSelectableFlags_SelectOnRelease | ImGuiSelectableFlags_SetNavIdOnHover | (enabled ? 0 : ImGuiSelectableFlags_Disabled);
 | 
			
		||||
    bool pressed;
 | 
			
		||||
    if (window->DC.LayoutType == ImGuiLayoutType_Horizontal)
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user