1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#ifndef LEVEL_SELECT_MENU_H
#define LEVEL_SELECT_MENU_H
#include "Menu.h"
#include "ReplaceableSurfaceWidget.h"
class LevelSelectorMenu : public Menu
{
friend class MissionSelectWidget;
MENU_SINGLETON(LevelSelector);
public:
void eventShow();
void eventHide();
const std::string &getCurrentlySelected() const
{
return m_levelNames[m_selectedIndex];
}
const std::string &getCurrentlySelectedFull() const
{
return m_fullLevelNames[m_selectedIndex];
}
protected:
PARAGUI_CALLBACK(onMissionSelected);
PARAGUI_CALLBACK(onGo);
PARAGUI_CALLBACK(onHighscore);
PARAGUI_CALLBACK(onBack);
PARAGUI_CALLBACK(onPreviousLevel);
PARAGUI_CALLBACK(onNextLevel);
PARAGUI_CALLBACK(onFirstLevel);
PARAGUI_CALLBACK(onLastLevel);
void createPreview();
void updateLevelSelection();
private:
void initMissionSelect();
ReplaceableSurfaceWidget *m_previewWidget;
std::vector<std::string> m_levelNames;
std::vector<std::string> m_fullLevelNames;
std::vector<size_t> m_numberOfLevels;
long m_selectedIndex;
};
#endif // LEVEL_SELECT_MENU_H
|