summaryrefslogtreecommitdiff
path: root/noncore/games/sfcave-sdl/menu.h
authorandyq <andyq>2003-01-20 23:11:56 (UTC)
committer andyq <andyq>2003-01-20 23:11:56 (UTC)
commit92419b025aa5d82bb7592281af5505ff931c2e58 (patch) (unidiff)
tree374ee9ca86ef716ce388c8a28e38261f6a04ce7a /noncore/games/sfcave-sdl/menu.h
parent02090d2e63ad8398c0a8a9f1fb895a9c6e42514b (diff)
downloadopie-92419b025aa5d82bb7592281af5505ff931c2e58.zip
opie-92419b025aa5d82bb7592281af5505ff931c2e58.tar.gz
opie-92419b025aa5d82bb7592281af5505ff931c2e58.tar.bz2
Initial Revision
Diffstat (limited to 'noncore/games/sfcave-sdl/menu.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/sfcave-sdl/menu.h71
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 @@
1#ifndef __MENU_H
2#define __MENU_H
3
4#include <list>
5using namespace std;
6
7#include <SDL.h>
8
9class SFCave;
10class StarField;
11class Menu;
12
13class MenuOption
14{
15public:
16 MenuOption( QString text, int id );
17 ~MenuOption();
18
19 void highlight( bool val ) { highlighted = val; }
20 int draw( SDL_Surface *screen, int y );
21 void setNextMenu( Menu *item, bool down = true );
22 Menu *getNextMenu() { return nextMenu; }
23 int getMenuId() { return menuId; }
24 bool isDownMenuTree() { return downMenuTree; }
25
26private:
27 int menuId;
28 QString menuText;
29 bool highlighted;
30 bool downMenuTree;
31
32 Menu *nextMenu;
33};
34
35class Menu
36{
37public:
38 Menu( SFCave *p );
39 ~Menu();
40
41 void draw( SDL_Surface *screen );
42 int handleKeys( SDL_KeyboardEvent & );
43 MenuOption *addMenuOption( QString text, int id );
44 void resetToTopMenu();
45 void initCurrentMenu();
46
47 void setStatusText( QString text ) { statusText = text; }
48
49protected:
50
51private:
52 static SDL_Surface * sfcaveTextImage;
53 int angle;
54
55 static Menu *mainMenu;
56 static Menu *currentMenu;
57 Menu *parentMenu;
58
59 StarField *stars;
60
61 QString statusText;
62
63 SFCave *parent;
64 list<MenuOption *> listItems;
65 MenuOption *currentMenuOption;
66
67 Menu( Menu* p );
68};
69
70
71#endif