|
@@ -5064,6 +5064,21 @@ static const ImGuiResizeGripDef resize_grip_def[4] =
|
|
{ ImVec2(1,0), ImVec2(-1,+1), 9,12 }, // Upper-right (Unused)
|
|
{ ImVec2(1,0), ImVec2(-1,+1), 9,12 }, // Upper-right (Unused)
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+struct ImGuiResizeBorderDef
|
|
|
|
+{
|
|
|
|
+ ImVec2 InnerDir;
|
|
|
|
+ ImVec2 CornerPosN1, CornerPosN2;
|
|
|
|
+ float OuterAngle;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const ImGuiResizeBorderDef resize_border_def[4] =
|
|
|
|
+{
|
|
|
|
+ { ImVec2(0,+1), ImVec2(0,0), ImVec2(1,0), IM_PI*1.50f }, // Top
|
|
|
|
+ { ImVec2(-1,0), ImVec2(1,0), ImVec2(1,1), IM_PI*0.00f }, // Right
|
|
|
|
+ { ImVec2(0,-1), ImVec2(1,1), ImVec2(0,1), IM_PI*0.50f }, // Bottom
|
|
|
|
+ { ImVec2(+1,0), ImVec2(0,1), ImVec2(0,0), IM_PI*1.00f } // Left
|
|
|
|
+};
|
|
|
|
+
|
|
static ImRect GetResizeBorderRect(ImGuiWindow* window, int border_n, float perp_padding, float thickness)
|
|
static ImRect GetResizeBorderRect(ImGuiWindow* window, int border_n, float perp_padding, float thickness)
|
|
{
|
|
{
|
|
ImRect rect = window->Rect();
|
|
ImRect rect = window->Rect();
|
|
@@ -5229,19 +5244,6 @@ static void ImGui::RenderWindowOuterBorders(ImGuiWindow* window)
|
|
int border_held = window->ResizeBorderHeld;
|
|
int border_held = window->ResizeBorderHeld;
|
|
if (border_held != -1)
|
|
if (border_held != -1)
|
|
{
|
|
{
|
|
- struct ImGuiResizeBorderDef
|
|
|
|
- {
|
|
|
|
- ImVec2 InnerDir;
|
|
|
|
- ImVec2 CornerPosN1, CornerPosN2;
|
|
|
|
- float OuterAngle;
|
|
|
|
- };
|
|
|
|
- static const ImGuiResizeBorderDef resize_border_def[4] =
|
|
|
|
- {
|
|
|
|
- { ImVec2(0,+1), ImVec2(0,0), ImVec2(1,0), IM_PI*1.50f }, // Top
|
|
|
|
- { ImVec2(-1,0), ImVec2(1,0), ImVec2(1,1), IM_PI*0.00f }, // Right
|
|
|
|
- { ImVec2(0,-1), ImVec2(1,1), ImVec2(0,1), IM_PI*0.50f }, // Bottom
|
|
|
|
- { ImVec2(+1,0), ImVec2(0,1), ImVec2(0,0), IM_PI*1.00f } // Left
|
|
|
|
- };
|
|
|
|
const ImGuiResizeBorderDef& def = resize_border_def[border_held];
|
|
const ImGuiResizeBorderDef& def = resize_border_def[border_held];
|
|
ImRect border_r = GetResizeBorderRect(window, border_held, rounding, 0.0f);
|
|
ImRect border_r = GetResizeBorderRect(window, border_held, rounding, 0.0f);
|
|
window->DrawList->PathArcTo(ImLerp(border_r.Min, border_r.Max, def.CornerPosN1) + ImVec2(0.5f, 0.5f) + def.InnerDir * rounding, rounding, def.OuterAngle - IM_PI*0.25f, def.OuterAngle);
|
|
window->DrawList->PathArcTo(ImLerp(border_r.Min, border_r.Max, def.CornerPosN1) + ImVec2(0.5f, 0.5f) + def.InnerDir * rounding, rounding, def.OuterAngle - IM_PI*0.25f, def.OuterAngle);
|