/*\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
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
*/\r
\r
-\r
#ifndef GUIPAUSEMENU_HEADER\r
#define GUIPAUSEMENU_HEADER\r
\r
#include "common_irrlicht.h"\r
+#include "modalMenu.h"\r
+\r
+class IGameCallback\r
+{\r
+public:\r
+ virtual void exitToOS() = 0;\r
+ virtual void disconnect() = 0;\r
+ virtual void changePassword() = 0;\r
+};\r
\r
-class GUIPauseMenu : public gui::IGUIElement\r
+class GUIPauseMenu : public GUIModalMenu\r
{\r
public:\r
GUIPauseMenu(gui::IGUIEnvironment* env,\r
gui::IGUIElement* parent, s32 id,\r
- IrrlichtDevice *dev);\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 resizeGui();\r
+ void regenerateGui(v2u32 screensize);\r
\r
- void draw();\r
-\r
- void launch()\r
- {\r
- setVisible(true);\r
- Environment->setFocus(this);\r
- }\r
-\r
- bool canTakeFocus(gui::IGUIElement *e)\r
- {\r
- return (e && (e == this || isMyChild(e)));\r
- }\r
+ void drawMenu();\r
\r
bool OnEvent(const SEvent& event);\r
\r
private:\r
- IrrlichtDevice *m_dev;\r
- v2u32 m_screensize_old;\r
+ IGameCallback *m_gamecallback;\r
+ bool m_simple_singleplayer_mode;\r
};\r
\r
-/*class GUIPauseMenu : public IEventReceiver\r
-{\r
-public:\r
- void scaleGui();\r
-\r
- GUIPauseMenu(IrrlichtDevice *device,IEventReceiver *recv);\r
- ~GUIPauseMenu(void);\r
-\r
- void setVisible(bool visible){root->setVisible(visible);};\r
- bool isVisible(){return root->isVisible();};\r
-\r
- bool OnEvent(const SEvent& event);\r
-\r
-private:\r
- bool loadMenu();\r
- void scaleGui(gui::IGUIElement *node,float factorX,float factorY);\r
-\r
- IrrlichtDevice *dev;\r
- gui::IGUIEnvironment *guienv;\r
- IEventReceiver *oldRecv;\r
-\r
- gui::IGUIStaticText *root;\r
-};*/\r
-\r
#endif\r
\r