Internals: Added LastActiveId, LastActiveIdTimer. (#1537)
This commit is contained in:
parent
4c90529c62
commit
007f4034c9
@ -1929,7 +1929,14 @@ void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window)
|
||||
ImGuiContext& g = *GImGui;
|
||||
g.ActiveIdIsJustActivated = (g.ActiveId != id);
|
||||
if (g.ActiveIdIsJustActivated)
|
||||
{
|
||||
g.ActiveIdTimer = 0.0f;
|
||||
if (id != 0)
|
||||
{
|
||||
g.LastActiveId = id;
|
||||
g.LastActiveIdTimer = 0.0f;
|
||||
}
|
||||
}
|
||||
g.ActiveId = id;
|
||||
g.ActiveIdAllowOverlap = false;
|
||||
g.ActiveIdIsAlive |= (id != 0);
|
||||
@ -2308,6 +2315,7 @@ void ImGui::NewFrame()
|
||||
ClearActiveID();
|
||||
if (g.ActiveId)
|
||||
g.ActiveIdTimer += g.IO.DeltaTime;
|
||||
g.LastActiveIdTimer += g.IO.DeltaTime;
|
||||
g.ActiveIdPreviousFrame = g.ActiveId;
|
||||
g.ActiveIdIsAlive = false;
|
||||
g.ActiveIdIsJustActivated = false;
|
||||
|
@ -533,6 +533,8 @@ struct ImGuiContext
|
||||
bool ActiveIdAllowOverlap; // Active widget allows another widget to steal active id (generally for overlapping widgets, but not always)
|
||||
ImVec2 ActiveIdClickOffset; // Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior)
|
||||
ImGuiWindow* ActiveIdWindow;
|
||||
ImGuiID LastActiveId; // Store the last non-zero ActiveID, useful for animation.
|
||||
float LastActiveIdTimer;
|
||||
ImGuiWindow* MovingWindow; // Track the child window we clicked on to move a window.
|
||||
ImGuiID MovingWindowMoveId; // == MovingWindow->MoveId
|
||||
ImVector<ImGuiColMod> ColorModifiers; // Stack for PushStyleColor()/PopStyleColor()
|
||||
@ -629,6 +631,8 @@ struct ImGuiContext
|
||||
ActiveIdAllowOverlap = false;
|
||||
ActiveIdClickOffset = ImVec2(-1,-1);
|
||||
ActiveIdWindow = NULL;
|
||||
LastActiveId = 0;
|
||||
LastActiveIdTimer = 0.0f;
|
||||
MovingWindow = NULL;
|
||||
MovingWindowMoveId = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user