diff options
Diffstat (limited to 'gui')
-rw-r--r-- | gui/ListWidget.cpp | 21 | ||||
-rw-r--r-- | gui/ListWidget.h | 1 |
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; |