diff --git a/YAFC/Workspace/SummaryView.cs b/YAFC/Workspace/SummaryView.cs index 5f488912..5c4c46fc 100644 --- a/YAFC/Workspace/SummaryView.cs +++ b/YAFC/Workspace/SummaryView.cs @@ -7,6 +7,21 @@ namespace YAFC { public class SummaryView : ProjectPageView { + private class SummaryScrollArea : ScrollArea + { + static float DefaultHeight = 10; + + public SummaryScrollArea(GuiBuilder builder) : base(DefaultHeight, builder, default, false, true, true) + { + } + + public new void Build(ImGui gui) + { + // Maximize scroll area to fit parent area (minus header and 'show issues' heights, and some (2) padding probably) + Build(gui, gui.valid ? gui.parent.contentSize.Y - HeaderFont.size - Font.text.size - ScrollbarSize - 2 : DefaultHeight); + } + } + private class SummaryTabColumn : TextDataColumn { public SummaryTabColumn() : base("Tab", 6f) @@ -131,10 +146,12 @@ struct GoodDetails public float sum; } + static Font HeaderFont = Font.header; + private Project project; private SearchQuery searchQuery; - private readonly ScrollArea scrollArea; + private readonly SummaryScrollArea scrollArea; private readonly SummaryDataColumn goodsColumn; private readonly DataGrid mainGrid; @@ -149,8 +166,7 @@ public SummaryView() new SummaryTabColumn(), goodsColumn, }; - // TODO Make height relative to min(window,content) height instead of fixed - scrollArea = new ScrollArea(30, BuildScrollArea, vertical: true, horizontal: true); + scrollArea = new SummaryScrollArea(BuildScrollArea); mainGrid = new DataGrid(columns); } @@ -183,7 +199,7 @@ protected override void BuildHeader(ImGui gui) base.BuildHeader(gui); gui.allocator = RectAllocator.Center; - gui.BuildText("Production Sheet Summary", Font.header, false, RectAlignment.Middle); + gui.BuildText("Production Sheet Summary", HeaderFont, false, RectAlignment.Middle); gui.allocator = RectAllocator.LeftAlign; }