mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
LibGUI: Make Breadcrumbbar resizable below current size
By making proper use of the dynamic layout system, the Breadcrumbbar can now shrink below its current (grown) size again, while still ensuring that no icon gets cut off.
This commit is contained in:
parent
6e2fc0285e
commit
29a3ff22d7
Notes:
sideshowbarker
2024-07-17 09:37:30 +09:00
Author: https://github.com/frhun Commit: https://github.com/SerenityOS/serenity/commit/29a3ff22d7 Pull-request: https://github.com/SerenityOS/serenity/pull/15484 Reviewed-by: https://github.com/AtkinsSJ ✅
1 changed files with 4 additions and 3 deletions
|
@ -109,7 +109,8 @@ void Breadcrumbbar::append_segment(String text, Gfx::Bitmap const* icon, String
|
|||
auto button_width = min(button_text_width + icon_width + icon_padding + 16, max_button_width);
|
||||
auto shrunken_width = icon_width + icon_padding + (icon ? 4 : 16);
|
||||
|
||||
button.set_fixed_size(button_width, 16 + 8);
|
||||
button.set_max_size(button_width, 16 + 8);
|
||||
button.set_min_size(shrunken_width, 16 + 8);
|
||||
|
||||
Segment segment { icon, text, data, button_width, shrunken_width, button.make_weak_ptr<GUI::Button>() };
|
||||
|
||||
|
@ -178,11 +179,11 @@ void Breadcrumbbar::relayout()
|
|||
|
||||
for (auto& segment : m_segments) {
|
||||
if (remaining_width > width() && !segment.button->is_checked()) {
|
||||
segment.button->set_fixed_width(segment.shrunken_width);
|
||||
segment.button->set_preferred_width(segment.shrunken_width);
|
||||
remaining_width -= (segment.width - segment.shrunken_width);
|
||||
continue;
|
||||
}
|
||||
segment.button->set_fixed_width(segment.width);
|
||||
segment.button->set_preferred_width(segment.width);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue