[Scummvm-cvs-logs] CVS: scummvm/scumm dialogs.cpp,1.86,1.87 dialogs.h,1.31,1.32

Max Horn fingolfin at users.sourceforge.net
Fri Nov 28 13:57:02 CET 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv6373/scumm

Modified Files:
	dialogs.cpp dialogs.h 
Log Message:
reuse SaveLoadChooser in main dialog -> this means the SaveLoadChooser remembers the scroll position -> improved user experience

Index: dialogs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/dialogs.cpp,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -d -r1.86 -r1.87
--- dialogs.cpp	11 Nov 2003 00:40:35 -0000	1.86
+++ dialogs.cpp	28 Nov 2003 21:56:14 -0000	1.87
@@ -198,14 +198,14 @@
 	bool _saveMode;
 
 public:
-	SaveLoadChooser(const String &title, const StringList& list, const String &buttonLabel, bool saveMode);
+	SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode);
 	
 	virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
 	const String &getResultString() const;
 };
 
-SaveLoadChooser::SaveLoadChooser(const String &title, const StringList& list, const String &buttonLabel, bool saveMode)
-	: ChooserDialog(title, list, buttonLabel, 182), _saveMode(saveMode) {
+SaveLoadChooser::SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode)
+	: ChooserDialog(title, buttonLabel, 182), _saveMode(saveMode) {
 
 	_list->setEditable(saveMode);
 	_list->setNumberingMode(saveMode ? kListNumberingOne : kListNumberingZero);
@@ -303,6 +303,8 @@
 #ifndef DISABLE_HELP
 	_helpDialog = new HelpDialog(scumm);
 #endif
+	_saveDialog = new SaveLoadChooser("Save game:", "Save", true);
+	_loadDialog = new SaveLoadChooser("Load game:", "Load", false);
 }
 
 MainMenuDialog::~MainMenuDialog() {
@@ -310,6 +312,8 @@
 #ifndef DISABLE_HELP
 	delete _helpDialog;
 #endif
+	delete _saveDialog;
+	delete _loadDialog;
 }
 
 void MainMenuDialog::open() {
@@ -361,10 +365,10 @@
 
 void MainMenuDialog::save() {
 	int idx;
-	SaveLoadChooser dialog("Save game:", generateSavegameList(_scumm, true), "Save", true);
-	idx = dialog.runModal();
+	_saveDialog->setList(generateSavegameList(_scumm, true));
+	idx = _saveDialog->runModal();
 	if (idx >= 0) {
-		const String &result = dialog.getResultString();
+		const String &result = _saveDialog->getResultString();
 		char buffer[20];
 		const char *str;
 		if (result.isEmpty()) {
@@ -380,8 +384,8 @@
 
 void MainMenuDialog::load() {
 	int idx;
-	SaveLoadChooser dialog("Load game:", generateSavegameList(_scumm, false), "Load", false);
-	idx = dialog.runModal();
+	_loadDialog->setList(generateSavegameList(_scumm, false));
+	idx = _loadDialog->runModal();
 	if (idx >= 0) {
 		_scumm->requestLoad(idx);
 		close();

Index: dialogs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/dialogs.h,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- dialogs.h	11 Nov 2003 00:40:35 -0000	1.31
+++ dialogs.h	28 Nov 2003 21:56:14 -0000	1.32
@@ -54,6 +54,8 @@
 	const String queryResString(int stringno);
 };
 
+class SaveLoadChooser;
+
 class MainMenuDialog : public ScummDialog {
 public:
 	MainMenuDialog(ScummEngine *scumm);
@@ -67,6 +69,8 @@
 #ifndef DISABLE_HELP
 	GUI::Dialog		*_helpDialog;
 #endif
+	SaveLoadChooser	*_saveDialog;
+	SaveLoadChooser	*_loadDialog;
 
 	void save();
 	void load();





More information about the Scummvm-git-logs mailing list