X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FMenu.h;h=a1fc295572453797a8bd1641bf24987849f46e21;hb=4775ffa253110d66338030db8633463195e81615;hp=4c6878b345aad7703ff46f7f50c01d99d5b08ff2;hpb=1ca24d82b20cbd006045356b354fff56c63e4037;p=lugaru.git diff --git a/Source/Menu.h b/Source/Menu.h index 4c6878b..a1fc295 100644 --- a/Source/Menu.h +++ b/Source/Menu.h @@ -23,20 +23,64 @@ along with Lugaru. If not, see . #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; + + void init(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) { + type = _type; + id = _id; + text = _text; + texture = _texture; + x = _x; + y = _y; + w = _w; + h = _h; + r = _r; + g = _g; + b = _b; + effectfade = 0; + linestartsize = _linestartsize; + lineendsize = _lineendsize; + if (type == MenuItem::BUTTON) { + if (w == -1) + w = text.length() * 10; + if (h == -1) + h = 20; + } + } +}; + +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(); + +private: + static void handleFadeEffect(); + + static std::vector items; +}; #endif