Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/frontend/StarCharSelection.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/frontend/StarCharSelection.hpp')
-rw-r--r--source/frontend/StarCharSelection.hpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/source/frontend/StarCharSelection.hpp b/source/frontend/StarCharSelection.hpp
new file mode 100644
index 0000000..f797457
--- /dev/null
+++ b/source/frontend/StarCharSelection.hpp
@@ -0,0 +1,38 @@
+#ifndef STAR_CHAR_SELECTION_HPP
+#define STAR_CHAR_SELECTION_HPP
+
+#include "StarPane.hpp"
+#include "StarPlayerStorage.hpp"
+
+namespace Star {
+
+STAR_CLASS(PlayerStorage);
+
+class CharSelectionPane : public Pane {
+public:
+ typedef function<void()> CreateCharCallback;
+ typedef function<void(PlayerPtr const&)> SelectCharacterCallback;
+ typedef function<void(Uuid)> DeleteCharacterCallback;
+
+ CharSelectionPane(PlayerStoragePtr playerStorage, CreateCharCallback createCallback,
+ SelectCharacterCallback selectCallback, DeleteCharacterCallback deleteCallback);
+
+ bool sendEvent(InputEvent const& event) override;
+ void show() override;
+ void updateCharacterPlates();
+
+private:
+ void shiftCharacters(int movement);
+ void selectCharacter(unsigned buttonIndex);
+
+ PlayerStoragePtr m_playerStorage;
+ unsigned m_downScroll;
+
+ CreateCharCallback m_createCallback;
+ SelectCharacterCallback m_selectCallback;
+ DeleteCharacterCallback m_deleteCallback;
+};
+typedef shared_ptr<CharSelectionPane> CharSelectionPanePtr;
+}
+
+#endif