mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01: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_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_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_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_MouseButtonLeft        = 1 << 16,  // [Default] react on left mouse button | ||||||
|     ImGuiButtonFlags_MouseButtonRight       = 1 << 17,  // react on right mouse button |     ImGuiButtonFlags_MouseButtonRight       = 1 << 17,  // react on right mouse button | ||||||
|     ImGuiButtonFlags_MouseButtonMiddle      = 1 << 18,  // react on center 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_ |     // NB: need to be in sync with last value of ImGuiSelectableFlags_ | ||||||
|     ImGuiSelectableFlags_NoHoldingActiveID  = 1 << 20, |     ImGuiSelectableFlags_NoHoldingActiveID  = 1 << 20, | ||||||
|     ImGuiSelectableFlags_PressedOnClick     = 1 << 21, |     ImGuiSelectableFlags_SelectOnClick      = 1 << 21,  // Override button behavior to react on Click (default is Click+Release) | ||||||
|     ImGuiSelectableFlags_PressedOnRelease   = 1 << 22, |     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_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_DrawHoveredWhenHeld= 1 << 24,  // Always show active when held, even is not hovered. This concept could probably be renamed/formalized somehow. | ||||||
|     ImGuiSelectableFlags_SetNavIdOnHover    = 1 << 25 |     ImGuiSelectableFlags_SetNavIdOnHover    = 1 << 25 | ||||||
|   | |||||||
| @@ -572,7 +572,7 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool | |||||||
|     // Gamepad/Keyboard navigation |     // Gamepad/Keyboard navigation | ||||||
|     // We report navigated item as hovered but we don't set g.HoveredId to not interfere with mouse. |     // 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 (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; |             hovered = true; | ||||||
|     if (g.NavActivateDownId == id) |     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 |     // We use NoHoldingActiveID on menus so user can click and _hold_ on a menu then drag to browse child entries | ||||||
|     ImGuiButtonFlags button_flags = 0; |     ImGuiButtonFlags button_flags = 0; | ||||||
|     if (flags & ImGuiSelectableFlags_NoHoldingActiveID) { button_flags |= ImGuiButtonFlags_NoHoldingActiveId; } |     if (flags & ImGuiSelectableFlags_NoHoldingActiveID) { button_flags |= ImGuiButtonFlags_NoHoldingActiveId; } | ||||||
|     if (flags & ImGuiSelectableFlags_PressedOnClick)    { button_flags |= ImGuiButtonFlags_PressedOnClick; } |     if (flags & ImGuiSelectableFlags_SelectOnClick)     { button_flags |= ImGuiButtonFlags_PressedOnClick; } | ||||||
|     if (flags & ImGuiSelectableFlags_PressedOnRelease)  { button_flags |= ImGuiButtonFlags_PressedOnRelease; } |     if (flags & ImGuiSelectableFlags_SelectOnRelease)   { button_flags |= ImGuiButtonFlags_PressedOnRelease; } | ||||||
|     if (flags & ImGuiSelectableFlags_Disabled)          { button_flags |= ImGuiButtonFlags_Disabled; } |     if (flags & ImGuiSelectableFlags_Disabled)          { button_flags |= ImGuiButtonFlags_Disabled; } | ||||||
|     if (flags & ImGuiSelectableFlags_AllowDoubleClick)  { button_flags |= ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnDoubleClick; } |     if (flags & ImGuiSelectableFlags_AllowDoubleClick)  { button_flags |= ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnDoubleClick; } | ||||||
|     if (flags & ImGuiSelectableFlags_AllowItemOverlap)  { button_flags |= ImGuiButtonFlags_AllowItemOverlap; } |     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); |         window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * 0.5f); | ||||||
|         PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(style.ItemSpacing.x * 2.0f, style.ItemSpacing.y)); |         PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(style.ItemSpacing.x * 2.0f, style.ItemSpacing.y)); | ||||||
|         float w = label_size.x; |         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(); |         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(). |         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); |         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 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); |         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); |         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); |         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), |     // 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. |     // 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; |     bool pressed; | ||||||
|     if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) |     if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) | ||||||
|     { |     { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user