00001
#ifndef DEF_MENU_H
00002
#define DEF_MENU_H 1
00003
00004
#define WFONT 4
00005
#define DFONT 10
00006
#define BORDERSIZE 2
00007
#define LINESIZE 1
00008
00016 class Menu {
00017
friend class GraphicsEngine;
00018
public:
00019
Menu();
00020
virtual ~
Menu();
00022 string
title;
00024
virtual void act() = 0;
00025
void setLast(
Menu* lastmenu) {
00026
last=lastmenu;
00027 }
00028
Menu* getLast() {
00029
return last;
00030 }
00031 Uint8 getSize() {
00032
return entries.size();
00033 }
00034
void increaseEntry(
bool forward=
true);
00035
protected:
00037 Menu*
last;
00039 Uint8
currententry;
00041 std::vector<string>
entries;
00043 Font*
font;
00045 Font*
font_title;
00047 Font*
font_high;
00048 };
00049
00050
class StartMenu :
public Menu {
00051
public:
00052 StartMenu();
00053
virtual void act();
00054
private:
00056
void update();
00057 };
00058
00059
class GameMenu :
public Menu {
00060
public:
00061 GameMenu();
00062
virtual void act();
00063
private:
00065
void update();
00066 };
00067
00068
class EditMenu :
public Menu {
00069
public:
00070 EditMenu();
00071
virtual void act();
00072
private:
00074
void update();
00075 };
00076
00077
class MapMenu :
public Menu {
00078
public:
00079 MapMenu();
00080
virtual void act();
00081
private:
00083
void update();
00084 };
00085
00086
class ConfigMenu :
public Menu {
00087
public:
00088 ConfigMenu();
00089
virtual void act();
00090
private:
00092
void update();
00093 };
00094
00095
class GraphicConfigMenu :
public Menu {
00096
public:
00097 GraphicConfigMenu();
00098
virtual void act();
00099
private:
00101
void update();
00102 };
00103
00104
class KeyConfigMenu :
public Menu {
00105
public:
00106 KeyConfigMenu();
00107
virtual void act();
00108
private:
00110
void update();
00111 };
00112
00113
#endif