/*\r
Minetest-c55\r
Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>\r
-Original author Kabak Dmitry <userdima@gmail.com>, contributed under\r
-the minetest contributor agreement.\r
\r
This program is free software; you can redistribute it and/or modify\r
-it under the terms of the GNU General Public License as published by\r
-the Free Software Foundation; either version 2 of the License, or\r
+it under the terms of the GNU Lesser General Public License as published by\r
+the Free Software Foundation; either version 2.1 of the License, or\r
(at your option) any later version.\r
\r
This program is distributed in the hope that it will be useful,\r
but WITHOUT ANY WARRANTY; without even the implied warranty of\r
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
-GNU General Public License for more details.\r
+GNU Lesser General Public License for more details.\r
\r
-You should have received a copy of the GNU General Public License along\r
+You should have received a copy of the GNU Lesser General Public License along\r
with this program; if not, write to the Free Software Foundation, Inc.,\r
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
*/\r
\r
-\r
#ifndef GUIPAUSEMENU_HEADER\r
#define GUIPAUSEMENU_HEADER\r
\r
-#include <irrlicht.h>\r
-using namespace irr;\r
+#include "irrlichttypes_extrabloated.h"\r
+#include "modalMenu.h"\r
\r
-class guiPauseMenu : public IEventReceiver\r
+class IGameCallback\r
{\r
-private:\r
- IrrlichtDevice *dev;\r
- gui::IGUIEnvironment *guienv;\r
- IEventReceiver *oldRecv;\r
-\r
- gui::IGUIStaticText *root;\r
-\r
- bool loadMenu();\r
- void scaleGui();\r
- void scaleGui(gui::IGUIElement *node,float factorX,float factorY);\r
public:\r
- guiPauseMenu(IrrlichtDevice *device,IEventReceiver *recv);\r
+ virtual void exitToOS() = 0;\r
+ virtual void disconnect() = 0;\r
+ virtual void changePassword() = 0;\r
+};\r
\r
- void setVisible(bool visible){root->setVisible(visible);};\r
- bool isVisible(){return root->isVisible();};\r
+class GUIPauseMenu : public GUIModalMenu\r
+{\r
+public:\r
+ GUIPauseMenu(gui::IGUIEnvironment* env,\r
+ gui::IGUIElement* parent, s32 id,\r
+ IGameCallback *gamecallback,\r
+ IMenuManager *menumgr,\r
+ bool simple_singleplayer_mode);\r
+ ~GUIPauseMenu();\r
+ \r
+ void removeChildren();\r
+ /*\r
+ Remove and re-add (or reposition) stuff\r
+ */\r
+ void regenerateGui(v2u32 screensize);\r
+\r
+ void drawMenu();\r
\r
bool OnEvent(const SEvent& event);\r
-\r
- ~guiPauseMenu(void);\r
+ \r
+private:\r
+ IGameCallback *m_gamecallback;\r
+ bool m_simple_singleplayer_mode;\r
};\r
\r
#endif\r