X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FMenu.h;h=bf99bdcf9b4cddb077e5e08541197deaf8dc1154;hb=3455f3a84eef6a73f39a4267da445c7998c3515e;hp=184d0234417d664c3c435810577f0fcdf9b3bc33;hpb=efbc6ee855217635d97671a3a2d65bc18908b840;p=lugaru.git diff --git a/Source/Menu.h b/Source/Menu.h index 184d023..bf99bdc 100644 --- a/Source/Menu.h +++ b/Source/Menu.h @@ -1,22 +1,21 @@ /* 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 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. -This program is distributed in the hope that it will be useful, +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. +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 this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +along with Lugaru. If not, see . */ #ifndef _MENU_H_ @@ -24,20 +23,50 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "Game.h" -namespace Menu +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 { -void clearMenu(); -void addLabel(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0); -void addButton(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0); -void addImage(int id, Texture texture, int x, int y, int w, int h, float r = 1, float g = 1, float b = 1); -void addButtonImage(int id, Texture texture, int x, int y, int w, int h, float r = 1, float g = 1, float b = 1); -void addMapLine(int x, int y, int w, int h, float startsize, float endsize, float r, float g, float b); -void addMapMarker(int id, Texture texture, int x, int y, int w, int h, float r, float g, float b); -void addMapLabel(int id, const string& text, int x, int y, float r = 1, float g = 0, float b = 0); -void setText(int id, const string& text); -void setText(int id, const string& text, int x, int y, int w, int h); -int getSelected(int mousex, int mousey); -void drawItems(); -} +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