Skip to content

Commit

Permalink
Resize the legend area when traces are hidden
Browse files Browse the repository at this point in the history
The legend area is determined using the legends of all the traces
even if they are not being displayed. This fix addresses that by
only considering the visible traces.
  • Loading branch information
rjwills28 committed Mar 13, 2024
1 parent 449df66 commit 2346488
Showing 1 changed file with 4 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -66,22 +66,25 @@ public int getDesiredHeight(final GC gc, final int bounds_width,
final Font orig_font = gc.getFont();
gc.setFont(font);

int items = 0;
int max_width = 1, max_height = 1; // Start with 1 pixel to avoid later div-by-0
for (Trace<XTYPE> trace : traces)
{
if (!trace.isVisible())
continue;
final Point size = gc.textExtent(trace.getLabel());
if (size.x > max_width)
max_width = size.x;
if (size.y > max_height)
max_height = size.y;
items++;
}
// Arrange in grid with some extra space
grid_x = max_width + max_height / 2;
grid_y = max_height;

gc.setFont(orig_font);

final int items = traces.size();
final int items_per_row = Math.max(1, bounds_width / grid_x); // Round down, counting full items
final int rows = (items + items_per_row-1) / items_per_row; // Round up
return rows * grid_y;
Expand Down

0 comments on commit 2346488

Please sign in to comment.