| 4917 | } |
| 4918 | |
| 4919 | static void CalcResizePosSizeFromAnyCorner(ImGuiWindow* window, const ImVec2& corner_target, const ImVec2& corner_norm, ImVec2* out_pos, ImVec2* out_size) |
| 4920 | { |
| 4921 | ImVec2 pos_min = ImLerp(corner_target, window->Pos, corner_norm); // Expected window upper-left |
| 4922 | ImVec2 pos_max = ImLerp(window->Pos + window->Size, corner_target, corner_norm); // Expected window lower-right |
| 4923 | ImVec2 size_expected = pos_max - pos_min; |
| 4924 | ImVec2 size_constrained = CalcWindowSizeAfterConstraint(window, size_expected); |
| 4925 | *out_pos = pos_min; |
| 4926 | if (corner_norm.x == 0.0f) |
| 4927 | out_pos->x -= (size_constrained.x - size_expected.x); |
| 4928 | if (corner_norm.y == 0.0f) |
| 4929 | out_pos->y -= (size_constrained.y - size_expected.y); |
| 4930 | *out_size = size_constrained; |
| 4931 | } |
| 4932 | |
| 4933 | struct ImGuiResizeGripDef |
| 4934 | { |
no test coverage detected