[Scummvm-cvs-logs] scummvm master -> c6e938fab9faecea5b6a03f32d9d18eb7c088359

lordhoto lordhoto at gmail.com
Sun Aug 12 15:12:01 CEST 2012


This automated email contains information about 37 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
27b8b7e9b6 GUI: Hide save/load chooser implementation.
b7c3ffd37c BASE: Add operator* to PluginSubclass.
e866dfd406 GUI: Refactor engine plugin access out of SaveLoadChooserImpl into SaveLoadChooser.
62c66cdb9c GUI: Fix include guard of saveload.h.
1aa5200bb8 GUI: Create an interface for save/load dialogs.
b4882ce6bd GUI: Implement a new load chooser, which displays a list of thumbnails.
72ea449431 GUI: Hook up the new load chooser for > 320x200 and engines which support thumbnails.
80ae9d7d34 GUI: Allow tooltips to be changed after widget creation.
d7db655c5b GUI: Show additional meta data in the thumbnail load chooser via tooltip.
0b5b58829c GUI: Don't distribute vertical space between buttons in the thumbnail load chooser.
0db0b650e2 GUI: Fix copy&paste error affecting vertical spacing in thumbnail load chooser.
7860c5bfc9 GUI: Only update save list when the dialog opens in thumbnail load chooser.
d3e5763276 GUI: Allow the user to switch between list and thumbnail based load chooser.
37fd9b7384 GUI: Fix memory leaks in LoadChooserThumbnailed::destroyButtons.
e2056bdfd9 GUI: Remember last save/load chooser selection.
c1426f783d GUI: Use a black rect when no thumbnail is available in the thumbnail load chooser.
10bfb82d3b GUI: Use a slightly bigger vertical spacing in the thumbnail load chooser.
1c389e5510 GUI: Only use grid load dialog for 640x400 or bigger.
236db5ed87 GUI: Automatically switch to list based save/load chooser when changing resolution below 640x400.
bd3d5fb8ff GUI: Clean up save load chooser selection code.
3256081b2b GUI: Add page display to grid based load chooser.
049e61b445 GUI: Fix small memory leak in grid based load chooser.
0cf00ddfe2 GUI: Make container widget a bit more container like.
e37c0be0d9 GUI: Fix missing button background in grid based chooser.
90eb773c5d GUI: Implement saving in the grid based save/load chooser.
89b638128f GUI: Rename LoadChooserThumbnailed to SaveLoadChooserGrid.
91196e5375 GUI: Also disable the switch-to-list button in the choosers, when the grid one isn't available.
8e791896b8 GUI: Remove an unnecessary empty line.
bab992ab98 GUI: Remove unecessary explicit GUI namespace uses.
f006eddac5 GUI: Let SaveLoadChooser::getResultString return a const reference.
ca225cc7e0 GUI: Strip a trailing whitespace.
7d51907405 GUI: Add possibility to disable the grid based chooser via DISABLE_SAVELOADCHOOSER_GRID.
71daae7bbc GUI: Use "OK" instead of "Ok" in SavenameDialog.
4f7c65af0e Merge pull request #260 from lordhoto/new-chooser.
e7cd238809 GUI: Remove left-over code from theme based fill color in thumbnail display.
7ea7a8ae7e I18N: Update POTFILES and rebuild the translations.
c6e938fab9 NEWS: Mention new save/load chooser.


Commit: 27b8b7e9b6644767ad9de1e40c188a7abd631c4e
    https://github.com/scummvm/scummvm/commit/27b8b7e9b6644767ad9de1e40c188a7abd631c4e
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-13T18:01:11-07:00

Commit Message:
GUI: Hide save/load chooser implementation.

Changed paths:
    gui/saveload.cpp
    gui/saveload.h



diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index 67d871e..717523b1 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -41,8 +41,52 @@ enum {
 
 };
 
-SaveLoadChooser::SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode)
-	: Dialog("SaveLoadChooser"), _delSupport(0), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0)  {
+class SaveLoadChooserImpl : GUI::Dialog {
+	typedef Common::String String;
+	typedef Common::Array<Common::String> StringArray;
+public:
+	SaveLoadChooserImpl(const String &title, const String &buttonLabel, bool saveMode);
+
+	int runModalWithCurrentTarget();
+	int runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target);
+
+	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
+
+	const Common::String &getResultString() const;
+
+	virtual void open();
+
+	virtual void reflowLayout();
+
+	virtual void close();
+private:
+	GUI::ListWidget		*_list;
+	GUI::ButtonWidget	*_chooseButton;
+	GUI::ButtonWidget	*_deleteButton;
+	GUI::GraphicsWidget	*_gfxWidget;
+	GUI::ContainerWidget	*_container;
+	GUI::StaticTextWidget	*_date;
+	GUI::StaticTextWidget	*_time;
+	GUI::StaticTextWidget	*_playtime;
+
+	const EnginePlugin		*_plugin;
+	bool					_delSupport;
+	bool					_metaInfoSupport;
+	bool					_thumbnailSupport;
+	bool					_saveDateSupport;
+	bool					_playTimeSupport;
+	String					_target;
+	SaveStateList			_saveList;
+	String					_resultString;
+
+	uint8 _fillR, _fillG, _fillB;
+
+	void updateSaveList();
+	void updateSelection(bool redraw);
+};
+
+SaveLoadChooserImpl::SaveLoadChooserImpl(const String &title, const String &buttonLabel, bool saveMode)
+	: Dialog("SaveLoadChooser"), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0)  {
 	_delSupport = _metaInfoSupport = _thumbnailSupport = _saveDateSupport = _playTimeSupport = false;
 
 	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
@@ -74,10 +118,7 @@ SaveLoadChooser::SaveLoadChooser(const String &title, const String &buttonLabel,
 //	_container->setHints(GUI::THEME_HINT_USE_SHADOW);
 }
 
-SaveLoadChooser::~SaveLoadChooser() {
-}
-
-int SaveLoadChooser::runModalWithCurrentTarget() {
+int SaveLoadChooserImpl::runModalWithCurrentTarget() {
 	const Common::String gameId = ConfMan.get("gameid");
 
 	const EnginePlugin *plugin = 0;
@@ -86,7 +127,7 @@ int SaveLoadChooser::runModalWithCurrentTarget() {
 	return runModalWithPluginAndTarget(plugin, ConfMan.getActiveDomainName());
 }
 
-int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target) {
+int SaveLoadChooserImpl::runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target) {
 	if (_gfxWidget)
 		_gfxWidget->setGfx(0);
 
@@ -114,7 +155,7 @@ int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, con
 	return ret;
 }
 
-void SaveLoadChooser::open() {
+void SaveLoadChooserImpl::open() {
 	Dialog::open();
 
 	// So that quitting ScummVM will not cause the dialog result to say a
@@ -122,24 +163,12 @@ void SaveLoadChooser::open() {
 	setResult(-1);
 }
 
-const Common::String &SaveLoadChooser::getResultString() const {
+const Common::String &SaveLoadChooserImpl::getResultString() const {
 	int selItem = _list->getSelected();
 	return (selItem >= 0) ? _list->getSelectedString() : _resultString;
 }
 
-Common::String SaveLoadChooser::createDefaultSaveDescription(const int slot) const {
-#if defined(USE_SAVEGAME_TIMESTAMP)
-	TimeDate curTime;
-	g_system->getTimeAndDate(curTime);
-	curTime.tm_year += 1900; // fixup year
-	curTime.tm_mon++; // fixup month
-	return Common::String::format("%04d.%02d.%02d / %02d:%02d:%02d", curTime.tm_year, curTime.tm_mon, curTime.tm_mday, curTime.tm_hour, curTime.tm_min, curTime.tm_sec);
-#else
-	return Common::String::format("Save %d", slot + 1);
-#endif
-}
-
-void SaveLoadChooser::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+void SaveLoadChooserImpl::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
 	int selItem = _list->getSelected();
 
 	switch (cmd) {
@@ -189,7 +218,7 @@ void SaveLoadChooser::handleCommand(CommandSender *sender, uint32 cmd, uint32 da
 	}
 }
 
-void SaveLoadChooser::reflowLayout() {
+void SaveLoadChooserImpl::reflowLayout() {
 	if (g_gui.xmlEval()->getVar("Globals.SaveLoadChooser.ExtInfo.Visible") == 1 && _thumbnailSupport) {
 		int16 x, y;
 		uint16 w, h;
@@ -246,7 +275,7 @@ void SaveLoadChooser::reflowLayout() {
 	Dialog::reflowLayout();
 }
 
-void SaveLoadChooser::updateSelection(bool redraw) {
+void SaveLoadChooserImpl::updateSelection(bool redraw) {
 	int selItem = _list->getSelected();
 
 	bool isDeletable = _delSupport;
@@ -329,7 +358,7 @@ void SaveLoadChooser::updateSelection(bool redraw) {
 	}
 }
 
-void SaveLoadChooser::close() {
+void SaveLoadChooserImpl::close() {
 	_plugin = 0;
 	_target.clear();
 	_saveList.clear();
@@ -338,7 +367,7 @@ void SaveLoadChooser::close() {
 	Dialog::close();
 }
 
-void SaveLoadChooser::updateSaveList() {
+void SaveLoadChooserImpl::updateSaveList() {
 	_saveList = (*_plugin)->listSaves(_target.c_str());
 
 	int curSlot = 0;
@@ -402,4 +431,48 @@ void SaveLoadChooser::updateSaveList() {
 	_list->setList(saveNames, &colors);
 }
 
+// --- SaveLoadChooser implementation ---
+
+SaveLoadChooser::SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode) {
+	_impl = new SaveLoadChooserImpl(title, buttonLabel, saveMode);
+}
+
+SaveLoadChooser::~SaveLoadChooser() {
+	delete _impl;
+	_impl = 0;
+}
+
+Common::String SaveLoadChooser::createDefaultSaveDescription(const int slot) const {
+#if defined(USE_SAVEGAME_TIMESTAMP)
+	TimeDate curTime;
+	g_system->getTimeAndDate(curTime);
+	curTime.tm_year += 1900; // fixup year
+	curTime.tm_mon++; // fixup month
+	return Common::String::format("%04d.%02d.%02d / %02d:%02d:%02d", curTime.tm_year, curTime.tm_mon, curTime.tm_mday, curTime.tm_hour, curTime.tm_min, curTime.tm_sec);
+#else
+	return Common::String::format("Save %d", slot + 1);
+#endif
+}
+
+int SaveLoadChooser::runModalWithCurrentTarget() {
+	if (_impl)
+		return _impl->runModalWithCurrentTarget();
+	else
+		return -1;
+}
+
+int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target) {
+	if (_impl)
+		return _impl->runModalWithPluginAndTarget(plugin, target);
+	else
+		return -1;
+}
+
+Common::String SaveLoadChooser::getResultString() const {
+	if (_impl)
+		return _impl->getResultString();
+	else
+		return Common::String();
+}
+
 } // End of namespace GUI
diff --git a/gui/saveload.h b/gui/saveload.h
index a19f5ab..9cd3c46 100644
--- a/gui/saveload.h
+++ b/gui/saveload.h
@@ -27,46 +27,16 @@
 
 namespace GUI {
 
-class ListWidget;
-class GraphicsWidget;
-class ButtonWidget;
-class CommandSender;
-class ContainerWidget;
-class StaticTextWidget;
+class SaveLoadChooserImpl;
 
-class SaveLoadChooser : GUI::Dialog {
+class SaveLoadChooser {
 	typedef Common::String String;
-	typedef Common::Array<Common::String> StringArray;
 protected:
-	GUI::ListWidget		*_list;
-	GUI::ButtonWidget	*_chooseButton;
-	GUI::ButtonWidget	*_deleteButton;
-	GUI::GraphicsWidget	*_gfxWidget;
-	GUI::ContainerWidget	*_container;
-	GUI::StaticTextWidget	*_date;
-	GUI::StaticTextWidget	*_time;
-	GUI::StaticTextWidget	*_playtime;
-
-	const EnginePlugin		*_plugin;
-	bool					_delSupport;
-	bool					_metaInfoSupport;
-	bool					_thumbnailSupport;
-	bool					_saveDateSupport;
-	bool					_playTimeSupport;
-	String					_target;
-	SaveStateList			_saveList;
-	String					_resultString;
-
-	uint8 _fillR, _fillG, _fillB;
-
-	void updateSaveList();
-	void updateSelection(bool redraw);
+	SaveLoadChooserImpl *_impl;
 public:
 	SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode);
 	~SaveLoadChooser();
 
-	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
-
 	/**
 	 * Runs the save/load chooser with the currently active config manager
 	 * domain as target.
@@ -75,9 +45,8 @@ public:
 	 */
 	int runModalWithCurrentTarget();
 	int runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target);
-	void open();
 
-	const Common::String &getResultString() const;
+	Common::String getResultString() const;
 
 	/**
 	 * Creates a default save description for the specified slot. Depending
@@ -93,10 +62,6 @@ public:
 	 * @return The slot description.
 	 */
 	Common::String createDefaultSaveDescription(const int slot) const;
-
-	virtual void reflowLayout();
-
-	virtual void close();
 };
 
 } // End of namespace GUI


Commit: b7c3ffd37cfe10b45976b3e7fb4a595350ef7734
    https://github.com/scummvm/scummvm/commit/b7c3ffd37cfe10b45976b3e7fb4a595350ef7734
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-13T18:12:48-07:00

Commit Message:
BASE: Add operator* to PluginSubclass.

Changed paths:
    base/plugins.h



diff --git a/base/plugins.h b/base/plugins.h
index fffb5fb..4409c9e 100644
--- a/base/plugins.h
+++ b/base/plugins.h
@@ -205,6 +205,10 @@ typedef Common::Array<Plugin *> PluginList;
 template<class PO_t>
 class PluginSubclass : public Plugin {
 public:
+	PO_t &operator*() const {
+		return *(PO_t *)_pluginObject;
+	}
+
 	PO_t *operator->() const {
 		return (PO_t *)_pluginObject;
 	}


Commit: e866dfd4069dfb4418ebdc0d4522b56aebed7522
    https://github.com/scummvm/scummvm/commit/e866dfd4069dfb4418ebdc0d4522b56aebed7522
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-13T18:13:49-07:00

Commit Message:
GUI: Refactor engine plugin access out of SaveLoadChooserImpl into SaveLoadChooser.

Changed paths:
    gui/saveload.cpp



diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index 717523b1..e2f9461 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -47,8 +47,7 @@ class SaveLoadChooserImpl : GUI::Dialog {
 public:
 	SaveLoadChooserImpl(const String &title, const String &buttonLabel, bool saveMode);
 
-	int runModalWithCurrentTarget();
-	int runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target);
+	int run(const String &target, const MetaEngine *metaEngine);
 
 	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
 
@@ -69,7 +68,7 @@ private:
 	GUI::StaticTextWidget	*_time;
 	GUI::StaticTextWidget	*_playtime;
 
-	const EnginePlugin		*_plugin;
+	const MetaEngine		*_metaEngine;
 	bool					_delSupport;
 	bool					_metaInfoSupport;
 	bool					_thumbnailSupport;
@@ -118,41 +117,22 @@ SaveLoadChooserImpl::SaveLoadChooserImpl(const String &title, const String &butt
 //	_container->setHints(GUI::THEME_HINT_USE_SHADOW);
 }
 
-int SaveLoadChooserImpl::runModalWithCurrentTarget() {
-	const Common::String gameId = ConfMan.get("gameid");
-
-	const EnginePlugin *plugin = 0;
-	EngineMan.findGame(gameId, &plugin);
-
-	return runModalWithPluginAndTarget(plugin, ConfMan.getActiveDomainName());
-}
-
-int SaveLoadChooserImpl::runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target) {
+int SaveLoadChooserImpl::run(const String &target, const MetaEngine *metaEngine) {
 	if (_gfxWidget)
 		_gfxWidget->setGfx(0);
 
-	// Set up the game domain as newly active domain, so
-	// target specific savepath will be checked
-	String oldDomain = ConfMan.getActiveDomainName();
-	ConfMan.setActiveDomain(target);
-
-	_plugin = plugin;
+	_metaEngine = metaEngine;
 	_target = target;
-	_delSupport = (*_plugin)->hasFeature(MetaEngine::kSupportsDeleteSave);
-	_metaInfoSupport = (*_plugin)->hasFeature(MetaEngine::kSavesSupportMetaInfo);
-	_thumbnailSupport = _metaInfoSupport && (*_plugin)->hasFeature(MetaEngine::kSavesSupportThumbnail);
-	_saveDateSupport = _metaInfoSupport && (*_plugin)->hasFeature(MetaEngine::kSavesSupportCreationDate);
-	_playTimeSupport = _metaInfoSupport && (*_plugin)->hasFeature(MetaEngine::kSavesSupportPlayTime);
+	_delSupport = _metaEngine->hasFeature(MetaEngine::kSupportsDeleteSave);
+	_metaInfoSupport = _metaEngine->hasFeature(MetaEngine::kSavesSupportMetaInfo);
+	_thumbnailSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportThumbnail);
+	_saveDateSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportCreationDate);
+	_playTimeSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportPlayTime);
 	_resultString.clear();
 	reflowLayout();
 	updateSaveList();
 
-	int ret = Dialog::runModal();
-
-	// Revert to the old active domain
-	ConfMan.setActiveDomain(oldDomain);
-
-	return ret;
+	return Dialog::runModal();
 }
 
 void SaveLoadChooserImpl::open() {
@@ -201,7 +181,7 @@ void SaveLoadChooserImpl::handleCommand(CommandSender *sender, uint32 cmd, uint3
 			MessageDialog alert(_("Do you really want to delete this savegame?"),
 								_("Delete"), _("Cancel"));
 			if (alert.runModal() == GUI::kMessageOK) {
-				(*_plugin)->removeSaveState(_target.c_str(), _saveList[selItem].getSaveSlot());
+				_metaEngine->removeSaveState(_target.c_str(), _saveList[selItem].getSaveSlot());
 
 				setResult(-1);
 				_list->setSelected(-1);
@@ -288,7 +268,7 @@ void SaveLoadChooserImpl::updateSelection(bool redraw) {
 	_playtime->setLabel(_("No playtime saved"));
 
 	if (selItem >= 0 && _metaInfoSupport) {
-		SaveStateDescriptor desc = (*_plugin)->querySaveMetaInfos(_target.c_str(), _saveList[selItem].getSaveSlot());
+		SaveStateDescriptor desc = _metaEngine->querySaveMetaInfos(_target.c_str(), _saveList[selItem].getSaveSlot());
 
 		isDeletable = desc.getDeletableFlag() && _delSupport;
 		isWriteProtected = desc.getWriteProtectedFlag();
@@ -359,7 +339,7 @@ void SaveLoadChooserImpl::updateSelection(bool redraw) {
 }
 
 void SaveLoadChooserImpl::close() {
-	_plugin = 0;
+	_metaEngine = 0;
 	_target.clear();
 	_saveList.clear();
 	_list->setList(StringArray());
@@ -368,7 +348,7 @@ void SaveLoadChooserImpl::close() {
 }
 
 void SaveLoadChooserImpl::updateSaveList() {
-	_saveList = (*_plugin)->listSaves(_target.c_str());
+	_saveList = _metaEngine->listSaves(_target.c_str());
 
 	int curSlot = 0;
 	int saveSlot = 0;
@@ -410,7 +390,7 @@ void SaveLoadChooserImpl::updateSaveList() {
 
 	// Fill the rest of the save slots with empty saves
 
-	int maximumSaveSlots = (*_plugin)->getMaximumSaveSlot();
+	int maximumSaveSlots = _metaEngine->getMaximumSaveSlot();
 
 #ifdef __DS__
 	// Low memory on the DS means too many save slots are impractical, so limit
@@ -455,17 +435,32 @@ Common::String SaveLoadChooser::createDefaultSaveDescription(const int slot) con
 }
 
 int SaveLoadChooser::runModalWithCurrentTarget() {
-	if (_impl)
-		return _impl->runModalWithCurrentTarget();
-	else
+	if (!_impl)
 		return -1;
+
+	const Common::String gameId = ConfMan.get("gameid");
+
+	const EnginePlugin *plugin = 0;
+	EngineMan.findGame(gameId, &plugin);
+
+	return runModalWithPluginAndTarget(plugin, ConfMan.getActiveDomainName());
 }
 
 int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target) {
-	if (_impl)
-		return _impl->runModalWithPluginAndTarget(plugin, target);
-	else
+	if (!_impl)
 		return -1;
+
+	// Set up the game domain as newly active domain, so
+	// target specific savepath will be checked
+	String oldDomain = ConfMan.getActiveDomainName();
+	ConfMan.setActiveDomain(target);
+
+	int ret = _impl->run(target, &(**plugin));
+
+	// Revert to the old active domain
+	ConfMan.setActiveDomain(oldDomain);
+
+	return ret;
 }
 
 Common::String SaveLoadChooser::getResultString() const {


Commit: 62c66cdb9c11c029e48706932c2513eaea1dd82b
    https://github.com/scummvm/scummvm/commit/62c66cdb9c11c029e48706932c2513eaea1dd82b
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-13T18:17:33-07:00

Commit Message:
GUI: Fix include guard of saveload.h.

Changed paths:
    gui/saveload.h



diff --git a/gui/saveload.h b/gui/saveload.h
index 9cd3c46..a3834ff 100644
--- a/gui/saveload.h
+++ b/gui/saveload.h
@@ -19,8 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
-#ifndef GUI_SAVELOAD_DIALOG_H
-#define GUI_SAVELOAD_DIALOG_H
+#ifndef GUI_SAVELOAD_H
+#define GUI_SAVELOAD_H
 
 #include "gui/dialog.h"
 #include "engines/metaengine.h"


Commit: 1aa5200bb824119651e19a1809d9c07292da57fe
    https://github.com/scummvm/scummvm/commit/1aa5200bb824119651e19a1809d9c07292da57fe
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-15T14:03:02-07:00

Commit Message:
GUI: Create an interface for save/load dialogs.

Changed paths:
  A gui/saveload-dialog.cpp
  A gui/saveload-dialog.h
    gui/module.mk
    gui/saveload.cpp
    gui/saveload.h



diff --git a/gui/module.mk b/gui/module.mk
index d272bb0..a435d8c 100644
--- a/gui/module.mk
+++ b/gui/module.mk
@@ -15,6 +15,7 @@ MODULE_OBJS := \
 	options.o \
 	predictivedialog.o \
 	saveload.o \
+	saveload-dialog.o \
 	themebrowser.o \
 	ThemeEngine.o \
 	ThemeEval.o \
diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
new file mode 100644
index 0000000..b8e64c4
--- /dev/null
+++ b/gui/saveload-dialog.cpp
@@ -0,0 +1,380 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "gui/saveload-dialog.h"
+#include "common/translation.h"
+
+#include "gui/message.h"
+#include "gui/gui-manager.h"
+#include "gui/ThemeEval.h"
+
+#include "graphics/scaler.h"
+
+namespace GUI {
+
+SaveLoadChooserDialog::SaveLoadChooserDialog(const Common::String &dialogName)
+	: Dialog(dialogName), _metaEngine(0), _delSupport(false), _metaInfoSupport(false),
+	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false) {
+}
+
+SaveLoadChooserDialog::SaveLoadChooserDialog(int x, int y, int w, int h)
+	: Dialog(x, y, w, h), _metaEngine(0), _delSupport(false), _metaInfoSupport(false),
+	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false) {
+}
+
+void SaveLoadChooserDialog::open() {
+	Dialog::open();
+
+	// So that quitting ScummVM will not cause the dialog result to say a
+	// savegame was selected.
+	setResult(-1);
+}
+
+int SaveLoadChooserDialog::run(const Common::String &target, const MetaEngine *metaEngine) {
+	_metaEngine = metaEngine;
+	_target = target;
+	_delSupport = _metaEngine->hasFeature(MetaEngine::kSupportsDeleteSave);
+	_metaInfoSupport = _metaEngine->hasFeature(MetaEngine::kSavesSupportMetaInfo);
+	_thumbnailSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportThumbnail);
+	_saveDateSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportCreationDate);
+	_playTimeSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportPlayTime);
+
+	return runIntern();
+}
+
+// SaveLoadChooserSimple implementation
+
+enum {
+	kChooseCmd = 'CHOS',
+	kDelCmd = 'DEL '
+};
+
+SaveLoadChooserSimple::SaveLoadChooserSimple(const String &title, const String &buttonLabel, bool saveMode)
+	: SaveLoadChooserDialog("SaveLoadChooser"), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0)  {
+	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
+
+	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
+
+	// Add choice list
+	_list = new GUI::ListWidget(this, "SaveLoadChooser.List");
+	_list->setNumberingMode(GUI::kListNumberingZero);
+	_list->setEditable(saveMode);
+
+	_gfxWidget = new GUI::GraphicsWidget(this, 0, 0, 10, 10);
+
+	_date = new StaticTextWidget(this, 0, 0, 10, 10, _("No date saved"), Graphics::kTextAlignCenter);
+	_time = new StaticTextWidget(this, 0, 0, 10, 10, _("No time saved"), Graphics::kTextAlignCenter);
+	_playtime = new StaticTextWidget(this, 0, 0, 10, 10, _("No playtime saved"), Graphics::kTextAlignCenter);
+
+	// Buttons
+	new GUI::ButtonWidget(this, "SaveLoadChooser.Cancel", _("Cancel"), 0, kCloseCmd);
+	_chooseButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Choose", buttonLabel, 0, kChooseCmd);
+	_chooseButton->setEnabled(false);
+
+	_deleteButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Delete", _("Delete"), 0, kDelCmd);
+	_deleteButton->setEnabled(false);
+
+	_delSupport = _metaInfoSupport = _thumbnailSupport = false;
+
+	_container = new GUI::ContainerWidget(this, 0, 0, 10, 10);
+//	_container->setHints(GUI::THEME_HINT_USE_SHADOW);
+}
+
+int SaveLoadChooserSimple::runIntern() {
+	if (_gfxWidget)
+		_gfxWidget->setGfx(0);
+
+	_resultString.clear();
+	reflowLayout();
+	updateSaveList();
+
+	return Dialog::runModal();
+}
+
+const Common::String &SaveLoadChooserSimple::getResultString() const {
+	int selItem = _list->getSelected();
+	return (selItem >= 0) ? _list->getSelectedString() : _resultString;
+}
+
+void SaveLoadChooserSimple::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+	int selItem = _list->getSelected();
+
+	switch (cmd) {
+	case GUI::kListItemActivatedCmd:
+	case GUI::kListItemDoubleClickedCmd:
+		if (selItem >= 0 && _chooseButton->isEnabled()) {
+			if (_list->isEditable() || !_list->getSelectedString().empty()) {
+				_list->endEditMode();
+				if (!_saveList.empty()) {
+					setResult(_saveList[selItem].getSaveSlot());
+					_resultString = _list->getSelectedString();
+				}
+				close();
+			}
+		}
+		break;
+	case kChooseCmd:
+		_list->endEditMode();
+		if (!_saveList.empty()) {
+			setResult(_saveList[selItem].getSaveSlot());
+			_resultString = _list->getSelectedString();
+		}
+		close();
+		break;
+	case GUI::kListSelectionChangedCmd:
+		updateSelection(true);
+		break;
+	case kDelCmd:
+		if (selItem >= 0 && _delSupport) {
+			MessageDialog alert(_("Do you really want to delete this savegame?"),
+								_("Delete"), _("Cancel"));
+			if (alert.runModal() == GUI::kMessageOK) {
+				_metaEngine->removeSaveState(_target.c_str(), _saveList[selItem].getSaveSlot());
+
+				setResult(-1);
+				_list->setSelected(-1);
+
+				updateSaveList();
+				updateSelection(true);
+			}
+		}
+		break;
+	case kCloseCmd:
+		setResult(-1);
+	default:
+		SaveLoadChooserDialog::handleCommand(sender, cmd, data);
+	}
+}
+
+void SaveLoadChooserSimple::reflowLayout() {
+	if (g_gui.xmlEval()->getVar("Globals.SaveLoadChooser.ExtInfo.Visible") == 1 && _thumbnailSupport) {
+		int16 x, y;
+		uint16 w, h;
+
+		if (!g_gui.xmlEval()->getWidgetData("SaveLoadChooser.Thumbnail", x, y, w, h))
+			error("Error when loading position data for Save/Load Thumbnails");
+
+		int thumbW = kThumbnailWidth;
+		int thumbH = kThumbnailHeight2;
+		int thumbX = x + (w >> 1) - (thumbW >> 1);
+		int thumbY = y + kLineHeight;
+
+		int textLines = 0;
+		if (!_saveDateSupport)
+			textLines++;
+		if (!_playTimeSupport)
+			textLines++;
+
+		_container->resize(x, y, w, h - (kLineHeight * textLines));
+		_gfxWidget->resize(thumbX, thumbY, thumbW, thumbH);
+
+		int height = thumbY + thumbH + kLineHeight;
+
+		if (_saveDateSupport) {
+			_date->resize(thumbX, height, kThumbnailWidth, kLineHeight);
+			height += kLineHeight;
+			_time->resize(thumbX, height, kThumbnailWidth, kLineHeight);
+			height += kLineHeight;
+		}
+
+		if (_playTimeSupport)
+			_playtime->resize(thumbX, height, kThumbnailWidth, kLineHeight);
+
+		_container->setVisible(true);
+		_gfxWidget->setVisible(true);
+
+		_date->setVisible(_saveDateSupport);
+		_time->setVisible(_saveDateSupport);
+
+		_playtime->setVisible(_playTimeSupport);
+
+		_fillR = 0;
+		_fillG = 0;
+		_fillB = 0;
+		updateSelection(false);
+	} else {
+		_container->setVisible(false);
+		_gfxWidget->setVisible(false);
+		_date->setVisible(false);
+		_time->setVisible(false);
+		_playtime->setVisible(false);
+	}
+
+	SaveLoadChooserDialog::reflowLayout();
+}
+
+void SaveLoadChooserSimple::updateSelection(bool redraw) {
+	int selItem = _list->getSelected();
+
+	bool isDeletable = _delSupport;
+	bool isWriteProtected = false;
+	bool startEditMode = _list->isEditable();
+
+	_gfxWidget->setGfx(-1, -1, _fillR, _fillG, _fillB);
+	_date->setLabel(_("No date saved"));
+	_time->setLabel(_("No time saved"));
+	_playtime->setLabel(_("No playtime saved"));
+
+	if (selItem >= 0 && _metaInfoSupport) {
+		SaveStateDescriptor desc = _metaEngine->querySaveMetaInfos(_target.c_str(), _saveList[selItem].getSaveSlot());
+
+		isDeletable = desc.getDeletableFlag() && _delSupport;
+		isWriteProtected = desc.getWriteProtectedFlag();
+
+		// Don't allow the user to change the description of write protected games
+		if (isWriteProtected)
+			startEditMode = false;
+
+		if (_thumbnailSupport) {
+			const Graphics::Surface *thumb = desc.getThumbnail();
+			if (thumb) {
+				_gfxWidget->setGfx(thumb);
+				_gfxWidget->useAlpha(256);
+			}
+		}
+
+		if (_saveDateSupport) {
+			const Common::String &saveDate = desc.getSaveDate();
+			if (!saveDate.empty())
+				_date->setLabel(_("Date: ") + saveDate);
+
+			const Common::String &saveTime = desc.getSaveTime();
+			if (!saveTime.empty())
+				_time->setLabel(_("Time: ") + saveTime);
+		}
+
+		if (_playTimeSupport) {
+			const Common::String &playTime = desc.getPlayTime();
+			if (!playTime.empty())
+				_playtime->setLabel(_("Playtime: ") + playTime);
+		}
+	}
+
+
+	if (_list->isEditable()) {
+		// Disable the save button if nothing is selected, or if the selected
+		// game is write protected
+		_chooseButton->setEnabled(selItem >= 0 && !isWriteProtected);
+
+		if (startEditMode) {
+			_list->startEditMode();
+
+			if (_chooseButton->isEnabled() && _list->getSelectedString() == _("Untitled savestate") &&
+					_list->getSelectionColor() == ThemeEngine::kFontColorAlternate) {
+				_list->setEditString("");
+				_list->setEditColor(ThemeEngine::kFontColorNormal);
+			}
+		}
+	} else {
+		// Disable the load button if nothing is selected, or if an empty
+		// list item is selected.
+		_chooseButton->setEnabled(selItem >= 0 && !_list->getSelectedString().empty());
+	}
+
+	// Delete will always be disabled if the engine doesn't support it.
+	_deleteButton->setEnabled(isDeletable && (selItem >= 0) && (!_list->getSelectedString().empty()));
+
+	if (redraw) {
+		_gfxWidget->draw();
+		_date->draw();
+		_time->draw();
+		_playtime->draw();
+		_chooseButton->draw();
+		_deleteButton->draw();
+
+		draw();
+	}
+}
+
+void SaveLoadChooserSimple::close() {
+	_metaEngine = 0;
+	_target.clear();
+	_saveList.clear();
+	_list->setList(StringArray());
+
+	SaveLoadChooserDialog::close();
+}
+
+void SaveLoadChooserSimple::updateSaveList() {
+	_saveList = _metaEngine->listSaves(_target.c_str());
+
+	int curSlot = 0;
+	int saveSlot = 0;
+	StringArray saveNames;
+	ListWidget::ColorList colors;
+	for (SaveStateList::const_iterator x = _saveList.begin(); x != _saveList.end(); ++x) {
+		// Handle gaps in the list of save games
+		saveSlot = x->getSaveSlot();
+		if (curSlot < saveSlot) {
+			while (curSlot < saveSlot) {
+				SaveStateDescriptor dummySave(curSlot, "");
+				_saveList.insert_at(curSlot, dummySave);
+				saveNames.push_back(dummySave.getDescription());
+				colors.push_back(ThemeEngine::kFontColorNormal);
+				curSlot++;
+			}
+
+			// Sync the save list iterator
+			for (x = _saveList.begin(); x != _saveList.end(); ++x) {
+				if (x->getSaveSlot() == saveSlot)
+					break;
+			}
+		}
+
+		// Show "Untitled savestate" for empty/whitespace savegame descriptions
+		Common::String description = x->getDescription();
+		Common::String trimmedDescription = description;
+		trimmedDescription.trim();
+		if (trimmedDescription.empty()) {
+			description = _("Untitled savestate");
+			colors.push_back(ThemeEngine::kFontColorAlternate);
+		} else {
+			colors.push_back(ThemeEngine::kFontColorNormal);
+		}
+
+		saveNames.push_back(description);
+		curSlot++;
+	}
+
+	// Fill the rest of the save slots with empty saves
+
+	int maximumSaveSlots = _metaEngine->getMaximumSaveSlot();
+
+#ifdef __DS__
+	// Low memory on the DS means too many save slots are impractical, so limit
+	// the maximum here.
+	if (maximumSaveSlots > 99) {
+		maximumSaveSlots = 99;
+	}
+#endif
+
+	Common::String emptyDesc;
+	for (int i = curSlot; i <= maximumSaveSlots; i++) {
+		saveNames.push_back(emptyDesc);
+		SaveStateDescriptor dummySave(i, "");
+		_saveList.push_back(dummySave);
+		colors.push_back(ThemeEngine::kFontColorNormal);
+	}
+
+	_list->setList(saveNames, &colors);
+}
+
+} // End of namespace GUI
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
new file mode 100644
index 0000000..7a78e17
--- /dev/null
+++ b/gui/saveload-dialog.h
@@ -0,0 +1,90 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef GUI_SAVELOAD_DIALOG_H
+#define GUI_SAVELOAD_DIALOG_H
+
+#include "gui/dialog.h"
+#include "gui/widgets/list.h"
+
+#include "engines/metaengine.h"
+
+namespace GUI {
+
+class SaveLoadChooserDialog : protected Dialog {
+public:
+	SaveLoadChooserDialog(const Common::String &dialogName);
+	SaveLoadChooserDialog(int x, int y, int w, int h);
+
+	virtual void open();
+
+	int run(const Common::String &target, const MetaEngine *metaEngine);
+	virtual const Common::String &getResultString() const = 0;
+
+protected:
+	virtual int runIntern() = 0;
+
+	const MetaEngine		*_metaEngine;
+	bool					_delSupport;
+	bool					_metaInfoSupport;
+	bool					_thumbnailSupport;
+	bool					_saveDateSupport;
+	bool					_playTimeSupport;
+	Common::String			_target;
+};
+
+class SaveLoadChooserSimple : public SaveLoadChooserDialog {
+	typedef Common::String String;
+	typedef Common::Array<Common::String> StringArray;
+public:
+	SaveLoadChooserSimple(const String &title, const String &buttonLabel, bool saveMode);
+
+	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
+
+	virtual const Common::String &getResultString() const;
+
+	virtual void reflowLayout();
+
+	virtual void close();
+private:
+	virtual int runIntern();
+
+	GUI::ListWidget		*_list;
+	GUI::ButtonWidget	*_chooseButton;
+	GUI::ButtonWidget	*_deleteButton;
+	GUI::GraphicsWidget	*_gfxWidget;
+	GUI::ContainerWidget	*_container;
+	GUI::StaticTextWidget	*_date;
+	GUI::StaticTextWidget	*_time;
+	GUI::StaticTextWidget	*_playtime;
+
+	SaveStateList			_saveList;
+	String					_resultString;
+
+	uint8 _fillR, _fillG, _fillB;
+
+	void updateSaveList();
+	void updateSelection(bool redraw);
+};
+
+} // End of namespace GUI
+
+#endif
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index e2f9461..e0e6d61 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -20,401 +20,17 @@
  */
 
 #include "common/config-manager.h"
-#include "common/translation.h"
 #include "common/system.h"
 
-#include "gui/widgets/list.h"
-#include "gui/message.h"
 #include "gui/saveload.h"
-#include "gui/ThemeEval.h"
-#include "gui/gui-manager.h"
-
-#include "graphics/scaler.h"
+#include "gui/saveload-dialog.h"
 
 #include "engines/metaengine.h"
 
 namespace GUI {
 
-enum {
-	kChooseCmd = 'CHOS',
-	kDelCmd = 'DEL '
-
-};
-
-class SaveLoadChooserImpl : GUI::Dialog {
-	typedef Common::String String;
-	typedef Common::Array<Common::String> StringArray;
-public:
-	SaveLoadChooserImpl(const String &title, const String &buttonLabel, bool saveMode);
-
-	int run(const String &target, const MetaEngine *metaEngine);
-
-	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
-
-	const Common::String &getResultString() const;
-
-	virtual void open();
-
-	virtual void reflowLayout();
-
-	virtual void close();
-private:
-	GUI::ListWidget		*_list;
-	GUI::ButtonWidget	*_chooseButton;
-	GUI::ButtonWidget	*_deleteButton;
-	GUI::GraphicsWidget	*_gfxWidget;
-	GUI::ContainerWidget	*_container;
-	GUI::StaticTextWidget	*_date;
-	GUI::StaticTextWidget	*_time;
-	GUI::StaticTextWidget	*_playtime;
-
-	const MetaEngine		*_metaEngine;
-	bool					_delSupport;
-	bool					_metaInfoSupport;
-	bool					_thumbnailSupport;
-	bool					_saveDateSupport;
-	bool					_playTimeSupport;
-	String					_target;
-	SaveStateList			_saveList;
-	String					_resultString;
-
-	uint8 _fillR, _fillG, _fillB;
-
-	void updateSaveList();
-	void updateSelection(bool redraw);
-};
-
-SaveLoadChooserImpl::SaveLoadChooserImpl(const String &title, const String &buttonLabel, bool saveMode)
-	: Dialog("SaveLoadChooser"), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0)  {
-	_delSupport = _metaInfoSupport = _thumbnailSupport = _saveDateSupport = _playTimeSupport = false;
-
-	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
-
-	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
-
-	// Add choice list
-	_list = new GUI::ListWidget(this, "SaveLoadChooser.List");
-	_list->setNumberingMode(GUI::kListNumberingZero);
-	_list->setEditable(saveMode);
-
-	_gfxWidget = new GUI::GraphicsWidget(this, 0, 0, 10, 10);
-
-	_date = new StaticTextWidget(this, 0, 0, 10, 10, _("No date saved"), Graphics::kTextAlignCenter);
-	_time = new StaticTextWidget(this, 0, 0, 10, 10, _("No time saved"), Graphics::kTextAlignCenter);
-	_playtime = new StaticTextWidget(this, 0, 0, 10, 10, _("No playtime saved"), Graphics::kTextAlignCenter);
-
-	// Buttons
-	new GUI::ButtonWidget(this, "SaveLoadChooser.Cancel", _("Cancel"), 0, kCloseCmd);
-	_chooseButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Choose", buttonLabel, 0, kChooseCmd);
-	_chooseButton->setEnabled(false);
-
-	_deleteButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Delete", _("Delete"), 0, kDelCmd);
-	_deleteButton->setEnabled(false);
-
-	_delSupport = _metaInfoSupport = _thumbnailSupport = false;
-
-	_container = new GUI::ContainerWidget(this, 0, 0, 10, 10);
-//	_container->setHints(GUI::THEME_HINT_USE_SHADOW);
-}
-
-int SaveLoadChooserImpl::run(const String &target, const MetaEngine *metaEngine) {
-	if (_gfxWidget)
-		_gfxWidget->setGfx(0);
-
-	_metaEngine = metaEngine;
-	_target = target;
-	_delSupport = _metaEngine->hasFeature(MetaEngine::kSupportsDeleteSave);
-	_metaInfoSupport = _metaEngine->hasFeature(MetaEngine::kSavesSupportMetaInfo);
-	_thumbnailSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportThumbnail);
-	_saveDateSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportCreationDate);
-	_playTimeSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportPlayTime);
-	_resultString.clear();
-	reflowLayout();
-	updateSaveList();
-
-	return Dialog::runModal();
-}
-
-void SaveLoadChooserImpl::open() {
-	Dialog::open();
-
-	// So that quitting ScummVM will not cause the dialog result to say a
-	// savegame was selected.
-	setResult(-1);
-}
-
-const Common::String &SaveLoadChooserImpl::getResultString() const {
-	int selItem = _list->getSelected();
-	return (selItem >= 0) ? _list->getSelectedString() : _resultString;
-}
-
-void SaveLoadChooserImpl::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
-	int selItem = _list->getSelected();
-
-	switch (cmd) {
-	case GUI::kListItemActivatedCmd:
-	case GUI::kListItemDoubleClickedCmd:
-		if (selItem >= 0 && _chooseButton->isEnabled()) {
-			if (_list->isEditable() || !_list->getSelectedString().empty()) {
-				_list->endEditMode();
-				if (!_saveList.empty()) {
-					setResult(_saveList[selItem].getSaveSlot());
-					_resultString = _list->getSelectedString();
-				}
-				close();
-			}
-		}
-		break;
-	case kChooseCmd:
-		_list->endEditMode();
-		if (!_saveList.empty()) {
-			setResult(_saveList[selItem].getSaveSlot());
-			_resultString = _list->getSelectedString();
-		}
-		close();
-		break;
-	case GUI::kListSelectionChangedCmd:
-		updateSelection(true);
-		break;
-	case kDelCmd:
-		if (selItem >= 0 && _delSupport) {
-			MessageDialog alert(_("Do you really want to delete this savegame?"),
-								_("Delete"), _("Cancel"));
-			if (alert.runModal() == GUI::kMessageOK) {
-				_metaEngine->removeSaveState(_target.c_str(), _saveList[selItem].getSaveSlot());
-
-				setResult(-1);
-				_list->setSelected(-1);
-
-				updateSaveList();
-				updateSelection(true);
-			}
-		}
-		break;
-	case kCloseCmd:
-		setResult(-1);
-	default:
-		Dialog::handleCommand(sender, cmd, data);
-	}
-}
-
-void SaveLoadChooserImpl::reflowLayout() {
-	if (g_gui.xmlEval()->getVar("Globals.SaveLoadChooser.ExtInfo.Visible") == 1 && _thumbnailSupport) {
-		int16 x, y;
-		uint16 w, h;
-
-		if (!g_gui.xmlEval()->getWidgetData("SaveLoadChooser.Thumbnail", x, y, w, h))
-			error("Error when loading position data for Save/Load Thumbnails");
-
-		int thumbW = kThumbnailWidth;
-		int thumbH = kThumbnailHeight2;
-		int thumbX = x + (w >> 1) - (thumbW >> 1);
-		int thumbY = y + kLineHeight;
-
-		int textLines = 0;
-		if (!_saveDateSupport)
-			textLines++;
-		if (!_playTimeSupport)
-			textLines++;
-
-		_container->resize(x, y, w, h - (kLineHeight * textLines));
-		_gfxWidget->resize(thumbX, thumbY, thumbW, thumbH);
-
-		int height = thumbY + thumbH + kLineHeight;
-
-		if (_saveDateSupport) {
-			_date->resize(thumbX, height, kThumbnailWidth, kLineHeight);
-			height += kLineHeight;
-			_time->resize(thumbX, height, kThumbnailWidth, kLineHeight);
-			height += kLineHeight;
-		}
-
-		if (_playTimeSupport)
-			_playtime->resize(thumbX, height, kThumbnailWidth, kLineHeight);
-
-		_container->setVisible(true);
-		_gfxWidget->setVisible(true);
-
-		_date->setVisible(_saveDateSupport);
-		_time->setVisible(_saveDateSupport);
-
-		_playtime->setVisible(_playTimeSupport);
-
-		_fillR = 0;
-		_fillG = 0;
-		_fillB = 0;
-		updateSelection(false);
-	} else {
-		_container->setVisible(false);
-		_gfxWidget->setVisible(false);
-		_date->setVisible(false);
-		_time->setVisible(false);
-		_playtime->setVisible(false);
-	}
-
-	Dialog::reflowLayout();
-}
-
-void SaveLoadChooserImpl::updateSelection(bool redraw) {
-	int selItem = _list->getSelected();
-
-	bool isDeletable = _delSupport;
-	bool isWriteProtected = false;
-	bool startEditMode = _list->isEditable();
-
-	_gfxWidget->setGfx(-1, -1, _fillR, _fillG, _fillB);
-	_date->setLabel(_("No date saved"));
-	_time->setLabel(_("No time saved"));
-	_playtime->setLabel(_("No playtime saved"));
-
-	if (selItem >= 0 && _metaInfoSupport) {
-		SaveStateDescriptor desc = _metaEngine->querySaveMetaInfos(_target.c_str(), _saveList[selItem].getSaveSlot());
-
-		isDeletable = desc.getDeletableFlag() && _delSupport;
-		isWriteProtected = desc.getWriteProtectedFlag();
-
-		// Don't allow the user to change the description of write protected games
-		if (isWriteProtected)
-			startEditMode = false;
-
-		if (_thumbnailSupport) {
-			const Graphics::Surface *thumb = desc.getThumbnail();
-			if (thumb) {
-				_gfxWidget->setGfx(thumb);
-				_gfxWidget->useAlpha(256);
-			}
-		}
-
-		if (_saveDateSupport) {
-			const Common::String &saveDate = desc.getSaveDate();
-			if (!saveDate.empty())
-				_date->setLabel(_("Date: ") + saveDate);
-
-			const Common::String &saveTime = desc.getSaveTime();
-			if (!saveTime.empty())
-				_time->setLabel(_("Time: ") + saveTime);
-		}
-
-		if (_playTimeSupport) {
-			const Common::String &playTime = desc.getPlayTime();
-			if (!playTime.empty())
-				_playtime->setLabel(_("Playtime: ") + playTime);
-		}
-	}
-
-
-	if (_list->isEditable()) {
-		// Disable the save button if nothing is selected, or if the selected
-		// game is write protected
-		_chooseButton->setEnabled(selItem >= 0 && !isWriteProtected);
-
-		if (startEditMode) {
-			_list->startEditMode();
-
-			if (_chooseButton->isEnabled() && _list->getSelectedString() == _("Untitled savestate") &&
-					_list->getSelectionColor() == ThemeEngine::kFontColorAlternate) {
-				_list->setEditString("");
-				_list->setEditColor(ThemeEngine::kFontColorNormal);
-			}
-		}
-	} else {
-		// Disable the load button if nothing is selected, or if an empty
-		// list item is selected.
-		_chooseButton->setEnabled(selItem >= 0 && !_list->getSelectedString().empty());
-	}
-
-	// Delete will always be disabled if the engine doesn't support it.
-	_deleteButton->setEnabled(isDeletable && (selItem >= 0) && (!_list->getSelectedString().empty()));
-
-	if (redraw) {
-		_gfxWidget->draw();
-		_date->draw();
-		_time->draw();
-		_playtime->draw();
-		_chooseButton->draw();
-		_deleteButton->draw();
-
-		draw();
-	}
-}
-
-void SaveLoadChooserImpl::close() {
-	_metaEngine = 0;
-	_target.clear();
-	_saveList.clear();
-	_list->setList(StringArray());
-
-	Dialog::close();
-}
-
-void SaveLoadChooserImpl::updateSaveList() {
-	_saveList = _metaEngine->listSaves(_target.c_str());
-
-	int curSlot = 0;
-	int saveSlot = 0;
-	StringArray saveNames;
-	ListWidget::ColorList colors;
-	for (SaveStateList::const_iterator x = _saveList.begin(); x != _saveList.end(); ++x) {
-		// Handle gaps in the list of save games
-		saveSlot = x->getSaveSlot();
-		if (curSlot < saveSlot) {
-			while (curSlot < saveSlot) {
-				SaveStateDescriptor dummySave(curSlot, "");
-				_saveList.insert_at(curSlot, dummySave);
-				saveNames.push_back(dummySave.getDescription());
-				colors.push_back(ThemeEngine::kFontColorNormal);
-				curSlot++;
-			}
-
-			// Sync the save list iterator
-			for (x = _saveList.begin(); x != _saveList.end(); ++x) {
-				if (x->getSaveSlot() == saveSlot)
-					break;
-			}
-		}
-
-		// Show "Untitled savestate" for empty/whitespace savegame descriptions
-		Common::String description = x->getDescription();
-		Common::String trimmedDescription = description;
-		trimmedDescription.trim();
-		if (trimmedDescription.empty()) {
-			description = _("Untitled savestate");
-			colors.push_back(ThemeEngine::kFontColorAlternate);
-		} else {
-			colors.push_back(ThemeEngine::kFontColorNormal);
-		}
-
-		saveNames.push_back(description);
-		curSlot++;
-	}
-
-	// Fill the rest of the save slots with empty saves
-
-	int maximumSaveSlots = _metaEngine->getMaximumSaveSlot();
-
-#ifdef __DS__
-	// Low memory on the DS means too many save slots are impractical, so limit
-	// the maximum here.
-	if (maximumSaveSlots > 99) {
-		maximumSaveSlots = 99;
-	}
-#endif
-
-	Common::String emptyDesc;
-	for (int i = curSlot; i <= maximumSaveSlots; i++) {
-		saveNames.push_back(emptyDesc);
-		SaveStateDescriptor dummySave(i, "");
-		_saveList.push_back(dummySave);
-		colors.push_back(ThemeEngine::kFontColorNormal);
-	}
-
-	_list->setList(saveNames, &colors);
-}
-
-// --- SaveLoadChooser implementation ---
-
 SaveLoadChooser::SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode) {
-	_impl = new SaveLoadChooserImpl(title, buttonLabel, saveMode);
+	_impl = new SaveLoadChooserSimple(title, buttonLabel, saveMode);
 }
 
 SaveLoadChooser::~SaveLoadChooser() {
diff --git a/gui/saveload.h b/gui/saveload.h
index a3834ff..ac61291 100644
--- a/gui/saveload.h
+++ b/gui/saveload.h
@@ -27,12 +27,12 @@
 
 namespace GUI {
 
-class SaveLoadChooserImpl;
+class SaveLoadChooserDialog;
 
 class SaveLoadChooser {
 	typedef Common::String String;
 protected:
-	SaveLoadChooserImpl *_impl;
+	SaveLoadChooserDialog *_impl;
 public:
 	SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode);
 	~SaveLoadChooser();


Commit: b4882ce6bdb8f3a0df0085fa43ed3bbaf5cb47e1
    https://github.com/scummvm/scummvm/commit/b4882ce6bdb8f3a0df0085fa43ed3bbaf5cb47e1
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-15T14:03:18-07:00

Commit Message:
GUI: Implement a new load chooser, which displays a list of thumbnails.

Changed paths:
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index b8e64c4..6740fca 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -377,4 +377,196 @@ void SaveLoadChooserSimple::updateSaveList() {
 	_list->setList(saveNames, &colors);
 }
 
+// LoadChooserThumbnailed implementation
+
+enum {
+	kNextCmd = 'NEXT',
+	kPrevCmd = 'PREV'
+};
+
+LoadChooserThumbnailed::LoadChooserThumbnailed(const Common::String &title)
+	: SaveLoadChooserDialog("SaveLoadChooser"), _lines(0), _columns(0), _entriesPerPage(0),
+	_curPage(0), _buttons() {
+	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
+
+	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
+
+	// Buttons
+	new GUI::ButtonWidget(this, "SaveLoadChooser.Delete", _("Cancel"), 0, kCloseCmd);
+	_nextButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Choose", _("Next"), 0, kNextCmd);
+	_nextButton->setEnabled(false);
+
+	_prevButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Cancel", _("Prev"), 0, kPrevCmd);
+	_prevButton->setEnabled(false);
+}
+
+const Common::String &LoadChooserThumbnailed::getResultString() const {
+	// FIXME: This chooser is only for loading, thus the result is never used
+	// anyway. But this is still an ugly hack.
+	return _target;
+}
+
+void LoadChooserThumbnailed::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
+	if (cmd <= _entriesPerPage) {
+		setResult(_saveList[cmd - 1 + _curPage * _entriesPerPage].getSaveSlot());
+		close();
+	}
+
+	switch (cmd) {
+	case kNextCmd:
+		++_curPage;
+		updateSaves();
+		draw();
+		break;
+
+	case kPrevCmd:
+		--_curPage;
+		updateSaves();
+		draw();
+		break;
+
+	case kCloseCmd:
+		setResult(-1);
+	default:
+		SaveLoadChooserDialog::handleCommand(sender, cmd, data);
+	}
+}
+
+void LoadChooserThumbnailed::handleMouseWheel(int x, int y, int direction) {
+	if (direction > 0) {
+		if (_nextButton->isEnabled()) {
+			++_curPage;
+			updateSaves();
+			draw();
+		}
+	} else {
+		if (_prevButton->isEnabled()) {
+			--_curPage;
+			updateSaves();
+			draw();
+		}
+	}
+}
+
+void LoadChooserThumbnailed::open() {
+	SaveLoadChooserDialog::open();
+
+	_curPage = 0;
+	updateSaves();
+}
+
+void LoadChooserThumbnailed::reflowLayout() {
+	SaveLoadChooserDialog::reflowLayout();
+	destroyButtons();
+
+	const uint16 availableWidth = getWidth() - 20;
+	uint16 availableHeight;
+
+	int16 x, y;
+	uint16 w;
+	g_gui.xmlEval()->getWidgetData("SaveLoadChooser.List", x, y, w, availableHeight);
+
+	const int16 buttonWidth = kThumbnailWidth + 6;
+	const int16 buttonHeight = kThumbnailHeight2 + 6;
+
+	const int16 containerFrameWidthAdd = 10;
+	const int16 containerFrameHeightAdd = 0;
+	const int16 containerWidth = buttonWidth + containerFrameWidthAdd;
+	const int16 containerHeight = buttonHeight + kLineHeight + containerFrameHeightAdd;
+
+	const int16 defaultSpacingHorizontal = 4;
+	const int16 defaultSpacingVertical = 4;
+	const int16 slotAreaWidth = containerWidth + defaultSpacingHorizontal;
+	const int16 slotAreaHeight = containerHeight + defaultSpacingHorizontal;
+
+	const uint oldEntriesPerPage = _entriesPerPage;
+	_columns = MAX<uint>(1, availableWidth / slotAreaWidth);
+	_lines = MAX<uint>(1, availableHeight / slotAreaHeight);
+	_entriesPerPage = _columns * _lines;
+	// Recalculate the page number
+	if (!_saveList.empty() && oldEntriesPerPage != 0) {
+		_curPage = (_curPage * oldEntriesPerPage) / _entriesPerPage;
+	}
+
+	const uint addX = _columns > 1 ? (availableWidth % slotAreaWidth) / (_columns - 1) : 0;
+	const uint addY = _lines > 1 ? (availableHeight % slotAreaHeight) / (_lines - 1) : 0;
+
+	_buttons.reserve(_lines * _columns);
+	y += defaultSpacingVertical / 2;
+	for (uint curLine = 0; curLine < _lines; ++curLine, y += slotAreaHeight + addY) {
+		for (uint curColumn = 0, curX = x + defaultSpacingHorizontal / 2; curColumn < _columns; ++curColumn, curX += slotAreaWidth + addX) {
+			ContainerWidget *container = new ContainerWidget(this, curX, y, containerWidth, containerHeight);
+			container->setVisible(false);
+	
+			int dstY = y + containerFrameHeightAdd / 2;
+			int dstX = curX + containerFrameWidthAdd / 2;
+
+			PicButtonWidget *button = new PicButtonWidget(this, dstX, dstY, buttonWidth, buttonHeight, 0, curLine * _columns + curColumn + 1);
+			button->setVisible(false);
+			dstY += buttonHeight;
+
+			StaticTextWidget *description = new StaticTextWidget(this, dstX, dstY, buttonWidth, kLineHeight, Common::String(), Graphics::kTextAlignLeft);
+			description->setVisible(false);
+
+			_buttons.push_back(SlotButton(container, button, description));
+		}
+	}
+
+	if (!_target.empty())
+		updateSaves();
+}
+
+void LoadChooserThumbnailed::close() {
+	SaveLoadChooserDialog::close();
+	hideButtons();
+}
+
+int LoadChooserThumbnailed::runIntern() {
+	return SaveLoadChooserDialog::runModal();
+}
+
+void LoadChooserThumbnailed::destroyButtons() {
+	for (ButtonArray::iterator i = _buttons.begin(), end = _buttons.end(); i != end; ++i) {
+		removeWidget(i->container);
+		removeWidget(i->button);
+		removeWidget(i->description);
+	}
+
+	_buttons.clear();
+}
+
+void LoadChooserThumbnailed::hideButtons() {
+	for (ButtonArray::iterator i = _buttons.begin(), end = _buttons.end(); i != end; ++i) {
+		i->button->setGfx(0);
+		i->setVisible(false);
+	}
+
+}
+
+void LoadChooserThumbnailed::updateSaves() {
+	hideButtons();
+
+	_saveList = _metaEngine->listSaves(_target.c_str());
+
+	for (uint i = _curPage * _entriesPerPage, curNum = 0; i < _saveList.size() && curNum < _entriesPerPage; ++i, ++curNum) {
+		const uint saveSlot = _saveList[i].getSaveSlot();
+
+		SaveStateDescriptor desc = _metaEngine->querySaveMetaInfos(_target.c_str(), saveSlot);
+		SlotButton &curButton = _buttons[curNum];
+		curButton.setVisible(true);
+		curButton.button->setGfx(desc.getThumbnail());
+		curButton.description->setLabel(Common::String::format("%d. %s", saveSlot, desc.getDescription().c_str()));
+	}
+
+	if (_curPage > 0)
+		_prevButton->setEnabled(true);
+	else
+		_prevButton->setEnabled(false);
+
+	if ((_curPage + 1) * _entriesPerPage < _saveList.size())
+		_nextButton->setEnabled(true);
+	else
+		_nextButton->setEnabled(false);
+}
+
 } // End of namespace GUI
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 7a78e17..b80741d 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -85,6 +85,52 @@ private:
 	void updateSelection(bool redraw);
 };
 
+class LoadChooserThumbnailed : public SaveLoadChooserDialog {
+public:
+	LoadChooserThumbnailed(const Common::String &title);
+
+	virtual const Common::String &getResultString() const;
+
+	virtual void open();
+
+	virtual void reflowLayout();
+
+	virtual void close();
+protected:
+	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
+	virtual void handleMouseWheel(int x, int y, int direction);
+private:
+	virtual int runIntern();
+
+	uint _columns, _lines;
+	uint _entriesPerPage;
+	uint _curPage;
+	SaveStateList _saveList;
+
+	GUI::ButtonWidget *_nextButton;
+	GUI::ButtonWidget *_prevButton;
+
+	struct SlotButton {
+		SlotButton() : container(0), button(0), description(0) {}
+		SlotButton(ContainerWidget *c, PicButtonWidget *b, StaticTextWidget *d) : container(c), button(b), description(d) {}
+
+		ContainerWidget  *container;
+		PicButtonWidget  *button;
+		StaticTextWidget *description;
+
+		void setVisible(bool state) {
+			container->setVisible(state);
+			button->setVisible(state);
+			description->setVisible(state);
+		}
+	};
+	typedef Common::Array<SlotButton> ButtonArray;
+	ButtonArray _buttons;
+	void destroyButtons();
+	void hideButtons();
+	void updateSaves();
+};
+
 } // End of namespace GUI
 
 #endif


Commit: 72ea449431d9db61c45160f7c42d546599e84afe
    https://github.com/scummvm/scummvm/commit/72ea449431d9db61c45160f7c42d546599e84afe
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-15T14:03:18-07:00

Commit Message:
GUI: Hook up the new load chooser for > 320x200 and engines which support thumbnails.

Changed paths:
    gui/saveload.cpp
    gui/saveload.h



diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index e0e6d61..becc3f6 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -24,13 +24,14 @@
 
 #include "gui/saveload.h"
 #include "gui/saveload-dialog.h"
+#include "gui/gui-manager.h"
 
 #include "engines/metaengine.h"
 
 namespace GUI {
 
-SaveLoadChooser::SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode) {
-	_impl = new SaveLoadChooserSimple(title, buttonLabel, saveMode);
+SaveLoadChooser::SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode)
+	: _impl(0), _title(title), _buttonLabel(buttonLabel), _saveMode(saveMode) {
 }
 
 SaveLoadChooser::~SaveLoadChooser() {
@@ -38,6 +39,19 @@ SaveLoadChooser::~SaveLoadChooser() {
 	_impl = 0;
 }
 
+void SaveLoadChooser::selectChooser(const MetaEngine &engine) {
+	delete _impl;
+	_impl = 0;
+
+	if (!_saveMode && g_gui.getWidth() > 320 && g_gui.getHeight() > 200
+	    && engine.hasFeature(MetaEngine::kSavesSupportMetaInfo)
+	    && engine.hasFeature(MetaEngine::kSavesSupportThumbnail)) {
+		_impl = new LoadChooserThumbnailed(_title);
+	} else {
+		_impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode);
+	}
+}
+
 Common::String SaveLoadChooser::createDefaultSaveDescription(const int slot) const {
 #if defined(USE_SAVEGAME_TIMESTAMP)
 	TimeDate curTime;
@@ -51,9 +65,6 @@ Common::String SaveLoadChooser::createDefaultSaveDescription(const int slot) con
 }
 
 int SaveLoadChooser::runModalWithCurrentTarget() {
-	if (!_impl)
-		return -1;
-
 	const Common::String gameId = ConfMan.get("gameid");
 
 	const EnginePlugin *plugin = 0;
@@ -63,6 +74,7 @@ int SaveLoadChooser::runModalWithCurrentTarget() {
 }
 
 int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target) {
+	selectChooser(**plugin);
 	if (!_impl)
 		return -1;
 
diff --git a/gui/saveload.h b/gui/saveload.h
index ac61291..26a8cd1 100644
--- a/gui/saveload.h
+++ b/gui/saveload.h
@@ -33,6 +33,12 @@ class SaveLoadChooser {
 	typedef Common::String String;
 protected:
 	SaveLoadChooserDialog *_impl;
+
+	const String _title;
+	const String _buttonLabel;
+	const bool _saveMode;
+
+	void selectChooser(const MetaEngine &engine);
 public:
 	SaveLoadChooser(const String &title, const String &buttonLabel, bool saveMode);
 	~SaveLoadChooser();


Commit: 80ae9d7d34234e6cf9a7464723691d7b2b72cb26
    https://github.com/scummvm/scummvm/commit/80ae9d7d34234e6cf9a7464723691d7b2b72cb26
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-19T18:31:50-07:00

Commit Message:
GUI: Allow tooltips to be changed after widget creation.

Changed paths:
    gui/Tooltip.cpp
    gui/gui-manager.cpp
    gui/widget.h



diff --git a/gui/Tooltip.cpp b/gui/Tooltip.cpp
index 85e5856..88124e7 100644
--- a/gui/Tooltip.cpp
+++ b/gui/Tooltip.cpp
@@ -37,7 +37,7 @@ Tooltip::Tooltip() :
 }
 
 void Tooltip::setup(Dialog *parent, Widget *widget, int x, int y) {
-	assert(widget->getTooltip());
+	assert(widget->hasTooltip());
 
 	_maxWidth = g_gui.xmlEval()->getVar("Globals.Tooltip.MaxWidth", 100);
 	_xdelta = g_gui.xmlEval()->getVar("Globals.Tooltip.XDelta", 0);
diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp
index abd781e..a0ef421 100644
--- a/gui/gui-manager.cpp
+++ b/gui/gui-manager.cpp
@@ -381,7 +381,7 @@ void GuiManager::runLoop() {
 
 		if (tooltipCheck && _lastMousePosition.time + kTooltipDelay < _system->getMillis()) {
 			Widget *wdg = activeDialog->findWidget(_lastMousePosition.x, _lastMousePosition.y);
-			if (wdg && wdg->getTooltip() && !(wdg->getFlags() & WIDGET_PRESSED)) {
+			if (wdg && wdg->hasTooltip() && !(wdg->getFlags() & WIDGET_PRESSED)) {
 				Tooltip *tooltip = new Tooltip();
 				tooltip->setup(activeDialog, wdg, _lastMousePosition.x, _lastMousePosition.y);
 				tooltip->runModal();
diff --git a/gui/widget.h b/gui/widget.h
index 6de5686..d80b2ad 100644
--- a/gui/widget.h
+++ b/gui/widget.h
@@ -88,7 +88,7 @@ protected:
 	uint16		_id;
 	bool		_hasFocus;
 	ThemeEngine::WidgetStateInfo _state;
-	const char	*_tooltip;
+	Common::String _tooltip;
 
 private:
 	uint16		_flags;
@@ -142,7 +142,9 @@ public:
 	uint8 parseHotkey(const Common::String &label);
 	Common::String cleanupHotkey(const Common::String &label);
 
-	const char *getTooltip() const { return _tooltip; }
+	bool hasTooltip() const { return !_tooltip.empty(); }
+	const Common::String &getTooltip() const { return _tooltip; }
+	void setTooltip(const Common::String &tooltip) { _tooltip = tooltip; }
 
 protected:
 	void updateState(int oldFlags, int newFlags);


Commit: d7db655c5b832691fbaa0d0d175de38f43217dc2
    https://github.com/scummvm/scummvm/commit/d7db655c5b832691fbaa0d0d175de38f43217dc2
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-19T18:42:32-07:00

Commit Message:
GUI: Show additional meta data in the thumbnail load chooser via tooltip.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 6740fca..5d9d489 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -556,6 +556,33 @@ void LoadChooserThumbnailed::updateSaves() {
 		curButton.setVisible(true);
 		curButton.button->setGfx(desc.getThumbnail());
 		curButton.description->setLabel(Common::String::format("%d. %s", saveSlot, desc.getDescription().c_str()));
+
+		Common::String tooltip(_("Name: "));
+		tooltip += desc.getDescription();
+
+		if (_saveDateSupport) {
+			const Common::String &saveDate = desc.getSaveDate();
+			if (!saveDate.empty()) {
+				tooltip += "\n";
+				tooltip +=  _("Date: ") + saveDate;
+			}
+
+			const Common::String &saveTime = desc.getSaveTime();
+			if (!saveTime.empty()) {
+				tooltip += "\n";
+				tooltip += _("Time: ") + saveTime;
+			}
+		}
+
+		if (_playTimeSupport) {
+			const Common::String &playTime = desc.getPlayTime();
+			if (!playTime.empty()) {
+				tooltip += "\n";
+				tooltip += _("Playtime: ") + playTime;
+			}
+		}
+
+		curButton.button->setTooltip(tooltip);
 	}
 
 	if (_curPage > 0)


Commit: 0b5b58829cbb76a2da1c4de19dd51e30fc2c5a3d
    https://github.com/scummvm/scummvm/commit/0b5b58829cbb76a2da1c4de19dd51e30fc2c5a3d
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-29T05:57:54-07:00

Commit Message:
GUI: Don't distribute vertical space between buttons in the thumbnail load chooser.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 5d9d489..8537937 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -489,11 +489,11 @@ void LoadChooserThumbnailed::reflowLayout() {
 	}
 
 	const uint addX = _columns > 1 ? (availableWidth % slotAreaWidth) / (_columns - 1) : 0;
-	const uint addY = _lines > 1 ? (availableHeight % slotAreaHeight) / (_lines - 1) : 0;
+	//const uint addY = _lines > 1 ? (availableHeight % slotAreaHeight) / (_lines - 1) : 0;
 
 	_buttons.reserve(_lines * _columns);
 	y += defaultSpacingVertical / 2;
-	for (uint curLine = 0; curLine < _lines; ++curLine, y += slotAreaHeight + addY) {
+	for (uint curLine = 0; curLine < _lines; ++curLine, y += slotAreaHeight/* + addY*/) {
 		for (uint curColumn = 0, curX = x + defaultSpacingHorizontal / 2; curColumn < _columns; ++curColumn, curX += slotAreaWidth + addX) {
 			ContainerWidget *container = new ContainerWidget(this, curX, y, containerWidth, containerHeight);
 			container->setVisible(false);


Commit: 0db0b650e215847005676755363565879c2a7b94
    https://github.com/scummvm/scummvm/commit/0db0b650e215847005676755363565879c2a7b94
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-29T05:58:33-07:00

Commit Message:
GUI: Fix copy&paste error affecting vertical spacing in thumbnail load chooser.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 8537937..1d8a987 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -477,7 +477,7 @@ void LoadChooserThumbnailed::reflowLayout() {
 	const int16 defaultSpacingHorizontal = 4;
 	const int16 defaultSpacingVertical = 4;
 	const int16 slotAreaWidth = containerWidth + defaultSpacingHorizontal;
-	const int16 slotAreaHeight = containerHeight + defaultSpacingHorizontal;
+	const int16 slotAreaHeight = containerHeight + defaultSpacingVertical;
 
 	const uint oldEntriesPerPage = _entriesPerPage;
 	_columns = MAX<uint>(1, availableWidth / slotAreaWidth);


Commit: 7860c5bfc93055f1ebcbf037876cd2abd42818c5
    https://github.com/scummvm/scummvm/commit/7860c5bfc93055f1ebcbf037876cd2abd42818c5
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-29T06:00:56-07:00

Commit Message:
GUI: Only update save list when the dialog opens in thumbnail load chooser.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 1d8a987..25c722e 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -452,6 +452,7 @@ void LoadChooserThumbnailed::open() {
 	SaveLoadChooserDialog::open();
 
 	_curPage = 0;
+	_saveList = _metaEngine->listSaves(_target.c_str());
 	updateSaves();
 }
 
@@ -546,8 +547,6 @@ void LoadChooserThumbnailed::hideButtons() {
 void LoadChooserThumbnailed::updateSaves() {
 	hideButtons();
 
-	_saveList = _metaEngine->listSaves(_target.c_str());
-
 	for (uint i = _curPage * _entriesPerPage, curNum = 0; i < _saveList.size() && curNum < _entriesPerPage; ++i, ++curNum) {
 		const uint saveSlot = _saveList[i].getSaveSlot();
 


Commit: d3e5763276826d3f469fd93077c2f1ef6ef61314
    https://github.com/scummvm/scummvm/commit/d3e5763276826d3f469fd93077c2f1ef6ef61314
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-29T06:52:56-07:00

Commit Message:
GUI: Allow the user to switch between list and thumbnail based load chooser.

Changed paths:
  A gui/themes/scummmodern/grid.bmp
  A gui/themes/scummmodern/list.bmp
    gui/ThemeEngine.cpp
    gui/ThemeEngine.h
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h
    gui/saveload.cpp
    gui/themes/default.inc
    gui/themes/scummclassic.zip
    gui/themes/scummclassic/THEMERC
    gui/themes/scummclassic/classic_layout.stx
    gui/themes/scummclassic/classic_layout_lowres.stx
    gui/themes/scummmodern.zip
    gui/themes/scummmodern/THEMERC
    gui/themes/scummmodern/scummmodern_gfx.stx
    gui/themes/scummmodern/scummmodern_layout.stx
    gui/themes/scummmodern/scummmodern_layout_lowres.stx



diff --git a/gui/ThemeEngine.cpp b/gui/ThemeEngine.cpp
index 1bf7ad3..6f34e8d 100644
--- a/gui/ThemeEngine.cpp
+++ b/gui/ThemeEngine.cpp
@@ -48,6 +48,8 @@ const char * const ThemeEngine::kImageLogoSmall = "logo_small.bmp";
 const char * const ThemeEngine::kImageSearch = "search.bmp";
 const char * const ThemeEngine::kImageEraser = "eraser.bmp";
 const char * const ThemeEngine::kImageDelbtn = "delbtn.bmp";
+const char * const ThemeEngine::kImageList = "list.bmp";
+const char * const ThemeEngine::kImageGrid = "grid.bmp";
 
 struct TextDrawData {
 	const Graphics::Font *_fontPtr;
diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index 21711e2..cd388b7 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -35,7 +35,7 @@
 #include "graphics/pixelformat.h"
 
 
-#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.13"
+#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.14"
 
 class OSystem;
 
@@ -232,6 +232,8 @@ public:
 	static const char *const kImageSearch;    ///< Search tool image used in the launcher
 	static const char *const kImageEraser;     ///< Clear input image used in the launcher
 	static const char *const kImageDelbtn; ///< Delete characters in the predictive dialog
+	static const char *const kImageList;      ///< List image used in save/load chooser selection
+	static const char *const kImageGrid;      ///< Grid image used in save/load chooser selection
 
 	/**
 	 * Graphics mode enumeration.
diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 25c722e..45bf1c4 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -30,14 +30,23 @@
 
 namespace GUI {
 
-SaveLoadChooserDialog::SaveLoadChooserDialog(const Common::String &dialogName)
+enum {
+	kListSwitchCmd = 'LIST',
+	kGridSwitchCmd = 'GRID'
+};
+
+SaveLoadChooserDialog::SaveLoadChooserDialog(const Common::String &dialogName, const bool saveMode)
 	: Dialog(dialogName), _metaEngine(0), _delSupport(false), _metaInfoSupport(false),
-	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false) {
+	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false), _saveMode(saveMode),
+	_listButton(0), _gridButton(0) {
+	addChooserButtons();
 }
 
-SaveLoadChooserDialog::SaveLoadChooserDialog(int x, int y, int w, int h)
+SaveLoadChooserDialog::SaveLoadChooserDialog(int x, int y, int w, int h, const bool saveMode)
 	: Dialog(x, y, w, h), _metaEngine(0), _delSupport(false), _metaInfoSupport(false),
-	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false) {
+	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false), _saveMode(saveMode),
+	_listButton(0), _gridButton(0) {
+	addChooserButtons();
 }
 
 void SaveLoadChooserDialog::open() {
@@ -60,6 +69,63 @@ int SaveLoadChooserDialog::run(const Common::String &target, const MetaEngine *m
 	return runIntern();
 }
 
+void SaveLoadChooserDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
+	switch (cmd) {
+	case kListSwitchCmd:
+		setResult(kSwitchToList);
+		close();
+		break;
+
+	case kGridSwitchCmd:
+		setResult(kSwitchToGrid);
+		close();
+		break;
+
+	default:
+		break;
+	}
+
+	return Dialog::handleCommand(sender, cmd, data);
+}
+
+void SaveLoadChooserDialog::addChooserButtons() {
+	if (_listButton) {
+		removeWidget(_listButton);
+		delete _listButton;
+	}
+
+	if (_gridButton) {
+		removeWidget(_gridButton);
+		delete _gridButton;
+	}
+
+	_listButton = createSwitchButton("SaveLoadChooser.ListSwitch", "L", _("List view"), ThemeEngine::kImageList, kListSwitchCmd);
+	_gridButton = createSwitchButton("SaveLoadChooser.GridSwitch", "G", _("Grid view"), ThemeEngine::kImageGrid, kGridSwitchCmd);
+	if (!_metaInfoSupport || !_thumbnailSupport || _saveMode)
+		_gridButton->setEnabled(false);
+}
+
+void SaveLoadChooserDialog::reflowLayout() {
+	addChooserButtons();
+
+	Dialog::reflowLayout();
+}
+
+GUI::ButtonWidget *SaveLoadChooserDialog::createSwitchButton(const Common::String &name, const char *desc, const char *tooltip, const char *image, uint32 cmd) {
+	ButtonWidget *button;
+
+#ifndef DISABLE_FANCY_THEMES
+	if (g_gui.xmlEval()->getVar("Globals.ShowChooserPics") == 1 && g_gui.theme()->supportsImages()) {
+		button = new PicButtonWidget(this, name, tooltip, cmd);
+		((PicButtonWidget *)button)->useThemeTransparency(true);
+		((PicButtonWidget *)button)->setGfx(g_gui.theme()->getImageSurface(image));
+	} else
+#endif
+		button = new ButtonWidget(this, name, desc, tooltip, cmd);
+
+	return button;
+}
+
 // SaveLoadChooserSimple implementation
 
 enum {
@@ -68,7 +134,7 @@ enum {
 };
 
 SaveLoadChooserSimple::SaveLoadChooserSimple(const String &title, const String &buttonLabel, bool saveMode)
-	: SaveLoadChooserDialog("SaveLoadChooser"), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0)  {
+	: SaveLoadChooserDialog("SaveLoadChooser", saveMode), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0)  {
 	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
 
 	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
@@ -385,7 +451,7 @@ enum {
 };
 
 LoadChooserThumbnailed::LoadChooserThumbnailed(const Common::String &title)
-	: SaveLoadChooserDialog("SaveLoadChooser"), _lines(0), _columns(0), _entriesPerPage(0),
+	: SaveLoadChooserDialog("SaveLoadChooser", false), _lines(0), _columns(0), _entriesPerPage(0),
 	_curPage(0), _buttons() {
 	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
 
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index b80741d..7921f57 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -29,19 +29,27 @@
 
 namespace GUI {
 
+#define kSwitchToList -2
+#define kSwitchToGrid -3
+
 class SaveLoadChooserDialog : protected Dialog {
 public:
-	SaveLoadChooserDialog(const Common::String &dialogName);
-	SaveLoadChooserDialog(int x, int y, int w, int h);
+	SaveLoadChooserDialog(const Common::String &dialogName, const bool saveMode);
+	SaveLoadChooserDialog(int x, int y, int w, int h, const bool saveMode);
 
 	virtual void open();
 
+	virtual void reflowLayout();
+
+	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
+
 	int run(const Common::String &target, const MetaEngine *metaEngine);
 	virtual const Common::String &getResultString() const = 0;
 
 protected:
 	virtual int runIntern() = 0;
 
+	const bool				_saveMode;
 	const MetaEngine		*_metaEngine;
 	bool					_delSupport;
 	bool					_metaInfoSupport;
@@ -49,6 +57,12 @@ protected:
 	bool					_saveDateSupport;
 	bool					_playTimeSupport;
 	Common::String			_target;
+
+	GUI::ButtonWidget *_listButton;
+	GUI::ButtonWidget *_gridButton;
+
+	void addChooserButtons();
+	GUI::ButtonWidget *createSwitchButton(const Common::String &name, const char *desc, const char *tooltip, const char *image, uint32 cmd = 0);
 };
 
 class SaveLoadChooserSimple : public SaveLoadChooserDialog {
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index becc3f6..f544f0e 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -83,7 +83,18 @@ int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, con
 	String oldDomain = ConfMan.getActiveDomainName();
 	ConfMan.setActiveDomain(target);
 
-	int ret = _impl->run(target, &(**plugin));
+	int ret;
+	do {
+		ret = _impl->run(target, &(**plugin));
+
+		if (ret == kSwitchToList) {
+			delete _impl;
+			_impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode);
+		} else if (ret == kSwitchToGrid) {
+			delete _impl;
+			_impl = new LoadChooserThumbnailed(_title);
+		}
+	} while (ret < -1);
 
 	// Revert to the old active domain
 	ConfMan.setActiveDomain(oldDomain);
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index 86d0061..331289d 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -619,6 +619,7 @@
 "<def var='ShowLauncherLogo' value='0'/> "
 "<def var='ShowGlobalMenuLogo' value='0'/> "
 "<def var='ShowSearchPic' value='0'/> "
+"<def var='ShowChooserPics' value='0'/> "
 "<def var='SaveLoadChooser.ExtInfo.Visible' value='0'/> "
 "<def var='KeyMapper.Spacing' value='5'/> "
 "<def var='KeyMapper.LabelWidth' value='80'/> "
@@ -1362,6 +1363,14 @@
 "<widget name='Title' height='Globals.Line.Height'/> "
 "<widget name='List' /> "
 "<layout type='horizontal' padding='0,0,16,0'> "
+"<widget name='ListSwitch' "
+"height='Globals.Line.Height' "
+"width='Globals.Line.Height' "
+"/> "
+"<widget name='GridSwitch' "
+"height='Globals.Line.Height' "
+"width='Globals.Line.Height' "
+"/> "
 "<space/> "
 "<widget name='Delete' "
 "type='Button' "
@@ -1564,6 +1573,7 @@
 "<def var='ShowLauncherLogo' value='0'/> "
 "<def var='ShowGlobalMenuLogo' value='0'/> "
 "<def var='ShowSearchPic' value='0'/> "
+"<def var='ShowChooserPics' value='0'/> "
 "<def var='SaveLoadChooser.ExtInfo.Visible' value='1'/> "
 "<def var='KeyMapper.Spacing' value='10'/> "
 "<def var='KeyMapper.LabelWidth' value='100'/> "
@@ -2305,6 +2315,14 @@
 "/> "
 "</layout> "
 "<layout type='horizontal' padding='0,0,0,0'> "
+"<widget name='ListSwitch' "
+"height='Globals.Line.Height' "
+"width='Globals.Line.Height' "
+"/> "
+"<widget name='GridSwitch' "
+"height='Globals.Line.Height' "
+"width='Globals.Line.Height' "
+"/> "
 "<space/> "
 "<widget name='Delete' "
 "type='Button' "
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index d126ed0..5e23f91 100644
Binary files a/gui/themes/scummclassic.zip and b/gui/themes/scummclassic.zip differ
diff --git a/gui/themes/scummclassic/THEMERC b/gui/themes/scummclassic/THEMERC
index d4bed29..b87adb9 100644
--- a/gui/themes/scummclassic/THEMERC
+++ b/gui/themes/scummclassic/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.13:ScummVM Classic Theme:No Author]
+[SCUMMVM_STX0.8.14:ScummVM Classic Theme:No Author]
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 8717892..2bb5865 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -31,6 +31,7 @@
 		<def var = 'ShowLauncherLogo' value = '0'/>
 		<def var = 'ShowGlobalMenuLogo' value = '0'/>
 		<def var = 'ShowSearchPic' value = '0'/>
+		<def var = 'ShowChooserPics' value = '0'/>
 
 		<def var = 'SaveLoadChooser.ExtInfo.Visible' value = '1'/>
 
@@ -804,6 +805,14 @@
 				/>
 			</layout>
 			<layout type = 'horizontal' padding = '0, 0, 0, 0'>
+				<widget name = 'ListSwitch'
+						height = 'Globals.Line.Height'
+						width = 'Globals.Line.Height'
+				/>
+				<widget name = 'GridSwitch'
+						height = 'Globals.Line.Height'
+						width = 'Globals.Line.Height'
+				/>
 				<space/>
 				<widget name = 'Delete'
 						type = 'Button'
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index 8f5db9d..fe39e6b 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -32,6 +32,7 @@
 		<def var = 'ShowLauncherLogo' value = '0'/>
 		<def var = 'ShowGlobalMenuLogo' value = '0'/>
 		<def var = 'ShowSearchPic' value = '0'/>
+		<def var = 'ShowChooserPics' value = '0'/>
 
 		<def var = 'SaveLoadChooser.ExtInfo.Visible' value = '0'/>
 
@@ -807,6 +808,14 @@
 			<widget name = 'Title' height = 'Globals.Line.Height'/>
 			<widget name = 'List' />
 			<layout type = 'horizontal' padding = '0, 0, 16, 0'>
+				<widget name = 'ListSwitch'
+						height = 'Globals.Line.Height'
+						width = 'Globals.Line.Height'
+				/>
+				<widget name = 'GridSwitch'
+						height = 'Globals.Line.Height'
+						width = 'Globals.Line.Height'
+				/>
 				<space/>
 				<widget name = 'Delete'
 						type = 'Button'
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index db11632..977a696 100644
Binary files a/gui/themes/scummmodern.zip and b/gui/themes/scummmodern.zip differ
diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC
index 60744d3..e9a2d54 100644
--- a/gui/themes/scummmodern/THEMERC
+++ b/gui/themes/scummmodern/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.13:ScummVM Modern Theme:No Author]
+[SCUMMVM_STX0.8.14:ScummVM Modern Theme:No Author]
diff --git a/gui/themes/scummmodern/grid.bmp b/gui/themes/scummmodern/grid.bmp
new file mode 100644
index 0000000..adeb209
Binary files /dev/null and b/gui/themes/scummmodern/grid.bmp differ
diff --git a/gui/themes/scummmodern/list.bmp b/gui/themes/scummmodern/list.bmp
new file mode 100644
index 0000000..2f54a40
Binary files /dev/null and b/gui/themes/scummmodern/list.bmp differ
diff --git a/gui/themes/scummmodern/scummmodern_gfx.stx b/gui/themes/scummmodern/scummmodern_gfx.stx
index 037c327..4703683 100644
--- a/gui/themes/scummmodern/scummmodern_gfx.stx
+++ b/gui/themes/scummmodern/scummmodern_gfx.stx
@@ -101,6 +101,8 @@
 		<bitmap filename = 'search.bmp'/>
 		<bitmap filename = 'eraser.bmp'/>
 		<bitmap filename = 'delbtn.bmp'/>
+		<bitmap filename = 'list.bmp'/>
+		<bitmap filename = 'grid.bmp'/>
 	</bitmaps>
 
 	<fonts>
diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx
index 087a844..30f8f3c 100644
--- a/gui/themes/scummmodern/scummmodern_layout.stx
+++ b/gui/themes/scummmodern/scummmodern_layout.stx
@@ -38,6 +38,7 @@
 		<def var = 'ShowLauncherLogo' value = '1'/>
 		<def var = 'ShowGlobalMenuLogo' value = '1'/>
 		<def var = 'ShowSearchPic' value = '1'/>
+		<def var = 'ShowChooserPics' value = '1'/>
 
 		<def var = 'SaveLoadChooser.ExtInfo.Visible' value = '1'/>
 
@@ -818,6 +819,14 @@
 				/>
 			</layout>
 			<layout type = 'horizontal' padding = '0, 0, 0, 0'>
+				<widget name = 'ListSwitch'
+						height = '20'
+						width = '20'
+				/>
+				<widget name = 'GridSwitch'
+						height = '20'
+						width = '20'
+				/>
 				<space/>
 				<widget name = 'Delete'
 						type = 'Button'
diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
index 987fee8..990bf2b 100644
--- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx
+++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
@@ -30,6 +30,7 @@
 		<def var = 'ShowLauncherLogo' value = '0'/>
 		<def var = 'ShowGlobalMenuLogo' value = '0'/>
 		<def var = 'ShowSearchPic' value = '0'/>
+		<def var = 'ShowChooserPics' value = '0'/>
 
 		<def var = 'SaveLoadChooser.ExtInfo.Visible' value = '0'/>
 
@@ -806,6 +807,14 @@
 			<widget name = 'Title' height = 'Globals.Line.Height'/>
 			<widget name = 'List' />
 			<layout type = 'horizontal' padding = '0, 0, 16, 0'>
+				<widget name = 'ListSwitch'
+						height = 'Globals.Line.Height'
+						width = 'Globals.Line.Height'
+				/>
+				<widget name = 'GridSwitch'
+						height = 'Globals.Line.Height'
+						width = 'Globals.Line.Height'
+				/>
 				<space/>
 				<widget name = 'Delete'
 						type = 'Button'


Commit: 37fd9b7384e8b7eda1a1966ccdab642357078a6b
    https://github.com/scummvm/scummvm/commit/37fd9b7384e8b7eda1a1966ccdab642357078a6b
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-29T06:55:46-07:00

Commit Message:
GUI: Fix memory leaks in LoadChooserThumbnailed::destroyButtons.

GuiObject::removeWidget only removes the widget from the widget list, but
doesn't delete it. Oops.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 45bf1c4..1a6083b 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -595,8 +595,11 @@ int LoadChooserThumbnailed::runIntern() {
 void LoadChooserThumbnailed::destroyButtons() {
 	for (ButtonArray::iterator i = _buttons.begin(), end = _buttons.end(); i != end; ++i) {
 		removeWidget(i->container);
+		delete i->container;
 		removeWidget(i->button);
+		delete i->button;
 		removeWidget(i->description);
+		delete i->description;
 	}
 
 	_buttons.clear();


Commit: e2056bdfd93ba247c819ec3fd2f0b487dde05709
    https://github.com/scummvm/scummvm/commit/e2056bdfd93ba247c819ec3fd2f0b487dde05709
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-29T07:09:59-07:00

Commit Message:
GUI: Remember last save/load chooser selection.

Changed paths:
    base/commandLine.cpp
    gui/saveload.cpp



diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 6fd020c..5ad2331 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -237,6 +237,8 @@ void registerDefaults() {
 	ConfMan.registerDefault("record_temp_file_name", "record.tmp");
 	ConfMan.registerDefault("record_time_file_name", "record.time");
 
+	ConfMan.registerDefault("gui_saveload_chooser", "grid");
+
 }
 
 //
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index f544f0e..9ae27f3 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -43,9 +43,12 @@ void SaveLoadChooser::selectChooser(const MetaEngine &engine) {
 	delete _impl;
 	_impl = 0;
 
+	Common::String userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain);
+
 	if (!_saveMode && g_gui.getWidth() > 320 && g_gui.getHeight() > 200
 	    && engine.hasFeature(MetaEngine::kSavesSupportMetaInfo)
-	    && engine.hasFeature(MetaEngine::kSavesSupportThumbnail)) {
+	    && engine.hasFeature(MetaEngine::kSavesSupportThumbnail)
+	    && userConfig.equalsIgnoreCase("grid")) {
 		_impl = new LoadChooserThumbnailed(_title);
 	} else {
 		_impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode);
@@ -90,9 +93,11 @@ int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, con
 		if (ret == kSwitchToList) {
 			delete _impl;
 			_impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode);
+			ConfMan.set("gui_saveload_chooser", "list", Common::ConfigManager::kApplicationDomain);
 		} else if (ret == kSwitchToGrid) {
 			delete _impl;
 			_impl = new LoadChooserThumbnailed(_title);
+			ConfMan.set("gui_saveload_chooser", "grid", Common::ConfigManager::kApplicationDomain);
 		}
 	} while (ret < -1);
 


Commit: c1426f783d91976d221c059c37b606411445d438
    https://github.com/scummvm/scummvm/commit/c1426f783d91976d221c059c37b606411445d438
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-29T07:16:28-07:00

Commit Message:
GUI: Use a black rect when no thumbnail is available in the thumbnail load chooser.

Changed paths:
    gui/saveload-dialog.cpp
    gui/widget.cpp
    gui/widget.h



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 1a6083b..12b34e4 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -622,7 +622,12 @@ void LoadChooserThumbnailed::updateSaves() {
 		SaveStateDescriptor desc = _metaEngine->querySaveMetaInfos(_target.c_str(), saveSlot);
 		SlotButton &curButton = _buttons[curNum];
 		curButton.setVisible(true);
-		curButton.button->setGfx(desc.getThumbnail());
+		const Graphics::Surface *thumbnail = desc.getThumbnail();
+		if (thumbnail) {
+			curButton.button->setGfx(desc.getThumbnail());
+		} else {
+			curButton.button->setGfx(kThumbnailWidth, kThumbnailHeight2, 0, 0, 0);
+		}
 		curButton.description->setLabel(Common::String::format("%d. %s", saveSlot, desc.getDescription().c_str()));
 
 		Common::String tooltip(_("Name: "));
diff --git a/gui/widget.cpp b/gui/widget.cpp
index 1b68e36..3c26f11 100644
--- a/gui/widget.cpp
+++ b/gui/widget.cpp
@@ -414,6 +414,19 @@ void PicButtonWidget::setGfx(const Graphics::Surface *gfx) {
 	_gfx->copyFrom(*gfx);
 }
 
+void PicButtonWidget::setGfx(int w, int h, int r, int g, int b) {
+	if (w == -1)
+		w = _w;
+	if (h == -1)
+		h = _h;
+
+	const Graphics::PixelFormat &requiredFormat = g_gui.theme()->getPixelFormat();
+
+	_gfx->free();
+	_gfx->create(w, h, requiredFormat);
+	_gfx->fillRect(Common::Rect(0, 0, w, h), _gfx->format.RGBToColor(r, g, b));
+}
+
 void PicButtonWidget::drawWidget() {
 	g_gui.theme()->drawButton(Common::Rect(_x, _y, _x+_w, _y+_h), "", _state, getFlags());
 
diff --git a/gui/widget.h b/gui/widget.h
index d80b2ad..bcc9a3f 100644
--- a/gui/widget.h
+++ b/gui/widget.h
@@ -222,6 +222,7 @@ public:
 	~PicButtonWidget();
 
 	void setGfx(const Graphics::Surface *gfx);
+	void setGfx(int w, int h, int r, int g, int b);
 
 	void useAlpha(int alpha) { _alpha = alpha; }
 	void useThemeTransparency(bool enable) { _transparency = enable; }


Commit: 10bfb82d3b7ba31b7b8f57560ff55b010dd7de3e
    https://github.com/scummvm/scummvm/commit/10bfb82d3b7ba31b7b8f57560ff55b010dd7de3e
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-06-29T07:16:36-07:00

Commit Message:
GUI: Use a slightly bigger vertical spacing in the thumbnail load chooser.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 12b34e4..0a94fed 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -542,7 +542,7 @@ void LoadChooserThumbnailed::reflowLayout() {
 	const int16 containerHeight = buttonHeight + kLineHeight + containerFrameHeightAdd;
 
 	const int16 defaultSpacingHorizontal = 4;
-	const int16 defaultSpacingVertical = 4;
+	const int16 defaultSpacingVertical = 8;
 	const int16 slotAreaWidth = containerWidth + defaultSpacingHorizontal;
 	const int16 slotAreaHeight = containerHeight + defaultSpacingVertical;
 


Commit: 1c389e55105d40468ff9415a3d2b3ca31ef602b8
    https://github.com/scummvm/scummvm/commit/1c389e55105d40468ff9415a3d2b3ca31ef602b8
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-01T06:43:20-07:00

Commit Message:
GUI: Only use grid load dialog for 640x400 or bigger.

Formerly it was enabled for everything above 320x200, but resolutions below
640x400 feature not enough space.

Changed paths:
    gui/saveload.cpp



diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index 9ae27f3..9cc8935 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -45,7 +45,7 @@ void SaveLoadChooser::selectChooser(const MetaEngine &engine) {
 
 	Common::String userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain);
 
-	if (!_saveMode && g_gui.getWidth() > 320 && g_gui.getHeight() > 200
+	if (!_saveMode && g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400
 	    && engine.hasFeature(MetaEngine::kSavesSupportMetaInfo)
 	    && engine.hasFeature(MetaEngine::kSavesSupportThumbnail)
 	    && userConfig.equalsIgnoreCase("grid")) {


Commit: 236db5ed87acf603898243734e2c5273c23568cb
    https://github.com/scummvm/scummvm/commit/236db5ed87acf603898243734e2c5273c23568cb
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-01T07:49:07-07:00

Commit Message:
GUI: Automatically switch to list based save/load chooser when changing resolution below 640x400.

Changed paths:
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h
    gui/saveload.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 0a94fed..3a778b2 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -21,6 +21,7 @@
 
 #include "gui/saveload-dialog.h"
 #include "common/translation.h"
+#include "common/config-manager.h"
 
 #include "gui/message.h"
 #include "gui/gui-manager.h"
@@ -73,11 +74,17 @@ void SaveLoadChooserDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd
 	switch (cmd) {
 	case kListSwitchCmd:
 		setResult(kSwitchToList);
+		// We save the requested dialog type here to avoid the setting to be
+		// overwritten when our reflowLayout logic selects a different dialog
+		// type.
+		ConfMan.set("gui_saveload_chooser", "list", Common::ConfigManager::kApplicationDomain);
 		close();
 		break;
 
 	case kGridSwitchCmd:
 		setResult(kSwitchToGrid);
+		// See above.
+		ConfMan.set("gui_saveload_chooser", "grid", Common::ConfigManager::kApplicationDomain);
 		close();
 		break;
 
@@ -101,13 +108,45 @@ void SaveLoadChooserDialog::addChooserButtons() {
 
 	_listButton = createSwitchButton("SaveLoadChooser.ListSwitch", "L", _("List view"), ThemeEngine::kImageList, kListSwitchCmd);
 	_gridButton = createSwitchButton("SaveLoadChooser.GridSwitch", "G", _("Grid view"), ThemeEngine::kImageGrid, kGridSwitchCmd);
-	if (!_metaInfoSupport || !_thumbnailSupport || _saveMode)
+	if (!_metaInfoSupport || !_thumbnailSupport || _saveMode || !(g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400))
 		_gridButton->setEnabled(false);
 }
 
 void SaveLoadChooserDialog::reflowLayout() {
 	addChooserButtons();
 
+	const SaveLoadChooserType currentType = getType();
+	SaveLoadChooserType requestedType;
+
+	const Common::String &userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain);
+	if (!_saveMode && g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400
+	    && _metaEngine->hasFeature(MetaEngine::kSavesSupportMetaInfo)
+	    && _metaEngine->hasFeature(MetaEngine::kSavesSupportThumbnail)
+	    && userConfig.equalsIgnoreCase("grid")) {
+		// In case we are 640x400 or higher, this dialog is not in save mode,
+		// the user requested the grid dialog and the engines supports it we
+		// try to set it up.
+		requestedType = kSaveLoadDialogGrid;
+	} else {
+		// In all other cases we want to use the list dialog.
+		requestedType = kSaveLoadDialogList;
+	}
+
+	// Change the dialog type if there is any need for it.
+	if (requestedType != currentType) {
+		switch (requestedType) {
+		case kSaveLoadDialogGrid:
+			setResult(kSwitchToGrid);
+			break;
+
+		case kSaveLoadDialogList:
+			setResult(kSwitchToList);
+			break;
+		}
+
+		close();
+	}
+
 	Dialog::reflowLayout();
 }
 
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 7921f57..75b1dc4 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -32,6 +32,11 @@ namespace GUI {
 #define kSwitchToList -2
 #define kSwitchToGrid -3
 
+enum SaveLoadChooserType {
+	kSaveLoadDialogList = 0,
+	kSaveLoadDialogGrid = 1
+};
+
 class SaveLoadChooserDialog : protected Dialog {
 public:
 	SaveLoadChooserDialog(const Common::String &dialogName, const bool saveMode);
@@ -43,6 +48,8 @@ public:
 
 	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
 
+	virtual SaveLoadChooserType getType() const = 0;
+
 	int run(const Common::String &target, const MetaEngine *metaEngine);
 	virtual const Common::String &getResultString() const = 0;
 
@@ -77,6 +84,8 @@ public:
 
 	virtual void reflowLayout();
 
+	virtual SaveLoadChooserType getType() const { return kSaveLoadDialogList; }
+
 	virtual void close();
 private:
 	virtual int runIntern();
@@ -109,6 +118,8 @@ public:
 
 	virtual void reflowLayout();
 
+	virtual SaveLoadChooserType getType() const { return kSaveLoadDialogGrid; }
+
 	virtual void close();
 protected:
 	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index 9cc8935..7f3dd6d 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -93,11 +93,9 @@ int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, con
 		if (ret == kSwitchToList) {
 			delete _impl;
 			_impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode);
-			ConfMan.set("gui_saveload_chooser", "list", Common::ConfigManager::kApplicationDomain);
 		} else if (ret == kSwitchToGrid) {
 			delete _impl;
 			_impl = new LoadChooserThumbnailed(_title);
-			ConfMan.set("gui_saveload_chooser", "grid", Common::ConfigManager::kApplicationDomain);
 		}
 	} while (ret < -1);
 


Commit: bd3d5fb8ffed3938c68a723d5c5bfbb6b56fb0ec
    https://github.com/scummvm/scummvm/commit/bd3d5fb8ffed3938c68a723d5c5bfbb6b56fb0ec
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-01T07:49:07-07:00

Commit Message:
GUI: Clean up save load chooser selection code.

Changed paths:
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h
    gui/saveload.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 3a778b2..dce09aa 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -31,6 +31,22 @@
 
 namespace GUI {
 
+SaveLoadChooserType getRequestedSaveLoadDialog(const bool saveMode, const MetaEngine &metaEngine) {
+	const Common::String &userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain);
+	if (!saveMode && g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400
+	    && metaEngine.hasFeature(MetaEngine::kSavesSupportMetaInfo)
+	    && metaEngine.hasFeature(MetaEngine::kSavesSupportThumbnail)
+	    && userConfig.equalsIgnoreCase("grid")) {
+		// In case we are 640x400 or higher, this dialog is not in save mode,
+		// the user requested the grid dialog and the engines supports it we
+		// try to set it up.
+		return kSaveLoadDialogGrid;
+	} else {
+		// In all other cases we want to use the list dialog.
+		return kSaveLoadDialogList;
+	}
+}
+
 enum {
 	kListSwitchCmd = 'LIST',
 	kGridSwitchCmd = 'GRID'
@@ -73,7 +89,7 @@ int SaveLoadChooserDialog::run(const Common::String &target, const MetaEngine *m
 void SaveLoadChooserDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
 	switch (cmd) {
 	case kListSwitchCmd:
-		setResult(kSwitchToList);
+		setResult(kSwitchSaveLoadDialog);
 		// We save the requested dialog type here to avoid the setting to be
 		// overwritten when our reflowLayout logic selects a different dialog
 		// type.
@@ -82,7 +98,7 @@ void SaveLoadChooserDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd
 		break;
 
 	case kGridSwitchCmd:
-		setResult(kSwitchToGrid);
+		setResult(kSwitchSaveLoadDialog);
 		// See above.
 		ConfMan.set("gui_saveload_chooser", "grid", Common::ConfigManager::kApplicationDomain);
 		close();
@@ -116,34 +132,11 @@ void SaveLoadChooserDialog::reflowLayout() {
 	addChooserButtons();
 
 	const SaveLoadChooserType currentType = getType();
-	SaveLoadChooserType requestedType;
-
-	const Common::String &userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain);
-	if (!_saveMode && g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400
-	    && _metaEngine->hasFeature(MetaEngine::kSavesSupportMetaInfo)
-	    && _metaEngine->hasFeature(MetaEngine::kSavesSupportThumbnail)
-	    && userConfig.equalsIgnoreCase("grid")) {
-		// In case we are 640x400 or higher, this dialog is not in save mode,
-		// the user requested the grid dialog and the engines supports it we
-		// try to set it up.
-		requestedType = kSaveLoadDialogGrid;
-	} else {
-		// In all other cases we want to use the list dialog.
-		requestedType = kSaveLoadDialogList;
-	}
+	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(_saveMode, *_metaEngine);
 
 	// Change the dialog type if there is any need for it.
 	if (requestedType != currentType) {
-		switch (requestedType) {
-		case kSaveLoadDialogGrid:
-			setResult(kSwitchToGrid);
-			break;
-
-		case kSaveLoadDialogList:
-			setResult(kSwitchToList);
-			break;
-		}
-
+		setResult(kSwitchSaveLoadDialog);
 		close();
 	}
 
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 75b1dc4..68512ad 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -29,14 +29,15 @@
 
 namespace GUI {
 
-#define kSwitchToList -2
-#define kSwitchToGrid -3
+#define kSwitchSaveLoadDialog -2
 
 enum SaveLoadChooserType {
 	kSaveLoadDialogList = 0,
 	kSaveLoadDialogGrid = 1
 };
 
+SaveLoadChooserType getRequestedSaveLoadDialog(const bool saveMode, const MetaEngine &metaEngine);
+
 class SaveLoadChooserDialog : protected Dialog {
 public:
 	SaveLoadChooserDialog(const Common::String &dialogName, const bool saveMode);
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index 7f3dd6d..12e6212 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -40,18 +40,20 @@ SaveLoadChooser::~SaveLoadChooser() {
 }
 
 void SaveLoadChooser::selectChooser(const MetaEngine &engine) {
-	delete _impl;
-	_impl = 0;
+	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(_saveMode, engine);
+	if (!_impl || _impl->getType() != requestedType) {
+		delete _impl;
+		_impl = 0;
 
-	Common::String userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain);
+		switch (requestedType) {
+		case kSaveLoadDialogGrid:
+			_impl = new LoadChooserThumbnailed(_title);
+			break;
 
-	if (!_saveMode && g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400
-	    && engine.hasFeature(MetaEngine::kSavesSupportMetaInfo)
-	    && engine.hasFeature(MetaEngine::kSavesSupportThumbnail)
-	    && userConfig.equalsIgnoreCase("grid")) {
-		_impl = new LoadChooserThumbnailed(_title);
-	} else {
-		_impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode);
+		case kSaveLoadDialogList:
+			_impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode);
+			break;
+		}
 	}
 }
 
@@ -90,12 +92,8 @@ int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, con
 	do {
 		ret = _impl->run(target, &(**plugin));
 
-		if (ret == kSwitchToList) {
-			delete _impl;
-			_impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode);
-		} else if (ret == kSwitchToGrid) {
-			delete _impl;
-			_impl = new LoadChooserThumbnailed(_title);
+		if (ret == kSwitchSaveLoadDialog) {
+			selectChooser(**plugin);
 		}
 	} while (ret < -1);
 


Commit: 3256081b2b1c604b1367ba3b5fc3fea8bd76d842
    https://github.com/scummvm/scummvm/commit/3256081b2b1c604b1367ba3b5fc3fea8bd76d842
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-01T07:49:07-07:00

Commit Message:
GUI: Add page display to grid based load chooser.

Changed paths:
    gui/ThemeEngine.h
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h
    gui/themes/default.inc
    gui/themes/scummclassic.zip
    gui/themes/scummclassic/THEMERC
    gui/themes/scummclassic/classic_layout.stx
    gui/themes/scummclassic/classic_layout_lowres.stx
    gui/themes/scummmodern.zip
    gui/themes/scummmodern/THEMERC
    gui/themes/scummmodern/scummmodern_layout.stx
    gui/themes/scummmodern/scummmodern_layout_lowres.stx



diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index cd388b7..de4a92b 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -35,7 +35,7 @@
 #include "graphics/pixelformat.h"
 
 
-#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.14"
+#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.15"
 
 class OSystem;
 
diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index dce09aa..3d542b1 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -496,6 +496,10 @@ LoadChooserThumbnailed::LoadChooserThumbnailed(const Common::String &title)
 
 	_prevButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Cancel", _("Prev"), 0, kPrevCmd);
 	_prevButton->setEnabled(false);
+
+	// Page display
+	_pageDisplay = new GUI::StaticTextWidget(this, "SaveLoadChooser.PageDisplay", Common::String());
+	_pageDisplay->setAlign(Graphics::kTextAlignRight);
 }
 
 const Common::String &LoadChooserThumbnailed::getResultString() const {
@@ -555,6 +559,11 @@ void LoadChooserThumbnailed::open() {
 }
 
 void LoadChooserThumbnailed::reflowLayout() {
+	removeWidget(_pageDisplay);
+	if (g_gui.xmlEval()->getVar("Globals.ShowChooserPageDisplay") == 1) {
+		_pageDisplay->init();
+	} 
+
 	SaveLoadChooserDialog::reflowLayout();
 	destroyButtons();
 
@@ -690,6 +699,9 @@ void LoadChooserThumbnailed::updateSaves() {
 		curButton.button->setTooltip(tooltip);
 	}
 
+	const uint numPages = _saveList.size() / _entriesPerPage + 1;
+	_pageDisplay->setLabel(Common::String::format("%u/%u", _curPage + 1, numPages));
+
 	if (_curPage > 0)
 		_prevButton->setEnabled(true);
 	else
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 68512ad..63dbf41 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -136,6 +136,8 @@ private:
 	GUI::ButtonWidget *_nextButton;
 	GUI::ButtonWidget *_prevButton;
 
+	GUI::StaticTextWidget *_pageDisplay;
+
 	struct SlotButton {
 		SlotButton() : container(0), button(0), description(0) {}
 		SlotButton(ContainerWidget *c, PicButtonWidget *b, StaticTextWidget *d) : container(c), button(b), description(d) {}
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index 331289d..dc8d5c1 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -620,6 +620,7 @@
 "<def var='ShowGlobalMenuLogo' value='0'/> "
 "<def var='ShowSearchPic' value='0'/> "
 "<def var='ShowChooserPics' value='0'/> "
+"<def var='ShowChooserPageDisplay' value='0'/> "
 "<def var='SaveLoadChooser.ExtInfo.Visible' value='0'/> "
 "<def var='KeyMapper.Spacing' value='5'/> "
 "<def var='KeyMapper.LabelWidth' value='80'/> "
@@ -1574,6 +1575,7 @@
 "<def var='ShowGlobalMenuLogo' value='0'/> "
 "<def var='ShowSearchPic' value='0'/> "
 "<def var='ShowChooserPics' value='0'/> "
+"<def var='ShowChooserPageDisplay' value='1'/> "
 "<def var='SaveLoadChooser.ExtInfo.Visible' value='1'/> "
 "<def var='KeyMapper.Spacing' value='10'/> "
 "<def var='KeyMapper.LabelWidth' value='100'/> "
@@ -2304,9 +2306,16 @@
 "</dialog> "
 "<dialog name='SaveLoadChooser' overlays='screen' inset='8' shading='dim'> "
 "<layout type='vertical' padding='8,8,8,32' center='true'> "
+"<layout type='horizontal' padding='0,0,0,0'> "
 "<widget name='Title' "
 "height='Globals.Line.Height' "
 "/> "
+"<space/> "
+"<widget name='PageDisplay' "
+"width='200' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
 "<layout type='horizontal' padding='0,0,0,16' spacing='16'> "
 "<widget name='List' /> "
 "<widget name='Thumbnail' "
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index 5e23f91..f4227c1 100644
Binary files a/gui/themes/scummclassic.zip and b/gui/themes/scummclassic.zip differ
diff --git a/gui/themes/scummclassic/THEMERC b/gui/themes/scummclassic/THEMERC
index b87adb9..f4ca766 100644
--- a/gui/themes/scummclassic/THEMERC
+++ b/gui/themes/scummclassic/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.14:ScummVM Classic Theme:No Author]
+[SCUMMVM_STX0.8.15:ScummVM Classic Theme:No Author]
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 2bb5865..72efc84 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -31,7 +31,9 @@
 		<def var = 'ShowLauncherLogo' value = '0'/>
 		<def var = 'ShowGlobalMenuLogo' value = '0'/>
 		<def var = 'ShowSearchPic' value = '0'/>
+
 		<def var = 'ShowChooserPics' value = '0'/>
+		<def var = 'ShowChooserPageDisplay' value = '1'/>
 
 		<def var = 'SaveLoadChooser.ExtInfo.Visible' value = '1'/>
 
@@ -794,9 +796,16 @@
 
 	<dialog name = 'SaveLoadChooser' overlays = 'screen' inset = '8' shading = 'dim'>
 		<layout type = 'vertical' padding = '8, 8, 8, 32' center = 'true'>
-			<widget name = 'Title'
-					height = 'Globals.Line.Height'
-			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0'>
+				<widget name = 'Title'
+						height = 'Globals.Line.Height'
+				/>
+				<space/>
+				<widget name = 'PageDisplay'
+						width = '200'
+						height = 'Globals.Line.Height'
+				/>
+			</layout>
 			<layout type = 'horizontal' padding = '0, 0, 0, 16' spacing = '16'>
 				<widget name = 'List' />
 				<widget name = 'Thumbnail'
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index fe39e6b..0bdf049 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -32,7 +32,9 @@
 		<def var = 'ShowLauncherLogo' value = '0'/>
 		<def var = 'ShowGlobalMenuLogo' value = '0'/>
 		<def var = 'ShowSearchPic' value = '0'/>
+
 		<def var = 'ShowChooserPics' value = '0'/>
+		<def var = 'ShowChooserPageDisplay' value = '0'/>
 
 		<def var = 'SaveLoadChooser.ExtInfo.Visible' value = '0'/>
 
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index 977a696..a861e8e 100644
Binary files a/gui/themes/scummmodern.zip and b/gui/themes/scummmodern.zip differ
diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC
index e9a2d54..c4381c2 100644
--- a/gui/themes/scummmodern/THEMERC
+++ b/gui/themes/scummmodern/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.14:ScummVM Modern Theme:No Author]
+[SCUMMVM_STX0.8.15:ScummVM Modern Theme:No Author]
diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx
index 30f8f3c..e27de3f 100644
--- a/gui/themes/scummmodern/scummmodern_layout.stx
+++ b/gui/themes/scummmodern/scummmodern_layout.stx
@@ -38,7 +38,9 @@
 		<def var = 'ShowLauncherLogo' value = '1'/>
 		<def var = 'ShowGlobalMenuLogo' value = '1'/>
 		<def var = 'ShowSearchPic' value = '1'/>
+
 		<def var = 'ShowChooserPics' value = '1'/>
+		<def var = 'ShowChooserPageDisplay' value = '1'/>
 
 		<def var = 'SaveLoadChooser.ExtInfo.Visible' value = '1'/>
 
@@ -808,9 +810,16 @@
 
 	<dialog name = 'SaveLoadChooser' overlays = 'screen' inset = '8' shading = 'dim'>
 		<layout type = 'vertical' padding = '8, 8, 8, 32' center = 'true'>
-			<widget name = 'Title'
-					height = 'Globals.Line.Height'
-			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0'>
+				<widget name = 'Title'
+						height = 'Globals.Line.Height'
+				/>
+				<space/>
+				<widget name = 'PageDisplay'
+						width = '200'
+						height = 'Globals.Line.Height'
+				/>
+			</layout>
 			<layout type = 'horizontal' padding = '0, 0, 0, 16' spacing = '16'>
 				<widget name = 'List' />
 				<widget name = 'Thumbnail'
diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
index 990bf2b..64ef3f2 100644
--- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx
+++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
@@ -30,7 +30,9 @@
 		<def var = 'ShowLauncherLogo' value = '0'/>
 		<def var = 'ShowGlobalMenuLogo' value = '0'/>
 		<def var = 'ShowSearchPic' value = '0'/>
+
 		<def var = 'ShowChooserPics' value = '0'/>
+		<def var = 'ShowChooserPageDisplay' value = '0'/>
 
 		<def var = 'SaveLoadChooser.ExtInfo.Visible' value = '0'/>
 


Commit: 049e61b4459fd6fdbcf29c5d0e29d35755de82e3
    https://github.com/scummvm/scummvm/commit/049e61b4459fd6fdbcf29c5d0e29d35755de82e3
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-01T08:17:04-07:00

Commit Message:
GUI: Fix small memory leak in grid based load chooser.

Changed paths:
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 3d542b1..d7fa9c6 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -502,6 +502,11 @@ LoadChooserThumbnailed::LoadChooserThumbnailed(const Common::String &title)
 	_pageDisplay->setAlign(Graphics::kTextAlignRight);
 }
 
+LoadChooserThumbnailed::~LoadChooserThumbnailed() {
+	removeWidget(_pageDisplay);
+	delete _pageDisplay;
+}
+
 const Common::String &LoadChooserThumbnailed::getResultString() const {
 	// FIXME: This chooser is only for loading, thus the result is never used
 	// anyway. But this is still an ugly hack.
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 63dbf41..e169dbf 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -112,6 +112,7 @@ private:
 class LoadChooserThumbnailed : public SaveLoadChooserDialog {
 public:
 	LoadChooserThumbnailed(const Common::String &title);
+	~LoadChooserThumbnailed();
 
 	virtual const Common::String &getResultString() const;
 


Commit: 0cf00ddfe2d985bdd00f5fb06ee5bfb2f8683831
    https://github.com/scummvm/scummvm/commit/0cf00ddfe2d985bdd00f5fb06ee5bfb2f8683831
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-08T17:18:22-07:00

Commit Message:
GUI: Make container widget a bit more container like.

Now it is possible to add sub widgets to a ContainerWidget and allow for these
to get events too.

Changed paths:
    gui/widget.cpp
    gui/widget.h



diff --git a/gui/widget.cpp b/gui/widget.cpp
index 3c26f11..4babce6 100644
--- a/gui/widget.cpp
+++ b/gui/widget.cpp
@@ -711,6 +711,26 @@ ContainerWidget::ContainerWidget(GuiObject *boss, const Common::String &name) :
 	_type = kContainerWidget;
 }
 
+ContainerWidget::~ContainerWidget() {
+	// We also remove the widget from the boss to avoid segfaults, when the
+	// deleted widget is an active widget in the boss.
+	for (Widget *w = _firstWidget; w; w = w->next()) {
+		_boss->removeWidget(w);
+	}
+}
+
+Widget *ContainerWidget::findWidget(int x, int y) {
+	return findWidgetInChain(_firstWidget, x, y);
+}
+
+void ContainerWidget::removeWidget(Widget *widget) {
+	// We also remove the widget from the boss to avoid a reference to a
+	// widget not in the widget chain anymore.
+	_boss->removeWidget(widget);
+
+	Widget::removeWidget(widget);
+}
+
 void ContainerWidget::drawWidget() {
 	g_gui.theme()->drawWidgetBackground(Common::Rect(_x, _y, _x + _w, _y + _h), 0, ThemeEngine::kWidgetBackgroundBorder);
 }
diff --git a/gui/widget.h b/gui/widget.h
index bcc9a3f..6f710f3 100644
--- a/gui/widget.h
+++ b/gui/widget.h
@@ -368,7 +368,10 @@ class ContainerWidget : public Widget {
 public:
 	ContainerWidget(GuiObject *boss, int x, int y, int w, int h);
 	ContainerWidget(GuiObject *boss, const Common::String &name);
+	~ContainerWidget();
 
+	virtual Widget *findWidget(int x, int y);
+	virtual void removeWidget(Widget *widget);
 protected:
 	void drawWidget();
 };


Commit: e37c0be0d91029284cee1e3ff895de15e59248f8
    https://github.com/scummvm/scummvm/commit/e37c0be0d91029284cee1e3ff895de15e59248f8
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-08T17:19:58-07:00

Commit Message:
GUI: Fix missing button background in grid based chooser.

Now the thumbnail button and the descriptions are sub widgets of the
container widget.

Changed paths:
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index d7fa9c6..cf97737 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -611,15 +611,13 @@ void LoadChooserThumbnailed::reflowLayout() {
 			ContainerWidget *container = new ContainerWidget(this, curX, y, containerWidth, containerHeight);
 			container->setVisible(false);
 	
-			int dstY = y + containerFrameHeightAdd / 2;
-			int dstX = curX + containerFrameWidthAdd / 2;
+			int dstY = containerFrameHeightAdd / 2;
+			int dstX = containerFrameWidthAdd / 2;
 
-			PicButtonWidget *button = new PicButtonWidget(this, dstX, dstY, buttonWidth, buttonHeight, 0, curLine * _columns + curColumn + 1);
-			button->setVisible(false);
+			PicButtonWidget *button = new PicButtonWidget(container, dstX, dstY, buttonWidth, buttonHeight, 0, curLine * _columns + curColumn + 1);
 			dstY += buttonHeight;
 
-			StaticTextWidget *description = new StaticTextWidget(this, dstX, dstY, buttonWidth, kLineHeight, Common::String(), Graphics::kTextAlignLeft);
-			description->setVisible(false);
+			StaticTextWidget *description = new StaticTextWidget(container, dstX, dstY, buttonWidth, kLineHeight, Common::String(), Graphics::kTextAlignLeft);
 
 			_buttons.push_back(SlotButton(container, button, description));
 		}
@@ -642,10 +640,6 @@ void LoadChooserThumbnailed::destroyButtons() {
 	for (ButtonArray::iterator i = _buttons.begin(), end = _buttons.end(); i != end; ++i) {
 		removeWidget(i->container);
 		delete i->container;
-		removeWidget(i->button);
-		delete i->button;
-		removeWidget(i->description);
-		delete i->description;
 	}
 
 	_buttons.clear();
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index e169dbf..a604773 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -149,8 +149,6 @@ private:
 
 		void setVisible(bool state) {
 			container->setVisible(state);
-			button->setVisible(state);
-			description->setVisible(state);
 		}
 	};
 	typedef Common::Array<SlotButton> ButtonArray;


Commit: 90eb773c5d862d38f3dc834d51c5a57319c61c3f
    https://github.com/scummvm/scummvm/commit/90eb773c5d862d38f3dc834d51c5a57319c61c3f
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-24T14:23:06-07:00

Commit Message:
GUI: Implement saving in the grid based save/load chooser.

Changed paths:
    gui/ThemeEngine.h
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h
    gui/saveload.cpp
    gui/themes/default.inc
    gui/themes/scummclassic.zip
    gui/themes/scummclassic/THEMERC
    gui/themes/scummclassic/classic_layout.stx
    gui/themes/scummclassic/classic_layout_lowres.stx
    gui/themes/scummmodern.zip
    gui/themes/scummmodern/THEMERC
    gui/themes/scummmodern/scummmodern_layout.stx
    gui/themes/scummmodern/scummmodern_layout_lowres.stx
    gui/widget.cpp



diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index de4a92b..6fb93d3 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -35,7 +35,7 @@
 #include "graphics/pixelformat.h"
 
 
-#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.15"
+#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.16"
 
 class OSystem;
 
diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index cf97737..8f61d03 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -26,14 +26,15 @@
 #include "gui/message.h"
 #include "gui/gui-manager.h"
 #include "gui/ThemeEval.h"
+#include "gui/widgets/edittext.h"
 
 #include "graphics/scaler.h"
 
 namespace GUI {
 
-SaveLoadChooserType getRequestedSaveLoadDialog(const bool saveMode, const MetaEngine &metaEngine) {
+SaveLoadChooserType getRequestedSaveLoadDialog(const MetaEngine &metaEngine) {
 	const Common::String &userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain);
-	if (!saveMode && g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400
+	if (g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400
 	    && metaEngine.hasFeature(MetaEngine::kSavesSupportMetaInfo)
 	    && metaEngine.hasFeature(MetaEngine::kSavesSupportThumbnail)
 	    && userConfig.equalsIgnoreCase("grid")) {
@@ -124,7 +125,7 @@ void SaveLoadChooserDialog::addChooserButtons() {
 
 	_listButton = createSwitchButton("SaveLoadChooser.ListSwitch", "L", _("List view"), ThemeEngine::kImageList, kListSwitchCmd);
 	_gridButton = createSwitchButton("SaveLoadChooser.GridSwitch", "G", _("Grid view"), ThemeEngine::kImageGrid, kGridSwitchCmd);
-	if (!_metaInfoSupport || !_thumbnailSupport || _saveMode || !(g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400))
+	if (!_metaInfoSupport || !_thumbnailSupport || !(g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400))
 		_gridButton->setEnabled(false);
 }
 
@@ -132,7 +133,7 @@ void SaveLoadChooserDialog::reflowLayout() {
 	addChooserButtons();
 
 	const SaveLoadChooserType currentType = getType();
-	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(_saveMode, *_metaEngine);
+	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(*_metaEngine);
 
 	// Change the dialog type if there is any need for it.
 	if (requestedType != currentType) {
@@ -479,12 +480,13 @@ void SaveLoadChooserSimple::updateSaveList() {
 
 enum {
 	kNextCmd = 'NEXT',
-	kPrevCmd = 'PREV'
+	kPrevCmd = 'PREV',
+	kNewSaveCmd = 'SAVE'
 };
 
-LoadChooserThumbnailed::LoadChooserThumbnailed(const Common::String &title)
-	: SaveLoadChooserDialog("SaveLoadChooser", false), _lines(0), _columns(0), _entriesPerPage(0),
-	_curPage(0), _buttons() {
+LoadChooserThumbnailed::LoadChooserThumbnailed(const Common::String &title, bool saveMode)
+	: SaveLoadChooserDialog("SaveLoadChooser", saveMode), _lines(0), _columns(0), _entriesPerPage(0),
+	_curPage(0), _newSaveContainer(0), _nextFreeSaveSlot(0), _buttons() {
 	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
 
 	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
@@ -508,14 +510,18 @@ LoadChooserThumbnailed::~LoadChooserThumbnailed() {
 }
 
 const Common::String &LoadChooserThumbnailed::getResultString() const {
-	// FIXME: This chooser is only for loading, thus the result is never used
-	// anyway. But this is still an ugly hack.
-	return _target;
+	return _resultString;
 }
 
 void LoadChooserThumbnailed::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
 	if (cmd <= _entriesPerPage) {
-		setResult(_saveList[cmd - 1 + _curPage * _entriesPerPage].getSaveSlot());
+		const SaveStateDescriptor &desc = _saveList[cmd - 1 + _curPage * _entriesPerPage];
+
+		if (_saveMode) {
+			_resultString = desc.getDescription();
+		}
+
+		setResult(desc.getSaveSlot());
 		close();
 	}
 
@@ -532,6 +538,11 @@ void LoadChooserThumbnailed::handleCommand(GUI::CommandSender *sender, uint32 cm
 		draw();
 		break;
 
+	case kNewSaveCmd:
+		setResult(_nextFreeSaveSlot);
+		close();
+		break;
+
 	case kCloseCmd:
 		setResult(-1);
 	default:
@@ -560,6 +571,30 @@ void LoadChooserThumbnailed::open() {
 
 	_curPage = 0;
 	_saveList = _metaEngine->listSaves(_target.c_str());
+	_resultString.clear();
+
+	// Determine the next free save slot for save mode
+	if (_saveMode) {
+		int lastSlot = -1;
+		_nextFreeSaveSlot = -1;
+		for (SaveStateList::const_iterator x = _saveList.begin(); x != _saveList.end(); ++x) {
+			const int curSlot = x->getSaveSlot();
+
+			// In case there was a gap found use the slot.
+			if (lastSlot + 1 < curSlot) {
+				_nextFreeSaveSlot = lastSlot + 1;
+				break;
+			}
+
+			lastSlot = curSlot;
+		}
+
+		// Use the next available slot otherwise.
+		if (_nextFreeSaveSlot == -1 && lastSlot + 1 < _metaEngine->getMaximumSaveSlot()) {
+			_nextFreeSaveSlot = lastSlot + 1;
+		}
+	}
+
 	updateSaves();
 }
 
@@ -596,9 +631,20 @@ void LoadChooserThumbnailed::reflowLayout() {
 	_columns = MAX<uint>(1, availableWidth / slotAreaWidth);
 	_lines = MAX<uint>(1, availableHeight / slotAreaHeight);
 	_entriesPerPage = _columns * _lines;
+
+	// In save mode the first button is always "New Save", thus we need to
+	// adjust the entries per page here.
+	if (_saveMode) {
+		--_entriesPerPage;
+	}
+
 	// Recalculate the page number
 	if (!_saveList.empty() && oldEntriesPerPage != 0) {
-		_curPage = (_curPage * oldEntriesPerPage) / _entriesPerPage;
+		if (_entriesPerPage != 0) {
+			_curPage = (_curPage * oldEntriesPerPage) / _entriesPerPage;
+		} else {
+			_curPage = 0;
+		}
 	}
 
 	const uint addX = _columns > 1 ? (availableWidth % slotAreaWidth) / (_columns - 1) : 0;
@@ -608,13 +654,32 @@ void LoadChooserThumbnailed::reflowLayout() {
 	y += defaultSpacingVertical / 2;
 	for (uint curLine = 0; curLine < _lines; ++curLine, y += slotAreaHeight/* + addY*/) {
 		for (uint curColumn = 0, curX = x + defaultSpacingHorizontal / 2; curColumn < _columns; ++curColumn, curX += slotAreaWidth + addX) {
-			ContainerWidget *container = new ContainerWidget(this, curX, y, containerWidth, containerHeight);
-			container->setVisible(false);
-	
 			int dstY = containerFrameHeightAdd / 2;
 			int dstX = containerFrameWidthAdd / 2;
 
-			PicButtonWidget *button = new PicButtonWidget(container, dstX, dstY, buttonWidth, buttonHeight, 0, curLine * _columns + curColumn + 1);
+			// In the save mode we will always create a new save button as the first button.
+			if (_saveMode && curLine == 0 && curColumn == 0) {
+				_newSaveContainer = new ContainerWidget(this, curX, y, containerWidth, containerHeight);
+				ButtonWidget *newSave = new ButtonWidget(_newSaveContainer, dstX, dstY, buttonWidth, buttonHeight, _("New Save"), _("Create a new save game"), kNewSaveCmd);
+				// In case no more slots are free, we will disable the new save button
+				if (_nextFreeSaveSlot == -1) {
+					newSave->setEnabled(false);
+				}
+				continue;
+			}
+
+			ContainerWidget *container = new ContainerWidget(this, curX, y, containerWidth, containerHeight);
+			container->setVisible(false);
+
+			// Command 0 cannot be used, since it won't be send. Thus we will adjust
+			// command number here, if required. This is only the case for load mode
+			// since for save mode, the first button used is index 1 anyway.
+			uint buttonCmd = curLine * _columns + curColumn;
+			if (!_saveMode) {
+				buttonCmd += 1;
+			}
+	
+			PicButtonWidget *button = new PicButtonWidget(container, dstX, dstY, buttonWidth, buttonHeight, 0, buttonCmd);
 			dstY += buttonHeight;
 
 			StaticTextWidget *description = new StaticTextWidget(container, dstX, dstY, buttonWidth, kLineHeight, Common::String(), Graphics::kTextAlignLeft);
@@ -633,10 +698,41 @@ void LoadChooserThumbnailed::close() {
 }
 
 int LoadChooserThumbnailed::runIntern() {
-	return SaveLoadChooserDialog::runModal();
+	int slot;
+	do {
+		const SaveLoadChooserType currentType = getType();
+		const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(*_metaEngine);
+
+		// Catch resolution changes when the save name dialog was open.
+		if (currentType != requestedType) {
+			setResult(kSwitchSaveLoadDialog);
+			return kSwitchSaveLoadDialog;
+		}
+
+		slot = runModal();
+	} while (_saveMode && slot >= 0 && !selectDescription());
+
+	return slot;
+}
+
+bool LoadChooserThumbnailed::selectDescription() {
+	_savenameDialog.setDescription(_resultString);
+	_savenameDialog.setTargetSlot(getResult());
+	if (_savenameDialog.runModal() == 0) {
+		_resultString = _savenameDialog.getDescription();
+		return true;
+	} else {
+		return false;
+	}
 }
 
 void LoadChooserThumbnailed::destroyButtons() {
+	if (_newSaveContainer) {
+		removeWidget(_newSaveContainer);
+		delete _newSaveContainer;
+		_newSaveContainer = 0;
+	}
+
 	for (ButtonArray::iterator i = _buttons.begin(), end = _buttons.end(); i != end; ++i) {
 		removeWidget(i->container);
 		delete i->container;
@@ -696,9 +792,17 @@ void LoadChooserThumbnailed::updateSaves() {
 		}
 
 		curButton.button->setTooltip(tooltip);
+
+		// In save mode we disable the button, when it's write protected.
+		// TODO: Maybe we should not display it at all then?
+		if (_saveMode && desc.getWriteProtectedFlag()) {
+			curButton.button->setEnabled(false);
+		} else {
+			curButton.button->setEnabled(true);
+		}
 	}
 
-	const uint numPages = _saveList.size() / _entriesPerPage + 1;
+	const uint numPages = (_entriesPerPage != 0) ? (_saveList.size() / _entriesPerPage + 1) : 1;
 	_pageDisplay->setLabel(Common::String::format("%u/%u", _curPage + 1, numPages));
 
 	if (_curPage > 0)
@@ -712,4 +816,41 @@ void LoadChooserThumbnailed::updateSaves() {
 		_nextButton->setEnabled(false);
 }
 
+SavenameDialog::SavenameDialog()
+	: Dialog("SavenameDialog") {
+	_title = new StaticTextWidget(this, "SavenameDialog.DescriptionText", Common::String());
+
+	new ButtonWidget(this, "SavenameDialog.Cancel", _("Cancel"), 0, kCloseCmd);
+	new ButtonWidget(this, "SavenameDialog.Ok", _("Ok"), 0, kOKCmd);
+
+	_description = new EditTextWidget(this, "SavenameDialog.Description", Common::String(), 0, 0, kOKCmd);
+}
+
+void SavenameDialog::setDescription(const Common::String &desc) {
+	_description->setEditString(desc);
+}
+
+const Common::String &SavenameDialog::getDescription() {
+	return _description->getEditString();
+}
+
+void SavenameDialog::open() {
+	Dialog::open();
+	setResult(-1);
+
+	_title->setLabel(Common::String::format(_("Enter a description for slot %d:"), _targetSlot));
+}
+
+void SavenameDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
+	switch (cmd) {
+	case kOKCmd:
+		setResult(0);
+		close();
+		break;
+
+	default:
+		Dialog::handleCommand(sender, cmd, data);
+	}
+}
+
 } // End of namespace GUI
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index a604773..46799ad 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -36,7 +36,7 @@ enum SaveLoadChooserType {
 	kSaveLoadDialogGrid = 1
 };
 
-SaveLoadChooserType getRequestedSaveLoadDialog(const bool saveMode, const MetaEngine &metaEngine);
+SaveLoadChooserType getRequestedSaveLoadDialog(const MetaEngine &metaEngine);
 
 class SaveLoadChooserDialog : protected Dialog {
 public:
@@ -109,9 +109,30 @@ private:
 	void updateSelection(bool redraw);
 };
 
+
+class EditTextWidget;
+
+class SavenameDialog : public Dialog {
+public:
+	SavenameDialog();
+
+	void setDescription(const Common::String &desc);
+	const Common::String &getDescription();
+
+	void setTargetSlot(int slot) { _targetSlot = slot; }
+
+	virtual void open();
+protected:
+	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
+private:
+	int _targetSlot;
+	StaticTextWidget *_title;
+	EditTextWidget *_description;
+};
+
 class LoadChooserThumbnailed : public SaveLoadChooserDialog {
 public:
-	LoadChooserThumbnailed(const Common::String &title);
+	LoadChooserThumbnailed(const Common::String &title, bool saveMode);
 	~LoadChooserThumbnailed();
 
 	virtual const Common::String &getResultString() const;
@@ -139,6 +160,13 @@ private:
 
 	GUI::StaticTextWidget *_pageDisplay;
 
+	ContainerWidget *_newSaveContainer;
+	int _nextFreeSaveSlot;
+	Common::String _resultString;
+
+	SavenameDialog _savenameDialog;
+	bool selectDescription();
+
 	struct SlotButton {
 		SlotButton() : container(0), button(0), description(0) {}
 		SlotButton(ContainerWidget *c, PicButtonWidget *b, StaticTextWidget *d) : container(c), button(b), description(d) {}
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index 12e6212..1eceff7 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -40,14 +40,14 @@ SaveLoadChooser::~SaveLoadChooser() {
 }
 
 void SaveLoadChooser::selectChooser(const MetaEngine &engine) {
-	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(_saveMode, engine);
+	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(engine);
 	if (!_impl || _impl->getType() != requestedType) {
 		delete _impl;
 		_impl = 0;
 
 		switch (requestedType) {
 		case kSaveLoadDialogGrid:
-			_impl = new LoadChooserThumbnailed(_title);
+			_impl = new LoadChooserThumbnailed(_title, _saveMode);
 			break;
 
 		case kSaveLoadDialogList:
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index dc8d5c1..bfd78db 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -1386,6 +1386,26 @@
 "</layout> "
 "</layout> "
 "</dialog> "
+"<dialog name='SavenameDialog' overlays='screen_center'> "
+"<layout type='vertical' padding='8,8,8,8'> "
+"<widget name='DescriptionText' "
+"width='180' "
+"height='Globals.Line.Height' "
+"/> "
+"<widget name='Description' "
+"height='19' "
+"/> "
+"<layout type='horizontal' padding='0,0,16,0'> "
+"<widget name='Cancel' "
+"type='Button' "
+"/> "
+"<space/> "
+"<widget name='Ok' "
+"type='Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
 "<dialog name='ScummHelp' overlays='screen'> "
 "<layout type='vertical' padding='8,8,8,8'> "
 "<widget name='Title' "
@@ -2346,6 +2366,26 @@
 "</layout> "
 "</layout> "
 "</dialog> "
+"<dialog name='SavenameDialog' overlays='screen_center'> "
+"<layout type='vertical' padding='8,8,8,8'> "
+"<widget name='DescriptionText' "
+"width='320' "
+"height='Globals.Line.Height' "
+"/> "
+"<widget name='Description' "
+"height='19' "
+"/> "
+"<layout type='horizontal' padding='0,0,16,0'> "
+"<widget name='Cancel' "
+"type='Button' "
+"/> "
+"<space/> "
+"<widget name='Ok' "
+"type='Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
 "<dialog name='ScummHelp' overlays='screen_center'> "
 "<layout type='vertical' padding='8,8,8,8' center='true'> "
 "<widget name='Title' "
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index f4227c1..468f4b1 100644
Binary files a/gui/themes/scummclassic.zip and b/gui/themes/scummclassic.zip differ
diff --git a/gui/themes/scummclassic/THEMERC b/gui/themes/scummclassic/THEMERC
index f4ca766..b8937ad 100644
--- a/gui/themes/scummclassic/THEMERC
+++ b/gui/themes/scummclassic/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.15:ScummVM Classic Theme:No Author]
+[SCUMMVM_STX0.8.16:ScummVM Classic Theme:No Author]
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 72efc84..4a6aae0 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -837,6 +837,27 @@
 		</layout>
 	</dialog>
 
+	<dialog name = 'SavenameDialog' overlays = 'screen_center'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8'>
+			<widget name = 'DescriptionText'
+					width = '320'
+					height = 'Globals.Line.Height'
+			/>
+			<widget name = 'Description'
+					height = '19'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 16, 0'>
+				<widget name = 'Cancel'
+						type = 'Button'
+				/>
+				<space size = '96'/>
+				<widget name = 'Ok'
+						type = 'Button'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
 	<dialog name = 'ScummHelp' overlays = 'screen_center'>
 		<layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
 			<widget name = 'Title'
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index 0bdf049..57e149b 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -833,6 +833,26 @@
 		</layout>
 	</dialog>
 
+	<dialog name = 'SavenameDialog' overlays = 'screen_center'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8'>
+			<widget name = 'DescriptionText'
+					width = '180'
+					height = 'Globals.Line.Height'
+			/>
+			<widget name = 'Description'
+					height = '19'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 16, 0'>
+				<widget name = 'Cancel'
+						type = 'Button'
+				/>
+				<widget name = 'Ok'
+						type = 'Button'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
 	<dialog name = 'ScummHelp' overlays = 'screen'>
 		<layout type = 'vertical' padding = '8, 8, 8, 8'>
 			<widget name = 'Title'
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index a861e8e..34a1db9 100644
Binary files a/gui/themes/scummmodern.zip and b/gui/themes/scummmodern.zip differ
diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC
index c4381c2..52eb683 100644
--- a/gui/themes/scummmodern/THEMERC
+++ b/gui/themes/scummmodern/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.15:ScummVM Modern Theme:No Author]
+[SCUMMVM_STX0.8.16:ScummVM Modern Theme:No Author]
diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx
index e27de3f..d99d741 100644
--- a/gui/themes/scummmodern/scummmodern_layout.stx
+++ b/gui/themes/scummmodern/scummmodern_layout.stx
@@ -851,6 +851,27 @@
 		</layout>
 	</dialog>
 
+	<dialog name = 'SavenameDialog' overlays = 'screen_center'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8'>
+			<widget name = 'DescriptionText'
+					width = '320'
+					height = 'Globals.Line.Height'
+			/>
+			<widget name = 'Description'
+					height = '19'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 16, 0'>
+				<widget name = 'Cancel'
+						type = 'Button'
+				/>
+				<space size = '96'/>
+				<widget name = 'Ok'
+						type = 'Button'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
 	<dialog name = 'ScummHelp' overlays = 'screen_center'>
 		<layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
 			<widget name = 'Title'
diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
index 64ef3f2..4fd5bdc 100644
--- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx
+++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
@@ -832,6 +832,26 @@
 		</layout>
 	</dialog>
 
+	<dialog name = 'SavenameDialog' overlays = 'screen_center'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8'>
+			<widget name = 'DescriptionText'
+					width = '180'
+					height = 'Globals.Line.Height'
+			/>
+			<widget name = 'Description'
+					height = '19'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 16, 0'>
+				<widget name = 'Cancel'
+						type = 'Button'
+				/>
+				<widget name = 'Ok'
+						type = 'Button'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
 	<dialog name = 'ScummHelp' overlays = 'screen' inset = '8'>
 		<layout type = 'vertical' padding = '8, 8, 8, 8'>
 			<widget name = 'Title'
diff --git a/gui/widget.cpp b/gui/widget.cpp
index 4babce6..9046bcc 100644
--- a/gui/widget.cpp
+++ b/gui/widget.cpp
@@ -296,8 +296,8 @@ ButtonWidget::ButtonWidget(GuiObject *boss, const Common::String &name, const Co
 
 void ButtonWidget::handleMouseUp(int x, int y, int button, int clickCount) {
 	if (isEnabled() && x >= 0 && x < _w && y >= 0 && y < _h) {
-		sendCommand(_cmd, 0);
 		startAnimatePressedState();
+		sendCommand(_cmd, 0);
 	}
 }
 


Commit: 89b638128ff0482a01cfd3d058d87aa95faf58c3
    https://github.com/scummvm/scummvm/commit/89b638128ff0482a01cfd3d058d87aa95faf58c3
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-24T14:24:17-07:00

Commit Message:
GUI: Rename LoadChooserThumbnailed to SaveLoadChooserGrid.

Changed paths:
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h
    gui/saveload.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 8f61d03..2ceace2 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -476,7 +476,7 @@ void SaveLoadChooserSimple::updateSaveList() {
 	_list->setList(saveNames, &colors);
 }
 
-// LoadChooserThumbnailed implementation
+// SaveLoadChooserGrid implementation
 
 enum {
 	kNextCmd = 'NEXT',
@@ -484,7 +484,7 @@ enum {
 	kNewSaveCmd = 'SAVE'
 };
 
-LoadChooserThumbnailed::LoadChooserThumbnailed(const Common::String &title, bool saveMode)
+SaveLoadChooserGrid::SaveLoadChooserGrid(const Common::String &title, bool saveMode)
 	: SaveLoadChooserDialog("SaveLoadChooser", saveMode), _lines(0), _columns(0), _entriesPerPage(0),
 	_curPage(0), _newSaveContainer(0), _nextFreeSaveSlot(0), _buttons() {
 	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
@@ -504,16 +504,16 @@ LoadChooserThumbnailed::LoadChooserThumbnailed(const Common::String &title, bool
 	_pageDisplay->setAlign(Graphics::kTextAlignRight);
 }
 
-LoadChooserThumbnailed::~LoadChooserThumbnailed() {
+SaveLoadChooserGrid::~SaveLoadChooserGrid() {
 	removeWidget(_pageDisplay);
 	delete _pageDisplay;
 }
 
-const Common::String &LoadChooserThumbnailed::getResultString() const {
+const Common::String &SaveLoadChooserGrid::getResultString() const {
 	return _resultString;
 }
 
-void LoadChooserThumbnailed::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
+void SaveLoadChooserGrid::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
 	if (cmd <= _entriesPerPage) {
 		const SaveStateDescriptor &desc = _saveList[cmd - 1 + _curPage * _entriesPerPage];
 
@@ -550,7 +550,7 @@ void LoadChooserThumbnailed::handleCommand(GUI::CommandSender *sender, uint32 cm
 	}
 }
 
-void LoadChooserThumbnailed::handleMouseWheel(int x, int y, int direction) {
+void SaveLoadChooserGrid::handleMouseWheel(int x, int y, int direction) {
 	if (direction > 0) {
 		if (_nextButton->isEnabled()) {
 			++_curPage;
@@ -566,7 +566,7 @@ void LoadChooserThumbnailed::handleMouseWheel(int x, int y, int direction) {
 	}
 }
 
-void LoadChooserThumbnailed::open() {
+void SaveLoadChooserGrid::open() {
 	SaveLoadChooserDialog::open();
 
 	_curPage = 0;
@@ -598,7 +598,7 @@ void LoadChooserThumbnailed::open() {
 	updateSaves();
 }
 
-void LoadChooserThumbnailed::reflowLayout() {
+void SaveLoadChooserGrid::reflowLayout() {
 	removeWidget(_pageDisplay);
 	if (g_gui.xmlEval()->getVar("Globals.ShowChooserPageDisplay") == 1) {
 		_pageDisplay->init();
@@ -692,12 +692,12 @@ void LoadChooserThumbnailed::reflowLayout() {
 		updateSaves();
 }
 
-void LoadChooserThumbnailed::close() {
+void SaveLoadChooserGrid::close() {
 	SaveLoadChooserDialog::close();
 	hideButtons();
 }
 
-int LoadChooserThumbnailed::runIntern() {
+int SaveLoadChooserGrid::runIntern() {
 	int slot;
 	do {
 		const SaveLoadChooserType currentType = getType();
@@ -715,7 +715,7 @@ int LoadChooserThumbnailed::runIntern() {
 	return slot;
 }
 
-bool LoadChooserThumbnailed::selectDescription() {
+bool SaveLoadChooserGrid::selectDescription() {
 	_savenameDialog.setDescription(_resultString);
 	_savenameDialog.setTargetSlot(getResult());
 	if (_savenameDialog.runModal() == 0) {
@@ -726,7 +726,7 @@ bool LoadChooserThumbnailed::selectDescription() {
 	}
 }
 
-void LoadChooserThumbnailed::destroyButtons() {
+void SaveLoadChooserGrid::destroyButtons() {
 	if (_newSaveContainer) {
 		removeWidget(_newSaveContainer);
 		delete _newSaveContainer;
@@ -741,7 +741,7 @@ void LoadChooserThumbnailed::destroyButtons() {
 	_buttons.clear();
 }
 
-void LoadChooserThumbnailed::hideButtons() {
+void SaveLoadChooserGrid::hideButtons() {
 	for (ButtonArray::iterator i = _buttons.begin(), end = _buttons.end(); i != end; ++i) {
 		i->button->setGfx(0);
 		i->setVisible(false);
@@ -749,7 +749,7 @@ void LoadChooserThumbnailed::hideButtons() {
 
 }
 
-void LoadChooserThumbnailed::updateSaves() {
+void SaveLoadChooserGrid::updateSaves() {
 	hideButtons();
 
 	for (uint i = _curPage * _entriesPerPage, curNum = 0; i < _saveList.size() && curNum < _entriesPerPage; ++i, ++curNum) {
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 46799ad..351d0f6 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -130,10 +130,10 @@ private:
 	EditTextWidget *_description;
 };
 
-class LoadChooserThumbnailed : public SaveLoadChooserDialog {
+class SaveLoadChooserGrid : public SaveLoadChooserDialog {
 public:
-	LoadChooserThumbnailed(const Common::String &title, bool saveMode);
-	~LoadChooserThumbnailed();
+	SaveLoadChooserGrid(const Common::String &title, bool saveMode);
+	~SaveLoadChooserGrid();
 
 	virtual const Common::String &getResultString() const;
 
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index 1eceff7..0650be3 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -47,7 +47,7 @@ void SaveLoadChooser::selectChooser(const MetaEngine &engine) {
 
 		switch (requestedType) {
 		case kSaveLoadDialogGrid:
-			_impl = new LoadChooserThumbnailed(_title, _saveMode);
+			_impl = new SaveLoadChooserGrid(_title, _saveMode);
 			break;
 
 		case kSaveLoadDialogList:


Commit: 91196e53750f328b30703ffd09cbf3f5e877dc8e
    https://github.com/scummvm/scummvm/commit/91196e53750f328b30703ffd09cbf3f5e877dc8e
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-24T14:25:10-07:00

Commit Message:
GUI: Also disable the switch-to-list button in the choosers, when the grid one isn't available.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 2ceace2..159e961 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -125,8 +125,10 @@ void SaveLoadChooserDialog::addChooserButtons() {
 
 	_listButton = createSwitchButton("SaveLoadChooser.ListSwitch", "L", _("List view"), ThemeEngine::kImageList, kListSwitchCmd);
 	_gridButton = createSwitchButton("SaveLoadChooser.GridSwitch", "G", _("Grid view"), ThemeEngine::kImageGrid, kGridSwitchCmd);
-	if (!_metaInfoSupport || !_thumbnailSupport || !(g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400))
+	if (!_metaInfoSupport || !_thumbnailSupport || !(g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400)) {
 		_gridButton->setEnabled(false);
+		_listButton->setEnabled(false);
+	}
 }
 
 void SaveLoadChooserDialog::reflowLayout() {


Commit: 8e791896b80009dc779770d8761abc89755fee93
    https://github.com/scummvm/scummvm/commit/8e791896b80009dc779770d8761abc89755fee93
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-24T14:26:47-07:00

Commit Message:
GUI: Remove an unnecessary empty line.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 159e961..f81fdc2 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -748,7 +748,6 @@ void SaveLoadChooserGrid::hideButtons() {
 		i->button->setGfx(0);
 		i->setVisible(false);
 	}
-
 }
 
 void SaveLoadChooserGrid::updateSaves() {


Commit: bab992ab98dba252e6106161502ec2b945540ea1
    https://github.com/scummvm/scummvm/commit/bab992ab98dba252e6106161502ec2b945540ea1
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-24T14:27:59-07:00

Commit Message:
GUI: Remove unecessary explicit GUI namespace uses.

Changed paths:
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index f81fdc2..9f7664b 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -87,7 +87,7 @@ int SaveLoadChooserDialog::run(const Common::String &target, const MetaEngine *m
 	return runIntern();
 }
 
-void SaveLoadChooserDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
+void SaveLoadChooserDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
 	switch (cmd) {
 	case kListSwitchCmd:
 		setResult(kSwitchSaveLoadDialog);
@@ -146,7 +146,7 @@ void SaveLoadChooserDialog::reflowLayout() {
 	Dialog::reflowLayout();
 }
 
-GUI::ButtonWidget *SaveLoadChooserDialog::createSwitchButton(const Common::String &name, const char *desc, const char *tooltip, const char *image, uint32 cmd) {
+ButtonWidget *SaveLoadChooserDialog::createSwitchButton(const Common::String &name, const char *desc, const char *tooltip, const char *image, uint32 cmd) {
 	ButtonWidget *button;
 
 #ifndef DISABLE_FANCY_THEMES
@@ -175,28 +175,28 @@ SaveLoadChooserSimple::SaveLoadChooserSimple(const String &title, const String &
 	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
 
 	// Add choice list
-	_list = new GUI::ListWidget(this, "SaveLoadChooser.List");
-	_list->setNumberingMode(GUI::kListNumberingZero);
+	_list = new ListWidget(this, "SaveLoadChooser.List");
+	_list->setNumberingMode(kListNumberingZero);
 	_list->setEditable(saveMode);
 
-	_gfxWidget = new GUI::GraphicsWidget(this, 0, 0, 10, 10);
+	_gfxWidget = new GraphicsWidget(this, 0, 0, 10, 10);
 
 	_date = new StaticTextWidget(this, 0, 0, 10, 10, _("No date saved"), Graphics::kTextAlignCenter);
 	_time = new StaticTextWidget(this, 0, 0, 10, 10, _("No time saved"), Graphics::kTextAlignCenter);
 	_playtime = new StaticTextWidget(this, 0, 0, 10, 10, _("No playtime saved"), Graphics::kTextAlignCenter);
 
 	// Buttons
-	new GUI::ButtonWidget(this, "SaveLoadChooser.Cancel", _("Cancel"), 0, kCloseCmd);
-	_chooseButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Choose", buttonLabel, 0, kChooseCmd);
+	new ButtonWidget(this, "SaveLoadChooser.Cancel", _("Cancel"), 0, kCloseCmd);
+	_chooseButton = new ButtonWidget(this, "SaveLoadChooser.Choose", buttonLabel, 0, kChooseCmd);
 	_chooseButton->setEnabled(false);
 
-	_deleteButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Delete", _("Delete"), 0, kDelCmd);
+	_deleteButton = new ButtonWidget(this, "SaveLoadChooser.Delete", _("Delete"), 0, kDelCmd);
 	_deleteButton->setEnabled(false);
 
 	_delSupport = _metaInfoSupport = _thumbnailSupport = false;
 
-	_container = new GUI::ContainerWidget(this, 0, 0, 10, 10);
-//	_container->setHints(GUI::THEME_HINT_USE_SHADOW);
+	_container = new ContainerWidget(this, 0, 0, 10, 10);
+//	_container->setHints(THEME_HINT_USE_SHADOW);
 }
 
 int SaveLoadChooserSimple::runIntern() {
@@ -219,8 +219,8 @@ void SaveLoadChooserSimple::handleCommand(CommandSender *sender, uint32 cmd, uin
 	int selItem = _list->getSelected();
 
 	switch (cmd) {
-	case GUI::kListItemActivatedCmd:
-	case GUI::kListItemDoubleClickedCmd:
+	case kListItemActivatedCmd:
+	case kListItemDoubleClickedCmd:
 		if (selItem >= 0 && _chooseButton->isEnabled()) {
 			if (_list->isEditable() || !_list->getSelectedString().empty()) {
 				_list->endEditMode();
@@ -240,14 +240,14 @@ void SaveLoadChooserSimple::handleCommand(CommandSender *sender, uint32 cmd, uin
 		}
 		close();
 		break;
-	case GUI::kListSelectionChangedCmd:
+	case kListSelectionChangedCmd:
 		updateSelection(true);
 		break;
 	case kDelCmd:
 		if (selItem >= 0 && _delSupport) {
 			MessageDialog alert(_("Do you really want to delete this savegame?"),
 								_("Delete"), _("Cancel"));
-			if (alert.runModal() == GUI::kMessageOK) {
+			if (alert.runModal() == kMessageOK) {
 				_metaEngine->removeSaveState(_target.c_str(), _saveList[selItem].getSaveSlot());
 
 				setResult(-1);
@@ -494,15 +494,15 @@ SaveLoadChooserGrid::SaveLoadChooserGrid(const Common::String &title, bool saveM
 	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
 
 	// Buttons
-	new GUI::ButtonWidget(this, "SaveLoadChooser.Delete", _("Cancel"), 0, kCloseCmd);
-	_nextButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Choose", _("Next"), 0, kNextCmd);
+	new ButtonWidget(this, "SaveLoadChooser.Delete", _("Cancel"), 0, kCloseCmd);
+	_nextButton = new ButtonWidget(this, "SaveLoadChooser.Choose", _("Next"), 0, kNextCmd);
 	_nextButton->setEnabled(false);
 
-	_prevButton = new GUI::ButtonWidget(this, "SaveLoadChooser.Cancel", _("Prev"), 0, kPrevCmd);
+	_prevButton = new ButtonWidget(this, "SaveLoadChooser.Cancel", _("Prev"), 0, kPrevCmd);
 	_prevButton->setEnabled(false);
 
 	// Page display
-	_pageDisplay = new GUI::StaticTextWidget(this, "SaveLoadChooser.PageDisplay", Common::String());
+	_pageDisplay = new StaticTextWidget(this, "SaveLoadChooser.PageDisplay", Common::String());
 	_pageDisplay->setAlign(Graphics::kTextAlignRight);
 }
 
@@ -515,7 +515,7 @@ const Common::String &SaveLoadChooserGrid::getResultString() const {
 	return _resultString;
 }
 
-void SaveLoadChooserGrid::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
+void SaveLoadChooserGrid::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
 	if (cmd <= _entriesPerPage) {
 		const SaveStateDescriptor &desc = _saveList[cmd - 1 + _curPage * _entriesPerPage];
 
@@ -842,7 +842,7 @@ void SavenameDialog::open() {
 	_title->setLabel(Common::String::format(_("Enter a description for slot %d:"), _targetSlot));
 }
 
-void SavenameDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) {
+void SavenameDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
 	switch (cmd) {
 	case kOKCmd:
 		setResult(0);
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 351d0f6..05c0715 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -47,7 +47,7 @@ public:
 
 	virtual void reflowLayout();
 
-	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
+	virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
 
 	virtual SaveLoadChooserType getType() const = 0;
 
@@ -66,11 +66,11 @@ protected:
 	bool					_playTimeSupport;
 	Common::String			_target;
 
-	GUI::ButtonWidget *_listButton;
-	GUI::ButtonWidget *_gridButton;
+	ButtonWidget *_listButton;
+	ButtonWidget *_gridButton;
 
 	void addChooserButtons();
-	GUI::ButtonWidget *createSwitchButton(const Common::String &name, const char *desc, const char *tooltip, const char *image, uint32 cmd = 0);
+	ButtonWidget *createSwitchButton(const Common::String &name, const char *desc, const char *tooltip, const char *image, uint32 cmd = 0);
 };
 
 class SaveLoadChooserSimple : public SaveLoadChooserDialog {
@@ -79,7 +79,7 @@ class SaveLoadChooserSimple : public SaveLoadChooserDialog {
 public:
 	SaveLoadChooserSimple(const String &title, const String &buttonLabel, bool saveMode);
 
-	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
+	virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
 
 	virtual const Common::String &getResultString() const;
 
@@ -91,14 +91,14 @@ public:
 private:
 	virtual int runIntern();
 
-	GUI::ListWidget		*_list;
-	GUI::ButtonWidget	*_chooseButton;
-	GUI::ButtonWidget	*_deleteButton;
-	GUI::GraphicsWidget	*_gfxWidget;
-	GUI::ContainerWidget	*_container;
-	GUI::StaticTextWidget	*_date;
-	GUI::StaticTextWidget	*_time;
-	GUI::StaticTextWidget	*_playtime;
+	ListWidget		*_list;
+	ButtonWidget	*_chooseButton;
+	ButtonWidget	*_deleteButton;
+	GraphicsWidget	*_gfxWidget;
+	ContainerWidget	*_container;
+	StaticTextWidget	*_date;
+	StaticTextWidget	*_time;
+	StaticTextWidget	*_playtime;
 
 	SaveStateList			_saveList;
 	String					_resultString;
@@ -123,7 +123,7 @@ public:
 
 	virtual void open();
 protected:
-	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
+	virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
 private:
 	int _targetSlot;
 	StaticTextWidget *_title;
@@ -145,7 +145,7 @@ public:
 
 	virtual void close();
 protected:
-	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
+	virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
 	virtual void handleMouseWheel(int x, int y, int direction);
 private:
 	virtual int runIntern();
@@ -155,10 +155,10 @@ private:
 	uint _curPage;
 	SaveStateList _saveList;
 
-	GUI::ButtonWidget *_nextButton;
-	GUI::ButtonWidget *_prevButton;
+	ButtonWidget *_nextButton;
+	ButtonWidget *_prevButton;
 
-	GUI::StaticTextWidget *_pageDisplay;
+	StaticTextWidget *_pageDisplay;
 
 	ContainerWidget *_newSaveContainer;
 	int _nextFreeSaveSlot;


Commit: f006eddac56fdf4305a3d63914245b8707210725
    https://github.com/scummvm/scummvm/commit/f006eddac56fdf4305a3d63914245b8707210725
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-24T14:32:17-07:00

Commit Message:
GUI: Let SaveLoadChooser::getResultString return a const reference.

Changed paths:
    gui/saveload.cpp
    gui/saveload.h



diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index 0650be3..d6a8688 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -103,11 +103,9 @@ int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, con
 	return ret;
 }
 
-Common::String SaveLoadChooser::getResultString() const {
-	if (_impl)
-		return _impl->getResultString();
-	else
-		return Common::String();
+const Common::String &SaveLoadChooser::getResultString() const {
+	assert(_impl);
+	return _impl->getResultString();
 }
 
 } // End of namespace GUI
diff --git a/gui/saveload.h b/gui/saveload.h
index 26a8cd1..17fd99a 100644
--- a/gui/saveload.h
+++ b/gui/saveload.h
@@ -52,7 +52,7 @@ public:
 	int runModalWithCurrentTarget();
 	int runModalWithPluginAndTarget(const EnginePlugin *plugin, const String &target);
 
-	Common::String getResultString() const;
+	const Common::String &getResultString() const;
 
 	/**
 	 * Creates a default save description for the specified slot. Depending


Commit: ca225cc7e0affd4bca287def475e34dabe251d8a
    https://github.com/scummvm/scummvm/commit/ca225cc7e0affd4bca287def475e34dabe251d8a
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-24T14:34:35-07:00

Commit Message:
GUI: Strip a trailing whitespace.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 9f7664b..f59d67e 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -604,7 +604,7 @@ void SaveLoadChooserGrid::reflowLayout() {
 	removeWidget(_pageDisplay);
 	if (g_gui.xmlEval()->getVar("Globals.ShowChooserPageDisplay") == 1) {
 		_pageDisplay->init();
-	} 
+	}
 
 	SaveLoadChooserDialog::reflowLayout();
 	destroyButtons();


Commit: 7d519074053ab0482c1d163a626a9554b52a8783
    https://github.com/scummvm/scummvm/commit/7d519074053ab0482c1d163a626a9554b52a8783
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-24T14:49:50-07:00

Commit Message:
GUI: Add possibility to disable the grid based chooser via DISABLE_SAVELOADCHOOSER_GRID.

Changed paths:
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h
    gui/saveload.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index f59d67e..3c793c9 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -32,6 +32,7 @@
 
 namespace GUI {
 
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 SaveLoadChooserType getRequestedSaveLoadDialog(const MetaEngine &metaEngine) {
 	const Common::String &userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain);
 	if (g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400
@@ -52,19 +53,30 @@ enum {
 	kListSwitchCmd = 'LIST',
 	kGridSwitchCmd = 'GRID'
 };
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 
 SaveLoadChooserDialog::SaveLoadChooserDialog(const Common::String &dialogName, const bool saveMode)
 	: Dialog(dialogName), _metaEngine(0), _delSupport(false), _metaInfoSupport(false),
-	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false), _saveMode(saveMode),
-	_listButton(0), _gridButton(0) {
+	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false), _saveMode(saveMode)
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
+	, _listButton(0), _gridButton(0)
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
+	{
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 	addChooserButtons();
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 }
 
 SaveLoadChooserDialog::SaveLoadChooserDialog(int x, int y, int w, int h, const bool saveMode)
 	: Dialog(x, y, w, h), _metaEngine(0), _delSupport(false), _metaInfoSupport(false),
-	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false), _saveMode(saveMode),
-	_listButton(0), _gridButton(0) {
+	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false), _saveMode(saveMode)
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
+	, _listButton(0), _gridButton(0)
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
+	{
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 	addChooserButtons();
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 }
 
 void SaveLoadChooserDialog::open() {
@@ -88,6 +100,7 @@ int SaveLoadChooserDialog::run(const Common::String &target, const MetaEngine *m
 }
 
 void SaveLoadChooserDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 	switch (cmd) {
 	case kListSwitchCmd:
 		setResult(kSwitchSaveLoadDialog);
@@ -108,10 +121,29 @@ void SaveLoadChooserDialog::handleCommand(CommandSender *sender, uint32 cmd, uin
 	default:
 		break;
 	}
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 
 	return Dialog::handleCommand(sender, cmd, data);
 }
 
+void SaveLoadChooserDialog::reflowLayout() {
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
+	addChooserButtons();
+
+	const SaveLoadChooserType currentType = getType();
+	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(*_metaEngine);
+
+	// Change the dialog type if there is any need for it.
+	if (requestedType != currentType) {
+		setResult(kSwitchSaveLoadDialog);
+		close();
+	}
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
+
+	Dialog::reflowLayout();
+}
+
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 void SaveLoadChooserDialog::addChooserButtons() {
 	if (_listButton) {
 		removeWidget(_listButton);
@@ -131,21 +163,6 @@ void SaveLoadChooserDialog::addChooserButtons() {
 	}
 }
 
-void SaveLoadChooserDialog::reflowLayout() {
-	addChooserButtons();
-
-	const SaveLoadChooserType currentType = getType();
-	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(*_metaEngine);
-
-	// Change the dialog type if there is any need for it.
-	if (requestedType != currentType) {
-		setResult(kSwitchSaveLoadDialog);
-		close();
-	}
-
-	Dialog::reflowLayout();
-}
-
 ButtonWidget *SaveLoadChooserDialog::createSwitchButton(const Common::String &name, const char *desc, const char *tooltip, const char *image, uint32 cmd) {
 	ButtonWidget *button;
 
@@ -160,6 +177,7 @@ ButtonWidget *SaveLoadChooserDialog::createSwitchButton(const Common::String &na
 
 	return button;
 }
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 
 // SaveLoadChooserSimple implementation
 
@@ -480,6 +498,8 @@ void SaveLoadChooserSimple::updateSaveList() {
 
 // SaveLoadChooserGrid implementation
 
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
+
 enum {
 	kNextCmd = 'NEXT',
 	kPrevCmd = 'PREV',
@@ -854,4 +874,6 @@ void SavenameDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 dat
 	}
 }
 
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
+
 } // End of namespace GUI
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 05c0715..50b7d41 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -31,12 +31,22 @@ namespace GUI {
 
 #define kSwitchSaveLoadDialog -2
 
+// TODO: We might want to disable the grid based save/load chooser for more
+// platforms, than those which define DISABLE_FANCY_THEMES. But those are
+// probably not able to handle the grid chooser anyway, so disabling it
+// for them is a good start.
+#ifdef DISABLE_FANCY_THEMES
+#define DISABLE_SAVELOADCHOOSER_GRID
+#endif // DISABLE_FANCY_THEMES
+
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 enum SaveLoadChooserType {
 	kSaveLoadDialogList = 0,
 	kSaveLoadDialogGrid = 1
 };
 
 SaveLoadChooserType getRequestedSaveLoadDialog(const MetaEngine &metaEngine);
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 
 class SaveLoadChooserDialog : protected Dialog {
 public:
@@ -49,7 +59,9 @@ public:
 
 	virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
 
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 	virtual SaveLoadChooserType getType() const = 0;
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 
 	int run(const Common::String &target, const MetaEngine *metaEngine);
 	virtual const Common::String &getResultString() const = 0;
@@ -66,11 +78,13 @@ protected:
 	bool					_playTimeSupport;
 	Common::String			_target;
 
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 	ButtonWidget *_listButton;
 	ButtonWidget *_gridButton;
 
 	void addChooserButtons();
 	ButtonWidget *createSwitchButton(const Common::String &name, const char *desc, const char *tooltip, const char *image, uint32 cmd = 0);
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 };
 
 class SaveLoadChooserSimple : public SaveLoadChooserDialog {
@@ -85,7 +99,9 @@ public:
 
 	virtual void reflowLayout();
 
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 	virtual SaveLoadChooserType getType() const { return kSaveLoadDialogList; }
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 
 	virtual void close();
 private:
@@ -109,6 +125,7 @@ private:
 	void updateSelection(bool redraw);
 };
 
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 
 class EditTextWidget;
 
@@ -186,6 +203,8 @@ private:
 	void updateSaves();
 };
 
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
+
 } // End of namespace GUI
 
 #endif
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index d6a8688..c2bbcd9 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -40,6 +40,7 @@ SaveLoadChooser::~SaveLoadChooser() {
 }
 
 void SaveLoadChooser::selectChooser(const MetaEngine &engine) {
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(engine);
 	if (!_impl || _impl->getType() != requestedType) {
 		delete _impl;
@@ -51,10 +52,13 @@ void SaveLoadChooser::selectChooser(const MetaEngine &engine) {
 			break;
 
 		case kSaveLoadDialogList:
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 			_impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode);
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 			break;
 		}
 	}
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 }
 
 Common::String SaveLoadChooser::createDefaultSaveDescription(const int slot) const {
@@ -91,10 +95,11 @@ int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, con
 	int ret;
 	do {
 		ret = _impl->run(target, &(**plugin));
-
+#ifndef DISABLE_SAVELOADCHOOSER_GRID
 		if (ret == kSwitchSaveLoadDialog) {
 			selectChooser(**plugin);
 		}
+#endif // !DISABLE_SAVELOADCHOOSER_GRID
 	} while (ret < -1);
 
 	// Revert to the old active domain


Commit: 71daae7bbc03c1d9327f5353b1450f9d0d9774da
    https://github.com/scummvm/scummvm/commit/71daae7bbc03c1d9327f5353b1450f9d0d9774da
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-07-25T08:21:36-07:00

Commit Message:
GUI: Use "OK" instead of "Ok" in SavenameDialog.

Changed paths:
    gui/saveload-dialog.cpp



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 3c793c9..c714147 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -842,7 +842,7 @@ SavenameDialog::SavenameDialog()
 	_title = new StaticTextWidget(this, "SavenameDialog.DescriptionText", Common::String());
 
 	new ButtonWidget(this, "SavenameDialog.Cancel", _("Cancel"), 0, kCloseCmd);
-	new ButtonWidget(this, "SavenameDialog.Ok", _("Ok"), 0, kOKCmd);
+	new ButtonWidget(this, "SavenameDialog.Ok", _("OK"), 0, kOKCmd);
 
 	_description = new EditTextWidget(this, "SavenameDialog.Description", Common::String(), 0, 0, kOKCmd);
 }


Commit: 4f7c65af0e4c5fb3c6c03b44e3b4405314b6ab24
    https://github.com/scummvm/scummvm/commit/4f7c65af0e4c5fb3c6c03b44e3b4405314b6ab24
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-08-12T05:49:28-07:00

Commit Message:
Merge pull request #260 from lordhoto/new-chooser.

New save/load chooser

Conflicts:
	gui/saveload.cpp

Changed paths:
  A gui/saveload-dialog.cpp
  A gui/saveload-dialog.h
  A gui/themes/scummmodern/grid.bmp
  A gui/themes/scummmodern/list.bmp
    base/commandLine.cpp
    base/plugins.h
    gui/ThemeEngine.cpp
    gui/ThemeEngine.h
    gui/Tooltip.cpp
    gui/gui-manager.cpp
    gui/module.mk
    gui/saveload.cpp
    gui/saveload.h
    gui/themes/default.inc
    gui/themes/scummclassic.zip
    gui/themes/scummclassic/THEMERC
    gui/themes/scummclassic/classic_layout.stx
    gui/themes/scummclassic/classic_layout_lowres.stx
    gui/themes/scummmodern.zip
    gui/themes/scummmodern/THEMERC
    gui/themes/scummmodern/scummmodern_gfx.stx
    gui/themes/scummmodern/scummmodern_layout.stx
    gui/themes/scummmodern/scummmodern_layout_lowres.stx
    gui/widget.cpp
    gui/widget.h



diff --cc gui/saveload-dialog.cpp
index 0000000,c714147..0b36ff5
mode 000000,100644..100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@@ -1,0 -1,879 +1,881 @@@
+ /* ScummVM - Graphic Adventure Engine
+  *
+  * ScummVM is the legal property of its developers, whose names
+  * are too numerous to list here. Please refer to the COPYRIGHT
+  * file distributed with this source distribution.
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License
+  * as published by the Free Software Foundation; either version 2
+  * of the License, or (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+  */
+ 
+ #include "gui/saveload-dialog.h"
+ #include "common/translation.h"
+ #include "common/config-manager.h"
+ 
+ #include "gui/message.h"
+ #include "gui/gui-manager.h"
+ #include "gui/ThemeEval.h"
+ #include "gui/widgets/edittext.h"
+ 
+ #include "graphics/scaler.h"
+ 
+ namespace GUI {
+ 
+ #ifndef DISABLE_SAVELOADCHOOSER_GRID
+ SaveLoadChooserType getRequestedSaveLoadDialog(const MetaEngine &metaEngine) {
+ 	const Common::String &userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain);
+ 	if (g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400
+ 	    && metaEngine.hasFeature(MetaEngine::kSavesSupportMetaInfo)
+ 	    && metaEngine.hasFeature(MetaEngine::kSavesSupportThumbnail)
+ 	    && userConfig.equalsIgnoreCase("grid")) {
+ 		// In case we are 640x400 or higher, this dialog is not in save mode,
+ 		// the user requested the grid dialog and the engines supports it we
+ 		// try to set it up.
+ 		return kSaveLoadDialogGrid;
+ 	} else {
+ 		// In all other cases we want to use the list dialog.
+ 		return kSaveLoadDialogList;
+ 	}
+ }
+ 
+ enum {
+ 	kListSwitchCmd = 'LIST',
+ 	kGridSwitchCmd = 'GRID'
+ };
+ #endif // !DISABLE_SAVELOADCHOOSER_GRID
+ 
+ SaveLoadChooserDialog::SaveLoadChooserDialog(const Common::String &dialogName, const bool saveMode)
+ 	: Dialog(dialogName), _metaEngine(0), _delSupport(false), _metaInfoSupport(false),
+ 	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false), _saveMode(saveMode)
+ #ifndef DISABLE_SAVELOADCHOOSER_GRID
+ 	, _listButton(0), _gridButton(0)
+ #endif // !DISABLE_SAVELOADCHOOSER_GRID
+ 	{
+ #ifndef DISABLE_SAVELOADCHOOSER_GRID
+ 	addChooserButtons();
+ #endif // !DISABLE_SAVELOADCHOOSER_GRID
+ }
+ 
+ SaveLoadChooserDialog::SaveLoadChooserDialog(int x, int y, int w, int h, const bool saveMode)
+ 	: Dialog(x, y, w, h), _metaEngine(0), _delSupport(false), _metaInfoSupport(false),
+ 	_thumbnailSupport(false), _saveDateSupport(false), _playTimeSupport(false), _saveMode(saveMode)
+ #ifndef DISABLE_SAVELOADCHOOSER_GRID
+ 	, _listButton(0), _gridButton(0)
+ #endif // !DISABLE_SAVELOADCHOOSER_GRID
+ 	{
+ #ifndef DISABLE_SAVELOADCHOOSER_GRID
+ 	addChooserButtons();
+ #endif // !DISABLE_SAVELOADCHOOSER_GRID
+ }
+ 
+ void SaveLoadChooserDialog::open() {
+ 	Dialog::open();
+ 
+ 	// So that quitting ScummVM will not cause the dialog result to say a
+ 	// savegame was selected.
+ 	setResult(-1);
+ }
+ 
+ int SaveLoadChooserDialog::run(const Common::String &target, const MetaEngine *metaEngine) {
+ 	_metaEngine = metaEngine;
+ 	_target = target;
+ 	_delSupport = _metaEngine->hasFeature(MetaEngine::kSupportsDeleteSave);
+ 	_metaInfoSupport = _metaEngine->hasFeature(MetaEngine::kSavesSupportMetaInfo);
+ 	_thumbnailSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportThumbnail);
+ 	_saveDateSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportCreationDate);
+ 	_playTimeSupport = _metaInfoSupport && _metaEngine->hasFeature(MetaEngine::kSavesSupportPlayTime);
+ 
+ 	return runIntern();
+ }
+ 
+ void SaveLoadChooserDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+ #ifndef DISABLE_SAVELOADCHOOSER_GRID
+ 	switch (cmd) {
+ 	case kListSwitchCmd:
+ 		setResult(kSwitchSaveLoadDialog);
+ 		// We save the requested dialog type here to avoid the setting to be
+ 		// overwritten when our reflowLayout logic selects a different dialog
+ 		// type.
+ 		ConfMan.set("gui_saveload_chooser", "list", Common::ConfigManager::kApplicationDomain);
+ 		close();
+ 		break;
+ 
+ 	case kGridSwitchCmd:
+ 		setResult(kSwitchSaveLoadDialog);
+ 		// See above.
+ 		ConfMan.set("gui_saveload_chooser", "grid", Common::ConfigManager::kApplicationDomain);
+ 		close();
+ 		break;
+ 
+ 	default:
+ 		break;
+ 	}
+ #endif // !DISABLE_SAVELOADCHOOSER_GRID
+ 
+ 	return Dialog::handleCommand(sender, cmd, data);
+ }
+ 
+ void SaveLoadChooserDialog::reflowLayout() {
+ #ifndef DISABLE_SAVELOADCHOOSER_GRID
+ 	addChooserButtons();
+ 
+ 	const SaveLoadChooserType currentType = getType();
+ 	const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(*_metaEngine);
+ 
+ 	// Change the dialog type if there is any need for it.
+ 	if (requestedType != currentType) {
+ 		setResult(kSwitchSaveLoadDialog);
+ 		close();
+ 	}
+ #endif // !DISABLE_SAVELOADCHOOSER_GRID
+ 
+ 	Dialog::reflowLayout();
+ }
+ 
+ #ifndef DISABLE_SAVELOADCHOOSER_GRID
+ void SaveLoadChooserDialog::addChooserButtons() {
+ 	if (_listButton) {
+ 		removeWidget(_listButton);
+ 		delete _listButton;
+ 	}
+ 
+ 	if (_gridButton) {
+ 		removeWidget(_gridButton);
+ 		delete _gridButton;
+ 	}
+ 
+ 	_listButton = createSwitchButton("SaveLoadChooser.ListSwitch", "L", _("List view"), ThemeEngine::kImageList, kListSwitchCmd);
+ 	_gridButton = createSwitchButton("SaveLoadChooser.GridSwitch", "G", _("Grid view"), ThemeEngine::kImageGrid, kGridSwitchCmd);
+ 	if (!_metaInfoSupport || !_thumbnailSupport || !(g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400)) {
+ 		_gridButton->setEnabled(false);
+ 		_listButton->setEnabled(false);
+ 	}
+ }
+ 
+ ButtonWidget *SaveLoadChooserDialog::createSwitchButton(const Common::String &name, const char *desc, const char *tooltip, const char *image, uint32 cmd) {
+ 	ButtonWidget *button;
+ 
+ #ifndef DISABLE_FANCY_THEMES
+ 	if (g_gui.xmlEval()->getVar("Globals.ShowChooserPics") == 1 && g_gui.theme()->supportsImages()) {
+ 		button = new PicButtonWidget(this, name, tooltip, cmd);
+ 		((PicButtonWidget *)button)->useThemeTransparency(true);
+ 		((PicButtonWidget *)button)->setGfx(g_gui.theme()->getImageSurface(image));
+ 	} else
+ #endif
+ 		button = new ButtonWidget(this, name, desc, tooltip, cmd);
+ 
+ 	return button;
+ }
+ #endif // !DISABLE_SAVELOADCHOOSER_GRID
+ 
+ // SaveLoadChooserSimple implementation
+ 
+ enum {
+ 	kChooseCmd = 'CHOS',
+ 	kDelCmd = 'DEL '
+ };
+ 
+ SaveLoadChooserSimple::SaveLoadChooserSimple(const String &title, const String &buttonLabel, bool saveMode)
+ 	: SaveLoadChooserDialog("SaveLoadChooser", saveMode), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0)  {
++	_fillR = _fillG = _fillB = 0;
++
+ 	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
+ 
+ 	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
+ 
+ 	// Add choice list
+ 	_list = new ListWidget(this, "SaveLoadChooser.List");
+ 	_list->setNumberingMode(kListNumberingZero);
+ 	_list->setEditable(saveMode);
+ 
+ 	_gfxWidget = new GraphicsWidget(this, 0, 0, 10, 10);
+ 
+ 	_date = new StaticTextWidget(this, 0, 0, 10, 10, _("No date saved"), Graphics::kTextAlignCenter);
+ 	_time = new StaticTextWidget(this, 0, 0, 10, 10, _("No time saved"), Graphics::kTextAlignCenter);
+ 	_playtime = new StaticTextWidget(this, 0, 0, 10, 10, _("No playtime saved"), Graphics::kTextAlignCenter);
+ 
+ 	// Buttons
+ 	new ButtonWidget(this, "SaveLoadChooser.Cancel", _("Cancel"), 0, kCloseCmd);
+ 	_chooseButton = new ButtonWidget(this, "SaveLoadChooser.Choose", buttonLabel, 0, kChooseCmd);
+ 	_chooseButton->setEnabled(false);
+ 
+ 	_deleteButton = new ButtonWidget(this, "SaveLoadChooser.Delete", _("Delete"), 0, kDelCmd);
+ 	_deleteButton->setEnabled(false);
+ 
+ 	_delSupport = _metaInfoSupport = _thumbnailSupport = false;
+ 
+ 	_container = new ContainerWidget(this, 0, 0, 10, 10);
+ //	_container->setHints(THEME_HINT_USE_SHADOW);
+ }
+ 
+ int SaveLoadChooserSimple::runIntern() {
+ 	if (_gfxWidget)
+ 		_gfxWidget->setGfx(0);
+ 
+ 	_resultString.clear();
+ 	reflowLayout();
+ 	updateSaveList();
+ 
+ 	return Dialog::runModal();
+ }
+ 
+ const Common::String &SaveLoadChooserSimple::getResultString() const {
+ 	int selItem = _list->getSelected();
+ 	return (selItem >= 0) ? _list->getSelectedString() : _resultString;
+ }
+ 
+ void SaveLoadChooserSimple::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+ 	int selItem = _list->getSelected();
+ 
+ 	switch (cmd) {
+ 	case kListItemActivatedCmd:
+ 	case kListItemDoubleClickedCmd:
+ 		if (selItem >= 0 && _chooseButton->isEnabled()) {
+ 			if (_list->isEditable() || !_list->getSelectedString().empty()) {
+ 				_list->endEditMode();
+ 				if (!_saveList.empty()) {
+ 					setResult(_saveList[selItem].getSaveSlot());
+ 					_resultString = _list->getSelectedString();
+ 				}
+ 				close();
+ 			}
+ 		}
+ 		break;
+ 	case kChooseCmd:
+ 		_list->endEditMode();
+ 		if (!_saveList.empty()) {
+ 			setResult(_saveList[selItem].getSaveSlot());
+ 			_resultString = _list->getSelectedString();
+ 		}
+ 		close();
+ 		break;
+ 	case kListSelectionChangedCmd:
+ 		updateSelection(true);
+ 		break;
+ 	case kDelCmd:
+ 		if (selItem >= 0 && _delSupport) {
+ 			MessageDialog alert(_("Do you really want to delete this savegame?"),
+ 								_("Delete"), _("Cancel"));
+ 			if (alert.runModal() == kMessageOK) {
+ 				_metaEngine->removeSaveState(_target.c_str(), _saveList[selItem].getSaveSlot());
+ 
+ 				setResult(-1);
+ 				_list->setSelected(-1);
+ 
+ 				updateSaveList();
+ 				updateSelection(true);
+ 			}
+ 		}
+ 		break;
+ 	case kCloseCmd:
+ 		setResult(-1);
+ 	default:
+ 		SaveLoadChooserDialog::handleCommand(sender, cmd, data);
+ 	}
+ }
+ 
+ void SaveLoadChooserSimple::reflowLayout() {
+ 	if (g_gui.xmlEval()->getVar("Globals.SaveLoadChooser.ExtInfo.Visible") == 1 && _thumbnailSupport) {
+ 		int16 x, y;
+ 		uint16 w, h;
+ 
+ 		if (!g_gui.xmlEval()->getWidgetData("SaveLoadChooser.Thumbnail", x, y, w, h))
+ 			error("Error when loading position data for Save/Load Thumbnails");
+ 
+ 		int thumbW = kThumbnailWidth;
+ 		int thumbH = kThumbnailHeight2;
+ 		int thumbX = x + (w >> 1) - (thumbW >> 1);
+ 		int thumbY = y + kLineHeight;
+ 
+ 		int textLines = 0;
+ 		if (!_saveDateSupport)
+ 			textLines++;
+ 		if (!_playTimeSupport)
+ 			textLines++;
+ 
+ 		_container->resize(x, y, w, h - (kLineHeight * textLines));
+ 		_gfxWidget->resize(thumbX, thumbY, thumbW, thumbH);
+ 
+ 		int height = thumbY + thumbH + kLineHeight;
+ 
+ 		if (_saveDateSupport) {
+ 			_date->resize(thumbX, height, kThumbnailWidth, kLineHeight);
+ 			height += kLineHeight;
+ 			_time->resize(thumbX, height, kThumbnailWidth, kLineHeight);
+ 			height += kLineHeight;
+ 		}
+ 
+ 		if (_playTimeSupport)
+ 			_playtime->resize(thumbX, height, kThumbnailWidth, kLineHeight);
+ 
+ 		_container->setVisible(true);
+ 		_gfxWidget->setVisible(true);
+ 
+ 		_date->setVisible(_saveDateSupport);
+ 		_time->setVisible(_saveDateSupport);
+ 
+ 		_playtime->setVisible(_playTimeSupport);
+ 
+ 		_fillR = 0;
+ 		_fillG = 0;
+ 		_fillB = 0;
+ 		updateSelection(false);
+ 	} else {
+ 		_container->setVisible(false);
+ 		_gfxWidget->setVisible(false);
+ 		_date->setVisible(false);
+ 		_time->setVisible(false);
+ 		_playtime->setVisible(false);
+ 	}
+ 
+ 	SaveLoadChooserDialog::reflowLayout();
+ }
+ 
+ void SaveLoadChooserSimple::updateSelection(bool redraw) {
+ 	int selItem = _list->getSelected();
+ 
+ 	bool isDeletable = _delSupport;
+ 	bool isWriteProtected = false;
+ 	bool startEditMode = _list->isEditable();
+ 
+ 	_gfxWidget->setGfx(-1, -1, _fillR, _fillG, _fillB);
+ 	_date->setLabel(_("No date saved"));
+ 	_time->setLabel(_("No time saved"));
+ 	_playtime->setLabel(_("No playtime saved"));
+ 
+ 	if (selItem >= 0 && _metaInfoSupport) {
+ 		SaveStateDescriptor desc = _metaEngine->querySaveMetaInfos(_target.c_str(), _saveList[selItem].getSaveSlot());
+ 
+ 		isDeletable = desc.getDeletableFlag() && _delSupport;
+ 		isWriteProtected = desc.getWriteProtectedFlag();
+ 
+ 		// Don't allow the user to change the description of write protected games
+ 		if (isWriteProtected)
+ 			startEditMode = false;
+ 
+ 		if (_thumbnailSupport) {
+ 			const Graphics::Surface *thumb = desc.getThumbnail();
+ 			if (thumb) {
+ 				_gfxWidget->setGfx(thumb);
+ 				_gfxWidget->useAlpha(256);
+ 			}
+ 		}
+ 
+ 		if (_saveDateSupport) {
+ 			const Common::String &saveDate = desc.getSaveDate();
+ 			if (!saveDate.empty())
+ 				_date->setLabel(_("Date: ") + saveDate);
+ 
+ 			const Common::String &saveTime = desc.getSaveTime();
+ 			if (!saveTime.empty())
+ 				_time->setLabel(_("Time: ") + saveTime);
+ 		}
+ 
+ 		if (_playTimeSupport) {
+ 			const Common::String &playTime = desc.getPlayTime();
+ 			if (!playTime.empty())
+ 				_playtime->setLabel(_("Playtime: ") + playTime);
+ 		}
+ 	}
+ 
+ 
+ 	if (_list->isEditable()) {
+ 		// Disable the save button if nothing is selected, or if the selected
+ 		// game is write protected
+ 		_chooseButton->setEnabled(selItem >= 0 && !isWriteProtected);
+ 
+ 		if (startEditMode) {
+ 			_list->startEditMode();
+ 
+ 			if (_chooseButton->isEnabled() && _list->getSelectedString() == _("Untitled savestate") &&
+ 					_list->getSelectionColor() == ThemeEngine::kFontColorAlternate) {
+ 				_list->setEditString("");
+ 				_list->setEditColor(ThemeEngine::kFontColorNormal);
+ 			}
+ 		}
+ 	} else {
+ 		// Disable the load button if nothing is selected, or if an empty
+ 		// list item is selected.
+ 		_chooseButton->setEnabled(selItem >= 0 && !_list->getSelectedString().empty());
+ 	}
+ 
+ 	// Delete will always be disabled if the engine doesn't support it.
+ 	_deleteButton->setEnabled(isDeletable && (selItem >= 0) && (!_list->getSelectedString().empty()));
+ 
+ 	if (redraw) {
+ 		_gfxWidget->draw();
+ 		_date->draw();
+ 		_time->draw();
+ 		_playtime->draw();
+ 		_chooseButton->draw();
+ 		_deleteButton->draw();
+ 
+ 		draw();
+ 	}
+ }
+ 
+ void SaveLoadChooserSimple::close() {
+ 	_metaEngine = 0;
+ 	_target.clear();
+ 	_saveList.clear();
+ 	_list->setList(StringArray());
+ 
+ 	SaveLoadChooserDialog::close();
+ }
+ 
+ void SaveLoadChooserSimple::updateSaveList() {
+ 	_saveList = _metaEngine->listSaves(_target.c_str());
+ 
+ 	int curSlot = 0;
+ 	int saveSlot = 0;
+ 	StringArray saveNames;
+ 	ListWidget::ColorList colors;
+ 	for (SaveStateList::const_iterator x = _saveList.begin(); x != _saveList.end(); ++x) {
+ 		// Handle gaps in the list of save games
+ 		saveSlot = x->getSaveSlot();
+ 		if (curSlot < saveSlot) {
+ 			while (curSlot < saveSlot) {
+ 				SaveStateDescriptor dummySave(curSlot, "");
+ 				_saveList.insert_at(curSlot, dummySave);
+ 				saveNames.push_back(dummySave.getDescription());
+ 				colors.push_back(ThemeEngine::kFontColorNormal);
+ 				curSlot++;
+ 			}
+ 
+ 			// Sync the save list iterator
+ 			for (x = _saveList.begin(); x != _saveList.end(); ++x) {
+ 				if (x->getSaveSlot() == saveSlot)
+ 					break;
+ 			}
+ 		}
+ 
+ 		// Show "Untitled savestate" for empty/whitespace savegame descriptions
+ 		Common::String description = x->getDescription();
+ 		Common::String trimmedDescription = description;
+ 		trimmedDescription.trim();
+ 		if (trimmedDescription.empty()) {
+ 			description = _("Untitled savestate");
+ 			colors.push_back(ThemeEngine::kFontColorAlternate);
+ 		} else {
+ 			colors.push_back(ThemeEngine::kFontColorNormal);
+ 		}
+ 
+ 		saveNames.push_back(description);
+ 		curSlot++;
+ 	}
+ 
+ 	// Fill the rest of the save slots with empty saves
+ 
+ 	int maximumSaveSlots = _metaEngine->getMaximumSaveSlot();
+ 
+ #ifdef __DS__
+ 	// Low memory on the DS means too many save slots are impractical, so limit
+ 	// the maximum here.
+ 	if (maximumSaveSlots > 99) {
+ 		maximumSaveSlots = 99;
+ 	}
+ #endif
+ 
+ 	Common::String emptyDesc;
+ 	for (int i = curSlot; i <= maximumSaveSlots; i++) {
+ 		saveNames.push_back(emptyDesc);
+ 		SaveStateDescriptor dummySave(i, "");
+ 		_saveList.push_back(dummySave);
+ 		colors.push_back(ThemeEngine::kFontColorNormal);
+ 	}
+ 
+ 	_list->setList(saveNames, &colors);
+ }
+ 
+ // SaveLoadChooserGrid implementation
+ 
+ #ifndef DISABLE_SAVELOADCHOOSER_GRID
+ 
+ enum {
+ 	kNextCmd = 'NEXT',
+ 	kPrevCmd = 'PREV',
+ 	kNewSaveCmd = 'SAVE'
+ };
+ 
+ SaveLoadChooserGrid::SaveLoadChooserGrid(const Common::String &title, bool saveMode)
+ 	: SaveLoadChooserDialog("SaveLoadChooser", saveMode), _lines(0), _columns(0), _entriesPerPage(0),
+ 	_curPage(0), _newSaveContainer(0), _nextFreeSaveSlot(0), _buttons() {
+ 	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
+ 
+ 	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
+ 
+ 	// Buttons
+ 	new ButtonWidget(this, "SaveLoadChooser.Delete", _("Cancel"), 0, kCloseCmd);
+ 	_nextButton = new ButtonWidget(this, "SaveLoadChooser.Choose", _("Next"), 0, kNextCmd);
+ 	_nextButton->setEnabled(false);
+ 
+ 	_prevButton = new ButtonWidget(this, "SaveLoadChooser.Cancel", _("Prev"), 0, kPrevCmd);
+ 	_prevButton->setEnabled(false);
+ 
+ 	// Page display
+ 	_pageDisplay = new StaticTextWidget(this, "SaveLoadChooser.PageDisplay", Common::String());
+ 	_pageDisplay->setAlign(Graphics::kTextAlignRight);
+ }
+ 
+ SaveLoadChooserGrid::~SaveLoadChooserGrid() {
+ 	removeWidget(_pageDisplay);
+ 	delete _pageDisplay;
+ }
+ 
+ const Common::String &SaveLoadChooserGrid::getResultString() const {
+ 	return _resultString;
+ }
+ 
+ void SaveLoadChooserGrid::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+ 	if (cmd <= _entriesPerPage) {
+ 		const SaveStateDescriptor &desc = _saveList[cmd - 1 + _curPage * _entriesPerPage];
+ 
+ 		if (_saveMode) {
+ 			_resultString = desc.getDescription();
+ 		}
+ 
+ 		setResult(desc.getSaveSlot());
+ 		close();
+ 	}
+ 
+ 	switch (cmd) {
+ 	case kNextCmd:
+ 		++_curPage;
+ 		updateSaves();
+ 		draw();
+ 		break;
+ 
+ 	case kPrevCmd:
+ 		--_curPage;
+ 		updateSaves();
+ 		draw();
+ 		break;
+ 
+ 	case kNewSaveCmd:
+ 		setResult(_nextFreeSaveSlot);
+ 		close();
+ 		break;
+ 
+ 	case kCloseCmd:
+ 		setResult(-1);
+ 	default:
+ 		SaveLoadChooserDialog::handleCommand(sender, cmd, data);
+ 	}
+ }
+ 
+ void SaveLoadChooserGrid::handleMouseWheel(int x, int y, int direction) {
+ 	if (direction > 0) {
+ 		if (_nextButton->isEnabled()) {
+ 			++_curPage;
+ 			updateSaves();
+ 			draw();
+ 		}
+ 	} else {
+ 		if (_prevButton->isEnabled()) {
+ 			--_curPage;
+ 			updateSaves();
+ 			draw();
+ 		}
+ 	}
+ }
+ 
+ void SaveLoadChooserGrid::open() {
+ 	SaveLoadChooserDialog::open();
+ 
+ 	_curPage = 0;
+ 	_saveList = _metaEngine->listSaves(_target.c_str());
+ 	_resultString.clear();
+ 
+ 	// Determine the next free save slot for save mode
+ 	if (_saveMode) {
+ 		int lastSlot = -1;
+ 		_nextFreeSaveSlot = -1;
+ 		for (SaveStateList::const_iterator x = _saveList.begin(); x != _saveList.end(); ++x) {
+ 			const int curSlot = x->getSaveSlot();
+ 
+ 			// In case there was a gap found use the slot.
+ 			if (lastSlot + 1 < curSlot) {
+ 				_nextFreeSaveSlot = lastSlot + 1;
+ 				break;
+ 			}
+ 
+ 			lastSlot = curSlot;
+ 		}
+ 
+ 		// Use the next available slot otherwise.
+ 		if (_nextFreeSaveSlot == -1 && lastSlot + 1 < _metaEngine->getMaximumSaveSlot()) {
+ 			_nextFreeSaveSlot = lastSlot + 1;
+ 		}
+ 	}
+ 
+ 	updateSaves();
+ }
+ 
+ void SaveLoadChooserGrid::reflowLayout() {
+ 	removeWidget(_pageDisplay);
+ 	if (g_gui.xmlEval()->getVar("Globals.ShowChooserPageDisplay") == 1) {
+ 		_pageDisplay->init();
+ 	}
+ 
+ 	SaveLoadChooserDialog::reflowLayout();
+ 	destroyButtons();
+ 
+ 	const uint16 availableWidth = getWidth() - 20;
+ 	uint16 availableHeight;
+ 
+ 	int16 x, y;
+ 	uint16 w;
+ 	g_gui.xmlEval()->getWidgetData("SaveLoadChooser.List", x, y, w, availableHeight);
+ 
+ 	const int16 buttonWidth = kThumbnailWidth + 6;
+ 	const int16 buttonHeight = kThumbnailHeight2 + 6;
+ 
+ 	const int16 containerFrameWidthAdd = 10;
+ 	const int16 containerFrameHeightAdd = 0;
+ 	const int16 containerWidth = buttonWidth + containerFrameWidthAdd;
+ 	const int16 containerHeight = buttonHeight + kLineHeight + containerFrameHeightAdd;
+ 
+ 	const int16 defaultSpacingHorizontal = 4;
+ 	const int16 defaultSpacingVertical = 8;
+ 	const int16 slotAreaWidth = containerWidth + defaultSpacingHorizontal;
+ 	const int16 slotAreaHeight = containerHeight + defaultSpacingVertical;
+ 
+ 	const uint oldEntriesPerPage = _entriesPerPage;
+ 	_columns = MAX<uint>(1, availableWidth / slotAreaWidth);
+ 	_lines = MAX<uint>(1, availableHeight / slotAreaHeight);
+ 	_entriesPerPage = _columns * _lines;
+ 
+ 	// In save mode the first button is always "New Save", thus we need to
+ 	// adjust the entries per page here.
+ 	if (_saveMode) {
+ 		--_entriesPerPage;
+ 	}
+ 
+ 	// Recalculate the page number
+ 	if (!_saveList.empty() && oldEntriesPerPage != 0) {
+ 		if (_entriesPerPage != 0) {
+ 			_curPage = (_curPage * oldEntriesPerPage) / _entriesPerPage;
+ 		} else {
+ 			_curPage = 0;
+ 		}
+ 	}
+ 
+ 	const uint addX = _columns > 1 ? (availableWidth % slotAreaWidth) / (_columns - 1) : 0;
+ 	//const uint addY = _lines > 1 ? (availableHeight % slotAreaHeight) / (_lines - 1) : 0;
+ 
+ 	_buttons.reserve(_lines * _columns);
+ 	y += defaultSpacingVertical / 2;
+ 	for (uint curLine = 0; curLine < _lines; ++curLine, y += slotAreaHeight/* + addY*/) {
+ 		for (uint curColumn = 0, curX = x + defaultSpacingHorizontal / 2; curColumn < _columns; ++curColumn, curX += slotAreaWidth + addX) {
+ 			int dstY = containerFrameHeightAdd / 2;
+ 			int dstX = containerFrameWidthAdd / 2;
+ 
+ 			// In the save mode we will always create a new save button as the first button.
+ 			if (_saveMode && curLine == 0 && curColumn == 0) {
+ 				_newSaveContainer = new ContainerWidget(this, curX, y, containerWidth, containerHeight);
+ 				ButtonWidget *newSave = new ButtonWidget(_newSaveContainer, dstX, dstY, buttonWidth, buttonHeight, _("New Save"), _("Create a new save game"), kNewSaveCmd);
+ 				// In case no more slots are free, we will disable the new save button
+ 				if (_nextFreeSaveSlot == -1) {
+ 					newSave->setEnabled(false);
+ 				}
+ 				continue;
+ 			}
+ 
+ 			ContainerWidget *container = new ContainerWidget(this, curX, y, containerWidth, containerHeight);
+ 			container->setVisible(false);
+ 
+ 			// Command 0 cannot be used, since it won't be send. Thus we will adjust
+ 			// command number here, if required. This is only the case for load mode
+ 			// since for save mode, the first button used is index 1 anyway.
+ 			uint buttonCmd = curLine * _columns + curColumn;
+ 			if (!_saveMode) {
+ 				buttonCmd += 1;
+ 			}
+ 	
+ 			PicButtonWidget *button = new PicButtonWidget(container, dstX, dstY, buttonWidth, buttonHeight, 0, buttonCmd);
+ 			dstY += buttonHeight;
+ 
+ 			StaticTextWidget *description = new StaticTextWidget(container, dstX, dstY, buttonWidth, kLineHeight, Common::String(), Graphics::kTextAlignLeft);
+ 
+ 			_buttons.push_back(SlotButton(container, button, description));
+ 		}
+ 	}
+ 
+ 	if (!_target.empty())
+ 		updateSaves();
+ }
+ 
+ void SaveLoadChooserGrid::close() {
+ 	SaveLoadChooserDialog::close();
+ 	hideButtons();
+ }
+ 
+ int SaveLoadChooserGrid::runIntern() {
+ 	int slot;
+ 	do {
+ 		const SaveLoadChooserType currentType = getType();
+ 		const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(*_metaEngine);
+ 
+ 		// Catch resolution changes when the save name dialog was open.
+ 		if (currentType != requestedType) {
+ 			setResult(kSwitchSaveLoadDialog);
+ 			return kSwitchSaveLoadDialog;
+ 		}
+ 
+ 		slot = runModal();
+ 	} while (_saveMode && slot >= 0 && !selectDescription());
+ 
+ 	return slot;
+ }
+ 
+ bool SaveLoadChooserGrid::selectDescription() {
+ 	_savenameDialog.setDescription(_resultString);
+ 	_savenameDialog.setTargetSlot(getResult());
+ 	if (_savenameDialog.runModal() == 0) {
+ 		_resultString = _savenameDialog.getDescription();
+ 		return true;
+ 	} else {
+ 		return false;
+ 	}
+ }
+ 
+ void SaveLoadChooserGrid::destroyButtons() {
+ 	if (_newSaveContainer) {
+ 		removeWidget(_newSaveContainer);
+ 		delete _newSaveContainer;
+ 		_newSaveContainer = 0;
+ 	}
+ 
+ 	for (ButtonArray::iterator i = _buttons.begin(), end = _buttons.end(); i != end; ++i) {
+ 		removeWidget(i->container);
+ 		delete i->container;
+ 	}
+ 
+ 	_buttons.clear();
+ }
+ 
+ void SaveLoadChooserGrid::hideButtons() {
+ 	for (ButtonArray::iterator i = _buttons.begin(), end = _buttons.end(); i != end; ++i) {
+ 		i->button->setGfx(0);
+ 		i->setVisible(false);
+ 	}
+ }
+ 
+ void SaveLoadChooserGrid::updateSaves() {
+ 	hideButtons();
+ 
+ 	for (uint i = _curPage * _entriesPerPage, curNum = 0; i < _saveList.size() && curNum < _entriesPerPage; ++i, ++curNum) {
+ 		const uint saveSlot = _saveList[i].getSaveSlot();
+ 
+ 		SaveStateDescriptor desc = _metaEngine->querySaveMetaInfos(_target.c_str(), saveSlot);
+ 		SlotButton &curButton = _buttons[curNum];
+ 		curButton.setVisible(true);
+ 		const Graphics::Surface *thumbnail = desc.getThumbnail();
+ 		if (thumbnail) {
+ 			curButton.button->setGfx(desc.getThumbnail());
+ 		} else {
+ 			curButton.button->setGfx(kThumbnailWidth, kThumbnailHeight2, 0, 0, 0);
+ 		}
+ 		curButton.description->setLabel(Common::String::format("%d. %s", saveSlot, desc.getDescription().c_str()));
+ 
+ 		Common::String tooltip(_("Name: "));
+ 		tooltip += desc.getDescription();
+ 
+ 		if (_saveDateSupport) {
+ 			const Common::String &saveDate = desc.getSaveDate();
+ 			if (!saveDate.empty()) {
+ 				tooltip += "\n";
+ 				tooltip +=  _("Date: ") + saveDate;
+ 			}
+ 
+ 			const Common::String &saveTime = desc.getSaveTime();
+ 			if (!saveTime.empty()) {
+ 				tooltip += "\n";
+ 				tooltip += _("Time: ") + saveTime;
+ 			}
+ 		}
+ 
+ 		if (_playTimeSupport) {
+ 			const Common::String &playTime = desc.getPlayTime();
+ 			if (!playTime.empty()) {
+ 				tooltip += "\n";
+ 				tooltip += _("Playtime: ") + playTime;
+ 			}
+ 		}
+ 
+ 		curButton.button->setTooltip(tooltip);
+ 
+ 		// In save mode we disable the button, when it's write protected.
+ 		// TODO: Maybe we should not display it at all then?
+ 		if (_saveMode && desc.getWriteProtectedFlag()) {
+ 			curButton.button->setEnabled(false);
+ 		} else {
+ 			curButton.button->setEnabled(true);
+ 		}
+ 	}
+ 
+ 	const uint numPages = (_entriesPerPage != 0) ? (_saveList.size() / _entriesPerPage + 1) : 1;
+ 	_pageDisplay->setLabel(Common::String::format("%u/%u", _curPage + 1, numPages));
+ 
+ 	if (_curPage > 0)
+ 		_prevButton->setEnabled(true);
+ 	else
+ 		_prevButton->setEnabled(false);
+ 
+ 	if ((_curPage + 1) * _entriesPerPage < _saveList.size())
+ 		_nextButton->setEnabled(true);
+ 	else
+ 		_nextButton->setEnabled(false);
+ }
+ 
+ SavenameDialog::SavenameDialog()
+ 	: Dialog("SavenameDialog") {
+ 	_title = new StaticTextWidget(this, "SavenameDialog.DescriptionText", Common::String());
+ 
+ 	new ButtonWidget(this, "SavenameDialog.Cancel", _("Cancel"), 0, kCloseCmd);
+ 	new ButtonWidget(this, "SavenameDialog.Ok", _("OK"), 0, kOKCmd);
+ 
+ 	_description = new EditTextWidget(this, "SavenameDialog.Description", Common::String(), 0, 0, kOKCmd);
+ }
+ 
+ void SavenameDialog::setDescription(const Common::String &desc) {
+ 	_description->setEditString(desc);
+ }
+ 
+ const Common::String &SavenameDialog::getDescription() {
+ 	return _description->getEditString();
+ }
+ 
+ void SavenameDialog::open() {
+ 	Dialog::open();
+ 	setResult(-1);
+ 
+ 	_title->setLabel(Common::String::format(_("Enter a description for slot %d:"), _targetSlot));
+ }
+ 
+ void SavenameDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+ 	switch (cmd) {
+ 	case kOKCmd:
+ 		setResult(0);
+ 		close();
+ 		break;
+ 
+ 	default:
+ 		Dialog::handleCommand(sender, cmd, data);
+ 	}
+ }
+ 
+ #endif // !DISABLE_SAVELOADCHOOSER_GRID
+ 
+ } // End of namespace GUI


Commit: e7cd238809520c9f3ee7ee820b3a106b7f72c2e2
    https://github.com/scummvm/scummvm/commit/e7cd238809520c9f3ee7ee820b3a106b7f72c2e2
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-08-12T05:56:20-07:00

Commit Message:
GUI: Remove left-over code from theme based fill color in thumbnail display.

Changed paths:
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h



diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 0b36ff5..8e214bc 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -188,8 +188,6 @@ enum {
 
 SaveLoadChooserSimple::SaveLoadChooserSimple(const String &title, const String &buttonLabel, bool saveMode)
 	: SaveLoadChooserDialog("SaveLoadChooser", saveMode), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0)  {
-	_fillR = _fillG = _fillB = 0;
-
 	_backgroundType = ThemeEngine::kDialogBackgroundSpecial;
 
 	new StaticTextWidget(this, "SaveLoadChooser.Title", title);
@@ -327,9 +325,6 @@ void SaveLoadChooserSimple::reflowLayout() {
 
 		_playtime->setVisible(_playTimeSupport);
 
-		_fillR = 0;
-		_fillG = 0;
-		_fillB = 0;
 		updateSelection(false);
 	} else {
 		_container->setVisible(false);
@@ -349,7 +344,9 @@ void SaveLoadChooserSimple::updateSelection(bool redraw) {
 	bool isWriteProtected = false;
 	bool startEditMode = _list->isEditable();
 
-	_gfxWidget->setGfx(-1, -1, _fillR, _fillG, _fillB);
+	// We used to support letting the themes specify the fill color with our
+	// initial theme based GUI. But this support was dropped.
+	_gfxWidget->setGfx(-1, -1, 0, 0, 0);
 	_date->setLabel(_("No date saved"));
 	_time->setLabel(_("No time saved"));
 	_playtime->setLabel(_("No playtime saved"));
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index 50b7d41..9d0350d 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -119,8 +119,6 @@ private:
 	SaveStateList			_saveList;
 	String					_resultString;
 
-	uint8 _fillR, _fillG, _fillB;
-
 	void updateSaveList();
 	void updateSelection(bool redraw);
 };


Commit: 7ea7a8ae7eeca2b7d6ddcc413012158d798a836e
    https://github.com/scummvm/scummvm/commit/7ea7a8ae7eeca2b7d6ddcc413012158d798a836e
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-08-12T05:58:16-07:00

Commit Message:
I18N: Update POTFILES and rebuild the translations.

Changed paths:
    gui/themes/translations.dat
    po/POTFILES
    po/ca_ES.po
    po/cs_CZ.po
    po/da_DA.po
    po/de_DE.po
    po/es_ES.po
    po/eu.po
    po/fr_FR.po
    po/hu_HU.po
    po/it_IT.po
    po/nb_NO.po
    po/nn_NO.po
    po/pl_PL.po
    po/pt_BR.po
    po/ru_RU.po
    po/scummvm.pot
    po/se_SE.po
    po/uk_UA.po



diff --git a/gui/themes/translations.dat b/gui/themes/translations.dat
index 4b35fdb..cabad0c 100644
Binary files a/gui/themes/translations.dat and b/gui/themes/translations.dat differ
diff --git a/po/POTFILES b/po/POTFILES
index 36bd2ff..72c6fb1 100644
--- a/po/POTFILES
+++ b/po/POTFILES
@@ -10,7 +10,7 @@ gui/KeysDialog.cpp
 gui/launcher.cpp
 gui/massadd.cpp
 gui/options.cpp
-gui/saveload.cpp
+gui/saveload-dialog.cpp
 gui/themebrowser.cpp
 gui/ThemeEngine.cpp
 gui/widget.cpp
diff --git a/po/ca_ES.po b/po/ca_ES.po
index 8a978be..3e8ade3 100644
--- a/po/ca_ES.po
+++ b/po/ca_ES.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2011-10-04 20:51+0100\n"
 "Last-Translator: Jordi Vilalta Prat <jvprat at jvprat.com>\n"
 "Language-Team: Catalan <scummvm-devel at lists.sf.net>\n"
+"Language: Catalan\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Catalan\n"
 
 #: gui/about.cpp:91
 #, c-format
@@ -44,10 +44,11 @@ msgstr "Amunt"
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -91,16 +92,16 @@ msgstr "Assigna"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "D'acord"
@@ -442,13 +443,13 @@ msgstr "Cerca a la llista de jocs"
 msgid "Search:"
 msgstr "Cerca:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Carrega partida:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -931,68 +932,104 @@ msgstr ""
 "El tema que heu seleccionat no suporta l'idioma actual. Si voleu utilitzar "
 "aquest tema primer haureu de canviar a un altre idioma."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "No hi ha data desada"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "No hi ha hora desada"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "No hi ha temps de joc desat"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Suprimeix"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Realment voleu suprimir aquesta partida?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Data: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Hora: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Temps de joc: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Partida sense títol"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Desa"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "No s'ha pogut desar l'estat del joc"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Nom:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Seleccioneu un Tema"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "GFX desactivats"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "GFX desactivats"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Pintat estàndard (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Estàndard (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Pintat amb antialias (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Amb antialias (16bpp)"
 
@@ -1096,17 +1133,17 @@ msgstr "Cancel
 msgid "Unknown error"
 msgstr "Error desconegut"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "El joc a '%s' sembla ser desconegut."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr ""
 "Informeu de la següent informació a l'equip de ScummVM juntament amb el"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "nom del joc que heu provat d'afegir i la seva versió/llengua/etc.:"
 
@@ -1144,13 +1181,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~R~etorna al Llançador"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Desa la partida:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1268,11 +1305,11 @@ msgstr ""
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Recupera la partida:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Restaura"
 
@@ -1997,7 +2034,7 @@ msgstr ""
 "El suport de MIDI natiu requereix l'actualització Roland de LucasArts,\n"
 "però no s'ha trobat %s. S'utilitzarà AdLib."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -2008,7 +2045,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2019,7 +2056,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2072,11 +2109,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "No s'ha trobat el fitxer d'escena '%s'!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "No s'ha pogut carregar l'estat del joc del fitxer."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "No s'ha pogut desar l'estat del joc al fitxer."
 
@@ -2217,12 +2254,12 @@ msgstr ""
 "Roland MT32 als de General MIDI. És possible\n"
 "que algunes pistes no es reprodueixin correctament."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
 msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+msgid "Use an alternative game intro (CD version only)"
 msgstr ""
 
 #: engines/sky/compact.cpp:130
@@ -2241,6 +2278,14 @@ msgstr ""
 "El fitxer \"sky.cpt\" té una mida incorrecta.\n"
 "Torneu a baixar-lo de www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr ""
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr ""
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2316,6 +2361,17 @@ msgstr ""
 msgid "Show labels for objects on mouse hover"
 msgstr ""
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2568,11 +2624,11 @@ msgstr "Mode Touchpad activat."
 msgid "Touchpad mode disabled."
 msgstr "Mode Touchpad desactivat."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr ""
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2580,12 +2636,12 @@ msgstr ""
 msgid "Left Click"
 msgstr "Clic esquerre"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 #, fuzzy
 msgid "Middle Click"
 msgstr "Element mig esquerre"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2989,37 +3045,37 @@ msgstr "Llan
 msgid "Do you really want to quit?"
 msgstr "Estàs segur de voler sortir?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "'Mode Toc' de pantalla tàctil - Clic esquerre"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "'Mode Toc' de pantalla tàctil - Clic dret"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "'Mode Toc' de pantalla tàctil - Flotant (sense clic)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Volum màxim"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Pujant el volum"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Volum mínim"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Baixant el volum"
 
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
index a2d6406..107be45 100644
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.4.0git\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-08 18:03+0100\n"
 "Last-Translator: Zbynìk Schwarz <zbynek.schwarz at gmail.com>\n"
 "Language-Team: \n"
+"Language: Cesky\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Cesky\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
 "X-Poedit-Language: Czech\n"
 "X-Poedit-Country: CZECH REPUBLIC\n"
@@ -48,10 +48,11 @@ msgstr "J
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -94,16 +95,16 @@ msgstr "Mapovat"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -439,13 +440,13 @@ msgstr "Hledat v seznamu her"
 msgid "Search:"
 msgstr "Hledat:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Nahrát hru:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -919,68 +920,104 @@ msgstr ""
 "Vzhled, který jste zvolili, nepodporuje Vá¹ souèasný jazyk. Pokud chcete "
 "tento vzhled pou¾ít, musíte nejdøíve pøepnout na jiný jazyk."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Neulo¾ena ¾ádná data"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "®ádný ulo¾ený èas"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "®ádná ulo¾ená doba hraní"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Smazat"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Opravdu chcete tuto ulo¾enou hru vymazat"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Datum:"
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Èas:"
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Doba hraní:"
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Bezejmenný ulo¾ený stav"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Ulo¾it"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Nelze ulo¾it hru."
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Jméno"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Vyberte Vzhled"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "GFX zakázáno"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "GFX zakázáno"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Standardní Vykreslovaè (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standardní (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Vykreslovaè s vyhlazenými hranami (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "S vyhlazenými hranami (16bpp)"
 
@@ -1084,16 +1121,16 @@ msgstr "Zru
 msgid "Unknown error"
 msgstr "Neznámá chyba"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "Hra v '%s' se zdá být neznámá."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr "Prosím nahlaste následující data týmu ScummVM spolu se jménem"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "hry, kterou jste se pokusili pøidat a její verzi/jazyk/atd.:"
 
@@ -1131,13 +1168,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~N~ávrat do Spou¹tìèe"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Ulo¾it hru:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1256,11 +1293,11 @@ msgstr "Pou
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr "Pou¾ít pùvodní obrazovky naètení/ulo¾ení místo ze ScummVM"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Obnovit hru"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Obnovit"
 
@@ -1982,7 +2019,7 @@ msgstr ""
 "Pøirozená podpora MIDI vy¾aduje Aktualizaci Roland od LucasArts,\n"
 "ale %s chybí. Místo toho je pou¾it AdLib."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -1993,7 +2030,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2004,7 +2041,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2057,11 +2094,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "Soubor videa '%s' nenalezen'"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Nelze naèíst stav hry ze souboru."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Nelze ulo¾it stav hry do souboru."
 
@@ -2193,12 +2230,13 @@ msgstr ""
 "ty od General MIDI. Je stále mo¾né, ¾e\n"
 "nìkteré stopy nebudou znít správnì."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "Úvod z diskety"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "Pou¾ít verzi úvodu z diskety (Pouze verze CD)"
 
 #: engines/sky/compact.cpp:130
@@ -2217,6 +2255,14 @@ msgstr ""
 "Soubor \"sky.cpt\" má nesprávnou velikost.\n"
 "Stáhnìte si ho, prosím, (znovu) z www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "Úvod z diskety"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "Pou¾ít verzi úvodu z diskety (Pouze verze CD)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2287,6 +2333,17 @@ msgstr "Zobrazit jmenovky objekt
 msgid "Show labels for objects on mouse hover"
 msgstr "Zobrazit jmenovky objektù pøi najetí my¹i"
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2537,11 +2594,11 @@ msgstr "Touchpad re
 msgid "Touchpad mode disabled."
 msgstr "Touchpad re¾im vypnut"
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Re¾im kliknutí"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2549,11 +2606,11 @@ msgstr "Re
 msgid "Left Click"
 msgstr "Levé Kliknutí"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Kliknutí prostøedním tlaèítkem"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2959,37 +3016,37 @@ msgstr "Spou
 msgid "Do you really want to quit?"
 msgstr "Opravdu chcete skonèit?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "'Re¾im «uknutí' Dotykové Obrazovky - Levé Kliknutí"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "'Re¾im «uknutí' Dotykové Obrazovky - Pravé Kliknutí"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "'Re¾im «uknutí' Dotykové Obrazovky - Najetí (Bez Kliknutí)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Maximální Hlasitost"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Zvy¹uji Hlasitost"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Minimální Hlasitost"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Sni¾uji Hlasitost"
 
diff --git a/po/da_DA.po b/po/da_DA.po
index c2d55f8..b30ef1b 100644
--- a/po/da_DA.po
+++ b/po/da_DA.po
@@ -6,14 +6,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-09 20:27+0100\n"
 "Last-Translator: Steffen Nyeland <steffen at nyeland.dk>\n"
 "Language-Team: Steffen Nyeland <steffen at nyeland.dk>\n"
+"Language: Dansk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Dansk\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-Language: Danish\n"
 "X-Poedit-Country: DENMARK\n"
@@ -35,8 +35,7 @@ msgstr "Tilg
 msgid "Go up"
 msgstr "Gå op"
 
-#: gui/browser.cpp:66
-#: gui/browser.cpp:68
+#: gui/browser.cpp:66 gui/browser.cpp:68
 msgid "Go to previous directory level"
 msgstr "Gå til forrige biblioteks niveau"
 
@@ -45,37 +44,25 @@ msgctxt "lowres"
 msgid "Go up"
 msgstr "Gå op"
 
-#: gui/browser.cpp:69
-#: gui/chooser.cpp:45
-#: gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:345
-#: gui/massadd.cpp:94
-#: gui/options.cpp:1228
-#: gui/saveload.cpp:64
-#: gui/saveload.cpp:173
-#: gui/themebrowser.cpp:54
-#: engines/engine.cpp:442
-#: engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
 msgstr "Fortryd"
 
-#: gui/browser.cpp:70
-#: gui/chooser.cpp:46
-#: gui/themebrowser.cpp:55
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
 msgid "Choose"
 msgstr "Vælg"
 
-#: gui/gui-manager.cpp:115
-#: engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140
-#: engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:191
-#: engines/scumm/help.cpp:209
+#: gui/gui-manager.cpp:115 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
 #: backends/keymapper/remap-dialog.cpp:52
 msgid "Close"
 msgstr "Luk"
@@ -84,23 +71,19 @@ msgstr "Luk"
 msgid "Mouse click"
 msgstr "Muse klik"
 
-#: gui/gui-manager.cpp:122
-#: base/main.cpp:300
+#: gui/gui-manager.cpp:122 base/main.cpp:300
 msgid "Display keyboard"
 msgstr "Vis tastatur"
 
-#: gui/gui-manager.cpp:126
-#: base/main.cpp:304
+#: gui/gui-manager.cpp:126 base/main.cpp:304
 msgid "Remap keys"
 msgstr "Kortlæg taster"
 
-#: gui/gui-manager.cpp:129
-#: base/main.cpp:307
+#: gui/gui-manager.cpp:129 base/main.cpp:307
 msgid "Toggle FullScreen"
 msgstr "Skift fuldskærm"
 
-#: gui/KeysDialog.h:36
-#: gui/KeysDialog.cpp:145
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
 msgid "Choose an action to map"
 msgstr "Vælg en handling at kortlægge"
 
@@ -108,32 +91,18 @@ msgstr "V
 msgid "Map"
 msgstr "Kortlæg"
 
-#: gui/KeysDialog.cpp:42
-#: gui/launcher.cpp:346
-#: gui/launcher.cpp:1001
-#: gui/launcher.cpp:1005
-#: gui/massadd.cpp:91
-#: gui/options.cpp:1229
-#: engines/engine.cpp:361
-#: engines/engine.cpp:372
-#: engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775
-#: engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420
-#: engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560
-#: engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577
-#: engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633
-#: engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455
-#: engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474
-#: engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
+#: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -142,16 +111,12 @@ msgstr "OK"
 msgid "Select an action and click 'Map'"
 msgstr "Vælg en handling og klik 'Kortlæg'"
 
-#: gui/KeysDialog.cpp:80
-#: gui/KeysDialog.cpp:102
-#: gui/KeysDialog.cpp:141
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
 #, c-format
 msgid "Associated key : %s"
 msgstr "Tilknyttet tast : %s"
 
-#: gui/KeysDialog.cpp:82
-#: gui/KeysDialog.cpp:104
-#: gui/KeysDialog.cpp:143
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
 #, c-format
 msgid "Associated key : none"
 msgstr "Tilknyttet tast : ingen"
@@ -172,11 +137,13 @@ msgstr "Spil"
 msgid "ID:"
 msgstr "ID:"
 
-#: gui/launcher.cpp:191
-#: gui/launcher.cpp:193
-#: gui/launcher.cpp:194
-msgid "Short game identifier used for referring to savegames and running the game from the command line"
-msgstr "Kort spil identifikator til brug for gemmer, og for at køre spillet fra kommandolinien"
+#: gui/launcher.cpp:191 gui/launcher.cpp:193 gui/launcher.cpp:194
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Kort spil identifikator til brug for gemmer, og for at køre spillet fra "
+"kommandolinien"
 
 #: gui/launcher.cpp:193
 msgctxt "lowres"
@@ -187,9 +154,7 @@ msgstr "ID:"
 msgid "Name:"
 msgstr "Navn:"
 
-#: gui/launcher.cpp:198
-#: gui/launcher.cpp:200
-#: gui/launcher.cpp:201
+#: gui/launcher.cpp:198 gui/launcher.cpp:200 gui/launcher.cpp:201
 msgid "Full title of the game"
 msgstr "Fuld titel på spillet"
 
@@ -202,17 +167,16 @@ msgstr "Navn:"
 msgid "Language:"
 msgstr "Sprog:"
 
-#: gui/launcher.cpp:204
-#: gui/launcher.cpp:205
-msgid "Language of the game. This will not turn your Spanish game version into English"
-msgstr "Spillets sprog. Dette vil ikke ændre din spanske version af spillet til engelsk"
+#: gui/launcher.cpp:204 gui/launcher.cpp:205
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Spillets sprog. Dette vil ikke ændre din spanske version af spillet til "
+"engelsk"
 
-#: gui/launcher.cpp:206
-#: gui/launcher.cpp:220
-#: gui/options.cpp:80
-#: gui/options.cpp:730
-#: gui/options.cpp:743
-#: gui/options.cpp:1199
+#: gui/launcher.cpp:206 gui/launcher.cpp:220 gui/options.cpp:80
+#: gui/options.cpp:730 gui/options.cpp:743 gui/options.cpp:1199
 #: audio/null.cpp:40
 msgid "<default>"
 msgstr "<standard>"
@@ -221,9 +185,7 @@ msgstr "<standard>"
 msgid "Platform:"
 msgstr "Platform:"
 
-#: gui/launcher.cpp:216
-#: gui/launcher.cpp:218
-#: gui/launcher.cpp:219
+#: gui/launcher.cpp:216 gui/launcher.cpp:218 gui/launcher.cpp:219
 msgid "Platform the game was originally designed for"
 msgstr "Platform som spillet oprindeligt var designet til"
 
@@ -236,15 +198,11 @@ msgstr "Platform:"
 msgid "Engine"
 msgstr "Motor"
 
-#: gui/launcher.cpp:239
-#: gui/options.cpp:1062
-#: gui/options.cpp:1079
+#: gui/launcher.cpp:239 gui/options.cpp:1062 gui/options.cpp:1079
 msgid "Graphics"
 msgstr "Grafik"
 
-#: gui/launcher.cpp:239
-#: gui/options.cpp:1062
-#: gui/options.cpp:1079
+#: gui/launcher.cpp:239 gui/options.cpp:1062 gui/options.cpp:1079
 msgid "GFX"
 msgstr "GFX"
 
@@ -257,8 +215,7 @@ msgctxt "lowres"
 msgid "Override global graphic settings"
 msgstr "Overstyr globale grafik indstillinger"
 
-#: gui/launcher.cpp:251
-#: gui/options.cpp:1085
+#: gui/launcher.cpp:251 gui/options.cpp:1085
 msgid "Audio"
 msgstr "Lyd"
 
@@ -271,13 +228,11 @@ msgctxt "lowres"
 msgid "Override global audio settings"
 msgstr "Overstyr globale lyd indstillinger"
 
-#: gui/launcher.cpp:265
-#: gui/options.cpp:1090
+#: gui/launcher.cpp:265 gui/options.cpp:1090
 msgid "Volume"
 msgstr "Lydstyrke"
 
-#: gui/launcher.cpp:267
-#: gui/options.cpp:1092
+#: gui/launcher.cpp:267 gui/options.cpp:1092
 msgctxt "lowres"
 msgid "Volume"
 msgstr "Lydstyrke"
@@ -291,8 +246,7 @@ msgctxt "lowres"
 msgid "Override global volume settings"
 msgstr "Overstyr globale lydstyrke indstillinger"
 
-#: gui/launcher.cpp:280
-#: gui/options.cpp:1100
+#: gui/launcher.cpp:280 gui/options.cpp:1100
 msgid "MIDI"
 msgstr "MIDI"
 
@@ -305,8 +259,7 @@ msgctxt "lowres"
 msgid "Override global MIDI settings"
 msgstr "Overstyr globale MIDI indstillinger"
 
-#: gui/launcher.cpp:294
-#: gui/options.cpp:1106
+#: gui/launcher.cpp:294 gui/options.cpp:1106
 msgid "MT-32"
 msgstr "MT-32"
 
@@ -319,13 +272,11 @@ msgctxt "lowres"
 msgid "Override global MT-32 settings"
 msgstr "Overstyr globale MT-32 indstillinger"
 
-#: gui/launcher.cpp:308
-#: gui/options.cpp:1113
+#: gui/launcher.cpp:308 gui/options.cpp:1113
 msgid "Paths"
 msgstr "Stier"
 
-#: gui/launcher.cpp:310
-#: gui/options.cpp:1115
+#: gui/launcher.cpp:310 gui/options.cpp:1115
 msgctxt "lowres"
 msgid "Paths"
 msgstr "Stier"
@@ -339,80 +290,54 @@ msgctxt "lowres"
 msgid "Game Path:"
 msgstr "Spil sti:"
 
-#: gui/launcher.cpp:324
-#: gui/options.cpp:1139
+#: gui/launcher.cpp:324 gui/options.cpp:1139
 msgid "Extra Path:"
 msgstr "Ekstra sti:"
 
-#: gui/launcher.cpp:324
-#: gui/launcher.cpp:326
-#: gui/launcher.cpp:327
+#: gui/launcher.cpp:324 gui/launcher.cpp:326 gui/launcher.cpp:327
 msgid "Specifies path to additional data used the game"
 msgstr "Angiver sti til ekstra data der bruges i spillet"
 
-#: gui/launcher.cpp:326
-#: gui/options.cpp:1141
+#: gui/launcher.cpp:326 gui/options.cpp:1141
 msgctxt "lowres"
 msgid "Extra Path:"
 msgstr "Ekstra sti:"
 
-#: gui/launcher.cpp:333
-#: gui/options.cpp:1123
+#: gui/launcher.cpp:333 gui/options.cpp:1123
 msgid "Save Path:"
 msgstr "Gemme sti:"
 
-#: gui/launcher.cpp:333
-#: gui/launcher.cpp:335
-#: gui/launcher.cpp:336
-#: gui/options.cpp:1123
-#: gui/options.cpp:1125
-#: gui/options.cpp:1126
+#: gui/launcher.cpp:333 gui/launcher.cpp:335 gui/launcher.cpp:336
+#: gui/options.cpp:1123 gui/options.cpp:1125 gui/options.cpp:1126
 msgid "Specifies where your savegames are put"
 msgstr "Angiver hvor dine gemmer bliver lagt"
 
-#: gui/launcher.cpp:335
-#: gui/options.cpp:1125
+#: gui/launcher.cpp:335 gui/options.cpp:1125
 msgctxt "lowres"
 msgid "Save Path:"
 msgstr "Gemme sti:"
 
-#: gui/launcher.cpp:354
-#: gui/launcher.cpp:453
-#: gui/launcher.cpp:511
-#: gui/launcher.cpp:565
-#: gui/options.cpp:1134
-#: gui/options.cpp:1142
-#: gui/options.cpp:1151
-#: gui/options.cpp:1258
-#: gui/options.cpp:1264
-#: gui/options.cpp:1272
-#: gui/options.cpp:1302
-#: gui/options.cpp:1308
-#: gui/options.cpp:1315
-#: gui/options.cpp:1408
-#: gui/options.cpp:1411
+#: gui/launcher.cpp:354 gui/launcher.cpp:453 gui/launcher.cpp:511
+#: gui/launcher.cpp:565 gui/options.cpp:1134 gui/options.cpp:1142
+#: gui/options.cpp:1151 gui/options.cpp:1258 gui/options.cpp:1264
+#: gui/options.cpp:1272 gui/options.cpp:1302 gui/options.cpp:1308
+#: gui/options.cpp:1315 gui/options.cpp:1408 gui/options.cpp:1411
 #: gui/options.cpp:1423
 msgctxt "path"
 msgid "None"
 msgstr "Ingen"
 
-#: gui/launcher.cpp:359
-#: gui/launcher.cpp:459
-#: gui/launcher.cpp:569
-#: gui/options.cpp:1252
-#: gui/options.cpp:1296
-#: gui/options.cpp:1414
+#: gui/launcher.cpp:359 gui/launcher.cpp:459 gui/launcher.cpp:569
+#: gui/options.cpp:1252 gui/options.cpp:1296 gui/options.cpp:1414
 #: backends/platform/wii/options.cpp:56
 msgid "Default"
 msgstr "Standard"
 
-#: gui/launcher.cpp:504
-#: gui/options.cpp:1417
+#: gui/launcher.cpp:504 gui/options.cpp:1417
 msgid "Select SoundFont"
 msgstr "Vælg SoundFont"
 
-#: gui/launcher.cpp:523
-#: gui/launcher.cpp:677
+#: gui/launcher.cpp:523 gui/launcher.cpp:677
 msgid "Select directory with game data"
 msgstr "Vælg bibliotek med spil data"
 
@@ -428,13 +353,11 @@ msgstr "V
 msgid "This game ID is already taken. Please choose another one."
 msgstr "Dette spil ID er allerede i brug. Vælg venligst et andet."
 
-#: gui/launcher.cpp:621
-#: engines/dialogs.cpp:110
+#: gui/launcher.cpp:621 engines/dialogs.cpp:110
 msgid "~Q~uit"
 msgstr "~A~fslut"
 
-#: gui/launcher.cpp:621
-#: backends/platform/sdl/macosx/appmenu_osx.mm:96
+#: gui/launcher.cpp:621 backends/platform/sdl/macosx/appmenu_osx.mm:96
 msgid "Quit ScummVM"
 msgstr "Slut ScummVM"
 
@@ -442,8 +365,7 @@ msgstr "Slut ScummVM"
 msgid "A~b~out..."
 msgstr "~O~m..."
 
-#: gui/launcher.cpp:622
-#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+#: gui/launcher.cpp:622 backends/platform/sdl/macosx/appmenu_osx.mm:70
 msgid "About ScummVM"
 msgstr "Om ScummVM"
 
@@ -471,13 +393,11 @@ msgstr "Ind~l~
 msgid "Load savegame for selected game"
 msgstr "Indlæs gemmer for det valgte spil"
 
-#: gui/launcher.cpp:633
-#: gui/launcher.cpp:1120
+#: gui/launcher.cpp:633 gui/launcher.cpp:1120
 msgid "~A~dd Game..."
 msgstr "~T~ilføj spil..."
 
-#: gui/launcher.cpp:633
-#: gui/launcher.cpp:640
+#: gui/launcher.cpp:633 gui/launcher.cpp:640
 msgid "Hold Shift for Mass Add"
 msgstr "Hold Skift for at tilføje flere"
 
@@ -485,8 +405,7 @@ msgstr "Hold Skift for at tilf
 msgid "~E~dit Game..."
 msgstr "~R~ediger spil..."
 
-#: gui/launcher.cpp:635
-#: gui/launcher.cpp:642
+#: gui/launcher.cpp:635 gui/launcher.cpp:642
 msgid "Change game options"
 msgstr "Ændre spil indstillinger"
 
@@ -494,13 +413,11 @@ msgstr "
 msgid "~R~emove Game"
 msgstr "~F~jern spil"
 
-#: gui/launcher.cpp:637
-#: gui/launcher.cpp:644
+#: gui/launcher.cpp:637 gui/launcher.cpp:644
 msgid "Remove game from the list. The game data files stay intact"
 msgstr "Fjerner spil fra listen. Spillets data filer forbliver uberørt"
 
-#: gui/launcher.cpp:640
-#: gui/launcher.cpp:1120
+#: gui/launcher.cpp:640 gui/launcher.cpp:1120
 msgctxt "lowres"
 msgid "~A~dd Game..."
 msgstr "~T~ilføj spil..."
@@ -519,36 +436,31 @@ msgstr "~F~jern spil"
 msgid "Search in game list"
 msgstr "Søg i spil liste"
 
-#: gui/launcher.cpp:656
-#: gui/launcher.cpp:1167
+#: gui/launcher.cpp:656 gui/launcher.cpp:1167
 msgid "Search:"
 msgstr "Søg:"
 
-#: gui/launcher.cpp:680
-#: engines/dialogs.cpp:114
-#: engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:716
-#: engines/cruise/menu.cpp:214
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Indlæs spil:"
 
-#: gui/launcher.cpp:680
-#: engines/dialogs.cpp:114
-#: engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:716
-#: engines/cruise/menu.cpp:214
-#: backends/platform/wince/CEActionsPocket.cpp:267
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
 msgstr "Indlæs"
 
 #: gui/launcher.cpp:788
-msgid "Do you really want to run the mass game detector? This could potentially add a huge number of games."
-msgstr "Vil du virkelig køre fler spils detektoren? Dette kunne potentielt tilføje et stort antal spil."
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Vil du virkelig køre fler spils detektoren? Dette kunne potentielt tilføje "
+"et stort antal spil."
 
-#: gui/launcher.cpp:789
-#: gui/launcher.cpp:937
+#: gui/launcher.cpp:789 gui/launcher.cpp:937
 #: backends/events/symbiansdl/symbiansdl-events.cpp:184
 #: backends/platform/wince/CEActionsPocket.cpp:326
 #: backends/platform/wince/CEActionsSmartphone.cpp:287
@@ -556,8 +468,7 @@ msgstr "Vil du virkelig k
 msgid "Yes"
 msgstr "Ja"
 
-#: gui/launcher.cpp:789
-#: gui/launcher.cpp:937
+#: gui/launcher.cpp:789 gui/launcher.cpp:937
 #: backends/events/symbiansdl/symbiansdl-events.cpp:184
 #: backends/platform/wince/CEActionsPocket.cpp:326
 #: backends/platform/wince/CEActionsSmartphone.cpp:287
@@ -587,7 +498,8 @@ msgstr "Dette spil underst
 
 #: gui/launcher.cpp:1005
 msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr "ScummVM kunne ikke finde en motor, istand til at afvikle det valgte spil!"
+msgstr ""
+"ScummVM kunne ikke finde en motor, istand til at afvikle det valgte spil!"
 
 #: gui/launcher.cpp:1119
 msgctxt "lowres"
@@ -598,8 +510,7 @@ msgstr "Tilf
 msgid "Mass Add..."
 msgstr "Tilføj flere..."
 
-#: gui/massadd.cpp:78
-#: gui/massadd.cpp:81
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
 msgid "... progress ..."
 msgstr "... fremskridt ..."
 
@@ -662,11 +573,8 @@ msgstr "44 kHz"
 msgid "48 kHz"
 msgstr "48 kHz"
 
-#: gui/options.cpp:248
-#: gui/options.cpp:474
-#: gui/options.cpp:575
-#: gui/options.cpp:644
-#: gui/options.cpp:852
+#: gui/options.cpp:248 gui/options.cpp:474 gui/options.cpp:575
+#: gui/options.cpp:644 gui/options.cpp:852
 msgctxt "soundfont"
 msgid "None"
 msgstr "Ingen"
@@ -695,8 +603,7 @@ msgstr "Grafik tilstand:"
 msgid "Render mode:"
 msgstr "Rendere tilstand:"
 
-#: gui/options.cpp:741
-#: gui/options.cpp:742
+#: gui/options.cpp:741 gui/options.cpp:742
 msgid "Special dithering modes supported by some games"
 msgstr "Speciel farvereduceringstilstand understøttet a nogle spil"
 
@@ -722,14 +629,11 @@ msgstr "Foretruk. enhed:"
 msgid "Music Device:"
 msgstr "Musik enhed:"
 
-#: gui/options.cpp:764
-#: gui/options.cpp:766
+#: gui/options.cpp:764 gui/options.cpp:766
 msgid "Specifies preferred sound device or sound card emulator"
 msgstr "Angiver foretukket lyd enhed eller lydkort emulator"
 
-#: gui/options.cpp:764
-#: gui/options.cpp:766
-#: gui/options.cpp:767
+#: gui/options.cpp:764 gui/options.cpp:766 gui/options.cpp:767
 msgid "Specifies output sound device or sound card emulator"
 msgstr "Angiver lyd udgangsenhed eller lydkorts emulator"
 
@@ -747,8 +651,7 @@ msgstr "Musik enhed:"
 msgid "AdLib emulator:"
 msgstr "AdLib emulator:"
 
-#: gui/options.cpp:793
-#: gui/options.cpp:794
+#: gui/options.cpp:793 gui/options.cpp:794
 msgid "AdLib is used for music in many games"
 msgstr "AdLib bliver brugt til musik i mange spil"
 
@@ -756,10 +659,13 @@ msgstr "AdLib bliver brugt til musik i mange spil"
 msgid "Output rate:"
 msgstr "Udgangsfrekvens:"
 
-#: gui/options.cpp:804
-#: gui/options.cpp:805
-msgid "Higher value specifies better sound quality but may be not supported by your soundcard"
-msgstr "Højere værdi angiver bedre lyd kvalitet, men understøttes måske ikke af dit lydkort"
+#: gui/options.cpp:804 gui/options.cpp:805
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Højere værdi angiver bedre lyd kvalitet, men understøttes måske ikke af dit "
+"lydkort"
 
 #: gui/options.cpp:815
 msgid "GM Device:"
@@ -773,8 +679,7 @@ msgstr "Angiver standard lyd enhed for Generel MIDI-udgang"
 msgid "Don't use General MIDI music"
 msgstr "Brug ikke Generel MIDI musik"
 
-#: gui/options.cpp:837
-#: gui/options.cpp:899
+#: gui/options.cpp:837 gui/options.cpp:899
 msgid "Use first available device"
 msgstr "Brug første tilgængelig enhed"
 
@@ -782,9 +687,7 @@ msgstr "Brug f
 msgid "SoundFont:"
 msgstr "SoundFont:"
 
-#: gui/options.cpp:849
-#: gui/options.cpp:851
-#: gui/options.cpp:852
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
 msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
 msgstr "SoundFont er understøttet af nogle lydkort, Fluidsynth og Timidity"
 
@@ -817,10 +720,13 @@ msgstr "Angiver standard lyd enhed for Roland MT-32/LAPC1/CM32I/CM64 udgang"
 msgid "True Roland MT-32 (disable GM emulation)"
 msgstr "Ægte Roland MT-32 (undlad GM emulering)"
 
-#: gui/options.cpp:875
-#: gui/options.cpp:877
-msgid "Check if you want to use your real hardware Roland-compatible sound device connected to your computer"
-msgstr "Kontroller om du vil bruge din rigtige hardware Roland-kompatible lyd enhed tilsluttet til din computer"
+#: gui/options.cpp:875 gui/options.cpp:877
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Kontroller om du vil bruge din rigtige hardware Roland-kompatible lyd enhed "
+"tilsluttet til din computer"
 
 #: gui/options.cpp:877
 msgctxt "lowres"
@@ -843,13 +749,11 @@ msgstr "Brug ikke Roland MT-32 musik"
 msgid "Text and Speech:"
 msgstr "Tekst og tale:"
 
-#: gui/options.cpp:920
-#: gui/options.cpp:930
+#: gui/options.cpp:920 gui/options.cpp:930
 msgid "Speech"
 msgstr "Tale"
 
-#: gui/options.cpp:921
-#: gui/options.cpp:931
+#: gui/options.cpp:921 gui/options.cpp:931
 msgid "Subtitles"
 msgstr "Undertekster"
 
@@ -905,9 +809,7 @@ msgstr "Mute alle"
 msgid "SFX volume:"
 msgstr "SFX lydstyrke:"
 
-#: gui/options.cpp:962
-#: gui/options.cpp:964
-#: gui/options.cpp:965
+#: gui/options.cpp:962 gui/options.cpp:964 gui/options.cpp:965
 msgid "Special sound effects volume"
 msgstr "Lydstyrke for specielle lydeffekter"
 
@@ -934,9 +836,7 @@ msgctxt "lowres"
 msgid "Theme Path:"
 msgstr "Tema sti:"
 
-#: gui/options.cpp:1139
-#: gui/options.cpp:1141
-#: gui/options.cpp:1142
+#: gui/options.cpp:1139 gui/options.cpp:1141 gui/options.cpp:1142
 msgid "Specifies path to additional data used by all games or ScummVM"
 msgstr "Angiver sti til ekstra data brugt af alle spil eller ScummVM"
 
@@ -1012,83 +912,115 @@ msgid "Select directory for plugins"
 msgstr "Vælg bibliotek for plugins"
 
 #: gui/options.cpp:1450
-msgid "The theme you selected does not support your current language. If you want to use this theme you need to switch to another language first."
-msgstr "Temaet du valgte understøtter ikke dit aktuelle sprog. Hvis du ønsker at bruge dette tema, skal du skifte til et andet sprog først."
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Temaet du valgte understøtter ikke dit aktuelle sprog. Hvis du ønsker at "
+"bruge dette tema, skal du skifte til et andet sprog først."
+
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
 
-#: gui/saveload.cpp:59
-#: gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Ingen dato gemt"
 
-#: gui/saveload.cpp:60
-#: gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Intet tidspunkt gemt"
 
-#: gui/saveload.cpp:61
-#: gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Ingen spilletid gemt"
 
-#: gui/saveload.cpp:68
-#: gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Slet"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Vil du virkelig slette denne gemmer?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Dato:"
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Tid:"
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Spilletid:"
 
-#: gui/saveload.cpp:305
-#: gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Unavngivet gemmetilstand"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Gem"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Mislykkedes at gemme spil"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Navn:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Vælg et tema"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "Deaktiveret GFX"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "Deaktiveret GFX"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Standard renderer (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standard (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Antialias renderer (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Antialias (16bpp)"
 
-#: gui/widget.cpp:322
-#: gui/widget.cpp:324
-#: gui/widget.cpp:330
-#: gui/widget.cpp:332
+#: gui/widget.cpp:322 gui/widget.cpp:324 gui/widget.cpp:330 gui/widget.cpp:332
 msgid "Clear value"
 msgstr "Slet værdi"
 
@@ -1101,15 +1033,13 @@ msgstr "Motor underst
 msgid "Menu"
 msgstr "Menu"
 
-#: base/main.cpp:290
-#: backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:290 backends/platform/symbian/src/SymbianActions.cpp:45
 #: backends/platform/wince/CEActionsPocket.cpp:45
 #: backends/platform/wince/CEActionsSmartphone.cpp:46
 msgid "Skip"
 msgstr "Spring over"
 
-#: base/main.cpp:293
-#: backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:293 backends/platform/symbian/src/SymbianActions.cpp:50
 #: backends/platform/wince/CEActionsPocket.cpp:42
 msgid "Pause"
 msgstr "Pause"
@@ -1190,16 +1120,17 @@ msgstr "Bruger annullerede"
 msgid "Unknown error"
 msgstr "Ukendt fejl"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "Spillet i '%s' ser ud til at være ukendt."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
-msgstr "Venligst, rapportere følgende data til ScummVM holdet sammen med navnet"
+msgstr ""
+"Venligst, rapportere følgende data til ScummVM holdet sammen med navnet"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "på det spil, du forsøgte at tilføje og dets version/sprog/ etc.:"
 
@@ -1227,29 +1158,23 @@ msgstr "H~j~
 msgid "~A~bout"
 msgstr "~O~m"
 
-#: engines/dialogs.cpp:104
-#: engines/dialogs.cpp:180
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:180
 msgid "~R~eturn to Launcher"
 msgstr "~R~etur til spiloversigt"
 
-#: engines/dialogs.cpp:106
-#: engines/dialogs.cpp:182
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:182
 msgctxt "lowres"
 msgid "~R~eturn to Launcher"
 msgstr "~R~etur til oversigt"
 
-#: engines/dialogs.cpp:115
-#: engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Gemmer:"
 
-#: engines/dialogs.cpp:115
-#: engines/agi/saveload.cpp:803
-#: engines/scumm/dialogs.cpp:187
-#: engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
+#: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1259,22 +1184,30 @@ msgid "Save"
 msgstr "Gem"
 
 #: engines/dialogs.cpp:144
-msgid "Sorry, this engine does not currently provide in-game help. Please consult the README for basic information, and for instructions on how to obtain further assistance."
-msgstr "Beklager, denne motor leverer i øjeblikket ikke spil hjælp. Se venligst README for grundlæggende oplysninger, og for at få instruktioner om, hvordan man får yderligere hjælp."
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+"Beklager, denne motor leverer i øjeblikket ikke spil hjælp. Se venligst "
+"README for grundlæggende oplysninger, og for at få instruktioner om, hvordan "
+"man får yderligere hjælp."
 
 #: engines/dialogs.cpp:228
 #, c-format
-msgid "Gamestate save failed (%s)! Please consult the README for basic information, and for instructions on how to obtain further assistance."
-msgstr "Gem af spiltilstand fejlede (%s)! Se venligst README for grundlæggende oplysninger, og for at få instruktioner om, hvordan man får yderligere hjælp."
+msgid ""
+"Gamestate save failed (%s)! Please consult the README for basic information, "
+"and for instructions on how to obtain further assistance."
+msgstr ""
+"Gem af spiltilstand fejlede (%s)! Se venligst README for grundlæggende "
+"oplysninger, og for at få instruktioner om, hvordan man får yderligere hjælp."
 
-#: engines/dialogs.cpp:301
-#: engines/mohawk/dialogs.cpp:109
+#: engines/dialogs.cpp:301 engines/mohawk/dialogs.cpp:109
 #: engines/mohawk/dialogs.cpp:174
 msgid "~O~K"
 msgstr "~O~K"
 
-#: engines/dialogs.cpp:302
-#: engines/mohawk/dialogs.cpp:110
+#: engines/dialogs.cpp:302 engines/mohawk/dialogs.cpp:110
 #: engines/mohawk/dialogs.cpp:175
 msgid "~C~ancel"
 msgstr "~F~ortryd"
@@ -1329,36 +1262,43 @@ msgstr ""
 
 #: engines/engine.cpp:426
 #, c-format
-msgid "Gamestate load failed (%s)! Please consult the README for basic information, and for instructions on how to obtain further assistance."
-msgstr "Indlæsning af spiltilstand fejlede (%s)! Se venligst README for grundlæggende oplysninger, og for at få instruktioner om, hvordan man får yderligere hjælp."
+msgid ""
+"Gamestate load failed (%s)! Please consult the README for basic information, "
+"and for instructions on how to obtain further assistance."
+msgstr ""
+"Indlæsning af spiltilstand fejlede (%s)! Se venligst README for "
+"grundlæggende oplysninger, og for at få instruktioner om, hvordan man får "
+"yderligere hjælp."
 
 #: engines/engine.cpp:439
-msgid "WARNING: The game you are about to start is not yet fully supported by ScummVM. As such, it is likely to be unstable, and any saves you make might not work in future versions of ScummVM."
-msgstr "ADVARSEL: Spillet du er ved at starte endnu ikke er fuldt understøttet af ScummVM. Således, er det sandsynligt, at det er ustabilt, og alle gemmer du foretager fungerer muligvis ikke i fremtidige versioner af ScummVM."
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+"ADVARSEL: Spillet du er ved at starte endnu ikke er fuldt understøttet af "
+"ScummVM. Således, er det sandsynligt, at det er ustabilt, og alle gemmer du "
+"foretager fungerer muligvis ikke i fremtidige versioner af ScummVM."
 
 #: engines/engine.cpp:442
 msgid "Start anyway"
 msgstr "Start alligevel"
 
-#: engines/agi/detection.cpp:145
-#: engines/dreamweb/detection.cpp:47
+#: engines/agi/detection.cpp:145 engines/dreamweb/detection.cpp:47
 #: engines/sci/detection.cpp:390
 msgid "Use original save/load screens"
 msgstr "Brug original gem/indlæs skærme"
 
-#: engines/agi/detection.cpp:146
-#: engines/dreamweb/detection.cpp:48
+#: engines/agi/detection.cpp:146 engines/dreamweb/detection.cpp:48
 #: engines/sci/detection.cpp:391
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr "Brug de originale gem/indlæs skærme, istedet for dem fra ScummVM"
 
-#: engines/agi/saveload.cpp:816
-#: engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Gendan spil:"
 
-#: engines/agi/saveload.cpp:816
-#: engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Gendan"
 
@@ -1391,8 +1331,12 @@ msgid "Use IMF/Yamaha FB-01 for MIDI output"
 msgstr "Brug IMF/Yamaha FB-01 til MIDI-udgang"
 
 #: engines/sci/detection.cpp:401
-msgid "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI output"
-msgstr "Bruge et IBM Musik Feature-kort eller et Yamaha FB-01 FM synth modul til MIDI-udgang"
+msgid ""
+"Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI "
+"output"
+msgstr ""
+"Bruge et IBM Musik Feature-kort eller et Yamaha FB-01 FM synth modul til "
+"MIDI-udgang"
 
 #: engines/sci/detection.cpp:411
 msgid "Use CD audio"
@@ -1407,7 +1351,8 @@ msgid "Use Windows cursors"
 msgstr "Brug Windows markør"
 
 #: engines/sci/detection.cpp:423
-msgid "Use the Windows cursors (smaller and monochrome) instead of the DOS ones"
+msgid ""
+"Use the Windows cursors (smaller and monochrome) instead of the DOS ones"
 msgstr "Brug Windows-markører (mindre og monokrome) i stedet for dem fra DOS"
 
 #: engines/sci/detection.cpp:433
@@ -1415,8 +1360,10 @@ msgid "Use silver cursors"
 msgstr "Brug sølv markør"
 
 #: engines/sci/detection.cpp:434
-msgid "Use the alternate set of silver cursors, instead of the normal golden ones"
-msgstr "Brug det alternative sæt af sølv markører, i stedet for de normale gyldne"
+msgid ""
+"Use the alternate set of silver cursors, instead of the normal golden ones"
+msgstr ""
+"Brug det alternative sæt af sølv markører, i stedet for de normale gyldne"
 
 #: engines/scumm/dialogs.cpp:175
 #, c-format
@@ -1453,8 +1400,7 @@ msgstr "Er du sikker p
 msgid "Play"
 msgstr "Spil"
 
-#: engines/scumm/dialogs.cpp:191
-#: engines/scumm/help.cpp:82
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
 #: engines/scumm/help.cpp:84
 #: backends/platform/symbian/src/SymbianActions.cpp:52
 #: backends/platform/wince/CEActionsPocket.cpp:44
@@ -1581,16 +1527,11 @@ msgstr "Mellemrum"
 msgid "Pause game"
 msgstr "Pause spil"
 
-#: engines/scumm/help.cpp:79
-#: engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95
-#: engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97
-#: engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99
-#: engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101
-#: engines/scumm/help.cpp:102
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
 msgid "Ctrl"
 msgstr "Ctrl"
 
@@ -1598,12 +1539,9 @@ msgstr "Ctrl"
 msgid "Load game state 1-10"
 msgstr "Indlæs spil tilstand 1-10"
 
-#: engines/scumm/help.cpp:80
-#: engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86
-#: engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101
-#: engines/scumm/help.cpp:102
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
 msgid "Alt"
 msgstr "Alt"
 
@@ -1611,8 +1549,7 @@ msgstr "Alt"
 msgid "Save game state 1-10"
 msgstr "Gem spil tilstand 1-10"
 
-#: engines/scumm/help.cpp:86
-#: engines/scumm/help.cpp:89
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
 msgid "Enter"
 msgstr "Enter"
 
@@ -1704,30 +1641,24 @@ msgstr "Spind ordspil p
 msgid "Main game controls:"
 msgstr "Vigtigste spilstyring:"
 
-#: engines/scumm/help.cpp:121
-#: engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
 #: engines/scumm/help.cpp:161
 msgid "Push"
 msgstr "Skub"
 
-#: engines/scumm/help.cpp:122
-#: engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
 #: engines/scumm/help.cpp:162
 msgid "Pull"
 msgstr "Træk"
 
-#: engines/scumm/help.cpp:123
-#: engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163
-#: engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
 #: engines/scumm/help.cpp:207
 msgid "Give"
 msgstr "Giv"
 
-#: engines/scumm/help.cpp:124
-#: engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164
-#: engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
 #: engines/scumm/help.cpp:208
 msgid "Open"
 msgstr "Åbn"
@@ -1740,54 +1671,43 @@ msgstr "G
 msgid "Get"
 msgstr "Tag"
 
-#: engines/scumm/help.cpp:128
-#: engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170
-#: engines/scumm/help.cpp:198
-#: engines/scumm/help.cpp:213
-#: engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
 #: engines/scumm/help.cpp:250
 msgid "Use"
 msgstr "Brug"
 
-#: engines/scumm/help.cpp:129
-#: engines/scumm/help.cpp:141
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
 msgid "Read"
 msgstr "Læs"
 
-#: engines/scumm/help.cpp:130
-#: engines/scumm/help.cpp:147
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
 msgid "New kid"
 msgstr "Nyt barn"
 
-#: engines/scumm/help.cpp:131
-#: engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
 #: engines/scumm/help.cpp:171
 msgid "Turn on"
 msgstr "Tænd"
 
-#: engines/scumm/help.cpp:132
-#: engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
 #: engines/scumm/help.cpp:172
 msgid "Turn off"
 msgstr "Sluk"
 
-#: engines/scumm/help.cpp:142
-#: engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
 #: engines/scumm/help.cpp:194
 msgid "Walk to"
 msgstr "Gå til"
 
-#: engines/scumm/help.cpp:143
-#: engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:195
-#: engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
 #: engines/scumm/help.cpp:227
 msgid "Pick up"
 msgstr "Tag op"
 
-#: engines/scumm/help.cpp:144
-#: engines/scumm/help.cpp:169
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
 msgid "What is"
 msgstr "Hvad er"
 
@@ -1811,13 +1731,11 @@ msgstr "Lav"
 msgid "Switch"
 msgstr "Skift"
 
-#: engines/scumm/help.cpp:166
-#: engines/scumm/help.cpp:228
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
 msgid "Look"
 msgstr "Se"
 
-#: engines/scumm/help.cpp:173
-#: engines/scumm/help.cpp:223
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
 msgid "Talk"
 msgstr "Tal"
 
@@ -1862,24 +1780,20 @@ msgstr "spil H p
 msgid "play C major on distaff"
 msgstr "spil C-dur på rok"
 
-#: engines/scumm/help.cpp:192
-#: engines/scumm/help.cpp:214
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
 msgid "puSh"
 msgstr "Skub"
 
-#: engines/scumm/help.cpp:193
-#: engines/scumm/help.cpp:215
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
 msgid "pull (Yank)"
 msgstr "træk (Y)"
 
-#: engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
 #: engines/scumm/help.cpp:248
 msgid "Talk to"
 msgstr "Tal til"
 
-#: engines/scumm/help.cpp:199
-#: engines/scumm/help.cpp:211
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
 msgid "Look at"
 msgstr "Lur på"
 
@@ -1911,10 +1825,8 @@ msgstr "Fremh
 msgid "Walk"
 msgstr "Gå"
 
-#: engines/scumm/help.cpp:225
-#: engines/scumm/help.cpp:234
-#: engines/scumm/help.cpp:241
-#: engines/scumm/help.cpp:249
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
 msgid "Inventory"
 msgstr "Oversigt"
 
@@ -1942,8 +1854,7 @@ msgstr "Slag"
 msgid "Kick"
 msgstr "Spark"
 
-#: engines/scumm/help.cpp:239
-#: engines/scumm/help.cpp:247
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
 msgid "Examine"
 msgstr "Undersøg"
 
@@ -1964,38 +1875,31 @@ msgstr "Gem / Indl
 msgid "Other game controls:"
 msgstr "Andre spil kontroller"
 
-#: engines/scumm/help.cpp:257
-#: engines/scumm/help.cpp:267
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
 msgid "Inventory:"
 msgstr "Oversigt:"
 
-#: engines/scumm/help.cpp:258
-#: engines/scumm/help.cpp:274
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
 msgid "Scroll list up"
 msgstr "Rul liste op"
 
-#: engines/scumm/help.cpp:259
-#: engines/scumm/help.cpp:275
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
 msgid "Scroll list down"
 msgstr "Rul liste ned"
 
-#: engines/scumm/help.cpp:260
-#: engines/scumm/help.cpp:268
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
 msgid "Upper left item"
 msgstr "Øverste venstre punkt"
 
-#: engines/scumm/help.cpp:261
-#: engines/scumm/help.cpp:270
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
 msgid "Lower left item"
 msgstr "Nederste højre punkt"
 
-#: engines/scumm/help.cpp:262
-#: engines/scumm/help.cpp:271
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
 msgid "Upper right item"
 msgstr "Øverste højre punkt"
 
-#: engines/scumm/help.cpp:263
-#: engines/scumm/help.cpp:273
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
 msgid "Lower right item"
 msgstr "Nederste venstre punkt"
 
@@ -2007,8 +1911,7 @@ msgstr "Midterste h
 msgid "Middle right item"
 msgstr "Midterste højre punkt"
 
-#: engines/scumm/help.cpp:279
-#: engines/scumm/help.cpp:284
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
 msgid "Switching characters:"
 msgstr "Skift personer:"
 
@@ -2024,8 +1927,7 @@ msgstr "Tredie barn"
 msgid "Fighting controls (numpad):"
 msgstr "Kamp kontroller (numtast):"
 
-#: engines/scumm/help.cpp:295
-#: engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
 #: engines/scumm/help.cpp:297
 msgid "Step back"
 msgstr "Skridt tilbage"
@@ -2119,8 +2021,7 @@ msgstr ""
 "Indbygget MIDI understøttelse kræver Roland opgradering fra LucasArts,\n"
 "men %s mangler. Bruger AdLib i stedet."
 
-#: engines/scumm/scumm.cpp:2278
-#: engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -2131,8 +2032,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285
-#: engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2143,8 +2043,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297
-#: engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2156,12 +2055,17 @@ msgstr ""
 "%s"
 
 #: engines/scumm/scumm.cpp:2512
-msgid "Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' directory inside the Tentacle game directory."
-msgstr "Normalt ville Maniac Mansion begynde nu. Men ScummVM kan ikke gøre det endnu. For at spille det, gå til 'Tilføj spil' i ScummVM start-menuen og vælg 'Maniac' mappen inde i Tentacle spillets mappe."
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Normalt ville Maniac Mansion begynde nu. Men ScummVM kan ikke gøre det "
+"endnu. For at spille det, gå til 'Tilføj spil' i ScummVM start-menuen og "
+"vælg 'Maniac' mappen inde i Tentacle spillets mappe."
 
 #. I18N: Option for fast scene switching
-#: engines/mohawk/dialogs.cpp:92
-#: engines/mohawk/dialogs.cpp:171
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
 msgid "~Z~ip Mode Activated"
 msgstr "~Z~ip tilstand aktiveret"
 
@@ -2191,14 +2095,12 @@ msgstr "~V~andeffekter aktiveret"
 msgid "Cutscene file '%s' not found!"
 msgstr "Filmsekvens fil '%s' ikke fundet!"
 
-#: engines/gob/inter_playtoons.cpp:256
-#: engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Mislykkedes at indlæse spil tilstand fra fil."
 
-#: engines/gob/inter_v2.cpp:1357
-#: engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Mislykkedes at gemme spil tilstand til fil."
 
@@ -2331,13 +2233,12 @@ msgstr ""
 "at nogle stykker ikke lyder korrekt."
 
 #: engines/queen/queen.cpp:59
-#: engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "Diskette intro"
+msgid "Alternative intro"
+msgstr ""
 
 #: engines/queen/queen.cpp:60
-#: engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "Brug diskette versionens intro (kun CD version)"
 
 #: engines/sky/compact.cpp:130
@@ -2356,38 +2257,50 @@ msgstr ""
 "\"sky.cpt\" filen har en forkert størrelse.\n"
 "Venligst (gen)hent den fra www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "Diskette intro"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "Brug diskette versionens intro (kun CD version)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
 msgstr "PSX stream filmsekvens '%s' kan ikke afspilles i palette tilstand"
 
-#: engines/sword1/animation.cpp:560
-#: engines/sword2/animation.cpp:455
+#: engines/sword1/animation.cpp:560 engines/sword2/animation.cpp:455
 msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr "DXA filmsekvenser fundet, men ScummVM er bygget uden zlib understøttelse"
+msgstr ""
+"DXA filmsekvenser fundet, men ScummVM er bygget uden zlib understøttelse"
 
-#: engines/sword1/animation.cpp:570
-#: engines/sword2/animation.cpp:465
+#: engines/sword1/animation.cpp:570 engines/sword2/animation.cpp:465
 msgid "MPEG2 cutscenes are no longer supported"
 msgstr "MPEG2 filmsekvenser understøttes ikke længere"
 
-#: engines/sword1/animation.cpp:576
-#: engines/sword2/animation.cpp:473
+#: engines/sword1/animation.cpp:576 engines/sword2/animation.cpp:473
 #, c-format
 msgid "Cutscene '%s' not found"
 msgstr "Filmsekvens '%s' ikke fundet"
 
 #: engines/sword1/control.cpp:863
 msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be converted.\n"
-"The old save game format is no longer supported, so you will not be able to load your games if you don't convert them.\n"
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
 "\n"
-"Press OK to convert them now, otherwise you will be asked again the next time you start the game.\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
 msgstr ""
-"ScummVM har konstateret, at du har gamle gemmer for Broken Sword 1, der skal konverteres.\n"
-"Det gamle gemte spil format understøttes ikke længere, så vil du ikke være i stand til at indlæse dine spil, hvis du ikke konvertere dem.\n"
+"ScummVM har konstateret, at du har gamle gemmer for Broken Sword 1, der skal "
+"konverteres.\n"
+"Det gamle gemte spil format understøttes ikke længere, så vil du ikke være i "
+"stand til at indlæse dine spil, hvis du ikke konvertere dem.\n"
 "\n"
-"Tryk på OK for at konvertere dem nu, ellers vil du blive spurgt igen, næste gang du starter spillet.\n"
+"Tryk på OK for at konvertere dem nu, ellers vil du blive spurgt igen, næste "
+"gang du starter spillet.\n"
 
 #: engines/sword1/control.cpp:1232
 #, c-format
@@ -2411,8 +2324,10 @@ msgid "This is the end of the Broken Sword 1 Demo"
 msgstr "Dette er slutningen af Broken Sword 1 demoen"
 
 #: engines/sword2/animation.cpp:435
-msgid "PSX cutscenes found but ScummVM has been built without RGB color support"
-msgstr "PSX filmsekvenser fundet, men ScummVM er bygget uden RGB farve understøttelse"
+msgid ""
+"PSX cutscenes found but ScummVM has been built without RGB color support"
+msgstr ""
+"PSX filmsekvenser fundet, men ScummVM er bygget uden RGB farve understøttelse"
 
 #: engines/sword2/sword2.cpp:79
 msgid "Show object labels"
@@ -2422,6 +2337,17 @@ msgstr "Vis labels p
 msgid "Show labels for objects on mouse hover"
 msgstr "Vis labels for genstande musen er henover"
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2441,13 +2367,17 @@ msgstr "Gemmer spil..."
 
 #: engines/parallaction/saveload.cpp:272
 msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be renamed.\n"
-"The old names are no longer supported, so you will not be able to load your games if you don't convert them.\n"
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
 "\n"
 "Press OK to convert them now, otherwise you will be asked next time.\n"
 msgstr ""
-"ScummVM har konstateret, at du har gamle gemmer for Nippon Safes, der skal omdøbes.\n"
-"De gamle navne er ikke længere understøttet, så du vil ikke være i stand til at indlæse dine spil, hvis du ikke konvertere dem.\n"
+"ScummVM har konstateret, at du har gamle gemmer for Nippon Safes, der skal "
+"omdøbes.\n"
+"De gamle navne er ikke længere understøttet, så du vil ikke være i stand til "
+"at indlæse dine spil, hvis du ikke konvertere dem.\n"
 "\n"
 "Tryk på OK for at konvertere dem nu, ellers vil du blive spurgt næste gang.\n"
 
@@ -2457,11 +2387,13 @@ msgstr "ScummVM konverterede med succes alle dine gemmer."
 
 #: engines/parallaction/saveload.cpp:321
 msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all your files have been converted.\n"
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
 "\n"
 "Please report to the team."
 msgstr ""
-"ScummVM udskrev nogle advarsler i dit konsol vindue, og kan ikke garantere at alle dine filer er blevet konverteret.\n"
+"ScummVM udskrev nogle advarsler i dit konsol vindue, og kan ikke garantere "
+"at alle dine filer er blevet konverteret.\n"
 "\n"
 "Venligst rapportér til holdet."
 
@@ -2475,30 +2407,43 @@ msgstr "DOSBox OPL emulator"
 
 #: audio/mididrv.cpp:209
 #, c-format
-msgid "The selected audio device '%s' was not found (e.g. might be turned off or disconnected)."
-msgstr "Den valgte lydenhed '%s' blev ikke fundet (kan f.eks være slukket eller afbrudt)."
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"Den valgte lydenhed '%s' blev ikke fundet (kan f.eks være slukket eller "
+"afbrudt)."
 
-#: audio/mididrv.cpp:209
-#: audio/mididrv.cpp:221
-#: audio/mididrv.cpp:257
+#: audio/mididrv.cpp:209 audio/mididrv.cpp:221 audio/mididrv.cpp:257
 #: audio/mididrv.cpp:272
 msgid "Attempting to fall back to the next available device..."
 msgstr "Forsøger at falde tilbage til den næste tilgængelig enhed..."
 
 #: audio/mididrv.cpp:221
 #, c-format
-msgid "The selected audio device '%s' cannot be used. See log file for more information."
-msgstr "Den valgte lydenhed '%s' kan ikke bruges. Se log filen for mere information."
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"Den valgte lydenhed '%s' kan ikke bruges. Se log filen for mere information."
 
 #: audio/mididrv.cpp:257
 #, c-format
-msgid "The preferred audio device '%s' was not found (e.g. might be turned off or disconnected)."
-msgstr "Den foretrukne lydenhed '%s' blev ikke fundet (kan f.eks være slukket eller afbrudt)."
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"Den foretrukne lydenhed '%s' blev ikke fundet (kan f.eks være slukket eller "
+"afbrudt)."
 
 #: audio/mididrv.cpp:272
 #, c-format
-msgid "The preferred audio device '%s' cannot be used. See log file for more information."
-msgstr "Den foretrukne lydenhed '%s' kan ikke bruges. Se log filen for mere information."
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"Den foretrukne lydenhed '%s' kan ikke bruges. Se log filen for mere "
+"information."
 
 #: audio/null.h:43
 msgid "No music"
@@ -2652,11 +2597,11 @@ msgstr "Pegeplade tilstand aktiveret."
 msgid "Touchpad mode disabled."
 msgstr "Pegeplade tilstand deaktiveret."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Klik tilstand"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2664,11 +2609,11 @@ msgstr "Klik tilstand"
 msgid "Left Click"
 msgstr "Venstre klik"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Miderste klik"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2851,13 +2796,11 @@ msgstr "GC Pad acceleration:"
 msgid "DVD"
 msgstr "DVD"
 
-#: backends/platform/wii/options.cpp:89
-#: backends/platform/wii/options.cpp:101
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
 msgid "Status:"
 msgstr "Status:"
 
-#: backends/platform/wii/options.cpp:90
-#: backends/platform/wii/options.cpp:102
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
 msgid "Unknown"
 msgstr "Ukendt"
 
@@ -3035,7 +2978,8 @@ msgstr "Tildel h
 
 #: backends/platform/wince/wince-sdl.cpp:519
 msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr "Du skal tildele en tast til 'Højreklik' handlingen for at spille dette spil"
+msgstr ""
+"Du skal tildele en tast til 'Højreklik' handlingen for at spille dette spil"
 
 #: backends/platform/wince/wince-sdl.cpp:528
 msgid "Map hide toolbar action"
@@ -3043,7 +2987,9 @@ msgstr "Tildel \"skjul v
 
 #: backends/platform/wince/wince-sdl.cpp:532
 msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr "Du skal tildele en tast til 'Skjul værktøjslinje' handlingen for at spille dette spil"
+msgstr ""
+"Du skal tildele en tast til 'Skjul værktøjslinje' handlingen for at spille "
+"dette spil"
 
 #: backends/platform/wince/wince-sdl.cpp:541
 msgid "Map Zoom Up action (optional)"
@@ -3054,8 +3000,11 @@ msgid "Map Zoom Down action (optional)"
 msgstr "Tildel Forstør handling (valgfri)"
 
 #: backends/platform/wince/wince-sdl.cpp:552
-msgid "Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr "Glem ikke at tildele en tast til 'Skjul værktøjslinje' handling for at se hele oversigten"
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Glem ikke at tildele en tast til 'Skjul værktøjslinje' handling for at se "
+"hele oversigten"
 
 #: backends/events/default/default-events.cpp:191
 msgid "Do you really want to return to the Launcher?"
@@ -3069,37 +3018,37 @@ msgstr "Oversigt"
 msgid "Do you really want to quit?"
 msgstr "Vil du virkelig afslutte?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Touchscreen 'Tap Mode' - Venstre Klik"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Touchscreen 'Tap Mode' - Højre Klik"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Touchscreen 'Tap Mode' - Henover (Ingen Klik)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Maximal lydstyrke"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Hæver lydstyrke"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Minimal lydstyrke"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Sænker lydstyrke"
 
@@ -3144,20 +3093,20 @@ msgstr "Klik deaktiveret"
 
 #~ msgid "Hercules Amber"
 #~ msgstr "Hercules brun"
-#~ msgctxt "lowres"
 
+#~ msgctxt "lowres"
 #~ msgid "Hercules Green"
 #~ msgstr "Hercules grøn"
-#~ msgctxt "lowres"
 
+#~ msgctxt "lowres"
 #~ msgid "Hercules Amber"
 #~ msgstr "Hercules brun"
 
 #, fuzzy
 #~ msgid "Save game failed!"
 #~ msgstr "Gemmer:"
-#~ msgctxt "lowres"
 
+#~ msgctxt "lowres"
 #~ msgid "Add Game..."
 #~ msgstr "Tilføj spil..."
 
diff --git a/po/de_DE.po b/po/de_DE.po
index bb53f4e..a18bfb7 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -7,15 +7,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.5.0git\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-14 22:49+0100\n"
 "Last-Translator: Simon Sawatzki <SimSaw at gmx.de>\n"
 "Language-Team: Simon Sawatzki <SimSaw at gmx.de> (Lead), Lothar Serra Mari "
 "(Contributor)\n"
+"Language: Deutsch\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Deutsch\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #: gui/about.cpp:91
@@ -46,10 +46,11 @@ msgstr "Pfad hoch"
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -92,16 +93,16 @@ msgstr "Zuweisen"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -441,13 +442,13 @@ msgstr "In Spieleliste suchen"
 msgid "Search:"
 msgstr "Suchen:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Spiel laden:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -935,68 +936,104 @@ msgstr ""
 "dieses Thema benutzen wollen, müssen Sie erst zu einer anderen Sprache "
 "wechseln."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Kein Datum gespeichert"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Keine Zeit gespeichert"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Keine Spielzeit gespeichert"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Löschen"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Diesen Spielstand wirklich löschen?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Datum: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Zeit: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Spieldauer: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Unbenannt"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Speichern"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Konnte Spielstand nicht speichern."
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Name:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Thema auswählen"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "GFX ausgeschaltet"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "GFX ausgeschaltet"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Standard-Renderer (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standard (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Kantenglättung (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Kantenglättung (16bpp)"
 
@@ -1100,18 +1137,18 @@ msgstr "Abbruch durch Benutzer"
 msgid "Unknown error"
 msgstr "Unbekannter Fehler"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "Das Spiel im Verzeichnis \"%s\" scheint nicht bekannt zu sein."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr ""
 "Bitte geben Sie die folgenden Daten auf Englisch an das ScummVM-Team weiter "
 "sowie"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr ""
 "den Namen des Spiels, das Sie hinzufügen wollten, als auch die Version/"
@@ -1151,13 +1188,13 @@ msgid "~R~eturn to Launcher"
 msgstr "Zur Spiele~l~iste"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Speichern:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1280,11 +1317,11 @@ msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
 "Verwendet die originalen Menüs zum Speichern und Laden statt der von ScummVM."
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Spiel laden:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Laden"
 
@@ -2011,7 +2048,7 @@ msgstr ""
 "Roland-Upgrade von LucasArts, aber %s\n"
 "fehlt. Stattdessen wird AdLib verwendet."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -2022,7 +2059,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2033,7 +2070,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2087,11 +2124,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "Zwischensequenz \"%s\" nicht gefunden!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Konnte Spielstand aus Datei nicht laden."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Konnte Spielstand nicht in Datei speichern."
 
@@ -2225,12 +2262,13 @@ msgstr ""
 "möglich, dass ein paar Musikstücke nicht\n"
 "richtig abgespielt werden."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "Disketten-Vorspann"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "Verwendet den Vorspann der Diskettenversion (nur bei CD-Version)."
 
 #: engines/sky/compact.cpp:130
@@ -2251,6 +2289,14 @@ msgstr ""
 "Bitte laden Sie diese Datei (erneut) von\n"
 "www.scummvm.org herunter."
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "Disketten-Vorspann"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "Verwendet den Vorspann der Diskettenversion (nur bei CD-Version)."
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2326,6 +2372,17 @@ msgstr "Objektnamen zeigen"
 msgid "Show labels for objects on mouse hover"
 msgstr "Zeigt Objektbeschriftungen bei Mausberührung an."
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2577,11 +2634,11 @@ msgstr "Touchpad-Modus aktiviert."
 msgid "Touchpad mode disabled."
 msgstr "Touchpad-Modus ausgeschaltet."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Klickmodus"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2589,11 +2646,11 @@ msgstr "Klickmodus"
 msgid "Left Click"
 msgstr "Linksklick"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Mittelklick"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2999,37 +3056,37 @@ msgstr "Spieleliste"
 msgid "Do you really want to quit?"
 msgstr "Möchten Sie wirklich beenden?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Berührungsbildschirm-Tipp-Modus - Linksklick"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Berührungsbildschirm-Tipp-Modus - Rechtsklick"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Berührungsbildschirm-Tipp-Modus - schweben (kein Klick)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Höchste Lautstärke"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Lautstärke höher"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Niedrigste Lautstärke"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Lautstärke niedriger"
 
diff --git a/po/es_ES.po b/po/es_ES.po
index 8e23894..9f767da 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.4.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-08 18:19+0100\n"
 "Last-Translator: Tomás Maidagan\n"
 "Language-Team: \n"
+"Language: Espanol\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Espanol\n"
 
 #: gui/about.cpp:91
 #, c-format
@@ -44,10 +44,11 @@ msgstr "Arriba"
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -90,16 +91,16 @@ msgstr "Asignar"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "Aceptar"
@@ -437,13 +438,13 @@ msgstr "Buscar en la lista de juegos"
 msgid "Search:"
 msgstr "Buscar:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Cargar juego:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -924,68 +925,104 @@ msgstr ""
 "El tema seleccionado no es compatible con el idioma actual. Si quieres usar "
 "este tema debes cambiar a otro idioma primero."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "No hay fecha guardada"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "No hay hora guardada"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "No hay tiempo guardado"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Borrar"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "¿Seguro que quieres borrar esta partida?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Fecha: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Hora: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Tiempo: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Partida sin nombre"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Guardar"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Fallo al guardar la partida"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Nombre:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Selecciona un tema"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "GFX desactivados"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "GFX desactivados"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Estándar (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Estándar (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Suavizado (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Suavizado (16bpp)"
 
@@ -1089,16 +1126,16 @@ msgstr "Cancel
 msgid "Unknown error"
 msgstr "Error desconocido"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "El juego en '%s' parece ser desconocido."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr "Por favor, envía al equipo de ScummVM esta información junto al nombre"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "del juego que has intentado añadir y su versión/idioma/etc.:"
 
@@ -1136,13 +1173,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~V~olver al lanzador"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Guardar partida"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1264,11 +1301,11 @@ msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
 "Utilizar las pantallas de guardar/cargar originales, en vez de las de ScummVM"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Cargar partida:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Cargar"
 
@@ -1992,7 +2029,7 @@ msgstr ""
 "El soporte MIDI nativo requiere la actualización Roland de LucasArts,\n"
 "pero %s no está disponible. Se usará AdLib."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -2003,7 +2040,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2014,7 +2051,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2067,11 +2104,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "No se ha encontrado el vídeo '%s'"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Fallo al cargar el estado del juego desde el archivo."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Fallo al guardar el estado del juego en el archivo."
 
@@ -2203,12 +2240,13 @@ msgstr ""
 "a los de General MIDI, pero es posible que algunas\n"
 "de las pistas no suenen correctamente."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "Intro de disquete"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr ""
 "Usa la introducción de la versión en disquete (solo para la versión CD)"
 
@@ -2228,6 +2266,15 @@ msgstr ""
 "El archivo \"sky.cpt\" tiene un tamaño incorrecto.\n"
 "Por favor, vuelve a bajarlo de www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "Intro de disquete"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr ""
+"Usa la introducción de la versión en disquete (solo para la versión CD)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2301,6 +2348,17 @@ msgstr "Mostrar etiquetas de objetos"
 msgid "Show labels for objects on mouse hover"
 msgstr "Muestra las etiquetas de los objetos al pasar el ratón"
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2552,11 +2610,11 @@ msgstr "Modo Touchpad activado."
 msgid "Touchpad mode disabled."
 msgstr "Modo Touchpad desactivado."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Modo clic"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2564,11 +2622,11 @@ msgstr "Modo clic"
 msgid "Left Click"
 msgstr "Clic izquierdo"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Clic central"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2973,37 +3031,37 @@ msgstr "Lanzador"
 msgid "Do you really want to quit?"
 msgstr "¿Realmente quieres salir?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "'Modo toque' de pantalla táctil - Clic izquierdo"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "'Modo toque' de pantalla táctil - Clic derecho"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "'Modo toque' de pantalla táctil - Flotante (sin clic)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Volumen máximo"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Aumentando el volumen"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Volumen mínimo"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Bajando el volumen"
 
diff --git a/po/eu.po b/po/eu.po
index 5bc553e..b0fd177 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.5.0git\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2011-12-15 14:53+0100\n"
 "Last-Translator: Mikel Iturbe Urretxa <mikel at hamahiru.org>\n"
 "Language-Team: Librezale <librezale at librezale.org>\n"
+"Language: Euskara\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Euskara\n"
 
 #: gui/about.cpp:91
 #, c-format
@@ -44,10 +44,11 @@ msgstr "Joan gora"
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -90,16 +91,16 @@ msgstr "Esleitu"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "Ados"
@@ -437,13 +438,13 @@ msgstr "Bilatu joko-zerrendan"
 msgid "Search:"
 msgstr "Bilatu:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Jokoa kargatu:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -925,68 +926,104 @@ msgstr ""
 "Aukeraturiko gaia ez da zure hizkuntzarekin bateragarria. Gai hau erabili "
 "nahi baduzu, aurretik beste hizkuntza batera pasa behar duzu."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Ez dago datarik gordeta"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Ez dago ordurik gordeta"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Ez dago denborarik gordeta"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Ezabatu"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Ezabatu partida gorde hau?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Data:"
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Ordua"
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Denbora:"
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Titulurik gabeko partida"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Gorde"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Ezin izan da jokoa gorde"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Izena:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Gaia aukeratu"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "GFX desgaituta"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "GFX desgaituta"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Estandarra (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Estandarra (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Lausotua (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Lausotua (16bpp)"
 
@@ -1090,16 +1127,16 @@ msgstr "Erabiltzaileak utzia"
 msgid "Unknown error"
 msgstr "Errore ezezaguna"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "'%s'-(e)ko jokoa ezezaguna dela dirudi"
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr "Mesedez, bidali hurrengo datuak ScummVM taldeari gehitzen saiatu zaren"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "jokoaren izen, bertsio/hizkuntza/e.a.-ekin batera:"
 
@@ -1137,13 +1174,13 @@ msgid "~R~eturn to Launcher"
 msgstr "It~z~uli abiarazlera"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Gorde jokoa:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1261,11 +1298,11 @@ msgstr ""
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Jokoa kargatu:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Kargatu"
 
@@ -1989,7 +2026,7 @@ msgstr ""
 "MIDI euskarri natiboak LucasArts-en Roland eguneraketa behar du,\n"
 "baina %s ez dago eskuragarri. AdLib erabiliko da."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -2000,7 +2037,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2011,7 +2048,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2064,11 +2101,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "'%s' bideo fitxategia ez da aurkitu!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Ezin izan da fitxategitik jokoa kargatu."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Ezin izan da jokoa fitxategira gorde."
 
@@ -2203,12 +2240,12 @@ msgstr ""
 "General MIDIkoetara egokitzen saiatuko gara,\n"
 "baina posible da pista batzuk egoki ez entzutea."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
 msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+msgid "Use an alternative game intro (CD version only)"
 msgstr ""
 
 #: engines/sky/compact.cpp:130
@@ -2227,6 +2264,14 @@ msgstr ""
 "\"sky.cpt\" fitxategiak tamaina desegokia du.\n"
 "Mesdez, jaitsi ezazu (berriz) www.scummvm.org-etik"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr ""
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr ""
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2300,6 +2345,17 @@ msgstr ""
 msgid "Show labels for objects on mouse hover"
 msgstr ""
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2551,11 +2607,11 @@ msgstr "Touchpad modua gaituta."
 msgid "Touchpad mode disabled."
 msgstr "Touchpad modua desgaituta."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Klikatzeko modua"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2563,11 +2619,11 @@ msgstr "Klikatzeko modua"
 msgid "Left Click"
 msgstr "Ezker-klika"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Erdiko klika"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2972,37 +3028,37 @@ msgstr "Abiarazlea"
 msgid "Do you really want to quit?"
 msgstr "Benetan irten?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Ukimen-pantailako 'kolpetxo modua' - Ezker klika"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Ukimen-pantailako 'kolpetxo modua' - Eskuin klika"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Ukimen-pantailako 'kolpetxo modua' - Flotatu (klikik ez)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Bolumen maximoa"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Bolumena igotzen"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Bolumen minimoa"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Bolumena jaisten"
 
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 5faab55..cd98af1 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-08 12:24+0100\n"
 "Last-Translator: Thierry Crozat <criezy at scummvm.org>\n"
 "Language-Team: French <scummvm-devel at lists.sf.net>\n"
+"Language: Francais\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Francais\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
 #: gui/about.cpp:91
@@ -45,10 +45,11 @@ msgstr "Remonter"
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -91,16 +92,16 @@ msgstr "Affecter"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -439,13 +440,13 @@ msgstr "Recherche dans la liste de jeux"
 msgid "Search:"
 msgstr "Filtre:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Charger le jeu:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -930,68 +931,104 @@ msgstr ""
 "Le thème que vous avez sélectioné ne support pas la langue française. Si "
 "vous voulez l'utiliser vous devez d'abord changer de langue."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Date inconnue"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Heure inconnue"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Durée de jeu inconnue"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Supprimer"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Voulez-vous vraiment supprimer cette sauvegarde?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Date: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Heure: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Durée de jeu: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Sauvegarde sans nom"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Sauver"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Échec de la sauvegarde."
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Nom:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Sélectionnez un Thème"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "GFX désactivé"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "GFX désactivé"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Rendu Standard (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standard (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Rendu Anti-crénelé (16 bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Anti-crénelé (16 bpp)"
 
@@ -1095,18 +1132,18 @@ msgstr "Annuler par l'utilisateur"
 msgid "Unknown error"
 msgstr "Erreur inconnue"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "Le jeu dans '%s' n'est pas reconnu."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr ""
 "Veuillez reporter les informations suivantes à l'équipe ScummVM ainsi que le "
 "nom"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "du jeu que vous avez essayé d'ajouter, sa version, le langage, etc..."
 
@@ -1144,13 +1181,13 @@ msgid "~R~eturn to Launcher"
 msgstr "Retour au ~L~anceur"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Sauvegarde:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1271,11 +1308,11 @@ msgstr ""
 "Utiliser les dialogues sauvegarde/chargement d'origine plutôt que ceux de "
 "ScummVM"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Charger le jeu:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Charger"
 
@@ -2001,7 +2038,7 @@ msgstr ""
 "Support MIDI natif requière la mise à jour Roland de LucasArt,\n"
 "mais %s manque. Utilise AdLib à la place."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -2012,7 +2049,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2023,7 +2060,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2077,11 +2114,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "Fichier de séquence '%s' non trouvé!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Échec du chargement de l'état du jeu depuis le disque."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Échec de l'enregistrement de l'état du jeu sur le disque."
 
@@ -2210,15 +2247,16 @@ msgstr ""
 "Il semble que vous utilisiez un périphérique General MIDI,\n"
 "mais ce jeu ne support que le MIDI Roland MT32. Nous essayons\n"
 "d'associer les instruments Roland MT32 aux instruments General\n"
-"MIDI. Cependant il est possible que quelques pistes ne soient\n "
-"pas jouées correctement."
+"MIDI. Cependant il est possible que quelques pistes ne soient\n"
+" pas jouées correctement."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "Intro disquette"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "Utiliser l'intro de la version disquette (version CD uniquement)"
 
 #: engines/sky/compact.cpp:130
@@ -2237,6 +2275,14 @@ msgstr ""
 "Le fichier \"sky.cpt\" a une taille incorrecte.\n"
 "Vous pouvez le (re)télécharger sur www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "Intro disquette"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "Utiliser l'intro de la version disquette (version CD uniquement)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2312,6 +2358,17 @@ msgstr "Afficher la description des objets"
 msgid "Show labels for objects on mouse hover"
 msgstr "Afficher la description des objets lors de passage du pointeur"
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2561,11 +2618,11 @@ msgstr "Mode touchpad activ
 msgid "Touchpad mode disabled."
 msgstr "Mode touchpad désactivé"
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Mode Clic"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2573,11 +2630,11 @@ msgstr "Mode Clic"
 msgid "Left Click"
 msgstr "Clic Gauche"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Clic Milieu"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2983,37 +3040,37 @@ msgstr "Lanceur"
 msgid "Do you really want to quit?"
 msgstr "Voulez-vous vraiment quitter?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Touchscreen 'Tap Mode' - Clic Gauche"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Touchscreen 'Tap Mode' - Clic Droit"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Touchscreen 'Tap Mode' - Déplacer sans cliquer"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Volume Maximum"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Augmentation Volume"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Volume Minimum"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Diminution Volume"
 
diff --git a/po/hu_HU.po b/po/hu_HU.po
index 828659d..a34138c 100644
--- a/po/hu_HU.po
+++ b/po/hu_HU.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-09 05:58+0100\n"
 "Last-Translator: George Kormendi <grubycza at hotmail.com>\n"
 "Language-Team: Hungarian\n"
+"Language: Magyar\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Magyar\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "X-Poedit-Language: Hungarian\n"
 "X-Poedit-Country: HUNGARY\n"
@@ -48,10 +48,11 @@ msgstr "Feljebb"
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -94,16 +95,16 @@ msgstr "Kioszt
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -439,13 +440,13 @@ msgstr "Keres
 msgid "Search:"
 msgstr "Keresés:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Játék betöltése:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -918,68 +919,104 @@ msgstr ""
 "A kiválasztott téma nem támogatja a nyelvedet. Ha használni akarod ezt a "
 "témát, elõszõr válts át egy másik nyelvre."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Dátum nincs mentve"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Idõ nincs mentve"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Játékidõ nincs mentve"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Töröl"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Biztos hogy törölni akarod ezt a játékállást?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Dátum:"
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Idõ:"
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Játékidõ:"
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Névtelen játékállás"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Mentés"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Játék mentés nem sikerült"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Név:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Válassz témát"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "GFX letiltva"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "GFX letiltva"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Standard leképezõ (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standard (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Élsimításos leképezõ (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Élsimított (16bpp)"
 
@@ -1083,16 +1120,16 @@ msgstr "Felhaszn
 msgid "Unknown error"
 msgstr "Ismeretlen hiba"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "A '%s' játék ismeretlennek tûnik."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr "Kérlek jelezd a ScummVM csapatnak a következõ adatokat, együtt a játék"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "címével és megbízható adataival játékverzió/nyelv(ek)/stb.:"
 
@@ -1130,13 +1167,13 @@ msgid "~R~eturn to Launcher"
 msgstr "Visszatérés az indítóba"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Játék mentése:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1254,11 +1291,11 @@ msgstr "Eredeti ment/t
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr "Az eredeti mentés/betöltés képernyõ használata a ScummVM képek helyett"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Játékmenet visszaállítása:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Visszaállítás"
 
@@ -1980,7 +2017,7 @@ msgstr ""
 "Native MIDI támogatáshoz kell a Roland Upgrade a LucasArts-tól,\n"
 "a %s hiányzik. AdLib-ot használok helyette."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -1991,7 +2028,7 @@ msgstr ""
 "\n"
 "%s fájlba nem sikerült"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2002,7 +2039,7 @@ msgstr ""
 "\n"
 "%s fájlból nem sikerült"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2055,11 +2092,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "'%s' átvezetõ fájl nem található"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Játékállás betöltése fájlból nem sikerült."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Játékállás mentése fájlba nem sikerült."
 
@@ -2191,12 +2228,13 @@ msgstr ""
 "General MIDIre. Továbbra is lehetséges hogy\n"
 "néhány hangsáv helytelenül hangzik."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "Floppy intro"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "A floppy verzió intro használata (csak CD verziónál)"
 
 #: engines/sky/compact.cpp:130
@@ -2215,6 +2253,14 @@ msgstr ""
 "A \"sky.cpt\" fájl mérete nem megfelelõ.\n"
 "Töltsd le a www.scummvm.org oldaláról"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "Floppy intro"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "A floppy verzió intro használata (csak CD verziónál)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2287,6 +2333,17 @@ msgstr "T
 msgid "Show labels for objects on mouse hover"
 msgstr "Tárgycimke látható ha az egér felette van"
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2535,11 +2592,11 @@ msgstr "Touchpad m
 msgid "Touchpad mode disabled."
 msgstr "Touchpad mód letiltva."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Kattintás Mód"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2547,11 +2604,11 @@ msgstr "Kattint
 msgid "Left Click"
 msgstr "Bal katt"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Középsõ katt"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2953,37 +3010,37 @@ msgstr "Ind
 msgid "Do you really want to quit?"
 msgstr "Biztos hogy ki akarsz lépni ?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Érintõképernyõ 'Tap Mód' - Bal katt"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Érintõképernyõ 'Tap Mód' - Jobb katt"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Érintõképernyõ 'Tap Mód' - Lebegõ (Nincs katt)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Maximum Hangerõ"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Hangerõ növelése"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Minimum Hangerõ"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Hangerõ csökkentése"
 
diff --git a/po/it_IT.po b/po/it_IT.po
index 164171c..7d4c113 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-09 09:30+0100\n"
 "Last-Translator: Matteo 'Maff' Angelino <matteo.maff at gmail dot com>\n"
 "Language-Team: Italian\n"
+"Language: Italiano\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Italiano\n"
 
 #: gui/about.cpp:91
 #, c-format
@@ -44,10 +44,11 @@ msgstr "Su"
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -90,16 +91,16 @@ msgstr "Mappa"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -436,13 +437,13 @@ msgstr "Cerca nella lista dei giochi"
 msgid "Search:"
 msgstr "Cerca:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Carica gioco:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -924,68 +925,104 @@ msgstr ""
 "Il tema che hai selezionato non supporta la lingua attuale. Se vuoi "
 "utilizzare questo tema devi prima cambiare la lingua."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Nessuna data salvata"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Nessun orario salvato"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Nessun tempo salvato"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Elimina"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Sei sicuro di voler eliminare questo salvataggio?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Data: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Ora: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Tempo di gioco: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Salvataggio senza titolo"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Salva"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Impossibile salvare il gioco"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Nome:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Seleziona un tema"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "Grafica disattivata"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "Grafica disattivata"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Renderer standard (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standard (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Renderer con antialiasing (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Con antialiasing (16bpp)"
 
@@ -1090,16 +1127,16 @@ msgstr "Utente cancellato"
 msgid "Unknown error"
 msgstr "Errore sconosciuto"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "Il gioco in '%s' sembra essere sconosciuto."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr "Per favore, riporta i seguenti dati al team di ScummVM con il nome"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "del gioco che hai provato ad aggiungere e la sua versione/lingua/ecc.:"
 
@@ -1137,13 +1174,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~V~ai a elenco giochi"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Salva gioco:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1266,11 +1303,11 @@ msgstr ""
 "Usa le schermate originali di salvataggio e caricamento, al posto di quelle "
 "di ScummVM"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Ripristina gioco:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Ripristina"
 
@@ -1995,7 +2032,7 @@ msgstr ""
 "Il supporto nativo MIDI richiede il Roland Upgrade della LucasArts,\n"
 "ma %s non è presente. Verrà usato AdLib."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -2006,7 +2043,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2017,7 +2054,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2071,11 +2108,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "File della scena di intermezzo '%s' non trovato!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Impossibile caricare il gioco dal file."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Impossibile salvare il gioco nel file."
 
@@ -2207,12 +2244,13 @@ msgstr ""
 "Roland MT32 in quelli General MIDI. Alcune tracce\n"
 "potrebbero avere un suono non corretto."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "Intro floppy"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "Usa la versione floppy dell'intro (solo versione CD)"
 
 #: engines/sky/compact.cpp:130
@@ -2231,6 +2269,14 @@ msgstr ""
 "Il file \"sky.cpt\" non ha una dimensione corretta.\n"
 "Si prega di (ri)scaricarlo da www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "Intro floppy"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "Usa la versione floppy dell'intro (solo versione CD)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2306,6 +2352,17 @@ msgstr "Mostra etichette oggetti"
 msgid "Show labels for objects on mouse hover"
 msgstr "Mostra etichette per gli oggetti al passaggio del mouse"
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2557,11 +2614,11 @@ msgstr "Modalit
 msgid "Touchpad mode disabled."
 msgstr "Modalità touchpad disattivata."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Modalità clic"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2569,11 +2626,11 @@ msgstr "Modalit
 msgid "Left Click"
 msgstr "Clic sinistro"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Clic centrale"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2977,37 +3034,37 @@ msgstr "Elenco giochi"
 msgid "Do you really want to quit?"
 msgstr "Sei sicuro di voler uscire?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Touchscreen 'Tap Mode' - Clic sinistro"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Touchscreen 'Tap Mode' - Clic destro"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Touchscreen 'Tap Mode' - Passaggio del cursore (nessun clic)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Volume massimo"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Aumento volume"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Volume minimo"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Diminuzione volume"
 
diff --git a/po/nb_NO.po b/po/nb_NO.po
index bc7b172..b775d11 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-04 02:19+0100\n"
 "Last-Translator: Einar Johan Sømåen <einarjohants at gmail.com>\n"
 "Language-Team: somaen <einarjohants at gmail.com>\n"
+"Language: Norsk (bokmaal)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Norsk (bokmaal)\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "X-Poedit-Language: Norsk Bokmål\n"
 "X-Poedit-Country: NORWAY\n"
@@ -48,10 +48,11 @@ msgstr "G
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -94,16 +95,16 @@ msgstr "Koble"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -441,13 +442,13 @@ msgstr "S
 msgid "Search:"
 msgstr "Søk:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Åpne spill:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -922,68 +923,104 @@ msgstr ""
 "Temaet du valgte støtter ikke det aktive språket. Hvis du vil bruke dette "
 "temaet, må du bytte til et annet språk først."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Ingen dato lagret"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Ingen tid lagret"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Ingen spilltid lagret"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Slett"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Vil du virkelig slette dette lagrede spillet?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Dato: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Tid: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Spilltid: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Ikke navngitt spilltilstand"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Lagre"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Klarte ikke å lagre spill."
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Navn:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Velg et tema"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "Deaktivert GFX"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "Deaktivert GFX"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Standard Tegner (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standard (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Antialiased Tegner (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Antialiased (16bpp)"
 
@@ -1087,17 +1124,17 @@ msgstr "Brukeren avbr
 msgid "Unknown error"
 msgstr "Ukjent feil"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "Spillet i '%s' ser ut til å være ukjent."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr ""
 "Vennligst rapporter de følgende dataene til ScummVM-teamet sammen med navnet"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "på spillet du forsøkte å legge til, og dets versjon/språk/etc.:"
 
@@ -1135,13 +1172,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~T~ilbake til oppstarter"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Lagret spill:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1253,11 +1290,11 @@ msgstr "Bruk originale lagre/laste-skjermer"
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr "Bruk de originale lagre/laste-skjermene, istedenfor ScummVM-variantene"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Gjennopprett spill:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Gjenopprett"
 
@@ -1976,7 +2013,7 @@ msgid ""
 "but %s is missing. Using AdLib instead."
 msgstr ""
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -1987,7 +2024,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -1998,7 +2035,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2051,11 +2088,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr ""
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Klarte ikke åpne spilltilstand fra fil."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Klarte ikke lagre spilltilstand fra fil."
 
@@ -2189,12 +2226,13 @@ msgstr ""
 "General MIDI-instrumentene. Allikevel, kan det\n"
 "skje at enkelte spor ikke vil spilles riktig."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "Diskett-intro"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "Bruk diskettversjonens intro (Kun for CD-versjon)"
 
 #: engines/sky/compact.cpp:130
@@ -2211,6 +2249,14 @@ msgid ""
 "Please (re)download it from www.scummvm.org"
 msgstr ""
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "Diskett-intro"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "Bruk diskettversjonens intro (Kun for CD-versjon)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2279,6 +2325,17 @@ msgstr ""
 msgid "Show labels for objects on mouse hover"
 msgstr ""
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2529,11 +2586,11 @@ msgstr "Touchpad-modus aktivert."
 msgid "Touchpad mode disabled."
 msgstr "Touchpad-modus deaktivert."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Klikkmodus"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2541,11 +2598,11 @@ msgstr "Klikkmodus"
 msgid "Left Click"
 msgstr "Venstreklikk"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Midtklikk"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2951,37 +3008,37 @@ msgstr "Oppstarter"
 msgid "Do you really want to quit?"
 msgstr "Vil du virkelig avslutte?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Touchskjerm 'Tapmodus' - Venstreklikk"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Touchskjerm 'Tapmodus' - Høyreklikk"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Touchskjerm 'Tapmodus' - Sveve (Ingen Klikk)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Maksimalt Volum"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Øker volum"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Minimalt Volum"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Senker volum"
 
diff --git a/po/nn_NO.po b/po/nn_NO.po
index a88637b..1b78932 100644
--- a/po/nn_NO.po
+++ b/po/nn_NO.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2011-04-25 23:07+0100\n"
 "Last-Translator: Einar Johan T. Sømåen <einarjohants at gmail.com>\n"
 "Language-Team: somaen <einarjohants at gmail.com>\n"
+"Language: Norsk (nynorsk)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Norsk (nynorsk)\n"
 "X-Poedit-Language: Norwegian Nynorsk\n"
 "X-Poedit-SourceCharset: iso-8859-1\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
@@ -48,10 +48,11 @@ msgstr "G
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -95,16 +96,16 @@ msgstr "Kople"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -443,13 +444,13 @@ msgstr "S
 msgid "Search:"
 msgstr "Søk:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Åpne spel:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -920,68 +921,104 @@ msgstr ""
 "Temaet du har valt støttar ikkje det aktive språket. Om du vil nytte dette "
 "temaet må du bytte til eit anna språk først."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Ingen dato lagra"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Inga tid lagra"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Inga speletid lagra"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Slett"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Vil du verkeleg slette det lagra spelet?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Dato: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Tid: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Speletid: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Ikkje navngjeven speltilstand"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Lagre"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Full speltittel:"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Namn:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Vel eit tema"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "Deaktivert GFX"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "Deaktivert GFX"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Standard Teiknar (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standard (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Antialiased Teiknar (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Antialiased (16bpp)"
 
@@ -1086,16 +1123,16 @@ msgstr ""
 msgid "Unknown error"
 msgstr "Ukjend feil"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr ""
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr ""
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr ""
 
@@ -1135,13 +1172,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~T~ilbake til oppstarter"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Lagra spel:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1242,11 +1279,11 @@ msgstr ""
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Gjenopprett spel:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Gjenopprett"
 
@@ -1975,7 +2012,7 @@ msgid ""
 "but %s is missing. Using AdLib instead."
 msgstr ""
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -1983,7 +2020,7 @@ msgid ""
 "%s"
 msgstr ""
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -1991,7 +2028,7 @@ msgid ""
 "%s"
 msgstr ""
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2042,11 +2079,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr ""
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr ""
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr ""
 
@@ -2182,12 +2219,12 @@ msgid ""
 "some tracks sound incorrect."
 msgstr ""
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
 msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+msgid "Use an alternative game intro (CD version only)"
 msgstr ""
 
 #: engines/sky/compact.cpp:130
@@ -2202,6 +2239,14 @@ msgid ""
 "Please (re)download it from www.scummvm.org"
 msgstr ""
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr ""
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr ""
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2263,6 +2308,17 @@ msgstr ""
 msgid "Show labels for objects on mouse hover"
 msgstr ""
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2497,11 +2553,11 @@ msgstr ""
 msgid "Touchpad mode disabled."
 msgstr ""
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr ""
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2509,12 +2565,12 @@ msgstr ""
 msgid "Left Click"
 msgstr "Venstreklikk"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 #, fuzzy
 msgid "Middle Click"
 msgstr "Midtre venstre gjenstand"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2928,39 +2984,39 @@ msgstr "Sl
 msgid "Do you really want to quit?"
 msgstr "Vil du avslutte?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 #, fuzzy
 msgid "Maximum Volume"
 msgstr "Volum"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 #, fuzzy
 msgid "Minimal Volume"
 msgstr "Volum"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr ""
 
diff --git a/po/pl_PL.po b/po/pl_PL.po
index 5d3655f..c2c5c09 100644
--- a/po/pl_PL.po
+++ b/po/pl_PL.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2011-10-24 21:14+0100\n"
 "Last-Translator: Micha³ Zi±bkowski <mziab at o2.pl>\n"
 "Language-Team: Grajpopolsku.pl <grajpopolsku at gmail.com>\n"
+"Language: Polski\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Polski\n"
 "X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
 "X-Poedit-Basepath: .\n"
 "X-Poedit-Language: Polish\n"
@@ -48,10 +48,11 @@ msgstr "W g
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -95,16 +96,16 @@ msgstr "Przypisz"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -441,13 +442,13 @@ msgstr "Wyszukaj gr
 msgid "Search:"
 msgstr "Szukaj"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Wczytaj grê:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -922,68 +923,104 @@ msgstr ""
 "Wybrany styl nie obs³uguje obecnego jêzyka. Je¶li chcesz go u¿ywaæ, zmieñ "
 "najpierw swój jêzyk."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Brak daty"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Brak godziny"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Brak czasu gry"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Skasuj"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Na pewno chcesz skasowaæ ten zapis?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Data: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Czas: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Czas gry: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Zapis bez nazwy"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Zapisz"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Nie uda³o siê zapisaæ stanu gry"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Nazwa:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Wybierz styl"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "Wy³±czona grafika"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "Wy³±czona grafika"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Standardowy renderer (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standardowy (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Wyg³adzany renderer (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Wyg³adzany (16bpp)"
 
@@ -1087,16 +1124,16 @@ msgstr "Przerwane przez u
 msgid "Unknown error"
 msgstr "Nieznany b³±d"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "Gra w '%s' wygl±da na nieznan±."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr "Przeka¿ poni¿sze dane zespo³owi ScummVM razem z nazw±"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "gry, któr± próbowa³e¶ dodaæ oraz jej wersj±, jêzykiem itd.:"
 
@@ -1134,13 +1171,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~P~owrót do launchera"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Zapis:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1257,11 +1294,11 @@ msgstr ""
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Wznów grê:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Wznów"
 
@@ -1986,7 +2023,7 @@ msgstr ""
 "Natywne wsparcie MIDI wymaga aktualizacji Rolanda od LucasArts,\n"
 "ale brakuje %s. Prze³±czam na tryb AdLib."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -1997,7 +2034,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2008,7 +2045,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2061,11 +2098,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "Nie znaleziono pliku przerywnika '%s'!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Nie uda³o siê wczytaæ stanu gry z pliku."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Nie uda³o siê zapisaæ stanu gry do pliku."
 
@@ -2205,12 +2242,12 @@ msgstr ""
 "Próbujemy przypisaæ instrumenty Rolanda MT32 do instrumentów General MIDI. "
 "Niektóre utwory mog± byæ ¼le odtwarzane."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
 msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+msgid "Use an alternative game intro (CD version only)"
 msgstr ""
 
 #: engines/sky/compact.cpp:130
@@ -2229,6 +2266,14 @@ msgstr ""
 "Plik \"sky.cpt\" ma nieprawid³owy rozmiar.\n"
 "Pobierz go (ponownie) ze strony www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr ""
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr ""
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2304,6 +2349,17 @@ msgstr ""
 msgid "Show labels for objects on mouse hover"
 msgstr ""
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2555,11 +2611,11 @@ msgstr "Tryb touchpada w
 msgid "Touchpad mode disabled."
 msgstr "Tryb touchpada wy³±czony."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr ""
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2567,12 +2623,12 @@ msgstr ""
 msgid "Left Click"
 msgstr "Klikniêcie LPM"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 #, fuzzy
 msgid "Middle Click"
 msgstr "Przedmiot na ¶rodku, z lewej"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2974,37 +3030,37 @@ msgstr ""
 msgid "Do you really want to quit?"
 msgstr "Na pewno chcesz wyj¶æ?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Dotkniêcie ekranu - klikniêcie LPM"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Dotkniêcie ekranu - klikniêcie PPM"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Dotkniêcie ekranu - brak klikniêcia"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Maksymalna g³o¶no¶æ"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Zwiêkszenie g³o¶no¶ci"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Minimalna g³o¶no¶æ"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Zmniejszenie g³o¶no¶ci"
 
diff --git a/po/pt_BR.po b/po/pt_BR.po
index ac60a81..f41aa7d 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2011-10-21 21:30-0300\n"
 "Last-Translator: Saulo Benigno <saulobenigno at gmail.com>\n"
 "Language-Team: ScummBR (www.scummbr.com) <scummbr at yahoo.com.br>\n"
+"Language: Portugues (Brasil)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Portugues (Brasil)\n"
 "Plural-Forms: nplurals=2; plural=(n > 1)\n"
 "X-Poedit-Language: Portuguese\n"
 "X-Poedit-Country: BRAZIL\n"
@@ -48,10 +48,11 @@ msgstr "Acima"
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -95,16 +96,16 @@ msgstr "Mapear"
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -442,13 +443,13 @@ msgstr "Pesquisar na lista de jogos"
 msgid "Search:"
 msgstr "Pesquisar:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Carregar jogo:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -931,68 +932,104 @@ msgstr ""
 "O tema que você selecionou não suporta seu idioma atual. Se você quiser usar "
 "este tema você precisa mudar para outro idioma."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Sem data salva"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Sem hora salva"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Sem tempo de jogo salvo"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Excluir"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Você realmente quer excluir este jogo salvo?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Data:"
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Hora:"
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Tempo de jogo:"
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Não-titulado arquivo de save"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Salvar"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Falha ao salvar o jogo"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Nome:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Selecione um Tema"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "GFX desabilitado"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "GFX desabilitado"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Renderizador padrão (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Padrão (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Renderizador Anti-Serrilhamento (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Anti-Serrilhamento (16bpp)"
 
@@ -1098,17 +1135,17 @@ msgstr "Usu
 msgid "Unknown error"
 msgstr "Erro desconhecido"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "O jogo em '% s' parece ser desconhecido."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr ""
 "Por favor, informe os seguintes dados para a equipe ScummVM junto com o nome"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "do jogo que você tentou adicionar e sua versão/idioma/etc.:"
 
@@ -1146,13 +1183,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~V~oltar ao menu"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Salvar jogo:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1273,11 +1310,11 @@ msgstr ""
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Restaurar jogo:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Restaurar"
 
@@ -2003,7 +2040,7 @@ msgstr ""
 "LucasArts,\n"
 "mas %s está faltando. Utilizando AdLib ao invés."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -2014,7 +2051,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2025,7 +2062,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2079,14 +2116,14 @@ msgid "Cutscene file '%s' not found!"
 msgstr "Arquivo de vídeo '%s' não encontrado!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr ""
 "Falha ao carregar o estado do jogo a partir do arquivo:\n"
 "\n"
 "%s"
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr ""
 "Falha ao salvar o estado do jogo para o arquivo:\n"
@@ -2230,12 +2267,12 @@ msgstr ""
 "o modelo General MIDI. Talvez possa acontecer\n"
 "que algumas faixas não sejam corretamente tocadas."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
 msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+msgid "Use an alternative game intro (CD version only)"
 msgstr ""
 
 #: engines/sky/compact.cpp:130
@@ -2254,6 +2291,14 @@ msgstr ""
 "O arquivo \"sky.cpt\" possui um tamanho incorreto.\n"
 "Por favor, refaça o download em www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr ""
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr ""
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2329,6 +2374,17 @@ msgstr ""
 msgid "Show labels for objects on mouse hover"
 msgstr ""
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2581,11 +2637,11 @@ msgstr "Modo Touchpad ligado."
 msgid "Touchpad mode disabled."
 msgstr "Modo Touchpad desligado."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr ""
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2593,12 +2649,12 @@ msgstr ""
 msgid "Left Click"
 msgstr "Clique com o botão esquerdo"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 #, fuzzy
 msgid "Middle Click"
 msgstr "Item do meio na esquerda"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -3003,37 +3059,37 @@ msgstr "Menu principal"
 msgid "Do you really want to quit?"
 msgstr "Você realmente deseja sair?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Touchscreen 'Modo Toque' - Clique Esquerdo"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Touchscreen 'Modo Toque' - Clique Direito"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Touchscreen 'Modo Toque' - Acima (Sem Clicar)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Volume máximo"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Aumentando Volume"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Volume mínimo"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Diminuindo Volume"
 
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 019acbd..3a80d9f 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-08 22:00+0200+0200\n"
 "Last-Translator: Eugene Sandulenko <sev at scummvm.org>\n"
 "Language-Team: Russian\n"
+"Language: Russian\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-5\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Russian\n"
-"Plural-Forms: nplurals=3;     plural=n%10==1 && n%100!=11 ? 0 :            n%"
-"10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3;     plural=n%10==1 && n%100!=11 ? 0 :            n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
 #: gui/about.cpp:91
 #, c-format
@@ -46,10 +46,11 @@ msgstr "
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -92,16 +93,16 @@ msgstr "
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -438,13 +439,13 @@ msgstr "
 msgid "Search:"
 msgstr "¿ÞØáÚ:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "·ÐÓàã×Øâì ØÓàã:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -688,8 +689,7 @@ msgstr "SoundFont:"
 #: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
 msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
 msgstr ""
-"SoundFontë ßÞÔÔÕàÖØÒÐîâáï ÝÕÚÞâÞàëÜØ ×ÒãÚÞÒëÜØ ÚÐàâÐÜØ, Fluidsynth Ø "
-"Timidity"
+"SoundFontë ßÞÔÔÕàÖØÒÐîâáï ÝÕÚÞâÞàëÜØ ×ÒãÚÞÒëÜØ ÚÐàâÐÜØ, Fluidsynth Ø Timidity"
 
 #: gui/options.cpp:851
 msgctxt "lowres"
@@ -742,7 +742,8 @@ msgstr "
 #: gui/options.cpp:880
 msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
 msgstr ""
-"²ëÚÛîçÐÕâ áÞßÞáâÐÒÛÕÝØÕ General MIDI ÔÛï ØÓà á ×ÒãÚÞÒÞÙ ÔÞàÞÖÚÞÙ ÔÛï Roland MT-32"
+"²ëÚÛîçÐÕâ áÞßÞáâÐÒÛÕÝØÕ General MIDI ÔÛï ØÓà á ×ÒãÚÞÒÞÙ ÔÞàÞÖÚÞÙ ÔÛï Roland "
+"MT-32"
 
 #: gui/options.cpp:889
 msgid "Don't use Roland MT-32 music"
@@ -924,68 +925,104 @@ msgstr ""
 "ÂÕÜÐ, ÒëÑàÐÝÝÐï ÒÐÜØ, ÝÕ ßÞÔÔÕàÖØÒÐÕâ âÕÚãéØÙ ï×ëÚ. µáÛØ Òë åÞâØâÕ "
 "ØáßÞÛì×ÞÒÐâì íâã âÕÜã, ÒÐÜ ÝÕÞÑåÞÔØÜÞ áÝÐçÐÛÐ ßÕàÕÚÛîçØâìáï ÝÐ ÔàãÓÞÙ ï×ëÚ."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "´ÐâÐ ÝÕ ×ÐßØáÐÝÐ"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "²àÕÜï ÝÕ ×ÐßØáÐÝÞ"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "²àÕÜï ØÓàë ÝÕ ×ÐßØáÐÝÞ"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "ÃÔÐÛØâì"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ãÔÐÛØâì íâÞ áÞåàÐÝÕÝØÕ?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "´ÐâÐ: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "²àÕÜï: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "²àÕÜï ØÓàë: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "ÁÞåàÐÝÕÝØÕ ÑÕ× ØÜÕÝØ"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "ÁÞåàÐÝØâì"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "½Ð×ÒÐÝØÕ:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "²ëÑÕàØâÕ âÕÜã"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "±Õ× ÓàÐäØÚØ"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "±Õ× ÓàÐäØÚØ"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "ÁâÐÝÔÐàâÝëÙ àÐáâÕàØ×ÐâÞà (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "ÁâÐÝÔÐàâÝëÙ àÐáâÕàØ×ÐâÞà (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "ÀÐáâÕàØ×ÐâÞà áÞ áÓÛÐÖØÒÐÝØÕÜ (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "ÀÐáâÕàØ×ÐâÞà áÞ áÓÛÐÖØÒÐÝØÕÜ (16bpp)"
 
@@ -1089,17 +1126,17 @@ msgstr "
 msgid "Unknown error"
 msgstr "½ÕØ×ÒÕáâÝÐï ÞèØÑÚÐ"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "ºÐÖÕâáï, çâÞ ØÓàÐ '%s' Õéñ ÝÕØ×ÒÕáâÝÐ."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr ""
 "¿ÞÖÐÛãÙáâÐ, ßÕàÕÔÐÙâÕ áÛÕÔãîéØÕ ÔÐÝÝëÕ ÚÞÜÐÝÔÕ ScummVM ÒÜÕáâÕ á ÝÐ×ÒÐÝØÕÜ"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "ØÓàë, ÚÞâÞàãî Òë ßëâÐÕâÕáì ÔÞÑÐÒØâì, Ø ãÚÐÖØâÕ Õñ ÒÕàáØî, ï×ëÚ Ø â.Ô."
 
@@ -1137,13 +1174,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~²~ ÓÛÐÒÝÞÕ ÜÕÝî"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "ÁÞåàÐÝØâì ØÓàã:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1168,9 +1205,9 @@ msgid ""
 "Gamestate save failed (%s)! Please consult the README for basic information, "
 "and for instructions on how to obtain further assistance."
 msgstr ""
-"½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã (%s)! "
-"¿ÞÖÐÛãÙáâÐ, ÞÑàÐâØâÕáì Ò äÐÙÛ README ×Ð ÑÐ×ÞÒÞÙ ØÝäÞàÜÐæØÕÙ, Ð âÐÚÖÕ "
-"ØÝáâàãÚæØïÜØ Þ âÞÜ, ÚÐÚ ßÞÛãçØâì ÔÐÛìÝÕÙèãî ßÞÜÞéì."
+"½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã (%s)! ¿ÞÖÐÛãÙáâÐ, ÞÑàÐâØâÕáì Ò äÐÙÛ README ×Ð "
+"ÑÐ×ÞÒÞÙ ØÝäÞàÜÐæØÕÙ, Ð âÐÚÖÕ ØÝáâàãÚæØïÜØ Þ âÞÜ, ÚÐÚ ßÞÛãçØâì ÔÐÛìÝÕÙèãî "
+"ßÞÜÞéì."
 
 #: engines/dialogs.cpp:301 engines/mohawk/dialogs.cpp:109
 #: engines/mohawk/dialogs.cpp:174
@@ -1237,9 +1274,9 @@ msgid ""
 "Gamestate load failed (%s)! Please consult the README for basic information, "
 "and for instructions on how to obtain further assistance."
 msgstr ""
-"½Õ ãÔÐÛÞáì ßàÞçØâÐâì áÞåàÐÝÕÝØÕ ØÓàë (%s)! "
-"¿ÞÖÐÛãÙáâÐ, ÞÑàÐâØâÕáì Ò äÐÙÛ README ×Ð ÑÐ×ÞÒÞÙ ØÝäÞàÜÐæØÕÙ, Ð âÐÚÖÕ "
-"ØÝáâàãÚæØïÜØ Þ âÞÜ, ÚÐÚ ßÞÛãçØâì ÔÐÛìÝÕÙèãî ßÞÜÞéì."
+"½Õ ãÔÐÛÞáì ßàÞçØâÐâì áÞåàÐÝÕÝØÕ ØÓàë (%s)! ¿ÞÖÐÛãÙáâÐ, ÞÑàÐâØâÕáì Ò äÐÙÛ "
+"README ×Ð ÑÐ×ÞÒÞÙ ØÝäÞàÜÐæØÕÙ, Ð âÐÚÖÕ ØÝáâàãÚæØïÜØ Þ âÞÜ, ÚÐÚ ßÞÛãçØâì "
+"ÔÐÛìÝÕÙèãî ßÞÜÞéì."
 
 #: engines/engine.cpp:439
 msgid ""
@@ -1264,14 +1301,14 @@ msgstr "
 #: engines/sci/detection.cpp:391
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
-"¸áßÞÛì×ÞÒÐâì ÞàØÓØÝÐÛìÝëÕ íÚàÐÝë ×ÐßØáØ Ø áÞåàÐÝÕÝØï ØÓàë ÒÜÕáâÞ "
-"áÔÕÛÐÝÝëå Ò ScummVM"
+"¸áßÞÛì×ÞÒÐâì ÞàØÓØÝÐÛìÝëÕ íÚàÐÝë ×ÐßØáØ Ø áÞåàÐÝÕÝØï ØÓàë ÒÜÕáâÞ áÔÕÛÐÝÝëå Ò "
+"ScummVM"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "²ÞááâÐÝÞÒØâì ØÓàã:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "²ÞááâÐÝÞÒØâì"
 
@@ -1297,7 +1334,8 @@ msgstr "
 
 #: engines/sci/detection.cpp:381
 msgid "Prefer digital sound effects instead of synthesized ones"
-msgstr "¾âÔÐÒÐâì ßàÕÔßÞçâÕÝØÕ æØäàÞÒëÜ ×ÒãÚÞÒëÜ íääÕÚâÐÜ ÒÜÕáâÞ áØÝâÕ×ØàÞÒÐÝÝëå"
+msgstr ""
+"¾âÔÐÒÐâì ßàÕÔßÞçâÕÝØÕ æØäàÞÒëÜ ×ÒãÚÞÒëÜ íääÕÚâÐÜ ÒÜÕáâÞ áØÝâÕ×ØàÞÒÐÝÝëå"
 
 #: engines/sci/detection.cpp:400
 msgid "Use IMF/Yamaha FB-01 for MIDI output"
@@ -1308,8 +1346,8 @@ msgid ""
 "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI "
 "output"
 msgstr ""
-"¸áßÞÛì×ÒÞÒÐâì ×ÒãÚÞÒãî ÚÐàâÚã IBM Music Feature ØÛØ ÜÞÔãÛì áØÝâÕ×Ð "
-"Yamaha FB-01 FM ÔÛï MIDI"
+"¸áßÞÛì×ÒÞÒÐâì ×ÒãÚÞÒãî ÚÐàâÚã IBM Music Feature ØÛØ ÜÞÔãÛì áØÝâÕ×Ð Yamaha "
+"FB-01 FM ÔÛï MIDI"
 
 #: engines/sci/detection.cpp:411
 msgid "Use CD audio"
@@ -1317,7 +1355,9 @@ msgstr "
 
 #: engines/sci/detection.cpp:412
 msgid "Use CD audio instead of in-game audio, if available"
-msgstr "¸áßÞÛì×ÞÒÐâì ×ÒãÚÞÒëÕ ÔÞàÞÖÚØ á CD ÒÜÕáâÞ Üã×ëÚØ Ø× äÐÙÛÞÒ ØÓàë (ÕáÛØ ÔÞáâãßÝÞ)"
+msgstr ""
+"¸áßÞÛì×ÞÒÐâì ×ÒãÚÞÒëÕ ÔÞàÞÖÚØ á CD ÒÜÕáâÞ Üã×ëÚØ Ø× äÐÙÛÞÒ ØÓàë (ÕáÛØ "
+"ÔÞáâãßÝÞ)"
 
 #: engines/sci/detection.cpp:422
 msgid "Use Windows cursors"
@@ -1327,7 +1367,8 @@ msgstr "
 msgid ""
 "Use the Windows cursors (smaller and monochrome) instead of the DOS ones"
 msgstr ""
-"¸áßÞÛì×ÞÒÐâì ÚãàáÞàë Windows (ÜÕÝìèØÕ ßÞ àÐ×ÜÕàã Ø ÞÔÝÞæÒÕâÝëÕ) ÒÜÕáâÞ ÚãàáÞàÞÒ DOS"
+"¸áßÞÛì×ÞÒÐâì ÚãàáÞàë Windows (ÜÕÝìèØÕ ßÞ àÐ×ÜÕàã Ø ÞÔÝÞæÒÕâÝëÕ) ÒÜÕáâÞ "
+"ÚãàáÞàÞÒ DOS"
 
 #: engines/sci/detection.cpp:433
 msgid "Use silver cursors"
@@ -1995,7 +2036,7 @@ msgstr ""
 "ÀÕÖØÜ \"àÞÔÝÞÓÞ\" MIDI âàÕÑãÕâ ÞÑÝÞÒÛÕÝØÕ Roland Upgrade Þâ\n"
 "LucasArts, ÝÞ ÝÕ åÒÐâÐÕâ %s. ¿ÕàÕÚÛîçÐîáì ÝÐ AdLib."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -2006,7 +2047,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2017,7 +2058,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2070,11 +2111,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "ÄÐÙÛ ×ÐáâÐÒÚØ '%s' ÝÕ ÝÐÙÔÕÝ!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "½Õ ãÔÐÛÞáì ×ÐÓàã×Øâì áÞåàÐÝñÝÝãî ØÓàã Ø× äÐÙÛÐ."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã Ò äÐÙÛ."
 
@@ -2207,12 +2248,13 @@ msgstr ""
 "ÜÞÖÕâ âÐÚ ßÞÛãçØâìáï, çâÞ ÝÕÚÞâÞàëÕ âàÕÚØ ÑãÔãâ\n"
 "áëÓàÐÝë ÝÕÒÕàÝÞ."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "²áâãßÛÕÝØÕ á äÛÞßßØÚÞÒ"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "¸áßÞÛì×ÞÒÐâì ÒáâãßÛÕÝØÕ á ÓØÑÚØå ÔØáÚÞÒ (âÞÛìÚÞ ÔÛï CD ÒÕàáØØ ØÓàë)"
 
 #: engines/sky/compact.cpp:130
@@ -2231,6 +2273,14 @@ msgstr ""
 "ÄÐÙÛ sky.cpt ØÜÕÕâ ÝÕÒÕàÝëÙ àÐ×ÜÕà.\n"
 "¿ÞÖÐÛãÙáâÐ, áÚÐçÐÙâÕ ÕÓÞ ×ÐÝÞÒÞ á www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "²áâãßÛÕÝØÕ á äÛÞßßØÚÞÒ"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "¸áßÞÛì×ÞÒÐâì ÒáâãßÛÕÝØÕ á ÓØÑÚØå ÔØáÚÞÒ (âÞÛìÚÞ ÔÛï CD ÒÕàáØØ ØÓàë)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2292,7 +2342,8 @@ msgstr "
 msgid ""
 "PSX cutscenes found but ScummVM has been built without RGB color support"
 msgstr ""
-"½ÐÙÔÕÝë ×ÐáâÐÒÚØ Ò äÞàÜÐâÕ PSX, ÝÞ ScummVM ÑëÛ áÞÑàÐÝ ÑÕ× ßÞÔÔÕàÖÚØ RGB æÒÕâÞÒ"
+"½ÐÙÔÕÝë ×ÐáâÐÒÚØ Ò äÞàÜÐâÕ PSX, ÝÞ ScummVM ÑëÛ áÞÑàÐÝ ÑÕ× ßÞÔÔÕàÖÚØ RGB "
+"æÒÕâÞÒ"
 
 #: engines/sword2/sword2.cpp:79
 msgid "Show object labels"
@@ -2302,6 +2353,17 @@ msgstr "
 msgid "Show labels for objects on mouse hover"
 msgstr "¿ÞÚÐ×ëÒÐÕâ ÝÐ×ÒÐÝØï ÞÑêÕÚâÞÒ ßà ØÝÐÒÕÔÕÝØØ ÚãàáÞàÐ ÜëèØ"
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2329,8 +2391,8 @@ msgid ""
 "Press OK to convert them now, otherwise you will be asked next time.\n"
 msgstr ""
 "ScummVM ÞÑÝÐàãÖØÛ ã ÒÐá áâÐàëÕ áÞåàÐÝÕÝØï ØÓàë Nippon Safes, ÚÞâÞàëÕ "
-"ÝÕÞÑåÞÔØÜÞ ßÕàÕØÜÕÝÞÒÐâì. ÁâÐàëÕ ÝÐ×ÒÐÝØï ÑÞÛìèÕ ÝÕ ßÞÔÔÕàÖØÒÐîâáï, Ø ßÞíâÞÜã "
-"Òë ÝÕ áÜÞÖÕâÕ ×ÐÓàã×Øâì áÞåàÐÝÕÝØï, ÕáÛØ ÝÕ ßÕàÕØÜÕÝãÕâÕ Øå.\n"
+"ÝÕÞÑåÞÔØÜÞ ßÕàÕØÜÕÝÞÒÐâì. ÁâÐàëÕ ÝÐ×ÒÐÝØï ÑÞÛìèÕ ÝÕ ßÞÔÔÕàÖØÒÐîâáï, Ø "
+"ßÞíâÞÜã Òë ÝÕ áÜÞÖÕâÕ ×ÐÓàã×Øâì áÞåàÐÝÕÝØï, ÕáÛØ ÝÕ ßÕàÕØÜÕÝãÕâÕ Øå.\n"
 "\n"
 "½ÐÖÜØâÕ ¾º, çâÞÑë ßÕàÕØÜÕÝÞÒÐâì Øå áÕÙçÐá, Ò ßàÞâØÒÝÞÜ áÛãçÐÕ íâÞ ÖÕ "
 "áÞÞÑéÕÝØÕ ßÞïÒØâáï ßàØ áÛÕÔãîéÕÜ ×ÐßãáÚÕ ØÓàë.\n"
@@ -2552,11 +2614,11 @@ msgstr "
 msgid "Touchpad mode disabled."
 msgstr "ÀÕÖØÜ âÐçßÐÔÐ ÒëÚÛîçÕÝ."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "ÀÕÖØÜ éÕÛçÚÐ"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2564,11 +2626,11 @@ msgstr "
 msgid "Left Click"
 msgstr "»ÕÒëÙ éÕÛçÞÚ"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "ÁàÕÔÝØÙ éÕÛçÞÚ"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2970,37 +3032,37 @@ msgstr "
 msgid "Do you really want to quit?"
 msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ÒëÙâØ?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "ÀÕÖØÜ 'ÚÐáÐÝØÙ' âÐçáÚàØÝÐ - »ÕÒëÙ ÚÛØÚ"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "ÀÕÖØÜ 'ÚÐáÐÝØÙ' âÐçáÚàØÝÐ - ¿àÐÒëÙ ÚÛØÚ"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "ÀÕÖØÜ 'ÚÐáÐÝØÙ' âÐçáÚàØÝÐ - ¿àÞÛñâ (ÑÕ× ÚÛØÚÐ)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "¼ÐÚáØÜÐÛìÝÐï ÓàÞÜÚÞáâì"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "ÃÒÕÛØçÕÝØÕ ÓàÞÜÚÞáâØ"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "¼ØÝØÜÐÛìÝÐï ÓàÞÜÚÞáâì"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "ÃÜÕÝìèÕÝØÕ ÓàÞÜÚÞáâØ"
 
diff --git a/po/scummvm.pot b/po/scummvm.pot
index 8a68e43..de270ce 100644
--- a/po/scummvm.pot
+++ b/po/scummvm.pot
@@ -6,12 +6,13 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: ScummVM 1.5.0git\n"
+"Project-Id-Version: ScummVM 1.6.0git\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -44,10 +45,11 @@ msgstr ""
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -90,16 +92,16 @@ msgstr ""
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr ""
@@ -433,13 +435,13 @@ msgstr ""
 msgid "Search:"
 msgstr ""
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr ""
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -903,68 +905,101 @@ msgid ""
 "to use this theme you need to switch to another language first."
 msgstr ""
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr ""
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr ""
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr ""
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr ""
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr ""
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr ""
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr ""
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr ""
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr ""
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+msgid "New Save"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+msgid "Create a new save game"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:789
+msgid "Name: "
+msgstr ""
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr ""
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr ""
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr ""
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr ""
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr ""
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr ""
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr ""
 
@@ -1068,16 +1103,16 @@ msgstr ""
 msgid "Unknown error"
 msgstr ""
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr ""
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr ""
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr ""
 
@@ -1115,13 +1150,13 @@ msgid "~R~eturn to Launcher"
 msgstr ""
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr ""
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1220,11 +1255,11 @@ msgstr ""
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr ""
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr ""
 
@@ -1942,7 +1977,7 @@ msgid ""
 "but %s is missing. Using AdLib instead."
 msgstr ""
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -1950,7 +1985,7 @@ msgid ""
 "%s"
 msgstr ""
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -1958,7 +1993,7 @@ msgid ""
 "%s"
 msgstr ""
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2005,11 +2040,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr ""
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr ""
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr ""
 
@@ -2136,12 +2171,12 @@ msgid ""
 "some tracks sound incorrect."
 msgstr ""
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
 msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+msgid "Use an alternative game intro (CD version only)"
 msgstr ""
 
 #: engines/sky/compact.cpp:130
@@ -2156,6 +2191,14 @@ msgid ""
 "Please (re)download it from www.scummvm.org"
 msgstr ""
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr ""
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr ""
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2217,6 +2260,17 @@ msgstr ""
 msgid "Show labels for objects on mouse hover"
 msgstr ""
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2447,11 +2501,11 @@ msgstr ""
 msgid "Touchpad mode disabled."
 msgstr ""
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr ""
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2459,11 +2513,11 @@ msgstr ""
 msgid "Left Click"
 msgstr ""
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr ""
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2863,37 +2917,37 @@ msgstr ""
 msgid "Do you really want to quit?"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr ""
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr ""
 
diff --git a/po/se_SE.po b/po/se_SE.po
index 8388e55..02f2ab4 100644
--- a/po/se_SE.po
+++ b/po/se_SE.po
@@ -7,14 +7,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.5.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-07-08 18:03+0100\n"
 "Last-Translator: Hampus Flink <hampus.flink at gmail.com>\n"
 "Language-Team: \n"
+"Language: Svenska\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: Svenska\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "X-Poedit-Language: Swedish\n"
 "X-Poedit-Country: SWEDEN\n"
@@ -48,10 +48,11 @@ msgstr "Upp
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -94,16 +95,16 @@ msgstr "St
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -441,13 +442,13 @@ msgstr "S
 msgid "Search:"
 msgstr "Sök:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "Ladda spel:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -924,68 +925,104 @@ msgstr ""
 "Temat du valde stöder inte ditt språk. Om du vill använda det här temat "
 "måste först byta till ett annat språk."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "Inget datum sparat"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "Ingen tid sparad"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "Ingen speltid sparad"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "Radera"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "Vill du verkligen radera den här spardatan?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "Datum:"
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "Tid:"
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "Speltid:"
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "Namnlös spardata"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "Spara"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "Kunde inte spara spelet."
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "Namn:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "Välj ett tema"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "Inaktiverad GFX"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "Inaktiverad GFX"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "Standard rendering (16 bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "Standard (16 bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "Antialiserad rendering (16 bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "Antialiserad (16 bpp)"
 
@@ -1089,17 +1126,17 @@ msgstr "Avbrutit av anv
 msgid "Unknown error"
 msgstr "Okänt fel"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "Spelet i '%s' verkar vara okänt."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr ""
 "Var god rapportera följande data till ScummVM-teamet tillsammans med namnet"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "på spelet du försökte lägga till och dess version/språk/etc.:"
 
@@ -1137,13 +1174,13 @@ msgid "~R~eturn to Launcher"
 msgstr "Åte~r~vänd till launcher"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "Spara spelet:"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1260,11 +1297,11 @@ msgstr "Anv
 msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr "Använder originalskärmarna för spara/ladda istället för ScummVM:s"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "Återställ spel:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "Återställ"
 
@@ -1988,7 +2025,7 @@ msgstr ""
 "Stöd för Native MIDI kräver Roland-uppdateringen från LucasArts,\n"
 "men %s saknas. Använder AdLib istället."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -1999,7 +2036,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2010,7 +2047,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2063,11 +2100,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "Filmscensfilen '%s' hittades ej!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "Kunde inte läsa spardata från filen"
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "Kunde inte skriva spardata till filen."
 
@@ -2199,12 +2236,13 @@ msgstr ""
 "General MIDI-instrument. Det kan trots allt hända\n"
 "att ett fåtal ljudspår inte spelas korrekt."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "Diskettintro"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "Använd diskettversionens intro (endast CD-version)"
 
 #: engines/sky/compact.cpp:130
@@ -2223,6 +2261,14 @@ msgstr ""
 "Filen \"sky.cpt\" har inkorrekt filstorlek.\n"
 "Var god ladda hem den igen från www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "Diskettintro"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "Använd diskettversionens intro (endast CD-version)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2293,6 +2339,17 @@ msgstr "Visa etiketter"
 msgid "Show labels for objects on mouse hover"
 msgstr "Visar etiketter för objekten som musen pekar på"
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2544,11 +2601,11 @@ msgstr "Touchpad-l
 msgid "Touchpad mode disabled."
 msgstr "Touchpad-läge inaktiverat."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "Klickläge"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2556,11 +2613,11 @@ msgstr "Klickl
 msgid "Left Click"
 msgstr "Vänsterklick"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "Mittenklick"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2965,37 +3022,37 @@ msgstr "Launcher"
 msgid "Do you really want to quit?"
 msgstr "Vill du verkligen avsluta?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "Touchscreen \"Tap-läge\" - Vänsterklick"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "Touchscren \"Tap-läge\" - Högerklick"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "Touchscreen \"Tap-läge\" - Hover (utan klick)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "Max. volym"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "Höja volymen"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "Min. volym"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "Sänka volymen"
 
diff --git a/po/uk_UA.po b/po/uk_UA.po
index 38855dc..be79355 100644
--- a/po/uk_UA.po
+++ b/po/uk_UA.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0svn\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2012-07-08 12:25+0100\n"
+"POT-Creation-Date: 2012-08-12 14:57+0200\n"
 "PO-Revision-Date: 2012-06-29 20:19+0200\n"
 "Last-Translator: lubomyr <lubomyr31 at gmail.com>\n"
 "Language-Team: Ukrainian\n"
@@ -46,10 +46,11 @@ msgstr "
 
 #: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
 #: gui/launcher.cpp:345 gui/massadd.cpp:94 gui/options.cpp:1228
-#: gui/saveload.cpp:64 gui/saveload.cpp:173 gui/themebrowser.cpp:54
-#: engines/engine.cpp:442 engines/scumm/dialogs.cpp:190
-#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:48
+#: gui/saveload-dialog.cpp:207 gui/saveload-dialog.cpp:267
+#: gui/saveload-dialog.cpp:516 gui/saveload-dialog.cpp:843
+#: gui/themebrowser.cpp:54 engines/engine.cpp:442
+#: engines/scumm/dialogs.cpp:190 engines/sword1/control.cpp:865
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:48
 #: backends/events/default/default-events.cpp:191
 #: backends/events/default/default-events.cpp:213
 msgid "Cancel"
@@ -92,16 +93,16 @@ msgstr "
 
 #: gui/KeysDialog.cpp:42 gui/launcher.cpp:346 gui/launcher.cpp:1001
 #: gui/launcher.cpp:1005 gui/massadd.cpp:91 gui/options.cpp:1229
-#: engines/engine.cpp:361 engines/engine.cpp:372 engines/scumm/dialogs.cpp:192
-#: engines/scumm/scumm.cpp:1775 engines/agos/animation.cpp:561
-#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
-#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:539
-#: engines/sword1/animation.cpp:560 engines/sword1/animation.cpp:570
-#: engines/sword1/animation.cpp:577 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:435
-#: engines/sword2/animation.cpp:455 engines/sword2/animation.cpp:465
-#: engines/sword2/animation.cpp:474 engines/parallaction/saveload.cpp:274
-#: backends/platform/wii/options.cpp:47
+#: gui/saveload-dialog.cpp:844 engines/engine.cpp:361 engines/engine.cpp:372
+#: engines/scumm/dialogs.cpp:192 engines/scumm/scumm.cpp:1775
+#: engines/agos/animation.cpp:561 engines/groovie/script.cpp:420
+#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
+#: engines/sword1/animation.cpp:539 engines/sword1/animation.cpp:560
+#: engines/sword1/animation.cpp:570 engines/sword1/animation.cpp:577
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:435 engines/sword2/animation.cpp:455
+#: engines/sword2/animation.cpp:465 engines/sword2/animation.cpp:474
+#: engines/parallaction/saveload.cpp:274 backends/platform/wii/options.cpp:47
 #: backends/platform/wince/CELauncherDialog.cpp:54
 msgid "OK"
 msgstr "OK"
@@ -439,13 +440,13 @@ msgstr "
 msgid "Search:"
 msgstr "¿ÞèãÚ:"
 
-#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:245
 #: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:214
 msgid "Load game:"
 msgstr "·ÐÒÐÝâÐÖØâØ Óàã:"
 
 #: gui/launcher.cpp:680 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
-#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:716
 #: engines/cruise/menu.cpp:214 backends/platform/wince/CEActionsPocket.cpp:267
 #: backends/platform/wince/CEActionsSmartphone.cpp:231
 msgid "Load"
@@ -923,68 +924,104 @@ msgstr ""
 "²ØÑàÐÝÐ âÕÜÐ ÝÕ ßöÔâàØÜãô ßÞâÞçÝã ÜÞÒã. ÏÚéÞ ÒØ åÞçÕâÕ ÒØÚÞàØáâÞÒãÒÐâØ æî "
 "âÕÜã, ßÞâàöÑÝÞ Ò ßÕàèã çÕàÓã ×ÜöÝØâØ ÜÞÒã."
 
-#: gui/saveload.cpp:59 gui/saveload.cpp:257
+#: gui/saveload-dialog.cpp:158
+msgid "List view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:159
+msgid "Grid view"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:202 gui/saveload-dialog.cpp:350
 msgid "No date saved"
 msgstr "´Ðâã ÝÕ ×ÐßØáÐÝÞ"
 
-#: gui/saveload.cpp:60 gui/saveload.cpp:258
+#: gui/saveload-dialog.cpp:203 gui/saveload-dialog.cpp:351
 msgid "No time saved"
 msgstr "ÇÐá ÝÕ ×ÐßØáÐÝÞ"
 
-#: gui/saveload.cpp:61 gui/saveload.cpp:259
+#: gui/saveload-dialog.cpp:204 gui/saveload-dialog.cpp:352
 msgid "No playtime saved"
 msgstr "ÇÐá ÓàØ ÝÕ ×ÐßØáÐÝÞ"
 
-#: gui/saveload.cpp:68 gui/saveload.cpp:173
+#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:267
 msgid "Delete"
 msgstr "²ØÔÐÛØâØ"
 
-#: gui/saveload.cpp:172
+#: gui/saveload-dialog.cpp:266
 msgid "Do you really want to delete this savegame?"
 msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÔÐÛØâØ æÕ ×ÑÕàÕÖÕÝÝï?"
 
-#: gui/saveload.cpp:282
+#: gui/saveload-dialog.cpp:375 gui/saveload-dialog.cpp:796
 msgid "Date: "
 msgstr "´ÐâÐ: "
 
-#: gui/saveload.cpp:286
+#: gui/saveload-dialog.cpp:379 gui/saveload-dialog.cpp:802
 msgid "Time: "
 msgstr "ÇÐá: "
 
-#: gui/saveload.cpp:292
+#: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:810
 msgid "Playtime: "
 msgstr "ÇÐá ÓàØ: "
 
-#: gui/saveload.cpp:305 gui/saveload.cpp:372
+#: gui/saveload-dialog.cpp:398 gui/saveload-dialog.cpp:465
 msgid "Untitled savestate"
 msgstr "·ÑÕàÕÖÕÝÝï ÑÕ× öÜÕÝö"
 
+#: gui/saveload-dialog.cpp:517
+msgid "Next"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:520
+msgid "Prev"
+msgstr ""
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "New Save"
+msgstr "·ÐßØáÐâØ"
+
+#: gui/saveload-dialog.cpp:684
+#, fuzzy
+msgid "Create a new save game"
+msgstr "½Õ ÒÔÐÛÞáï ×ÐßØáÐâØ Óàã"
+
+#: gui/saveload-dialog.cpp:789
+#, fuzzy
+msgid "Name: "
+msgstr "½Ð×ÒÐ:"
+
+#: gui/saveload-dialog.cpp:861
+#, c-format
+msgid "Enter a description for slot %d:"
+msgstr ""
+
 #: gui/themebrowser.cpp:44
 msgid "Select a Theme"
 msgstr "²ØÑÕàöâì âÕÜã"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgid "Disabled GFX"
 msgstr "±Õ× ÓàÐäöÚØ"
 
-#: gui/ThemeEngine.cpp:335
+#: gui/ThemeEngine.cpp:337
 msgctxt "lowres"
 msgid "Disabled GFX"
 msgstr "±Õ× ÓàÐäöÚØ"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard Renderer (16bpp)"
 msgstr "ÁâÐÝÔÐàâÝØÙ àÐáâÕàØ×ÐâÞà (16bpp)"
 
-#: gui/ThemeEngine.cpp:336
+#: gui/ThemeEngine.cpp:338
 msgid "Standard (16bpp)"
 msgstr "ÁâÐÝÔÐàâÝØÙ àÐáâÕàØ×ÐâÞà (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased Renderer (16bpp)"
 msgstr "ÀÐáâÕàØ×ÐâÞà ×ö ×ÓÛÐÔÖãÒÐÝÝïÜ (16bpp)"
 
-#: gui/ThemeEngine.cpp:338
+#: gui/ThemeEngine.cpp:340
 msgid "Antialiased (16bpp)"
 msgstr "ÀÐáâÕàØ×ÐâÞà ×ö ×ÓÛÐÔÖãÒÐÝÝïÜ (16bpp)"
 
@@ -1088,16 +1125,16 @@ msgstr "
 msgid "Unknown error"
 msgstr "½ÕÒöÔÞÜÐ ßÞÜØÛÚÐ"
 
-#: engines/advancedDetector.cpp:324
+#: engines/advancedDetector.cpp:316
 #, c-format
 msgid "The game in '%s' seems to be unknown."
 msgstr "³àÐ ã '%s' ÝÕÒöÔÞÜÐ."
 
-#: engines/advancedDetector.cpp:325
+#: engines/advancedDetector.cpp:317
 msgid "Please, report the following data to the ScummVM team along with name"
 msgstr "±ãÔì ÛÐáÚÐ, ßÕàÕÔÐÙâÕ ÝØÖçÕÝÐÒÕÔÕÝã öÝäÞàÜÐæöî ÚÞÜÐÝÔö ScummVM àÐ×ÞÜ ×"
 
-#: engines/advancedDetector.cpp:327
+#: engines/advancedDetector.cpp:319
 msgid "of the game you tried to add and its version/language/etc.:"
 msgstr "ÝÐ×ÒÞî ÓàØ, ïÚã ÒØ ÝÐÜÐÓÐôâÕáì ÔÞÔÐâØ, Ð âÐÚÞÖ ÷÷ ÒÕàáöî/ÜÞÒã/âÐ öÝèÕ:"
 
@@ -1135,13 +1172,13 @@ msgid "~R~eturn to Launcher"
 msgstr "~¿~ÞÒÕà.Ò ÓÞÛÞÒÝÕ ÜÕÝî"
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
-#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:735
+#: engines/cruise/menu.cpp:212 engines/sci/engine/kfile.cpp:742
 msgid "Save game:"
 msgstr "·ÑÕàÕÓâØ Óàã: "
 
 #: engines/dialogs.cpp:115 engines/agi/saveload.cpp:803
 #: engines/scumm/dialogs.cpp:187 engines/cruise/menu.cpp:212
-#: engines/sci/engine/kfile.cpp:735
+#: engines/sci/engine/kfile.cpp:742
 #: backends/platform/symbian/src/SymbianActions.cpp:44
 #: backends/platform/wince/CEActionsPocket.cpp:43
 #: backends/platform/wince/CEActionsPocket.cpp:267
@@ -1261,11 +1298,11 @@ msgid "Use the original save/load screens, instead of the ScummVM ones"
 msgstr ""
 "²ØÚÞàØáâÞÒãÒÐâØ ÞàØÓöÝÐÛìÝö ×ÑÕàÕÖÕÝÝï/×ÐÒÐÝâÐÖÕÝÝï ÕÚàÐÝØ, ×ÐÜöáâì ScummVM"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore game:"
 msgstr "²öÔÝÞÒØâØ Óàã:"
 
-#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:831
+#: engines/agi/saveload.cpp:816 engines/sci/engine/kfile.cpp:838
 msgid "Restore"
 msgstr "²öÔÝÞÒØâØ"
 
@@ -1987,7 +2024,7 @@ msgstr ""
 "ÀÕÖØÜ \"àöÔÝÞÓÞ\" MIDI ßÞâàÕÑãô ßÞÝÞÒÛÕÝÝï Roland Upgrade ÒöÔ\n"
 "LucasArts, ßàÞâÕ %s ÒöÔáãâÝöÙ. ¿ÕàÕÜØÚÐîáì ÝÐ AdLib."
 
-#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:202
+#: engines/scumm/scumm.cpp:2278 engines/agos/saveload.cpp:220
 #, c-format
 msgid ""
 "Failed to save game state to file:\n"
@@ -1998,7 +2035,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:167
+#: engines/scumm/scumm.cpp:2285 engines/agos/saveload.cpp:185
 #, c-format
 msgid ""
 "Failed to load game state from file:\n"
@@ -2009,7 +2046,7 @@ msgstr ""
 "\n"
 "%s"
 
-#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:210
+#: engines/scumm/scumm.cpp:2297 engines/agos/saveload.cpp:228
 #, c-format
 msgid ""
 "Successfully saved game state in file:\n"
@@ -2062,11 +2099,11 @@ msgid "Cutscene file '%s' not found!"
 msgstr "ÄÐÙÛ ×ÐáâÐÒÚØ '%s' ÝÕ ×ÝÐÙÔÕÝÞ!"
 
 #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1287
-#: engines/tinsel/saveload.cpp:502
+#: engines/tinsel/saveload.cpp:532
 msgid "Failed to load game state from file."
 msgstr "½Õ ÒÔÐÛÞáï ×ÐÒÐÝâÐÖØâØ áâÐÝ ÓàØ × äÐÙÛã."
 
-#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:515
+#: engines/gob/inter_v2.cpp:1357 engines/tinsel/saveload.cpp:545
 msgid "Failed to save game state to file."
 msgstr "½Õ ÒÔÐÛÞáï ×ÑÕàÕÓâØ áâÐÝ ÓàØ ã äÐÙÛ."
 
@@ -2198,12 +2235,13 @@ msgstr ""
 "MT32 ÝÐ General MIDI. °ÛÕ Ò àÕ×ãÛìâÐâö ÜÞÖÕ\n"
 "áâÐâØáï, éÞ ÔÕïÚö âàÕÚØ ÑãÔãâì ÓàÐâØ ÝÕßàÐÒØÛìÝÞ."
 
-#: engines/queen/queen.cpp:59 engines/sky/detection.cpp:44
-msgid "Floppy intro"
-msgstr "´ØáÚÕâÝÕ ÒÒÕÔÕÝÝï"
+#: engines/queen/queen.cpp:59
+msgid "Alternative intro"
+msgstr ""
 
-#: engines/queen/queen.cpp:60 engines/sky/detection.cpp:45
-msgid "Use the floppy version's intro (CD version only)"
+#: engines/queen/queen.cpp:60
+#, fuzzy
+msgid "Use an alternative game intro (CD version only)"
 msgstr "²ØÚÞàØáâÞÒãÒÐâØ ÔØáÚÕâÝö ÒÕàáö÷ ÒÒÕÔÕÝÝï (âöÛìÚØ CD ÒÕàáöï)"
 
 #: engines/sky/compact.cpp:130
@@ -2222,6 +2260,14 @@ msgstr ""
 "ÄÐÙÛ sky.cpt ÜÐô ÝÕÒöàÝØÙ àÞ×Üöà.\n"
 "±ãÔì ÛÐáÚÐ, (ßÕàÕ)×ÐÒÐÝâÐÖâÕ ÙÞÓÞ × www.scummvm.org"
 
+#: engines/sky/detection.cpp:44
+msgid "Floppy intro"
+msgstr "´ØáÚÕâÝÕ ÒÒÕÔÕÝÝï"
+
+#: engines/sky/detection.cpp:45
+msgid "Use the floppy version's intro (CD version only)"
+msgstr "²ØÚÞàØáâÞÒãÒÐâØ ÔØáÚÕâÝö ÒÕàáö÷ ÒÒÕÔÕÝÝï (âöÛìÚØ CD ÒÕàáöï)"
+
 #: engines/sword1/animation.cpp:539
 #, c-format
 msgid "PSX stream cutscene '%s' cannot be played in paletted mode"
@@ -2291,6 +2337,17 @@ msgstr "
 msgid "Show labels for objects on mouse hover"
 msgstr "¿ÞÚÐ×ãÒÐâØ ÜöâÚØ ÔÛï ÞÑ'ôÚâöÒ ßàØ ÝÐÒÕÔÕÝÝö ÜØèö"
 
+#: engines/teenagent/resources.cpp:68
+msgid ""
+"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
+msgstr ""
+
+#: engines/teenagent/resources.cpp:89
+msgid ""
+"The teenagent.dat file is compressed and zlib hasn't been included in this "
+"executable. Please decompress it"
+msgstr ""
+
 #: engines/parallaction/saveload.cpp:133
 #, c-format
 msgid ""
@@ -2368,8 +2425,8 @@ msgid ""
 "The selected audio device '%s' cannot be used. See log file for more "
 "information."
 msgstr ""
-"²ØÑàÐÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ '%s' ÝÕ ÜÞÖÕ ÑãâØ ÒØÚÞàØáâÐÝØÙ. ´ØÒöâìáï äÐÙÛ ÛÞÓã "
-"ÔÛï ÔÞÔÐâÚÞÒÞ÷ öÝäÞàÜÐæö÷."
+"²ØÑàÐÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ '%s' ÝÕ ÜÞÖÕ ÑãâØ ÒØÚÞàØáâÐÝØÙ. ´ØÒöâìáï äÐÙÛ "
+"ÛÞÓã ÔÛï ÔÞÔÐâÚÞÒÞ÷ öÝäÞàÜÐæö÷."
 
 #: audio/mididrv.cpp:257
 #, c-format
@@ -2541,11 +2598,11 @@ msgstr "
 msgid "Touchpad mode disabled."
 msgstr "ÀÕÖØÜ âÐçßÐÔã ÒØÜÚÝÕÝÞ."
 
-#: backends/platform/maemo/maemo.cpp:205
+#: backends/platform/maemo/maemo.cpp:209
 msgid "Click Mode"
 msgstr "ÀÕÖØÜ ÚÛöÚöÒ"
 
-#: backends/platform/maemo/maemo.cpp:211
+#: backends/platform/maemo/maemo.cpp:215
 #: backends/platform/symbian/src/SymbianActions.cpp:42
 #: backends/platform/wince/CEActionsPocket.cpp:60
 #: backends/platform/wince/CEActionsSmartphone.cpp:43
@@ -2553,11 +2610,11 @@ msgstr "
 msgid "Left Click"
 msgstr "»öÒØÙ ÚÛöÚ"
 
-#: backends/platform/maemo/maemo.cpp:214
+#: backends/platform/maemo/maemo.cpp:218
 msgid "Middle Click"
 msgstr "ÁÕàÕÔÝöÙ ÚÛöÚ"
 
-#: backends/platform/maemo/maemo.cpp:217
+#: backends/platform/maemo/maemo.cpp:221
 #: backends/platform/symbian/src/SymbianActions.cpp:43
 #: backends/platform/wince/CEActionsSmartphone.cpp:44
 #: backends/platform/bada/form.cpp:273
@@ -2961,37 +3018,37 @@ msgstr "
 msgid "Do you really want to quit?"
 msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÙâØ?"
 
-#: backends/events/gph/gph-events.cpp:338
-#: backends/events/gph/gph-events.cpp:381
+#: backends/events/gph/gph-events.cpp:386
+#: backends/events/gph/gph-events.cpp:429
 #: backends/events/openpandora/op-events.cpp:139
 msgid "Touchscreen 'Tap Mode' - Left Click"
 msgstr "ÀÕÖØÜ ÔÞâØÚã ã âÐçáÚàöÝö - »öÒØÙ ÚÛöÚ"
 
-#: backends/events/gph/gph-events.cpp:340
-#: backends/events/gph/gph-events.cpp:383
+#: backends/events/gph/gph-events.cpp:388
+#: backends/events/gph/gph-events.cpp:431
 #: backends/events/openpandora/op-events.cpp:141
 msgid "Touchscreen 'Tap Mode' - Right Click"
 msgstr "ÀÕÖØÜ ÔÞâØÚã ã âÐçáÚàöÝö - ¿àÐÒØÙ ÚÛöÚ"
 
-#: backends/events/gph/gph-events.cpp:342
-#: backends/events/gph/gph-events.cpp:385
+#: backends/events/gph/gph-events.cpp:390
+#: backends/events/gph/gph-events.cpp:433
 #: backends/events/openpandora/op-events.cpp:143
 msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
 msgstr "ÀÕÖØÜ ÔÞâØÚã ã âÐçáÚàöÝö - ¿àÞÛöâ (ÑÕ× ÚÛöÚã)"
 
-#: backends/events/gph/gph-events.cpp:362
+#: backends/events/gph/gph-events.cpp:410
 msgid "Maximum Volume"
 msgstr "¼ÐÚáØÜÐÛìÝÐ ³ãçÝöáâì"
 
-#: backends/events/gph/gph-events.cpp:364
+#: backends/events/gph/gph-events.cpp:412
 msgid "Increasing Volume"
 msgstr "¿öÔÒØéÕÝÝï ÓãçÝÞáâö"
 
-#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:418
 msgid "Minimal Volume"
 msgstr "¼öÝöÜÐÛìÝÐ ³ãçÝöáâì"
 
-#: backends/events/gph/gph-events.cpp:372
+#: backends/events/gph/gph-events.cpp:420
 msgid "Decreasing Volume"
 msgstr "¿ÞÝØÖÕÝÝï ÓãçÝÞáâö"
 


Commit: c6e938fab9faecea5b6a03f32d9d18eb7c088359
    https://github.com/scummvm/scummvm/commit/c6e938fab9faecea5b6a03f32d9d18eb7c088359
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-08-12T06:00:36-07:00

Commit Message:
NEWS: Mention new save/load chooser.

Changed paths:
    NEWS



diff --git a/NEWS b/NEWS
index 3f5f10c..97667b5 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,11 @@ For a more comprehensive changelog of the latest experimental code, see:
         https://github.com/scummvm/scummvm/commits/
 
 1.6.0 (????-??-??)
-
+ General:
+   - Added a new save/load chooser based on a grid of thumbnails. This is only
+     supported for resolutions bigger than 640x400. The old chooser is still
+     available and used for games without thumbnail support. It is possible to
+     select the old one as default too.
 
 1.5.0 (2012-07-27)
  New Games:






More information about the Scummvm-git-logs mailing list