/* Irrlicht Library Wrapper Created by: Nathan Adams Copyright (C) 2008 This software is licensed under the GNU/GPL. This software may not be used for commerical purposes. */ #ifndef IRRLIBGUI_H #define IRRLIBGUI_H #include #include #include #include "IrrLib.h" #include "IrrLibBase.h" class IrrLibGUI: public IrrLibBase { private: irr::gui::IGUISkin* skin; irr::gui::IGUIFont* font; irr::gui::IGUIEnvironment* env; //TODO: Create an array storing all messages int nStaticText; //irr::gui::IGUIStaticText* arrStaticText[10]; int nButton; int nButtonid; int nListBox; int nListBoxid; std::vector arrStaticText; std::vector arrButton; std::vector arrListBox; IrrGUIObj AddToStaticArray(irr::gui::IGUIStaticText * addme); IrrGUIObj addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); //TODO: Clean this up! IrrGUIObj addListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent); public: IrrLibGUI(); ~IrrLibGUI(); void SetEnv(irr::gui::IGUIEnvironment* env); void Clear(); void DrawAll(); //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ void AddStaticText(); //NA eh a default text adder why not? IrrGUIObj AddStaticText(irr::core::stringw message); IrrGUIObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2); IrrGUIObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); IrrGUIObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); IrrGUIObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle); IrrGUIObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); IrrGUIObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); IrrGUIObj AddButton(irr::core::stringw text, int x1, int y1, int x2, int y2, irr::core::stringw tooltiptext); IrrGUIObj AddButton(irr::core::stringw text, irr::core::rect & rect, irr::core::stringw tooltiptext); //TODO: Add move functions IrrGUIObj AddListBox(int x1, int y1, int x2, int y2, irr::gui::IGUIElement * parent = 0); IrrGUIObj AddListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent = 0); void AddStringToListBox(IrrGUIObj nLbox, irr::core::stringw text); void ChangeStaticText(IrrGUIObj nstatictext, irr::core::stringw message); void ChangeFont(irr::core::stringc fontfile); std::string getSelectListString(IrrGUIObj lstbox); //irr::core::stringw getSelectListString(int lstbox); }; #endif