aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/ui/kia_section_save.h
diff options
context:
space:
mode:
authorPeter Kohaut2018-12-05 18:18:13 +0100
committerPeter Kohaut2018-12-05 18:18:49 +0100
commit1855d1cf13de5c9f4cf84fc07ab4b5053cae5295 (patch)
tree0359b9125083f1fceefa6f121be22299a5ae7859 /engines/bladerunner/ui/kia_section_save.h
parent216d4743489d2284eff6afd7bc7a7e5a92693eea (diff)
downloadscummvm-rg350-1855d1cf13de5c9f4cf84fc07ab4b5053cae5295.tar.gz
scummvm-rg350-1855d1cf13de5c9f4cf84fc07ab4b5053cae5295.tar.bz2
scummvm-rg350-1855d1cf13de5c9f4cf84fc07ab4b5053cae5295.zip
BLADERUNNER: Add in-game saving screen
Diffstat (limited to 'engines/bladerunner/ui/kia_section_save.h')
-rw-r--r--engines/bladerunner/ui/kia_section_save.h61
1 files changed, 60 insertions, 1 deletions
diff --git a/engines/bladerunner/ui/kia_section_save.h b/engines/bladerunner/ui/kia_section_save.h
index 5e2f5f26ac..d3af65288e 100644
--- a/engines/bladerunner/ui/kia_section_save.h
+++ b/engines/bladerunner/ui/kia_section_save.h
@@ -25,13 +25,72 @@
#include "bladerunner/ui/kia_section_base.h"
+#include "common/scummsys.h"
+#include "common/str.h"
+
+#include "engines/savestate.h"
+
+namespace Graphics {
+struct Surface;
+}
+
namespace BladeRunner {
+class UIContainer;
+class UIScrollBox;
+class UIInputBox;
+class UIImagePicker;
+
class KIASectionSave : public KIASectionBase {
+ enum State {
+ kStateNormal = 0,
+ kStateOverwrite = 1,
+ kStateDelete = 2
+ };
+
+ UIContainer *_uiContainer;
+ UIScrollBox *_scrollBox;
+ UIInputBox *_inputBox;
+ UIImagePicker *_buttons;
+
+ uint32 _timeLast;
+ uint32 _timeLeft;
+
+ SaveStateList _saveList;
+
+ State _state;
+
+ int _mouseX;
+ int _mouseY;
+
+ int _hoveredLineId;
+ int _selectedLineId;
+ int _newSaveLineId;
public:
- KIASectionSave(BladeRunnerEngine *vm): KIASectionBase(vm){}
+ KIASectionSave(BladeRunnerEngine *vm);
+ ~KIASectionSave();
+
+ void open() override;
+ void close() override;
+
+ void draw(Graphics::Surface &surface) override;
+
+ void handleKeyUp(const Common::KeyState &kbd) override;
+ void handleKeyDown(const Common::KeyState &kbd) override;
+ void handleMouseMove(int mouseX, int mouseY) override;
+ void handleMouseDown(bool mainButton) override;
+ void handleMouseUp(bool mainButton) override;
+
+private:
+ static void scrollBoxCallback(void *callbackData, void *source, int lineData, int mouseButton);
+ static void inputBoxCallback(void *callbackData, void *source);
+
+ static void onButtonPressed(int buttonId, void *callbackData);
+ void changeState(State state);
+ void save();
+ void deleteSave();
};
} // End of namespace BladeRunner