aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2006-08-12 17:24:49 +0000
committerTorbjörn Andersson2006-08-12 17:24:49 +0000
commitb4311d15cadb4ed35980065a46f52b2cb63d28f6 (patch)
tree624a4a3ba49c9b5e475bf7a6c9d3e6563c467d1f
parente9b9aa65a67fde46a6c2301d7ddb76ea4bb19acf (diff)
downloadscummvm-rg350-b4311d15cadb4ed35980065a46f52b2cb63d28f6.tar.gz
scummvm-rg350-b4311d15cadb4ed35980065a46f52b2cb63d28f6.tar.bz2
scummvm-rg350-b4311d15cadb4ed35980065a46f52b2cb63d28f6.zip
The ListWidget constructor already did most of what reflowLayout() does, except
calling Widget::reflowLayout(). I've simplified that by calling reflowLayout() directly instead. This may be a bit of a hack, but it was the best way I could think of to ensure that _entriesPerPage was properly initialised. It wasn't before, because _h had not been initialised, causing Valgrind to complain. svn-id: r23705
-rw-r--r--gui/ListWidget.cpp31
1 files changed, 10 insertions, 21 deletions
diff --git a/gui/ListWidget.cpp b/gui/ListWidget.cpp
index e0ce81cff2..ed8cd9c38b 100644
--- a/gui/ListWidget.cpp
+++ b/gui/ListWidget.cpp
@@ -32,19 +32,12 @@ namespace GUI {
ListWidget::ListWidget(GuiObject *boss, const String &name)
: EditableWidget(boss, name), CommandSender(boss) {
- _leftPadding = g_gui.evaluator()->getVar("ListWidget.leftPadding", 0);
- _rightPadding = g_gui.evaluator()->getVar("ListWidget.rightPadding", 0);
- _topPadding = g_gui.evaluator()->getVar("ListWidget.topPadding", 0);
- _bottomPadding = g_gui.evaluator()->getVar("ListWidget.bottomPadding", 0);
- _hlLeftPadding = g_gui.evaluator()->getVar("ListWidget.hlLeftPadding", 0);
- _hlRightPadding = g_gui.evaluator()->getVar("ListWidget.hlRightPadding", 0);
+ _scrollBar = NULL;
+ _textWidth = NULL;
+
+ // This ensures that _entriesPerPage is properly initialised.
+ reflowLayout();
- if (g_gui.getWidgetSize() == kBigWidgetSize) {
- _scrollBarWidth = kBigScrollBarWidth;
- } else {
- _scrollBarWidth = kNormalScrollBarWidth;
- }
-
_scrollBar = new ScrollBarWidget(this, _w - _scrollBarWidth, 0, _scrollBarWidth, _h);
_scrollBar->setTarget(this);
@@ -53,7 +46,6 @@ ListWidget::ListWidget(GuiObject *boss, const String &name)
_type = kListWidget;
_editMode = false;
_numberingMode = kListNumberingOne;
- _entriesPerPage = (_h - _topPadding - _bottomPadding) / kLineHeight;
_currentPos = 0;
_selectedItem = -1;
_currentKeyDown = 0;
@@ -65,11 +57,6 @@ ListWidget::ListWidget(GuiObject *boss, const String &name)
// FIXME: This flag should come from widget definition
_editable = true;
-
- _textWidth = new int[_entriesPerPage];
-
- for (int i = 0; i < _entriesPerPage; i++)
- _textWidth[i] = 0;
}
ListWidget::~ListWidget() {
@@ -470,9 +457,11 @@ void ListWidget::reflowLayout() {
for (int i = 0; i < _entriesPerPage; i++)
_textWidth[i] = 0;
- _scrollBar->resize(_w - _scrollBarWidth, 0, _scrollBarWidth, _h);
- scrollBarRecalc();
- scrollToCurrent();
+ if (_scrollBar) {
+ _scrollBar->resize(_w - _scrollBarWidth, 0, _scrollBarWidth, _h);
+ scrollBarRecalc();
+ scrollToCurrent();
+ }
}
} // End of namespace GUI