mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Added ImGuiFocusedFlags_NoPopupHierarchy and ImGuiHoveredFlags_NoPopupHierarchy (followup #4527)
This commit is contained in:
		| @@ -2186,7 +2186,7 @@ static void ShowDemoWindowWidgets() | ||||
|         ImGui::TreePop(); | ||||
|     } | ||||
|  | ||||
|     if (ImGui::TreeNode("Querying Status (Edited/Active/Hovered etc.)")) | ||||
|     if (ImGui::TreeNode("Querying Item Status (Edited/Active/Hovered etc.)")) | ||||
|     { | ||||
|         // Select an item type | ||||
|         const char* item_names[] = | ||||
| @@ -2272,43 +2272,63 @@ static void ShowDemoWindowWidgets() | ||||
|         if (item_disabled) | ||||
|             ImGui::EndDisabled(); | ||||
|  | ||||
|         char buf[1] = ""; | ||||
|         ImGui::InputText("unused", buf, IM_ARRAYSIZE(buf), ImGuiInputTextFlags_ReadOnly); | ||||
|         ImGui::SameLine(); | ||||
|         HelpMarker("This widget is only here to be able to tab-out of the widgets above and see e.g. Deactivated() status."); | ||||
|  | ||||
|         ImGui::TreePop(); | ||||
|     } | ||||
|  | ||||
|     if (ImGui::TreeNode("Querying Window Status (Focused/Hovered etc.)")) | ||||
|     { | ||||
|         static bool embed_all_inside_a_child_window = false; | ||||
|         ImGui::Checkbox("Embed everything inside a child window (for additional testing)", &embed_all_inside_a_child_window); | ||||
|         ImGui::Checkbox("Embed everything inside a child window for testing _RootWindow flag.", &embed_all_inside_a_child_window); | ||||
|         if (embed_all_inside_a_child_window) | ||||
|             ImGui::BeginChild("outer_child", ImVec2(0, ImGui::GetFontSize() * 20.0f), true); | ||||
|  | ||||
|         // Testing IsWindowFocused() function with its various flags. | ||||
|         // Note that the ImGuiFocusedFlags_XXX flags can be combined. | ||||
|         ImGui::BulletText( | ||||
|             "IsWindowFocused() = %d\n" | ||||
|             "IsWindowFocused(_ChildWindows) = %d\n" | ||||
|             "IsWindowFocused(_ChildWindows|_NoPopupHierarchy) = %d\n" | ||||
|             "IsWindowFocused(_ChildWindows|_RootWindow) = %d\n" | ||||
|             "IsWindowFocused(_ChildWindows|_RootWindow|_NoPopupHierarchy) = %d\n" | ||||
|             "IsWindowFocused(_RootWindow) = %d\n" | ||||
|             "IsWindowFocused(_RootWindow|_NoPopupHierarchy) = %d\n" | ||||
|             "IsWindowFocused(_AnyWindow) = %d\n", | ||||
|             ImGui::IsWindowFocused(), | ||||
|             ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows), | ||||
|             ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_NoPopupHierarchy), | ||||
|             ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_RootWindow), | ||||
|             ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_NoPopupHierarchy), | ||||
|             ImGui::IsWindowFocused(ImGuiFocusedFlags_RootWindow), | ||||
|             ImGui::IsWindowFocused(ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_NoPopupHierarchy), | ||||
|             ImGui::IsWindowFocused(ImGuiFocusedFlags_AnyWindow)); | ||||
|  | ||||
|         // Testing IsWindowHovered() function with its various flags. | ||||
|         // Note that the ImGuiHoveredFlags_XXX flags can be combined. | ||||
|         ImGui::BulletText( | ||||
|             "IsWindowHovered() = %d\n" | ||||
|             "IsWindowHovered(_AllowWhenBlockedByPopup) = %d\n" | ||||
|             "IsWindowHovered(_AllowWhenBlockedByActiveItem) = %d\n" | ||||
|             "IsWindowHovered(_ChildWindows) = %d\n" | ||||
|             "IsWindowHovered(_ChildWindows|_NoPopupHierarchy) = %d\n" | ||||
|             "IsWindowHovered(_ChildWindows|_RootWindow) = %d\n" | ||||
|             "IsWindowHovered(_ChildWindows|_AllowWhenBlockedByPopup) = %d\n" | ||||
|             "IsWindowHovered(_ChildWindows|_RootWindow|_NoPopupHierarchy) = %d\n" | ||||
|             "IsWindowHovered(_RootWindow) = %d\n" | ||||
|             "IsWindowHovered(_RootWindow|_NoPopupHierarchy) = %d\n" | ||||
|             "IsWindowHovered(_ChildWindows|_AllowWhenBlockedByPopup) = %d\n" | ||||
|             "IsWindowHovered(_AnyWindow) = %d\n", | ||||
|             ImGui::IsWindowHovered(), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_NoPopupHierarchy), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_RootWindow), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_AllowWhenBlockedByPopup), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_NoPopupHierarchy), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_RootWindow), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_NoPopupHierarchy), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_AllowWhenBlockedByPopup), | ||||
|             ImGui::IsWindowHovered(ImGuiHoveredFlags_AnyWindow)); | ||||
|  | ||||
|         ImGui::BeginChild("child", ImVec2(0, 50), true); | ||||
| @@ -2317,9 +2337,6 @@ static void ShowDemoWindowWidgets() | ||||
|         if (embed_all_inside_a_child_window) | ||||
|             ImGui::EndChild(); | ||||
|  | ||||
|         static char unused_str[] = "This widget is only here to be able to tab-out of the widgets above."; | ||||
|         ImGui::InputText("unused", unused_str, IM_ARRAYSIZE(unused_str), ImGuiInputTextFlags_ReadOnly); | ||||
|  | ||||
|         // Calling IsItemHovered() after begin returns the hovered status of the title bar. | ||||
|         // This is useful in particular if you want to create a context menu associated to the title bar of a window. | ||||
|         static bool test_window = false; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user