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"; return "Unknown";
} }
bool ImGui::IsWindowHovered()
{
ImGuiState& g = *GImGui;
return g.HoveredWindow == g.CurrentWindow;
}
bool ImGui::IsWindowFocused() bool ImGui::IsWindowFocused()
{ {
ImGuiState& g = *GImGui; ImGuiState& g = *GImGui;
ImGuiWindow* window = GetCurrentWindow(); return g.FocusedWindow == g.CurrentWindow;
return g.FocusedWindow == window;
} }
bool ImGui::IsRootWindowFocused() bool ImGui::IsRootWindowFocused()
{ {
ImGuiState& g = *GImGui; ImGuiState& g = *GImGui;
ImGuiWindow* root_window = GetCurrentWindow()->RootWindow; ImGuiWindow* root_window = g.CurrentWindow->RootWindow;
return g.FocusedWindow == root_window; return g.FocusedWindow == root_window;
} }
bool ImGui::IsRootWindowOrAnyChildFocused() bool ImGui::IsRootWindowOrAnyChildFocused()
{ {
ImGuiState& g = *GImGui; ImGuiState& g = *GImGui;
ImGuiWindow* root_window = GetCurrentWindow()->RootWindow; ImGuiWindow* root_window = g.CurrentWindow->RootWindow;
return g.FocusedWindow && g.FocusedWindow->RootWindow == root_window; return g.FocusedWindow && g.FocusedWindow->RootWindow == root_window;
} }
float ImGui::GetWindowWidth() float ImGui::GetWindowWidth()
{ {
ImGuiWindow* window = GetCurrentWindow(); ImGuiState& g = *GImGui;
ImGuiWindow* window = g.CurrentWindow;
return window->Size.x; return window->Size.x;
} }
ImVec2 ImGui::GetWindowPos() ImVec2 ImGui::GetWindowPos()
{ {
ImGuiWindow* window = GetCurrentWindow(); ImGuiState& g = *GImGui;
ImGuiWindow* window = g.CurrentWindow;
return window->Pos; 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 GetItemRectMin(); // get bounding rect of last item in screen space
IMGUI_API ImVec2 GetItemRectMax(); // " IMGUI_API ImVec2 GetItemRectMax(); // "
IMGUI_API ImVec2 GetItemRectSize(); // " 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 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 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 IMGUI_API bool IsRootWindowOrAnyChildFocused(); // is current root window or any of its child (including current window) focused