X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FMenu.h;h=bf99bdcf9b4cddb077e5e08541197deaf8dc1154;hb=afc437d91c5c31a6569349a118ace6876737889f;hp=f671ebc51ab105832b280351729d72a82c86edd9;hpb=42bf932baf8cecf12b4daba00c4453093aa4971a;p=lugaru.git diff --git a/Source/Menu.h b/Source/Menu.h index f671ebc..bf99bdc 100644 --- a/Source/Menu.h +++ b/Source/Menu.h @@ -1,26 +1,72 @@ +/* +Copyright (C) 2003, 2010 - Wolfire Games +Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) + +This file is part of Lugaru. + +Lugaru is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +Lugaru is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Lugaru. If not, see . +*/ + #ifndef _MENU_H_ #define _MENU_H_ #include "Game.h" -namespace Menu { - typedef void(*MBCallback)(int id); - - void GUITick(Game* game); - void clearMenu(); - void addLabel(int id,const string& label,int x,int y); - void addButton(int id,const string& label,MBCallback cb,int x,int y,int w,int h); - void addButton(int id,const string& label,MBCallback cb,int x,int y,int w,int h,float r,float g,float b); - void addImage(int id,int texture,int x,int y,int w,int h); - void addImageButton(int id,int texture,MBCallback cb,int x,int y,int w,int h); - void addImageButton(int id,int texture,MBCallback cb,int x,int y,int w,int h,float r,float g,float b); - void addMapLine(const XYZ& start, const XYZ& end, float startsize, float endsize, float r,float g,float b); - void addMapMarker(int id,int texture,MBCallback cb,int x,int y,int w,int h,float r,float g,float b); - void setMapItem(int id); - void setButtonText(int id,const string& label); - void setButtonText(int id,const string& label,int x,int y,int w,int h); - int getSelected(int mousex, int mousey); - void drawItems(Game* game); -} +struct MenuItem { + enum MenuItemType {NONE, LABEL, BUTTON, IMAGE, IMAGEBUTTON, MAPMARKER, MAPLINE, MAPLABEL} type; + int id; + string text; + Texture texture; + int x, y, w, h; + float r, g, b; + float effectfade; + + float linestartsize; + float lineendsize; + + MenuItem(MenuItemType _type, int _id, const string& _text, Texture _texture, + int _x, int _y, int _w, int _h, float _r, float _g, float _b, + float _linestartsize = 1, float _lineendsize = 1); +}; + +class Menu +{ +public: + static void clearMenu(); + static void addLabel(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0); + static void addButton(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0); + static void addImage(int id, Texture texture, int x, int y, int w, int h, float r = 1, float g = 1, float b = 1); + static void addButtonImage(int id, Texture texture, int x, int y, int w, int h, float r = 1, float g = 1, float b = 1); + static void addMapLine(int x, int y, int w, int h, float startsize, float endsize, float r, float g, float b); + static void addMapMarker(int id, Texture texture, int x, int y, int w, int h, float r, float g, float b); + static void addMapLabel(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0); + static void setText(int id, const string& text); + static void setText(int id, const string& text, int x, int y, int w, int h); + static int getSelected(int mousex, int mousey); + static void drawItems(); + + static void Load(); + static void Tick(); + static void updateSettingsMenu(); + static void updateStereoConfigMenu(); + static void updateControlsMenu(); + static void setKeySelected(); + +private: + static void handleFadeEffect(); + + static std::vector items; +}; #endif