project-kyoku/include/gui/state.h

33 lines
522 B
C++

#pragma once
#include <stack>
#include <memory>
#include <functional>
#include <SFML/Window/Event.hpp>
class GUIState
{
public:
enum Tag {
SPLASH_SCREEN,
MAIN_MENU,
GAME_PICKER,
GAME,
EDITOR_PICKER,
EDITOR,
SETTINGS,
AMOUNT
};
virtual ~GUIState() = default;
virtual void input(const sf::Event& event) = 0;
virtual void update() = 0;
virtual void draw() const = 0;
virtual void enter() = 0;
virtual void leave() = 0;
};