mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Internals: Refactor: Moved cursor position functions to Layout section.
This commit is contained in:
parent
3ce26f65d4
commit
6c1810e503
125
imgui.cpp
125
imgui.cpp
@ -6705,66 +6705,6 @@ void ImGui::SetWindowFontScale(float scale)
|
|||||||
g.FontSize = g.DrawListSharedData.FontSize = window->CalcFontSize();
|
g.FontSize = g.DrawListSharedData.FontSize = window->CalcFontSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
// User generally sees positions in window coordinates. Internally we store CursorPos in absolute screen coordinates because it is more convenient.
|
|
||||||
// Conversion happens as we pass the value to user, but it makes our naming convention confusing because GetCursorPos() == (DC.CursorPos - window.Pos). May want to rename 'DC.CursorPos'.
|
|
||||||
ImVec2 ImGui::GetCursorPos()
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
|
||||||
return window->DC.CursorPos - window->Pos + window->Scroll;
|
|
||||||
}
|
|
||||||
|
|
||||||
float ImGui::GetCursorPosX()
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
|
||||||
return window->DC.CursorPos.x - window->Pos.x + window->Scroll.x;
|
|
||||||
}
|
|
||||||
|
|
||||||
float ImGui::GetCursorPosY()
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
|
||||||
return window->DC.CursorPos.y - window->Pos.y + window->Scroll.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImGui::SetCursorPos(const ImVec2& local_pos)
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
|
||||||
window->DC.CursorPos = window->Pos - window->Scroll + local_pos;
|
|
||||||
window->DC.CursorMaxPos = ImMax(window->DC.CursorMaxPos, window->DC.CursorPos);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImGui::SetCursorPosX(float x)
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
|
||||||
window->DC.CursorPos.x = window->Pos.x - window->Scroll.x + x;
|
|
||||||
window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPos.x);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImGui::SetCursorPosY(float y)
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
|
||||||
window->DC.CursorPos.y = window->Pos.y - window->Scroll.y + y;
|
|
||||||
window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
ImVec2 ImGui::GetCursorStartPos()
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
|
||||||
return window->DC.CursorStartPos - window->Pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
ImVec2 ImGui::GetCursorScreenPos()
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
|
||||||
return window->DC.CursorPos;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImGui::SetCursorScreenPos(const ImVec2& pos)
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
|
||||||
window->DC.CursorPos = pos;
|
|
||||||
window->DC.CursorMaxPos = ImMax(window->DC.CursorMaxPos, window->DC.CursorPos);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImGui::ActivateItem(ImGuiID id)
|
void ImGui::ActivateItem(ImGuiID id)
|
||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
@ -6966,6 +6906,11 @@ static void ImGui::ErrorCheckBeginEndCompareStacksSize(ImGuiWindow* window, bool
|
|||||||
// - ItemSize()
|
// - ItemSize()
|
||||||
// - ItemAdd()
|
// - ItemAdd()
|
||||||
// - SameLine()
|
// - SameLine()
|
||||||
|
// - GetCursorScreenPos()
|
||||||
|
// - SetCursorScreenPos()
|
||||||
|
// - GetCursorPos(), GetCursorPosX(), GetCursorPosY()
|
||||||
|
// - SetCursorPos(), SetCursorPosX(), SetCursorPosY()
|
||||||
|
// - GetCursorStartPos()
|
||||||
// - Indent()
|
// - Indent()
|
||||||
// - Unindent()
|
// - Unindent()
|
||||||
// - BeginGroup()
|
// - BeginGroup()
|
||||||
@ -7097,6 +7042,66 @@ void ImGui::SameLine(float offset_from_start_x, float spacing_w)
|
|||||||
window->DC.CurrLineTextBaseOffset = window->DC.PrevLineTextBaseOffset;
|
window->DC.CurrLineTextBaseOffset = window->DC.PrevLineTextBaseOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImVec2 ImGui::GetCursorScreenPos()
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
|
return window->DC.CursorPos;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ImGui::SetCursorScreenPos(const ImVec2& pos)
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
|
window->DC.CursorPos = pos;
|
||||||
|
window->DC.CursorMaxPos = ImMax(window->DC.CursorMaxPos, window->DC.CursorPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
// User generally sees positions in window coordinates. Internally we store CursorPos in absolute screen coordinates because it is more convenient.
|
||||||
|
// Conversion happens as we pass the value to user, but it makes our naming convention confusing because GetCursorPos() == (DC.CursorPos - window.Pos). May want to rename 'DC.CursorPos'.
|
||||||
|
ImVec2 ImGui::GetCursorPos()
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
|
return window->DC.CursorPos - window->Pos + window->Scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
float ImGui::GetCursorPosX()
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
|
return window->DC.CursorPos.x - window->Pos.x + window->Scroll.x;
|
||||||
|
}
|
||||||
|
|
||||||
|
float ImGui::GetCursorPosY()
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
|
return window->DC.CursorPos.y - window->Pos.y + window->Scroll.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ImGui::SetCursorPos(const ImVec2& local_pos)
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
|
window->DC.CursorPos = window->Pos - window->Scroll + local_pos;
|
||||||
|
window->DC.CursorMaxPos = ImMax(window->DC.CursorMaxPos, window->DC.CursorPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ImGui::SetCursorPosX(float x)
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
|
window->DC.CursorPos.x = window->Pos.x - window->Scroll.x + x;
|
||||||
|
window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPos.x);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ImGui::SetCursorPosY(float y)
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
|
window->DC.CursorPos.y = window->Pos.y - window->Scroll.y + y;
|
||||||
|
window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImVec2 ImGui::GetCursorStartPos()
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
|
return window->DC.CursorStartPos - window->Pos;
|
||||||
|
}
|
||||||
|
|
||||||
void ImGui::Indent(float indent_w)
|
void ImGui::Indent(float indent_w)
|
||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
|
Loading…
Reference in New Issue
Block a user