Added IsKeyDown() IsMouseDown() as convenience instead of reading into IO structures

Also their existence serves as implicit documentation of what
IsKeyPressed(), IsMouseClicked() does
This commit is contained in:
ocornut 2015-04-28 18:12:24 +02:00
parent 2440a30444
commit 8fbb42cc6f
2 changed files with 17 additions and 1 deletions

View File

@ -2657,6 +2657,13 @@ static bool IsKeyPressedMap(ImGuiKey key, bool repeat)
return ImGui::IsKeyPressed(key_index, repeat); return ImGui::IsKeyPressed(key_index, repeat);
} }
bool ImGui::IsKeyDown(int key_index)
{
ImGuiState& g = *GImGui;
IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(g.IO.KeysDown));
return g.IO.KeysDown[key_index];
}
bool ImGui::IsKeyPressed(int key_index, bool repeat) bool ImGui::IsKeyPressed(int key_index, bool repeat)
{ {
ImGuiState& g = *GImGui; ImGuiState& g = *GImGui;
@ -2675,6 +2682,13 @@ bool ImGui::IsKeyPressed(int key_index, bool repeat)
return false; return false;
} }
bool ImGui::IsMouseDown(int button)
{
ImGuiState& g = *GImGui;
IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown));
return g.IO.MouseDown[button];
}
bool ImGui::IsMouseClicked(int button, bool repeat) bool ImGui::IsMouseClicked(int button, bool repeat)
{ {
ImGuiState& g = *GImGui; ImGuiState& g = *GImGui;

View File

@ -386,7 +386,9 @@ namespace ImGui
IMGUI_API bool IsRootWindowFocused(); // is current root window focused IMGUI_API bool IsRootWindowFocused(); // is current root window focused
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
IMGUI_API bool IsRectClipped(const ImVec2& size); // test if rectangle of given size starting from cursor pos is out of clipping region. to perform coarse clipping on user's side (as an optimization) IMGUI_API bool IsRectClipped(const ImVec2& size); // test if rectangle of given size starting from cursor pos is out of clipping region. to perform coarse clipping on user's side (as an optimization)
IMGUI_API bool IsKeyPressed(int key_index, bool repeat = true); // key_index into the keys_down[512] array, imgui doesn't know the semantic of each entry IMGUI_API bool IsKeyDown(int key_index); // key_index into the keys_down[512] array, imgui doesn't know the semantic of each entry
IMGUI_API bool IsKeyPressed(int key_index, bool repeat = true); // "
IMGUI_API bool IsMouseDown(int button);
IMGUI_API bool IsMouseClicked(int button, bool repeat = false); IMGUI_API bool IsMouseClicked(int button, bool repeat = false);
IMGUI_API bool IsMouseDoubleClicked(int button); IMGUI_API bool IsMouseDoubleClicked(int button);
IMGUI_API bool IsMouseHoveringWindow(); // is mouse hovering current window ("window" in API names always refer to current window) IMGUI_API bool IsMouseHoveringWindow(); // is mouse hovering current window ("window" in API names always refer to current window)