summaryrefslogtreecommitdiff
path: root/src/save
diff options
context:
space:
mode:
Diffstat (limited to 'src/save')
-rw-r--r--src/save/LocalSaveActivity.cpp6
-rw-r--r--src/save/LocalSaveActivity.h11
2 files changed, 14 insertions, 3 deletions
diff --git a/src/save/LocalSaveActivity.cpp b/src/save/LocalSaveActivity.cpp
index 740fabe..d2c4a2f 100644
--- a/src/save/LocalSaveActivity.cpp
+++ b/src/save/LocalSaveActivity.cpp
@@ -37,10 +37,11 @@ public:
}
};
-LocalSaveActivity::LocalSaveActivity(SaveFile save) :
+LocalSaveActivity::LocalSaveActivity(SaveFile save, FileSavedCallback * callback) :
WindowActivity(ui::Point(-1, -1), ui::Point(220, 200)),
thumbnail(NULL),
- save(save)
+ save(save),
+ callback(callback)
{
ui::Label * titleLabel = new ui::Label(ui::Point(4, 5), ui::Point(Size.X-8, 16), "Save to computer:");
titleLabel->SetTextColour(style::Colour::InformationTitle);
@@ -117,6 +118,7 @@ void LocalSaveActivity::saveWrite(std::string finalFilename)
mkdir(LOCAL_SAVE_DIR, 0755);
#endif
Client::Ref().WriteFile(save.GetGameSave()->Serialise(), finalFilename);
+ callback->FileSaved(&save);
}
void LocalSaveActivity::OnDraw()
diff --git a/src/save/LocalSaveActivity.h b/src/save/LocalSaveActivity.h
index b5d19f3..aacbc0b 100644
--- a/src/save/LocalSaveActivity.h
+++ b/src/save/LocalSaveActivity.h
@@ -11,6 +11,14 @@ namespace ui
class Thumbnail;
+class FileSavedCallback
+{
+public:
+ FileSavedCallback() {}
+ virtual ~FileSavedCallback() {}
+ virtual void FileSaved(SaveFile * file) {}
+};
+
class LocalSaveActivity: public WindowActivity, public ThumbnailListener
{
SaveFile save;
@@ -20,8 +28,9 @@ class LocalSaveActivity: public WindowActivity, public ThumbnailListener
class SaveAction;
friend class CancelAction;
friend class SaveAction;
+ FileSavedCallback * callback;
public:
- LocalSaveActivity(SaveFile save);
+ LocalSaveActivity(SaveFile save, FileSavedCallback * callback);
void saveWrite(std::string finalFilename);
virtual void Save();
virtual void OnDraw();