diff --git a/gui/widgets/list.cpp b/gui/widgets/list.cpp index b4a5f4bf0b4f..df12d6fd5f75 100644 --- a/gui/widgets/list.cpp +++ b/gui/widgets/list.cpp @@ -37,7 +37,6 @@ ListWidget::ListWidget(Dialog *boss, const String &name, const char *tooltip, ui : EditableWidget(boss, name, tooltip), _cmd(cmd) { _scrollBar = NULL; - _textWidth = NULL; // This ensures that _entriesPerPage is properly initialized. reflowLayout(); @@ -69,7 +68,6 @@ ListWidget::ListWidget(Dialog *boss, int x, int y, int w, int h, const char *too : EditableWidget(boss, x, y, w, h, tooltip), _cmd(cmd) { _scrollBar = NULL; - _textWidth = NULL; // This ensures that _entriesPerPage is properly initialized. reflowLayout(); @@ -97,10 +95,6 @@ ListWidget::ListWidget(Dialog *boss, int x, int y, int w, int h, const char *too _editColor = ThemeEngine::kFontColorNormal; } -ListWidget::~ListWidget() { - delete[] _textWidth; -} - bool ListWidget::containsWidget(Widget *w) const { if (w == _scrollBar || _scrollBar->containsWidget(w)) return true; @@ -502,7 +496,6 @@ void ListWidget::drawWidget() { // Draw a thin frame around the list. g_gui.theme()->drawWidgetBackgroundClip(Common::Rect(_x, _y, _x + _w, _y + _h), getBossClipRect(), 0, ThemeEngine::kWidgetBackgroundBorder); - const int scrollbarW = (_scrollBar && _scrollBar->isVisible()) ? _scrollBarWidth : 0; // Draw the list items for (i = 0, pos = _currentPos; i < _entriesPerPage && pos < len; i++, pos++) { @@ -520,13 +513,11 @@ void ListWidget::drawWidget() { // If in numbering mode, we first print a number prefix if (_numberingMode != kListNumberingOff) { buffer = Common::String::format("%2d. ", (pos + _numberingMode)); - g_gui.theme()->drawTextClip(Common::Rect(_x, y, _x + r.left + _leftPadding, y + fontHeight - 2), getBossClipRect(), - buffer, _state, Graphics::kTextAlignLeft, inverted, _leftPadding, true); + g_gui.theme()->drawTextClip(Common::Rect(_x + _hlLeftPadding, y, _x + r.left + _leftPadding, y + fontHeight - 2), + getBossClipRect(), buffer, _state, Graphics::kTextAlignLeft, inverted, _leftPadding, true); pad = 0; } - int width; - ThemeEngine::FontColor color = ThemeEngine::kFontColorNormal; if (!_listColors.empty()) { @@ -540,22 +531,21 @@ void ListWidget::drawWidget() { buffer = _editString; color = _editColor; adjustOffset(); - width = _w - r.left - _hlRightPadding - _leftPadding - scrollbarW; - g_gui.theme()->drawTextClip(Common::Rect(_x + r.left, y, _x + r.left + width, y + fontHeight - 2), getBossClipRect(), buffer, _state, - Graphics::kTextAlignLeft, inverted, pad, true, ThemeEngine::kFontStyleBold, color); + g_gui.theme()->drawTextClip(Common::Rect(_x + r.left, y, _x + r.right, y + fontHeight - 2), + getBossClipRect(), buffer, _state, + Graphics::kTextAlignLeft, inverted, pad, true, ThemeEngine::kFontStyleBold, color); } else { buffer = _list[pos]; - width = _w - r.left - scrollbarW; - g_gui.theme()->drawTextClip(Common::Rect(_x + r.left, y, _x + r.left + width, y + fontHeight - 2), getBossClipRect(), buffer, _state, - Graphics::kTextAlignLeft, inverted, pad, true, ThemeEngine::kFontStyleBold, color); + g_gui.theme()->drawTextClip(Common::Rect(_x + r.left, y, _x + r.right, y + fontHeight - 2), + getBossClipRect(), buffer, _state, + Graphics::kTextAlignLeft, inverted, pad, true, ThemeEngine::kFontStyleBold, color); } - - _textWidth[i] = width; } } Common::Rect ListWidget::getEditRect() const { - Common::Rect r(_hlLeftPadding, 0, _w - _hlLeftPadding - _hlRightPadding, kLineHeight - 2); + const int scrollbarW = (_scrollBar && _scrollBar->isVisible()) ? _scrollBarWidth : 0; + Common::Rect r(_hlLeftPadding, 0, _w - _hlRightPadding - scrollbarW, kLineHeight - 2); const int offset = (_selectedItem - _currentPos) * kLineHeight + _topPadding; r.top += offset; r.bottom += offset; @@ -668,12 +658,6 @@ void ListWidget::reflowLayout() { _entriesPerPage = fracToInt(entriesPerPage); assert(_entriesPerPage > 0); - delete[] _textWidth; - _textWidth = new int[_entriesPerPage]; - - for (int i = 0; i < _entriesPerPage; i++) - _textWidth[i] = 0; - if (_scrollBar) { _scrollBar->resize(_w - _scrollBarWidth + 1, 0, _scrollBarWidth, _h); scrollBarRecalc(); diff --git a/gui/widgets/list.h b/gui/widgets/list.h index 44366be3e9cf..57e677e91e3b 100644 --- a/gui/widgets/list.h +++ b/gui/widgets/list.h @@ -87,7 +87,6 @@ class ListWidget : public EditableWidget { public: ListWidget(Dialog *boss, const String &name, const char *tooltip = 0, uint32 cmd = 0); ListWidget(Dialog *boss, int x, int y, int w, int h, const char *tooltip = 0, uint32 cmd = 0); - virtual ~ListWidget(); virtual bool containsWidget(Widget *) const; virtual Widget *findWidget(int x, int y); @@ -149,8 +148,6 @@ class ListWidget : public EditableWidget { void lostFocusWidget(); void checkBounds(); void scrollToCurrent(); - - int *_textWidth; }; } // End of namespace GUI