mirror of
https://github.com/ocornut/imgui.git
synced 2026-07-31 04:39:10 +00:00
Docking: (very minor) Scaling of drop boxes padding, rounding, thickness.
This commit is contained in:
12
imgui.cpp
12
imgui.cpp
@@ -20339,24 +20339,26 @@ static void ImGui::DockNodePreviewDockRender(ImGuiWindow* host_window, ImGuiDock
|
||||
}
|
||||
|
||||
// Display drop boxes
|
||||
const float overlay_rounding = ImMax(3.0f, g.Style.FrameRounding);
|
||||
const float scale = g.Style._MainScale; // FIXME-DPI
|
||||
const float overlay_rounding = ImMax((float)(int)(3.0f * scale), g.Style.FrameRounding);
|
||||
for (int dir = ImGuiDir_None; dir < ImGuiDir_COUNT; dir++)
|
||||
{
|
||||
if (!data->DropRectsDraw[dir + 1].IsInverted())
|
||||
{
|
||||
ImRect draw_r = data->DropRectsDraw[dir + 1];
|
||||
ImRect draw_r_in = draw_r;
|
||||
draw_r_in.Expand(-2.0f);
|
||||
draw_r_in.Expand((float)(int)(-2.0f * scale));
|
||||
ImU32 overlay_col = (data->SplitDir == (ImGuiDir)dir && data->IsSplitDirExplicit) ? overlay_col_drop_hovered : overlay_col_drop;
|
||||
float thickness = (float)(int)(1.0f * scale);
|
||||
for (int overlay_n = 0; overlay_n < overlay_draw_lists_count; overlay_n++)
|
||||
{
|
||||
ImVec2 center = ImFloor(draw_r_in.GetCenter());
|
||||
overlay_draw_lists[overlay_n]->AddRectFilled(draw_r.Min, draw_r.Max, overlay_col, overlay_rounding);
|
||||
overlay_draw_lists[overlay_n]->AddRect(draw_r_in.Min, draw_r_in.Max, overlay_col_lines, overlay_rounding);
|
||||
overlay_draw_lists[overlay_n]->AddRect(draw_r_in.Min, draw_r_in.Max, overlay_col_lines, overlay_rounding, thickness);
|
||||
if (dir == ImGuiDir_Left || dir == ImGuiDir_Right)
|
||||
overlay_draw_lists[overlay_n]->AddLine(ImVec2(center.x, draw_r_in.Min.y), ImVec2(center.x, draw_r_in.Max.y), overlay_col_lines);
|
||||
overlay_draw_lists[overlay_n]->AddLineV(center.x, draw_r_in.Min.y, draw_r_in.Max.y, overlay_col_lines, thickness);
|
||||
if (dir == ImGuiDir_Up || dir == ImGuiDir_Down)
|
||||
overlay_draw_lists[overlay_n]->AddLine(ImVec2(draw_r_in.Min.x, center.y), ImVec2(draw_r_in.Max.x, center.y), overlay_col_lines);
|
||||
overlay_draw_lists[overlay_n]->AddLineH(draw_r_in.Min.x, draw_r_in.Max.x, center.y, overlay_col_lines, thickness);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user