Selaa lähdekoodia

LibGUI: Scale TabWidget tabs according to available space

In TabWidgets with the "uniform tabs" mode on, we will now scale tabs
between a minimum and maximum size, distributing the available space.

Partially addresses #1971.
Andreas Kling 5 vuotta sitten
vanhempi
commit
8fc6ff94fe
1 muutettua tiedostoa jossa 7 lisäystä ja 1 poistoa
  1. 7 1
      Libraries/LibGUI/TabWidget.cpp

+ 7 - 1
Libraries/LibGUI/TabWidget.cpp

@@ -197,7 +197,13 @@ void TabWidget::paint_event(PaintEvent& event)
 
 int TabWidget::uniform_tab_width() const
 {
-    return 160;
+    int minimum_tab_width = 24;
+    int maximum_tab_width = 160;
+    int total_tab_width = m_tabs.size() * maximum_tab_width;
+    int tab_width = maximum_tab_width;
+    if (total_tab_width > width())
+        tab_width = width() / m_tabs.size();
+    return max(tab_width, minimum_tab_width);
 }
 
 Gfx::Rect TabWidget::button_rect(int index) const