| 2045 | } |
| 2046 | |
| 2047 | static ImVec2 CalculateOverlayPosition(const ImGuiIO& io, float padding, AchievementOverlayPosition alignment) |
| 2048 | { |
| 2049 | switch (alignment) |
| 2050 | { |
| 2051 | case AchievementOverlayPosition::TopLeft: |
| 2052 | return ImVec2(padding, padding); |
| 2053 | case AchievementOverlayPosition::TopCenter: |
| 2054 | return ImVec2(io.DisplaySize.x * 0.5f, padding); |
| 2055 | case AchievementOverlayPosition::TopRight: |
| 2056 | return ImVec2(io.DisplaySize.x - padding, padding); |
| 2057 | case AchievementOverlayPosition::CenterLeft: |
| 2058 | return ImVec2(padding, io.DisplaySize.y * 0.5f); |
| 2059 | case AchievementOverlayPosition::Center: |
| 2060 | return ImVec2(io.DisplaySize.x * 0.5f, io.DisplaySize.y * 0.5f); |
| 2061 | case AchievementOverlayPosition::CenterRight: |
| 2062 | return ImVec2(io.DisplaySize.x - padding, io.DisplaySize.y * 0.5f); |
| 2063 | case AchievementOverlayPosition::BottomLeft: |
| 2064 | return ImVec2(padding, io.DisplaySize.y - padding); |
| 2065 | case AchievementOverlayPosition::BottomCenter: |
| 2066 | return ImVec2(io.DisplaySize.x * 0.5f, io.DisplaySize.y - padding); |
| 2067 | case AchievementOverlayPosition::BottomRight: |
| 2068 | default: |
| 2069 | return ImVec2(io.DisplaySize.x - padding, io.DisplaySize.y - padding); |
| 2070 | } |
| 2071 | } |
| 2072 | |
| 2073 | static ImVec2 AdjustPositionForAlignment(const ImVec2& base_position, const ImVec2& element_size, AchievementOverlayPosition alignment) |
| 2074 | { |