mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Tooltips: made using SetItemTooltip()/IsItemHovered(ImGuiHoveredFlags_ForTooltip) defaults to activate tooltips on disabled items.. (#1485)
This commit is contained in:
		| @@ -53,6 +53,9 @@ Breaking changes: | |||||||
|  |  | ||||||
| Other changes: | Other changes: | ||||||
|  |  | ||||||
|  | - Tooltips: made using SetItemTooltip()/IsItemHovered(ImGuiHoveredFlags_ForTooltip) defaults to | ||||||
|  |   activate tooltips on disabled items. This is done by adding ImGuiHoveredFlags_AllowWhenDisabled | ||||||
|  |   to the default value of style.HoverFlagsForTooltipMouse/HoverFlagsForTooltipNav. (##1485) | ||||||
| - Nav: Tabbing always enable nav highlight when ImGuiConfigFlags_NavEnableKeyboard is set. | - Nav: Tabbing always enable nav highlight when ImGuiConfigFlags_NavEnableKeyboard is set. | ||||||
|   Previously was inconsistent and only enabled when stepping through a non-input item. |   Previously was inconsistent and only enabled when stepping through a non-input item. | ||||||
|   (#6802, #3092, #5759, #787) |   (#6802, #3092, #5759, #787) | ||||||
|   | |||||||
| @@ -1200,8 +1200,8 @@ ImGuiStyle::ImGuiStyle() | |||||||
|     HoverStationaryDelay    = 0.15f;            // Delay for IsItemHovered(ImGuiHoveredFlags_Stationary). Time required to consider mouse stationary. |     HoverStationaryDelay    = 0.15f;            // Delay for IsItemHovered(ImGuiHoveredFlags_Stationary). Time required to consider mouse stationary. | ||||||
|     HoverDelayShort         = 0.15f;            // Delay for IsItemHovered(ImGuiHoveredFlags_DelayShort). Usually used along with HoverStationaryDelay. |     HoverDelayShort         = 0.15f;            // Delay for IsItemHovered(ImGuiHoveredFlags_DelayShort). Usually used along with HoverStationaryDelay. | ||||||
|     HoverDelayNormal        = 0.40f;            // Delay for IsItemHovered(ImGuiHoveredFlags_DelayNormal). " |     HoverDelayNormal        = 0.40f;            // Delay for IsItemHovered(ImGuiHoveredFlags_DelayNormal). " | ||||||
|     HoverFlagsForTooltipMouse = ImGuiHoveredFlags_Stationary | ImGuiHoveredFlags_DelayShort;    // Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using mouse. |     HoverFlagsForTooltipMouse = ImGuiHoveredFlags_Stationary | ImGuiHoveredFlags_DelayShort | ImGuiHoveredFlags_AllowWhenDisabled;    // Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using mouse. | ||||||
|     HoverFlagsForTooltipNav = ImGuiHoveredFlags_NoSharedDelay | ImGuiHoveredFlags_DelayNormal;  // Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using keyboard/gamepad. |     HoverFlagsForTooltipNav = ImGuiHoveredFlags_NoSharedDelay | ImGuiHoveredFlags_DelayNormal | ImGuiHoveredFlags_AllowWhenDisabled;  // Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using keyboard/gamepad. | ||||||
|  |  | ||||||
|     // Default theme |     // Default theme | ||||||
|     ImGui::StyleColorsDark(this); |     ImGui::StyleColorsDark(this); | ||||||
|   | |||||||
| @@ -828,13 +828,18 @@ static void ShowDemoWindowWidgets() | |||||||
|  |  | ||||||
|         ImGui::SeparatorText("Custom"); |         ImGui::SeparatorText("Custom"); | ||||||
|  |  | ||||||
|  |         HelpMarker( | ||||||
|  |             "Passing ImGuiHoveredFlags_ForTooltip to IsItemHovered() is the preferred way to standardize" | ||||||
|  |             "tooltip activation details across your application. You may however decide to use custom" | ||||||
|  |             "flags for a specific tooltip instance."); | ||||||
|  |  | ||||||
|         // The following examples are passed for documentation purpose but may not be useful to most users. |         // The following examples are passed for documentation purpose but may not be useful to most users. | ||||||
|         // Passing ImGuiHoveredFlags_Tooltip to IsItemHovered() will pull ImGuiHoveredFlags flags values from |         // Passing ImGuiHoveredFlags_Tooltip to IsItemHovered() will pull ImGuiHoveredFlags flags values from | ||||||
|         // 'style.HoverFlagsForTooltipMouse' or 'style.HoverFlagsForTooltipNav' depending on whether mouse or gamepad/keyboard is being used. |         // 'style.HoverFlagsForTooltipMouse' or 'style.HoverFlagsForTooltipNav' depending on whether mouse or gamepad/keyboard is being used. | ||||||
|         // With default settings, ImGuiHoveredFlags_Tooltip is equivalent to ImGuiHoveredFlags_DelayShort + ImGuiHoveredFlags_Stationary. |         // With default settings, ImGuiHoveredFlags_Tooltip is equivalent to ImGuiHoveredFlags_DelayShort + ImGuiHoveredFlags_Stationary. | ||||||
|         ImGui::Button("Manual", sz); |         ImGui::Button("Manual", sz); | ||||||
|         if (ImGui::IsItemHovered(ImGuiHoveredFlags_ForTooltip)) |         if (ImGui::IsItemHovered(ImGuiHoveredFlags_ForTooltip)) | ||||||
|             ImGui::SetTooltip("I am a manually emitted tooltip"); |             ImGui::SetTooltip("I am a manually emitted tooltip."); | ||||||
|  |  | ||||||
|         ImGui::Button("DelayNone", sz); |         ImGui::Button("DelayNone", sz); | ||||||
|         if (ImGui::IsItemHovered(ImGuiHoveredFlags_DelayNone)) |         if (ImGui::IsItemHovered(ImGuiHoveredFlags_DelayNone)) | ||||||
| @@ -846,12 +851,21 @@ static void ShowDemoWindowWidgets() | |||||||
|  |  | ||||||
|         ImGui::Button("DelayLong", sz); |         ImGui::Button("DelayLong", sz); | ||||||
|         if (ImGui::IsItemHovered(ImGuiHoveredFlags_DelayNormal | ImGuiHoveredFlags_NoSharedDelay)) |         if (ImGui::IsItemHovered(ImGuiHoveredFlags_DelayNormal | ImGuiHoveredFlags_NoSharedDelay)) | ||||||
|             ImGui::SetTooltip("I am a tooltip with a long delay (%0.2f sec)", ImGui::GetStyle().HoverDelayNormal); |             ImGui::SetTooltip("I am a tooltip with a long delay (%0.2f sec).", ImGui::GetStyle().HoverDelayNormal); | ||||||
|  |  | ||||||
|         ImGui::Button("Stationary", sz); |         ImGui::Button("Stationary", sz); | ||||||
|         if (ImGui::IsItemHovered(ImGuiHoveredFlags_Stationary)) |         if (ImGui::IsItemHovered(ImGuiHoveredFlags_Stationary)) | ||||||
|             ImGui::SetTooltip("I am a tooltip requiring mouse to be stationary before activating."); |             ImGui::SetTooltip("I am a tooltip requiring mouse to be stationary before activating."); | ||||||
|  |  | ||||||
|  |         // Using ImGuiHoveredFlags_ForTooltip will pull flags from 'style.HoverFlagsForTooltipMouse' or 'style.HoverFlagsForTooltipNav', | ||||||
|  |         // which default value include the ImGuiHoveredFlags_AllowWhenDisabled flag. | ||||||
|  |         // As a result, Set | ||||||
|  |         ImGui::BeginDisabled(); | ||||||
|  |         ImGui::Button("Disabled item", sz); | ||||||
|  |         ImGui::EndDisabled(); | ||||||
|  |         if (ImGui::IsItemHovered(ImGuiHoveredFlags_ForTooltip)) | ||||||
|  |             ImGui::SetTooltip("I am a a tooltip for a disabled item."); | ||||||
|  |  | ||||||
|         ImGui::TreePop(); |         ImGui::TreePop(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user