author | andyq <andyq> | 2003-01-20 23:11:56 (UTC) |
---|---|---|
committer | andyq <andyq> | 2003-01-20 23:11:56 (UTC) |
commit | 92419b025aa5d82bb7592281af5505ff931c2e58 (patch) (side-by-side diff) | |
tree | 374ee9ca86ef716ce388c8a28e38261f6a04ce7a /noncore/games/sfcave-sdl/menu.h | |
parent | 02090d2e63ad8398c0a8a9f1fb895a9c6e42514b (diff) | |
download | opie-92419b025aa5d82bb7592281af5505ff931c2e58.zip opie-92419b025aa5d82bb7592281af5505ff931c2e58.tar.gz opie-92419b025aa5d82bb7592281af5505ff931c2e58.tar.bz2 |
Initial Revision
Diffstat (limited to 'noncore/games/sfcave-sdl/menu.h') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/games/sfcave-sdl/menu.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/noncore/games/sfcave-sdl/menu.h b/noncore/games/sfcave-sdl/menu.h new file mode 100644 index 0000000..08f7528 --- a/dev/null +++ b/noncore/games/sfcave-sdl/menu.h @@ -0,0 +1,71 @@ +#ifndef __MENU_H +#define __MENU_H + +#include <list> +using namespace std; + +#include <SDL.h> + +class SFCave; +class StarField; +class Menu; + +class MenuOption +{ +public: + MenuOption( QString text, int id ); + ~MenuOption(); + + void highlight( bool val ) { highlighted = val; } + int draw( SDL_Surface *screen, int y ); + void setNextMenu( Menu *item, bool down = true ); + Menu *getNextMenu() { return nextMenu; } + int getMenuId() { return menuId; } + bool isDownMenuTree() { return downMenuTree; } + +private: + int menuId; + QString menuText; + bool highlighted; + bool downMenuTree; + + Menu *nextMenu; +}; + +class Menu +{ +public: + Menu( SFCave *p ); + ~Menu(); + + void draw( SDL_Surface *screen ); + int handleKeys( SDL_KeyboardEvent & ); + MenuOption *addMenuOption( QString text, int id ); + void resetToTopMenu(); + void initCurrentMenu(); + + void setStatusText( QString text ) { statusText = text; } + +protected: + +private: + static SDL_Surface * sfcaveTextImage; + int angle; + + static Menu *mainMenu; + static Menu *currentMenu; + Menu *parentMenu; + + StarField *stars; + + QString statusText; + + SFCave *parent; + list<MenuOption *> listItems; + MenuOption *currentMenuOption; + + Menu( Menu* p ); +}; + + +#endif |