#include "serialization.h"\r
#include "porting.h"\r
#include "config.h"\r
+#include "main.h"\r
+#include <IGUICheckBox.h>\r
+#include <IGUIEditBox.h>\r
+#include <IGUIButton.h>\r
+#include <IGUIStaticText.h>\r
+#include <IGUIFont.h>\r
+\r
+#include "gettext.h"\r
\r
GUIPauseMenu::GUIPauseMenu(gui::IGUIEnvironment* env,\r
gui::IGUIElement* parent, s32 id,\r
if(e != NULL)\r
e->remove();\r
}\r
+ {\r
+ gui::IGUIElement *e = getElementFromId(261);\r
+ if(e != NULL)\r
+ e->remove();\r
+ }\r
}\r
\r
void GUIPauseMenu::regenerateGui(v2u32 screensize)\r
/*\r
Add stuff\r
*/\r
+ const s32 btn_height = 30;\r
+ const s32 btn_gap = 20;\r
+ const s32 btn_num = 4;\r
+ s32 btn_y = size.Y/2-((btn_num*btn_height+(btn_num-1)*btn_gap))/2;\r
+ changeCtype("");\r
+ {\r
+ core::rect<s32> rect(0, 0, 140, btn_height);\r
+ rect = rect + v2s32(size.X/2-140/2, btn_y);\r
+ Environment->addButton(rect, this, 256,\r
+ wgettext("Continue"));\r
+ }\r
+ btn_y += btn_height + btn_gap;\r
{\r
- core::rect<s32> rect(0, 0, 140, 30);\r
- rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2-50);\r
- Environment->addButton(rect, this, 256, L"Continue");\r
+ core::rect<s32> rect(0, 0, 140, btn_height);\r
+ rect = rect + v2s32(size.X/2-140/2, btn_y);\r
+ Environment->addButton(rect, this, 261,\r
+ wgettext("Change Password"));\r
}\r
+ btn_y += btn_height + btn_gap;\r
{\r
- core::rect<s32> rect(0, 0, 140, 30);\r
- rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2+0);\r
- Environment->addButton(rect, this, 260, L"Disconnect");\r
+ core::rect<s32> rect(0, 0, 140, btn_height);\r
+ rect = rect + v2s32(size.X/2-140/2, btn_y);\r
+ Environment->addButton(rect, this, 260,\r
+ wgettext("Disconnect"));\r
}\r
+ btn_y += btn_height + btn_gap;\r
{\r
- core::rect<s32> rect(0, 0, 140, 30);\r
- rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2+50);\r
- Environment->addButton(rect, this, 257, L"Exit to OS");\r
+ core::rect<s32> rect(0, 0, 140, btn_height);\r
+ rect = rect + v2s32(size.X/2-140/2, btn_y);\r
+ Environment->addButton(rect, this, 257,\r
+ wgettext("Exit to OS"));\r
}\r
+\r
{\r
core::rect<s32> rect(0, 0, 180, 240);\r
rect = rect + v2s32(size.X/2 + 90, size.Y/2-rect.getHeight()/2);\r
- const wchar_t *text =\r
- L"Keys:\n"\r
- L"- WASD: Walk\n"\r
- L"- Mouse left: dig blocks\n"\r
- L"- Mouse right: place blocks\n"\r
- L"- Mouse wheel: select item\n"\r
- L"- R: Toggle viewing all loaded chunks\n"\r
- L"- I: Inventory menu\n"\r
- L"- ESC: This menu\n"\r
- L"- T: Chat\n"\r
- L"\n"\r
- L"To generate a new map, remove the map directory.\n";\r
- Environment->addStaticText(text, rect, false, true, this, 258);\r
+ Environment->addStaticText(chartowchar_t(gettext(\r
+ "Default Controls:\n"\r
+ "- WASD: Walk\n"\r
+ "- Mouse left: dig/hit\n"\r
+ "- Mouse right: place/use\n"\r
+ "- Mouse wheel: select item\n"\r
+ "- 0...9: select item\n"\r
+ "- Shift: sneak\n"\r
+ "- R: Toggle viewing all loaded chunks\n"\r
+ "- I: Inventory menu\n"\r
+ "- ESC: This menu\n"\r
+ "- T: Chat\n"\r
+ )), rect, false, true, this, 258);\r
}\r
{\r
core::rect<s32> rect(0, 0, 180, 220);\r
max_texture_size = driver->getMaxTextureSize();\r
}\r
\r
- wchar_t text[200];\r
+ /*wchar_t text[200];\r
swprintf(text, 200,\r
L"Minetest-c55\n"\r
L"by Perttu Ahola\n"\r
,\r
BUILD_INFO,\r
porting::path_userdata.c_str()\r
- );\r
+ );*/\r
+\r
+ std::ostringstream os;\r
+ os<<"Minetest\n";\r
+ os<<"by Perttu Ahola and contributors\n";\r
+ os<<"celeron55@gmail.com\n";\r
+ os<<BUILD_INFO<<"\n";\r
+ os<<"ud_path = "<<wrap_rows(porting::path_userdata, 20)<<"\n";\r
\r
- Environment->addStaticText(text, rect, false, true, this, 259);\r
+ Environment->addStaticText(narrow_to_wide(os.str()).c_str(), rect, false, true, this, 259);\r
}\r
+ changeCtype("C");\r
}\r
\r
void GUIPauseMenu::drawMenu()\r
\r
bool GUIPauseMenu::OnEvent(const SEvent& event)\r
{\r
+\r
if(event.EventType==EET_KEY_INPUT_EVENT)\r
{\r
- if(event.KeyInput.Key==KEY_ESCAPE && event.KeyInput.PressedDown)\r
+ if(event.KeyInput.PressedDown)\r
{\r
- quitMenu();\r
- return true;\r
+ if(event.KeyInput.Key==KEY_ESCAPE)\r
+ {\r
+ quitMenu();\r
+ return true;\r
+ }\r
+ else if(event.KeyInput.Key==KEY_RETURN)\r
+ {\r
+ quitMenu();\r
+ return true;\r
+ }\r
}\r
}\r
if(event.EventType==EET_GUI_EVENT)\r
{\r
case 256: // continue\r
quitMenu();\r
- break;\r
+ // ALWAYS return immediately after quitMenu()\r
+ return true;\r
+ case 261:\r
+ quitMenu();\r
+ m_gamecallback->changePassword();\r
+ return true;\r
case 260: // disconnect\r
m_gamecallback->disconnect();\r
quitMenu();\r
- break;\r
+ return true;\r
case 257: // exit\r
m_gamecallback->exitToOS();\r
quitMenu();\r
- break;\r
+ return true;\r
}\r
}\r
}\r