| 5709 | } |
| 5710 | |
| 5711 | static void CalcResizePosSizeFromAnyCorner(ImGuiWindow* window, const ImVec2& corner_target, const ImVec2& corner_norm, ImVec2* out_pos, ImVec2* out_size) |
| 5712 | { |
| 5713 | ImVec2 pos_min = ImLerp(corner_target, window->Pos, corner_norm); // Expected window upper-left |
| 5714 | ImVec2 pos_max = ImLerp(window->Pos + window->Size, corner_target, corner_norm); // Expected window lower-right |
| 5715 | ImVec2 size_expected = pos_max - pos_min; |
| 5716 | ImVec2 size_constrained = CalcWindowSizeAfterConstraint(window, size_expected); |
| 5717 | *out_pos = pos_min; |
| 5718 | if (corner_norm.x == 0.0f) |
| 5719 | out_pos->x -= (size_constrained.x - size_expected.x); |
| 5720 | if (corner_norm.y == 0.0f) |
| 5721 | out_pos->y -= (size_constrained.y - size_expected.y); |
| 5722 | *out_size = size_constrained; |
| 5723 | } |
| 5724 | |
| 5725 | // Data for resizing from corner |
| 5726 | struct ImGuiResizeGripDef |
no test coverage detected