From 3e42e4a60156bc735a960c3982406ec1e53a4016 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sun, 11 Jun 2006 21:43:09 +0000 Subject: Re-calculate tab width when the screen changes. svn-id: r23037 --- gui/TabWidget.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gui/TabWidget.cpp b/gui/TabWidget.cpp index a4276e840c..16f4786c38 100644 --- a/gui/TabWidget.cpp +++ b/gui/TabWidget.cpp @@ -137,6 +137,8 @@ bool TabWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) { } void TabWidget::handleScreenChanged() { + Widget::handleScreenChanged(); + for (uint i = 0; i < _tabs.size(); ++i) { Widget *w = _tabs[i].firstWidget; while (w) { @@ -144,12 +146,24 @@ void TabWidget::handleScreenChanged() { w = w->next(); } } + if (g_gui.getWidgetSize() == kBigWidgetSize) { _tabHeight = kBigTabHeight; } else { _tabHeight = kTabHeight; } - Widget::handleScreenChanged(); + + _tabWidth = 40; + + for (uint i = 0; i < _tabs.size(); ++i) { + int newWidth = g_gui.getStringWidth(_tabs[i].title) + 2 * kTabPadding; + if (_tabWidth < newWidth) + _tabWidth = newWidth; + } + + int maxWidth = (_w - kTabLeftOffset) / _tabs.size() - kTabLeftOffset; + if (_tabWidth > maxWidth) + _tabWidth = maxWidth; } void TabWidget::drawWidget(bool hilite) { -- cgit v1.2.3