Added IsWindowHovered() helper.

This commit is contained in:
ocornut 2015-06-02 20:57:29 +01:00
parent 9928d19af1
commit 0e04dfbad7
2 changed files with 14 additions and 6 deletions

View File

@ -4310,36 +4310,43 @@ const char* ImGui::GetStyleColName(ImGuiCol idx)
return "Unknown";
}
bool ImGui::IsWindowHovered()
{
ImGuiState& g = *GImGui;
return g.HoveredWindow == g.CurrentWindow;
}
bool ImGui::IsWindowFocused()
{
ImGuiState& g = *GImGui;
ImGuiWindow* window = GetCurrentWindow();
return g.FocusedWindow == window;
return g.FocusedWindow == g.CurrentWindow;
}
bool ImGui::IsRootWindowFocused()
{
ImGuiState& g = *GImGui;
ImGuiWindow* root_window = GetCurrentWindow()->RootWindow;
ImGuiWindow* root_window = g.CurrentWindow->RootWindow;
return g.FocusedWindow == root_window;
}
bool ImGui::IsRootWindowOrAnyChildFocused()
{
ImGuiState& g = *GImGui;
ImGuiWindow* root_window = GetCurrentWindow()->RootWindow;
ImGuiWindow* root_window = g.CurrentWindow->RootWindow;
return g.FocusedWindow && g.FocusedWindow->RootWindow == root_window;
}
float ImGui::GetWindowWidth()
{
ImGuiWindow* window = GetCurrentWindow();
ImGuiState& g = *GImGui;
ImGuiWindow* window = g.CurrentWindow;
return window->Size.x;
}
ImVec2 ImGui::GetWindowPos()
{
ImGuiWindow* window = GetCurrentWindow();
ImGuiState& g = *GImGui;
ImGuiWindow* window = g.CurrentWindow;
return window->Pos;
}

View File

@ -344,6 +344,7 @@ namespace ImGui
IMGUI_API ImVec2 GetItemRectMin(); // get bounding rect of last item in screen space
IMGUI_API ImVec2 GetItemRectMax(); // "
IMGUI_API ImVec2 GetItemRectSize(); // "
IMGUI_API bool IsWindowHovered();
IMGUI_API bool IsWindowFocused(); // is current window focused (differentiate child windows from each others)
IMGUI_API bool IsRootWindowFocused(); // is current root window focused (top parent window in case of child windows)
IMGUI_API bool IsRootWindowOrAnyChildFocused(); // is current root window or any of its child (including current window) focused