aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gui/widgets/list.cpp36
-rw-r--r--gui/widgets/list.h3
2 files changed, 10 insertions, 29 deletions
diff --git a/gui/widgets/list.cpp b/gui/widgets/list.cpp
index b4a5f4bf0b..df12d6fd5f 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 44366be3e9..57e677e91e 100644
--- a/gui/widgets/list.h
+++ b/gui/widgets/list.h
@@ -87,7 +87,6 @@ protected:
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 @@ protected:
void lostFocusWidget();
void checkBounds();
void scrollToCurrent();
-
- int *_textWidth;
};
} // End of namespace GUI