| 5823 | } |
| 5824 | |
| 5825 | static void CalcResizePosSizeFromAnyCorner(ImGuiWindow* window, const ImVec2& corner_target, const ImVec2& corner_norm, ImVec2* out_pos, ImVec2* out_size) |
| 5826 | { |
| 5827 | ImVec2 pos_min = ImLerp(corner_target, window->Pos, corner_norm); // Expected window upper-left |
| 5828 | ImVec2 pos_max = ImLerp(window->Pos + window->Size, corner_target, corner_norm); // Expected window lower-right |
| 5829 | ImVec2 size_expected = pos_max - pos_min; |
| 5830 | ImVec2 size_constrained = CalcWindowSizeAfterConstraint(window, size_expected); |
| 5831 | *out_pos = pos_min; |
| 5832 | if (corner_norm.x == 0.0f) |
| 5833 | out_pos->x -= (size_constrained.x - size_expected.x); |
| 5834 | if (corner_norm.y == 0.0f) |
| 5835 | out_pos->y -= (size_constrained.y - size_expected.y); |
| 5836 | *out_size = size_constrained; |
| 5837 | } |
| 5838 | |
| 5839 | // Data for resizing from corner |
| 5840 | struct ImGuiResizeGripDef |
no test coverage detected