X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2FguiKeyChangeMenu.cpp;h=fb49ab65953d05e751a3fb342d848fe84487cba6;hb=a869d2345161e30163f8007b6b833bceffd98ebb;hp=3e594aecadf89eba8195cf7b8eabc2a2fefc60fc;hpb=3882536d40656564b31c20008b55dfd77e848304;p=oweals%2Fminetest.git diff --git a/src/guiKeyChangeMenu.cpp b/src/guiKeyChangeMenu.cpp index 3e594aeca..fb49ab659 100644 --- a/src/guiKeyChangeMenu.cpp +++ b/src/guiKeyChangeMenu.cpp @@ -1,5 +1,5 @@ /* - Minetest-delta + Minetest-c55 Copyright (C) 2010-11 celeron55, Perttu Ahola Copyright (C) 2011 Ciaran Gultnieks Copyright (C) 2011 teddydestodes @@ -22,9 +22,36 @@ #include "guiKeyChangeMenu.h" #include "debug.h" #include "serialization.h" -#include "keycode.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) : @@ -76,13 +103,13 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) recalculateAbsolutePosition(false); 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); - const wchar_t *text = L"KEYBINDINGS"; //gui::IGUIStaticText *t = - Environment->addStaticText(text, rect, false, true, this, -1); + 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); } v2s32 offset(25, 40); @@ -91,8 +118,8 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Forward"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Forward"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -101,15 +128,15 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->forward = Environment->addButton(rect, this, GUI_ID_KEY_FORWARD_BUTTON, - narrow_to_wide(KeyNames[key_forward]).c_str()); + wgettext(key_forward.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Backward"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Backward"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -118,14 +145,14 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->backward = Environment->addButton(rect, this, GUI_ID_KEY_BACKWARD_BUTTON, - narrow_to_wide(KeyNames[key_backward]).c_str()); + wgettext(key_backward.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Left"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Left"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -133,14 +160,14 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) core::rect < s32 > rect(0, 0, 100, 30); rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->left = Environment->addButton(rect, this, GUI_ID_KEY_LEFT_BUTTON, - narrow_to_wide(KeyNames[key_left]).c_str()); + wgettext(key_left.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Right"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Right"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -149,14 +176,14 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->right = Environment->addButton(rect, this, GUI_ID_KEY_RIGHT_BUTTON, - narrow_to_wide(KeyNames[key_right]).c_str()); + wgettext(key_right.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Use"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Use"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -164,14 +191,14 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) core::rect < s32 > rect(0, 0, 100, 30); rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->use = Environment->addButton(rect, this, GUI_ID_KEY_USE_BUTTON, - narrow_to_wide(KeyNames[key_use]).c_str()); + wgettext(key_use.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Sneak"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Sneak"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -180,14 +207,13 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->sneak = Environment->addButton(rect, this, GUI_ID_KEY_SNEAK_BUTTON, - narrow_to_wide(KeyNames[key_sneak]).c_str()); + wgettext(key_sneak.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Jump"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Jump"), rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -195,15 +221,30 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) core::rect < s32 > rect(0, 0, 100, 30); rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->jump = Environment->addButton(rect, this, GUI_ID_KEY_JUMP_BUTTON, - narrow_to_wide(KeyNames[key_jump]).c_str()); + 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); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Inventory"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Inventory"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -212,14 +253,13 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->inventory = Environment->addButton(rect, this, GUI_ID_KEY_INVENTORY_BUTTON, - narrow_to_wide(KeyNames[key_inventory]).c_str()); + wgettext(key_inventory.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Chat"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Chat"), rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -227,7 +267,35 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) core::rect < s32 > rect(0, 0, 100, 30); rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->chat = Environment->addButton(rect, this, GUI_ID_KEY_CHAT_BUTTON, - narrow_to_wide(KeyNames[key_chat]).c_str()); + wgettext(key_chat.name())); + } + offset += v2s32(0, 25); + { + core::rect < s32 > rect(0, 0, 100, 20); + rect += topleft + v2s32(offset.X, offset.Y); + Environment->addStaticText(wgettext("Command"), 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->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 @@ -235,8 +303,8 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Toggle fly"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Toggle fly"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -244,14 +312,14 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) core::rect < s32 > rect(0, 0, 100, 30); rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->fly = Environment->addButton(rect, this, GUI_ID_KEY_FLY_BUTTON, - narrow_to_wide(KeyNames[key_fly]).c_str()); + wgettext(key_fly.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Toggle fast"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Toggle fast"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -259,14 +327,14 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) core::rect < s32 > rect(0, 0, 100, 30); rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->fast = Environment->addButton(rect, this, GUI_ID_KEY_FAST_BUTTON, - narrow_to_wide(KeyNames[key_fast]).c_str()); + wgettext(key_fast.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Range select"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Range select"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -275,15 +343,15 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->range = Environment->addButton(rect, this, GUI_ID_KEY_RANGE_BUTTON, - narrow_to_wide(KeyNames[key_range]).c_str()); + wgettext(key_range.name())); } offset += v2s32(0, 25); { core::rect < s32 > rect(0, 0, 100, 20); rect += topleft + v2s32(offset.X, offset.Y); - const wchar_t *text = L"Print stacks"; - Environment->addStaticText(text, rect, false, true, this, -1); + Environment->addStaticText(wgettext("Print stacks"), + rect, false, true, this, -1); //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT); } @@ -291,18 +359,21 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) core::rect < s32 > rect(0, 0, 100, 30); rect += topleft + v2s32(offset.X + 105, offset.Y - 5); this->dump = Environment->addButton(rect, this, GUI_ID_KEY_DUMP_BUTTON, - narrow_to_wide(KeyNames[key_dump]).c_str()); + wgettext(key_dump.name())); } { core::rect < s32 > rect(0, 0, 100, 30); rect += topleft + v2s32(size.X - 100 - 20, size.Y - 40); - Environment->addButton(rect, this, GUI_ID_BACK_BUTTON, L"Save"); + Environment->addButton(rect, this, GUI_ID_BACK_BUTTON, + wgettext("Save")); } { core::rect < s32 > rect(0, 0, 100, 30); rect += topleft + v2s32(size.X - 100 - 20 - 100 - 20, size.Y - 40); - Environment->addButton(rect, this, GUI_ID_ABORT_BUTTON, L"Cancel"); + Environment->addButton(rect, this, GUI_ID_ABORT_BUTTON, + wgettext("Cancel")); } + changeCtype("C"); } void GUIKeyChangeMenu::drawMenu() @@ -325,20 +396,23 @@ void GUIKeyChangeMenu::drawMenu() bool GUIKeyChangeMenu::acceptInput() { - g_settings.set("keymap_forward", keycode_to_keyname(key_forward)); - g_settings.set("keymap_backward", keycode_to_keyname(key_backward)); - g_settings.set("keymap_left", keycode_to_keyname(key_left)); - g_settings.set("keymap_right", keycode_to_keyname(key_right)); - g_settings.set("keymap_jump", keycode_to_keyname(key_jump)); - g_settings.set("keymap_sneak", keycode_to_keyname(key_sneak)); - g_settings.set("keymap_inventory", keycode_to_keyname(key_inventory)); - g_settings.set("keymap_chat", keycode_to_keyname(key_chat)); - g_settings.set("keymap_rangeselect", keycode_to_keyname(key_range)); - g_settings.set("keymap_freemove", keycode_to_keyname(key_fly)); - g_settings.set("keymap_fastmove", keycode_to_keyname(key_fast)); - g_settings.set("keymap_special1", keycode_to_keyname(key_use)); - g_settings.set("keymap_print_debug_stacks", keycode_to_keyname(key_dump)); - //clearKeyCache(); Y U NO SCOPE?! + 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; } void GUIKeyChangeMenu::init_keys() @@ -349,8 +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"); @@ -366,45 +443,54 @@ bool GUIKeyChangeMenu::resetMenu() { case GUI_ID_KEY_FORWARD_BUTTON: this->forward->setText( - narrow_to_wide(KeyNames[key_forward]).c_str()); + wgettext(key_forward.name())); break; case GUI_ID_KEY_BACKWARD_BUTTON: this->backward->setText( - narrow_to_wide(KeyNames[key_backward]).c_str()); + wgettext(key_backward.name())); break; case GUI_ID_KEY_LEFT_BUTTON: - this->left->setText(narrow_to_wide(KeyNames[key_left]).c_str()); + this->left->setText(wgettext(key_left.name())); break; case GUI_ID_KEY_RIGHT_BUTTON: - this->right->setText(narrow_to_wide(KeyNames[key_right]).c_str()); + this->right->setText(wgettext(key_right.name())); break; case GUI_ID_KEY_JUMP_BUTTON: - this->jump->setText(narrow_to_wide(KeyNames[key_jump]).c_str()); + this->jump->setText(wgettext(key_jump.name())); break; case GUI_ID_KEY_SNEAK_BUTTON: - this->sneak->setText(narrow_to_wide(KeyNames[key_sneak]).c_str()); + 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( - narrow_to_wide(KeyNames[key_inventory]).c_str()); + wgettext(key_inventory.name())); break; case GUI_ID_KEY_CHAT_BUTTON: - this->chat->setText(narrow_to_wide(KeyNames[key_chat]).c_str()); + this->chat->setText(wgettext(key_chat.name())); + break; + 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(narrow_to_wide(KeyNames[key_range]).c_str()); + this->range->setText(wgettext(key_range.name())); break; case GUI_ID_KEY_FLY_BUTTON: - this->fly->setText(narrow_to_wide(KeyNames[key_fly]).c_str()); + this->fly->setText(wgettext(key_fly.name())); break; case GUI_ID_KEY_FAST_BUTTON: - this->fast->setText(narrow_to_wide(KeyNames[key_fast]).c_str()); + this->fast->setText(wgettext(key_fast.name())); break; case GUI_ID_KEY_USE_BUTTON: - this->use->setText(narrow_to_wide(KeyNames[key_use]).c_str()); + this->use->setText(wgettext(key_use.name())); break; case GUI_ID_KEY_DUMP_BUTTON: - this->dump->setText(narrow_to_wide(KeyNames[key_dump]).c_str()); + this->dump->setText(wgettext(key_dump.name())); break; } activeKey = -1; @@ -417,85 +503,90 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) if (event.EventType == EET_KEY_INPUT_EVENT && activeKey >= 0 && event.KeyInput.PressedDown) { + changeCtype(""); + KeyPress kp(event.KeyInput); + if (activeKey == GUI_ID_KEY_FORWARD_BUTTON) { - this->forward->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_forward = event.KeyInput.Key; + this->forward->setText(wgettext(kp.name())); + this->key_forward = kp; } else if (activeKey == GUI_ID_KEY_BACKWARD_BUTTON) { - this->backward->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_backward = event.KeyInput.Key; + this->backward->setText(wgettext(kp.name())); + this->key_backward = kp; } else if (activeKey == GUI_ID_KEY_LEFT_BUTTON) { - this->left->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_left = event.KeyInput.Key; + this->left->setText(wgettext(kp.name())); + this->key_left = kp; } else if (activeKey == GUI_ID_KEY_RIGHT_BUTTON) { - this->right->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_right = event.KeyInput.Key; + this->right->setText(wgettext(kp.name())); + this->key_right = kp; } else if (activeKey == GUI_ID_KEY_JUMP_BUTTON) { - this->jump->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_jump = event.KeyInput.Key; + this->jump->setText(wgettext(kp.name())); + this->key_jump = kp; } else if (activeKey == GUI_ID_KEY_SNEAK_BUTTON) { - this->sneak->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_sneak = event.KeyInput.Key; + 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( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_inventory = event.KeyInput.Key; + this->inventory->setText(wgettext(kp.name())); + this->key_inventory = kp; } else if (activeKey == GUI_ID_KEY_CHAT_BUTTON) { - this->chat->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_chat = event.KeyInput.Key; + this->chat->setText(wgettext(kp.name())); + this->key_chat = kp; + } + else if (activeKey == GUI_ID_KEY_CMD_BUTTON) + { + 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( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_range = event.KeyInput.Key; + this->range->setText(wgettext(kp.name())); + this->key_range = kp; } else if (activeKey == GUI_ID_KEY_FLY_BUTTON) { - this->fly->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_fly = event.KeyInput.Key; + this->fly->setText(wgettext(kp.name())); + this->key_fly = kp; } else if (activeKey == GUI_ID_KEY_FAST_BUTTON) { - this->fast->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_fast = event.KeyInput.Key; + this->fast->setText(wgettext(kp.name())); + this->key_fast = kp; } else if (activeKey == GUI_ID_KEY_USE_BUTTON) { - this->use->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_use = event.KeyInput.Key; + this->use->setText(wgettext(kp.name())); + this->key_use = kp; } else if (activeKey == GUI_ID_KEY_DUMP_BUTTON) { - this->dump->setText( - narrow_to_wide(KeyNames[event.KeyInput.Key]).c_str()); - this->key_dump = event.KeyInput.Key; + this->dump->setText(wgettext(kp.name())); + this->key_dump = kp; } - + changeCtype("C"); activeKey = -1; return true; } @@ -514,6 +605,12 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) } if (event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED) { + if(event.GUIEvent.Caller->getID() != GUI_ID_BACK_BUTTON && + event.GUIEvent.Caller->getID() != GUI_ID_ABORT_BUTTON) + { + changeCtype(""); + } + switch (event.GUIEvent.Caller->getID()) { case GUI_ID_BACK_BUTTON: //back @@ -526,70 +623,86 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) case GUI_ID_KEY_FORWARD_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->forward->setText(L"press Key"); + this->forward->setText(wgettext("press Key")); break; case GUI_ID_KEY_BACKWARD_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->backward->setText(L"press Key"); + this->backward->setText(wgettext("press Key")); break; case GUI_ID_KEY_LEFT_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->left->setText(L"press Key"); + this->left->setText(wgettext("press Key")); break; case GUI_ID_KEY_RIGHT_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->right->setText(L"press Key"); + this->right->setText(wgettext("press Key")); break; case GUI_ID_KEY_USE_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->use->setText(L"press Key"); + this->use->setText(wgettext("press Key")); break; case GUI_ID_KEY_FLY_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->fly->setText(L"press Key"); + this->fly->setText(wgettext("press Key")); break; case GUI_ID_KEY_FAST_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->fast->setText(L"press Key"); + this->fast->setText(wgettext("press Key")); break; case GUI_ID_KEY_JUMP_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->jump->setText(L"press Key"); + 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(); - this->chat->setText(L"press Key"); + this->chat->setText(wgettext("press Key")); + break; + case GUI_ID_KEY_CMD_BUTTON: + resetMenu(); + 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(); - this->sneak->setText(L"press Key"); + this->sneak->setText(wgettext("press Key")); break; case GUI_ID_KEY_INVENTORY_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->inventory->setText(L"press Key"); + this->inventory->setText(wgettext("press Key")); break; case GUI_ID_KEY_DUMP_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->dump->setText(L"press Key"); + this->dump->setText(wgettext("press Key")); break; case GUI_ID_KEY_RANGE_BUTTON: resetMenu(); activeKey = event.GUIEvent.Caller->getID(); - this->range->setText(L"press Key"); + this->range->setText(wgettext("press Key")); break; } //Buttons + changeCtype("C"); } }