00001
00002
00003
#ifndef MOD_MENU_H
00004
#define MOD_MENU_H
00005
00006
00007
00008
00009
#include "MenuItem.h"
00010
#include "TextSelection.h"
00011
#include "TextEntry.h"
00012
#include "Button.h"
00013
#include "BackButton.h"
00014
#include "Key.h"
00015
#include "Font.h"
00016
#include <vector>
00017
00018
00019 class Menu :
public MenuItem
00020 {
00021
public:
00022
00023 enum MenuType {
00024
NORMAL
00025
00026 ,
SCROLLING
00027
00028 };
00029
00030
Menu(
const string &label,
const string &name,
Font *font, MenuType type = NORMAL);
00031
virtual ~
Menu();
00032
00033
void setVirtualScreenSize(
float width,
float height);
00034
00035
00036
void addChild(
MenuItem *item);
00037
00038
00039
00040
void load(ifstream &file);
00041
00042
00043
void save(ofstream &file);
00044
void draw(
float x,
float y,
float zoom);
00045
00046
00047
00048
virtual void renderMenu();
00049 Type
getType(){
return MENU;};
00050
float getWidth(
float zoom);
00051
float getHeight(
float zoom);
00052 string &
getName(){
return name_;}
00053
bool handleKeyEvent(SDL_Event *event);
00054
00055
00056 bool getSelected(){
return isSelected_;}
00057
00058
00059 void setSelected(
bool isSelected){isSelected_ = isSelected;}
00060
00061
00062
MenuItem *findItem(
const string &name);
00063
00064
private:
00065
float itemZoom(
unsigned int item);
00066
00067 string label_, name_;
00068
Font *font_;
00069
float menuSpace_;
00070
unsigned int selectedItem_;
00071 vector<MenuItem*> items_;
00072
bool hasFocus_;
00073
bool isSelected_;
00074
float screenWidth_, screenHeight_;
00075 MenuType type_;;
00076 };
00077
00078
#endif