mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-23 12:44:02 +00:00
Let ListWidget have an 'active' item
svn-id: r4529
This commit is contained in:
parent
8e7686e19f
commit
86a2ca6b82
@ -48,7 +48,7 @@ ListWidget::ListWidget(Dialog *boss, int x, int y, int w, int h)
|
||||
_numberingMode = kListNumberingOne;
|
||||
_entriesPerPage = (_h - 4) / LINE_HEIGHT;
|
||||
_currentPos = 3;
|
||||
|
||||
_selectedItem = -1;
|
||||
_scrollBar = new ScrollBarWidget(boss, _x + _w, _y, kScrollBarWidth, _h);
|
||||
_scrollBar->setTarget(this);
|
||||
|
||||
@ -86,6 +86,8 @@ ListWidget::~ListWidget()
|
||||
void ListWidget::handleClick(int x, int y, int button)
|
||||
{
|
||||
if (_flags & WIDGET_ENABLED) {
|
||||
_selectedItem = (y / LINE_HEIGHT) + _currentPos;
|
||||
draw();
|
||||
}
|
||||
}
|
||||
|
||||
@ -121,6 +123,9 @@ void ListWidget::drawWidget(bool hilite)
|
||||
} else
|
||||
buffer = "";
|
||||
buffer += _list[pos];
|
||||
gui->drawString(buffer, _x+5, _y+2 + LINE_HEIGHT * i, _w - 10, gui->_textcolor);
|
||||
if (_selectedItem == pos)
|
||||
gui->drawString(buffer, _x+5, _y+2 + LINE_HEIGHT * i, _w - 10, gui->_textcolorhi);
|
||||
else
|
||||
gui->drawString(buffer, _x+5, _y+2 + LINE_HEIGHT * i, _w - 10, gui->_textcolor);
|
||||
}
|
||||
}
|
||||
|
@ -40,6 +40,7 @@ protected:
|
||||
int _numberingMode;
|
||||
int _currentPos;
|
||||
int _entriesPerPage;
|
||||
int _selectedItem;
|
||||
ScrollBarWidget *_scrollBar;
|
||||
public:
|
||||
ListWidget(Dialog *boss, int x, int y, int w, int h);
|
||||
@ -47,7 +48,7 @@ public:
|
||||
|
||||
void setList(const StringList& list) { _list = list; }
|
||||
const StringList& getList() const { return _list; }
|
||||
|
||||
const int getSelected() {return _selectedItem;}
|
||||
void setNumberingMode(int numberingMode) { _numberingMode = numberingMode; }
|
||||
|
||||
virtual void handleClick(int x, int y, int button);
|
||||
|
@ -205,7 +205,7 @@ SaveLoadDialog::SaveLoadDialog(NewGui *gui)
|
||||
new SliderWidget(this, 110, 20, 80, 16, "Volume", 0);
|
||||
|
||||
// FIXME - test
|
||||
new ListWidget(this, 10, 40, 180, 74);
|
||||
_savegameList = new ListWidget(this, 10, 40, 180, 74);
|
||||
}
|
||||
|
||||
void SaveLoadDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data)
|
||||
@ -214,6 +214,7 @@ void SaveLoadDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 dat
|
||||
case kSaveCmd:
|
||||
break;
|
||||
case kLoadCmd:
|
||||
//printf("Saving game in slot %d\n", _savegameList->getSelected());
|
||||
break;
|
||||
case kPlayCmd:
|
||||
close();
|
||||
|
@ -77,6 +77,8 @@ public:
|
||||
SaveLoadDialog(NewGui *gui);
|
||||
|
||||
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
|
||||
protected:
|
||||
Widget* _savegameList;
|
||||
};
|
||||
|
||||
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
#include "scummsys.h"
|
||||
|
||||
|
||||
class Dialog;
|
||||
|
||||
enum {
|
||||
|
Loading…
x
Reference in New Issue
Block a user