| 5471 | } |
| 5472 | |
| 5473 | static void CalcResizePosSizeFromAnyCorner(ImGuiWindow* window, const ImVec2& corner_target, const ImVec2& corner_norm, ImVec2* out_pos, ImVec2* out_size) |
| 5474 | { |
| 5475 | ImVec2 pos_min = ImLerp(corner_target, window->Pos, corner_norm); // Expected window upper-left |
| 5476 | ImVec2 pos_max = ImLerp(window->Pos + window->Size, corner_target, corner_norm); // Expected window lower-right |
| 5477 | ImVec2 size_expected = pos_max - pos_min; |
| 5478 | ImVec2 size_constrained = CalcWindowSizeAfterConstraint(window, size_expected); |
| 5479 | *out_pos = pos_min; |
| 5480 | if (corner_norm.x == 0.0f) |
| 5481 | out_pos->x -= (size_constrained.x - size_expected.x); |
| 5482 | if (corner_norm.y == 0.0f) |
| 5483 | out_pos->y -= (size_constrained.y - size_expected.y); |
| 5484 | *out_size = size_constrained; |
| 5485 | } |
| 5486 | |
| 5487 | // Data for resizing from corner |
| 5488 | struct ImGuiResizeGripDef |
no test coverage detected