diff options
author | Torbjörn Andersson | 2006-06-11 21:43:09 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2006-06-11 21:43:09 +0000 |
commit | 3e42e4a60156bc735a960c3982406ec1e53a4016 (patch) | |
tree | aaf107464467d2d72091370a56f1e722244fac23 | |
parent | 9b2e92b686bdb7fb697e4fd502fee6571a936b11 (diff) | |
download | scummvm-rg350-3e42e4a60156bc735a960c3982406ec1e53a4016.tar.gz scummvm-rg350-3e42e4a60156bc735a960c3982406ec1e53a4016.tar.bz2 scummvm-rg350-3e42e4a60156bc735a960c3982406ec1e53a4016.zip |
Re-calculate tab width when the screen changes.
svn-id: r23037
-rw-r--r-- | gui/TabWidget.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
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) { |