X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2FguiKeyChangeMenu.cpp;h=fb49ab65953d05e751a3fb342d848fe84487cba6;hb=a869d2345161e30163f8007b6b833bceffd98ebb;hp=d6de114937887adc6856045dc185daadf7f5cdf0;hpb=53eedd3ba4029d7f4154477c3492748bb4f6e4e5;p=oweals%2Fminetest.git diff --git a/src/guiKeyChangeMenu.cpp b/src/guiKeyChangeMenu.cpp index d6de11493..fb49ab659 100644 --- a/src/guiKeyChangeMenu.cpp +++ b/src/guiKeyChangeMenu.cpp @@ -24,6 +24,34 @@ #include "serialization.h" #include "main.h" #include +#include +#include +#include +#include +#include +#include "settings.h" + +enum +{ + GUI_ID_BACK_BUTTON = 101, GUI_ID_ABORT_BUTTON, GUI_ID_SCROLL_BAR, + //buttons + GUI_ID_KEY_FORWARD_BUTTON, + GUI_ID_KEY_BACKWARD_BUTTON, + GUI_ID_KEY_LEFT_BUTTON, + GUI_ID_KEY_RIGHT_BUTTON, + GUI_ID_KEY_USE_BUTTON, + GUI_ID_KEY_FLY_BUTTON, + GUI_ID_KEY_FAST_BUTTON, + GUI_ID_KEY_JUMP_BUTTON, + GUI_ID_KEY_CHAT_BUTTON, + GUI_ID_KEY_CMD_BUTTON, + GUI_ID_KEY_CONSOLE_BUTTON, + GUI_ID_KEY_SNEAK_BUTTON, + GUI_ID_KEY_DROP_BUTTON, + GUI_ID_KEY_INVENTORY_BUTTON, + GUI_ID_KEY_DUMP_BUTTON, + GUI_ID_KEY_RANGE_BUTTON +}; GUIKeyChangeMenu::GUIKeyChangeMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id, IMenuManager *menumgr) : @@ -77,10 +105,10 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) v2s32 topleft(0, 0); changeCtype(""); { - core::rect < s32 > rect(0, 0, 125, 20); + core::rect < s32 > rect(0, 0, 500, 20); rect += topleft + v2s32(25, 3); //gui::IGUIStaticText *t = - Environment->addStaticText(wgettext("KEYBINDINGS"), + Environment->addStaticText(wgettext("KEYBINDINGS (If this menu screws up, see minetest.conf)"), rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -196,6 +224,21 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) wgettext(key_jump.name())); } + offset += v2s32(0, 25); + { + core::rect < s32 > rect(0, 0, 100, 20); + rect += topleft + v2s32(offset.X, offset.Y); + Environment->addStaticText(wgettext("Drop"), rect, false, true, this, -1); + //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); + } + + { + core::rect < s32 > rect(0, 0, 100, 30); + rect += topleft + v2s32(offset.X + 105, offset.Y - 5); + this->dropbtn = Environment->addButton(rect, this, GUI_ID_KEY_DROP_BUTTON, + wgettext(key_drop.name())); + } + offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); @@ -240,7 +283,20 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) this->cmd = Environment->addButton(rect, this, GUI_ID_KEY_CMD_BUTTON, wgettext(key_cmd.name())); } + offset += v2s32(0, 25); + { + core::rect < s32 > rect(0, 0, 100, 20); + rect += topleft + v2s32(offset.X, offset.Y); + Environment->addStaticText(wgettext("Console"), rect, false, true, this, -1); + //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); + } + { + core::rect < s32 > rect(0, 0, 100, 30); + rect += topleft + v2s32(offset.X + 105, offset.Y - 5); + this->console = Environment->addButton(rect, this, GUI_ID_KEY_CONSOLE_BUTTON, + wgettext(key_console.name())); + } //next col offset = v2s32(250, 40); @@ -340,20 +396,22 @@ void GUIKeyChangeMenu::drawMenu() bool GUIKeyChangeMenu::acceptInput() { - g_settings.set("keymap_forward", key_forward.sym()); - g_settings.set("keymap_backward", key_backward.sym()); - g_settings.set("keymap_left", key_left.sym()); - g_settings.set("keymap_right", key_right.sym()); - g_settings.set("keymap_jump", key_jump.sym()); - g_settings.set("keymap_sneak", key_sneak.sym()); - g_settings.set("keymap_inventory", key_inventory.sym()); - g_settings.set("keymap_chat", key_chat.sym()); - g_settings.set("keymap_cmd", key_cmd.sym()); - g_settings.set("keymap_rangeselect", key_range.sym()); - g_settings.set("keymap_freemove", key_fly.sym()); - g_settings.set("keymap_fastmove", key_fast.sym()); - g_settings.set("keymap_special1", key_use.sym()); - g_settings.set("keymap_print_debug_stacks", key_dump.sym()); + g_settings->set("keymap_forward", key_forward.sym()); + g_settings->set("keymap_backward", key_backward.sym()); + g_settings->set("keymap_left", key_left.sym()); + g_settings->set("keymap_right", key_right.sym()); + g_settings->set("keymap_jump", key_jump.sym()); + g_settings->set("keymap_sneak", key_sneak.sym()); + g_settings->set("keymap_drop", key_drop.sym()); + g_settings->set("keymap_inventory", key_inventory.sym()); + g_settings->set("keymap_chat", key_chat.sym()); + g_settings->set("keymap_cmd", key_cmd.sym()); + g_settings->set("keymap_console", key_console.sym()); + g_settings->set("keymap_rangeselect", key_range.sym()); + g_settings->set("keymap_freemove", key_fly.sym()); + g_settings->set("keymap_fastmove", key_fast.sym()); + g_settings->set("keymap_special1", key_use.sym()); + g_settings->set("keymap_print_debug_stacks", key_dump.sym()); clearKeyCache(); return true; } @@ -365,9 +423,11 @@ void GUIKeyChangeMenu::init_keys() key_right = getKeySetting("keymap_right"); key_jump = getKeySetting("keymap_jump"); key_sneak = getKeySetting("keymap_sneak"); + key_drop = getKeySetting("keymap_drop"); key_inventory = getKeySetting("keymap_inventory"); key_chat = getKeySetting("keymap_chat"); key_cmd = getKeySetting("keymap_cmd"); + key_console = getKeySetting("keymap_console"); key_range = getKeySetting("keymap_rangeselect"); key_fly = getKeySetting("keymap_freemove"); key_fast = getKeySetting("keymap_fastmove"); @@ -401,6 +461,9 @@ bool GUIKeyChangeMenu::resetMenu() case GUI_ID_KEY_SNEAK_BUTTON: this->sneak->setText(wgettext(key_sneak.name())); break; + case GUI_ID_KEY_DROP_BUTTON: + this->dropbtn->setText(wgettext(key_drop.name())); + break; case GUI_ID_KEY_INVENTORY_BUTTON: this->inventory->setText( wgettext(key_inventory.name())); @@ -411,6 +474,9 @@ bool GUIKeyChangeMenu::resetMenu() case GUI_ID_KEY_CMD_BUTTON: this->cmd->setText(wgettext(key_cmd.name())); break; + case GUI_ID_KEY_CONSOLE_BUTTON: + this->console->setText(wgettext(key_console.name())); + break; case GUI_ID_KEY_RANGE_BUTTON: this->range->setText(wgettext(key_range.name())); break; @@ -470,6 +536,11 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) this->sneak->setText(wgettext(kp.name())); this->key_sneak = kp; } + else if (activeKey == GUI_ID_KEY_DROP_BUTTON) + { + this->dropbtn->setText(wgettext(kp.name())); + this->key_drop = kp; + } else if (activeKey == GUI_ID_KEY_INVENTORY_BUTTON) { this->inventory->setText(wgettext(kp.name())); @@ -485,6 +556,11 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) this->cmd->setText(wgettext(kp.name())); this->key_cmd = kp; } + else if (activeKey == GUI_ID_KEY_CONSOLE_BUTTON) + { + this->console->setText(wgettext(kp.name())); + this->key_console = kp; + } else if (activeKey == GUI_ID_KEY_RANGE_BUTTON) { this->range->setText(wgettext(kp.name())); @@ -584,6 +660,11 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) activeKey = event.GUIEvent.Caller->getID(); this->jump->setText(wgettext("press Key")); break; + case GUI_ID_KEY_DROP_BUTTON: + resetMenu(); + activeKey = event.GUIEvent.Caller->getID(); + this->dropbtn->setText(wgettext("press Key")); + break; case GUI_ID_KEY_CHAT_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); @@ -594,6 +675,11 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) activeKey = event.GUIEvent.Caller->getID(); this->cmd->setText(wgettext("press Key")); break; + case GUI_ID_KEY_CONSOLE_BUTTON: + resetMenu(); + activeKey = event.GUIEvent.Caller->getID(); + this->console->setText(wgettext("press Key")); + break; case GUI_ID_KEY_SNEAK_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID();