]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/guiPauseMenu.h
Replace SimpleThread by JThread now implementing same features
[dragonfireclient.git] / src / guiPauseMenu.h
index f26a261494ea8e1386b7be699f18809ad4622b64..25011a34ad5fbcb00fd04e4b339830c8371b56b2 100644 (file)
@@ -1,86 +1,61 @@
-/*\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
-(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
-\r
-You should have received a copy of the GNU 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 "common_irrlicht.h"\r
-\r
-class GUIPauseMenu : public gui::IGUIElement\r
-{\r
-public:\r
-       GUIPauseMenu(gui::IGUIEnvironment* env,\r
-                       gui::IGUIElement* parent, s32 id,\r
-                       IrrlichtDevice *dev);\r
-       ~GUIPauseMenu();\r
-       \r
-       /*\r
-               Remove and re-add (or reposition) stuff\r
-       */\r
-       void resizeGui();\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
-\r
-       bool OnEvent(const SEvent& event);\r
-       \r
-private:\r
-       IrrlichtDevice *m_dev;\r
-       v2u32 m_screensize_old;\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
+/*
+Minetest
+Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef GUIPAUSEMENU_HEADER
+#define GUIPAUSEMENU_HEADER
+
+#include "irrlichttypes_extrabloated.h"
+#include "modalMenu.h"
+
+class IGameCallback
+{
+public:
+       virtual void exitToOS() = 0;
+       virtual void disconnect() = 0;
+       virtual void changePassword() = 0;
+       virtual void changeVolume() = 0;
+};
+
+class GUIPauseMenu : public GUIModalMenu
+{
+public:
+       GUIPauseMenu(gui::IGUIEnvironment* env,
+                       gui::IGUIElement* parent, s32 id,
+                       IGameCallback *gamecallback,
+                       IMenuManager *menumgr,
+                       bool simple_singleplayer_mode);
+       ~GUIPauseMenu();
+       
+       void removeChildren();
+       /*
+               Remove and re-add (or reposition) stuff
+       */
+       void regenerateGui(v2u32 screensize);
+
+       void drawMenu();
+
+       bool OnEvent(const SEvent& event);
+       
+private:
+       IGameCallback *m_gamecallback;
+       bool m_simple_singleplayer_mode;
+};
+
+#endif
+