aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2005-05-15 18:22:44 +0000
committerMax Horn2005-05-15 18:22:44 +0000
commit06cc657f0d27b3e23c662fd8855877d9e7f17e98 (patch)
tree329354ff0efd46c1e192f9cd36e6a3925ee5f3c5
parent8c3085eb2b1bcb054fda16561345a9fd9632fc00 (diff)
downloadscummvm-rg350-06cc657f0d27b3e23c662fd8855877d9e7f17e98.tar.gz
scummvm-rg350-06cc657f0d27b3e23c662fd8855877d9e7f17e98.tar.bz2
scummvm-rg350-06cc657f0d27b3e23c662fd8855877d9e7f17e98.zip
Use big font in ListWidget if it is in kBigScrollBarWidth mode
svn-id: r18118
-rw-r--r--gui/ListWidget.cpp21
-rw-r--r--gui/ListWidget.h1
2 files changed, 15 insertions, 7 deletions
diff --git a/gui/ListWidget.cpp b/gui/ListWidget.cpp
index f600676c07..b858d2b84b 100644
--- a/gui/ListWidget.cpp
+++ b/gui/ListWidget.cpp
@@ -31,8 +31,14 @@ ListWidget::ListWidget(GuiObject *boss, int x, int y, int w, int h, WidgetSize w
: EditableWidget(boss, x, y, w, h), CommandSender(boss) {
// TODO: When in kBigWidgetSize mode, use another font
- _w = w - (ws == kBigWidgetSize ? kBigScrollBarWidth : kNormalScrollBarWidth);
- _lineHeight = kLineHeight;
+ if (ws == kBigWidgetSize) {
+ _font = FontMan.getFontByUsage(Graphics::FontManager::kBigGUIFont);
+ _w = w - kBigScrollBarWidth;
+ } else {
+ _font = FontMan.getFontByUsage(Graphics::FontManager::kGUIFont);
+ _w = w - kNormalScrollBarWidth;
+ }
+ _lineHeight = _font->getFontHeight() + 2;
_flags = WIDGET_ENABLED | WIDGET_CLEARBG | WIDGET_RETAIN_FOCUS | WIDGET_WANT_TICKLE;
_type = kListWidget;
@@ -297,6 +303,7 @@ void ListWidget::drawWidget(bool hilite) {
int i, pos, len = _list.size();
Common::String buffer;
int offset, deltax;
+ Graphics::Surface *surf = &g_gui.getScreen();
// Draw a thin frame around the list.
gui->hLine(_x, _y, _x + _w - 1, gui->_color);
@@ -321,8 +328,8 @@ void ListWidget::drawWidget(bool hilite) {
char temp[10];
sprintf(temp, "%2d. ", (pos + _numberingMode));
buffer = temp;
- gui->drawString(buffer, _x + 2, y, _w - 4, textColor);
- offset = gui->getStringWidth(buffer);
+ _font->drawString(surf, buffer, _x + 2, y, _w - 4, textColor);
+ offset = _font->getStringWidth(buffer);
} else {
offset = 0;
}
@@ -334,11 +341,11 @@ void ListWidget::drawWidget(bool hilite) {
adjustOffset();
deltax = -_editScrollOffset;
- gui->drawString(buffer, _x + r.left, y, r.width(), textColor, kTextAlignLeft, deltax, false);
+ _font->drawString(surf, buffer, _x + r.left, y, r.width(), textColor, kTextAlignLeft, deltax, false);
} else {
buffer = _list[pos];
deltax = 0;
- gui->drawString(buffer, _x + r.left, y, r.width(), textColor);
+ _font->drawString(surf, buffer, _x + r.left, y, r.width(), textColor);
}
}
}
@@ -352,7 +359,7 @@ Common::Rect ListWidget::getEditRect() const {
if (_numberingMode != kListNumberingOff) {
char temp[10];
sprintf(temp, "%2d. ", (_selectedItem + _numberingMode));
- r.left += g_gui.getStringWidth(temp);
+ r.left += _font->getStringWidth(temp);
}
return r;
diff --git a/gui/ListWidget.h b/gui/ListWidget.h
index 652489cfa3..0681c6cb29 100644
--- a/gui/ListWidget.h
+++ b/gui/ListWidget.h
@@ -57,6 +57,7 @@ protected:
ScrollBarWidget *_scrollBar;
int _currentKeyDown;
int _lineHeight;
+ const Graphics::Font *_font;
String _quickSelectStr;
uint32 _quickSelectTime;