#pragma once #include "StarPane.hpp" #include "StarPlayerStorage.hpp" namespace Star { STAR_CLASS(PlayerStorage); class CharSelectionPane : public Pane { public: typedef function CreateCharCallback; typedef function SelectCharacterCallback; typedef function 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 CharSelectionPanePtr; }