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