osb/source/frontend/StarCharSelection.hpp
2023-06-20 14:33:09 +10:00

39 lines
1.0 KiB
C++

#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