frodo-wii/gui.hh

109 lines
1.8 KiB
C++
Raw Normal View History

2009-11-28 09:22:19 +01:00
#ifndef __GUI_HH__
#define __GUI_HH__
#include <SDL.h>
#include "menu.hh"
#include "font.hh"
#include "timer.hh"
2009-12-20 10:31:46 +01:00
#include "gui_view.hh"
2009-11-28 09:22:19 +01:00
/* Frodo stuff */
#include <Prefs.h>
class MainView;
class DialogueBox;
class DiscView;
2009-12-28 13:38:41 +01:00
class OptionsView;
2009-12-29 14:23:01 +01:00
class NetworkView;
2009-12-20 11:12:47 +01:00
class VirtualKeyboard;
2009-11-28 09:22:19 +01:00
class Gui
{
public:
Gui();
~Gui();
bool setTheme(const char *path);
2009-11-28 09:43:37 +01:00
void activate();
2009-11-28 09:22:19 +01:00
2009-11-28 09:43:37 +01:00
void deActivate();
2009-11-28 09:22:19 +01:00
void runLogic(void);
void pushEvent(SDL_Event *ev);
void draw(SDL_Surface *where);
2009-12-04 21:45:17 +01:00
void pushView(GuiView *view);
void pushVirtualKeyboard(VirtualKeyboard *kbd);
void pushDialogueBox(DialogueBox *dlg);
DialogueBox *popDialogueBox();
2009-12-04 21:45:17 +01:00
GuiView *popView();
2009-12-05 10:33:58 +01:00
GuiView *peekView()
{
if (!this->views)
return NULL;
return this->views[this->n_views-1];
}
void exitMenu();
/* These are private, keep off! */
2009-11-28 09:22:19 +01:00
const char *getThemePath(const char *dir, const char *what);
SDL_Surface *loadThemeImage(const char *dir, const char *what);
2009-12-04 21:06:52 +01:00
Font *loadThemeFont(const char *dir, const char *what, int size);
2009-11-28 09:22:19 +01:00
bool is_active;
Menu *focus; /* Where the focus goes */
Menu *main_menu;
2009-11-28 09:59:42 +01:00
SDL_Surface *background;
SDL_Surface *main_menu_bg;
2009-12-04 18:55:25 +01:00
SDL_Surface *infobox;
SDL_Surface *textbox;
SDL_Surface *dialogue_bg;
2009-12-13 11:10:33 +01:00
SDL_Surface *disc_info;
2009-11-28 09:22:19 +01:00
SDL_Surface *bg_left, *bg_right, *bg_middle,
*bg_submenu_left, *bg_submenu_right, *bg_submenu_middle;
2009-12-20 11:12:47 +01:00
SDL_Surface *highlighted_key;
SDL_Surface *selected_key;
2009-11-28 09:22:19 +01:00
Font *default_font;
2009-12-04 21:06:52 +01:00
Font *small_font;
TimerController *timerController;
/* Handled specially */
VirtualKeyboard *kbd;
DialogueBox *dlg;
MainView *mv;
DiscView *dv;
2009-12-28 13:38:41 +01:00
OptionsView *ov;
2009-12-29 14:23:01 +01:00
NetworkView *nv;
GuiView **views;
int n_views;
2009-12-19 14:20:15 +01:00
const char *metadata_base_path;
const char *theme_base_path;
const char *game_base_path;
/* New preferences */
Prefs *np;
/* Singleton */
static void init();
static Gui *gui;
2009-11-28 09:22:19 +01:00
};
#endif /* GUI_HH */