3 Copyright (C) 2010-11 celeron55, Perttu Ahola <celeron55@gmail.com>
4 Copyright (C) 2011 Ciaran Gultnieks <ciaran@ciarang.com>
5 Copyright (C) 2011 teddydestodes <derkomtur@schattengang.net>
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License along
18 with this program; if not, write to the Free Software Foundation, Inc.,
19 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 #include "guiKeyChangeMenu.h"
24 #include "serialization.h"
29 static const char *KeyNamesLang[] =
30 { "-", N_("Left Button"), N_("Right Button"), N_("Cancel"), N_("Middle Button"), N_("X Button 1"),
31 N_("X Button 2"), "-", N_("Back"), N_("Tab"), "-", "-", N_("Clear"), N_("Return"), "-",
32 "-", N_("Shift"), N_("Control"), N_("Menu"), N_("Pause"), N_("Capital"), N_("Kana"), "-",
33 N_("Junja"), N_("Final"), N_("Kanji"), "-", N_("Escape"), N_("Convert"), N_("Nonconvert"),
34 N_("Accept"), N_("Mode Change"), N_("Space"), N_("Priot"), N_("Next"), N_("End"), N_("Home"),
35 N_("Left"), N_("Up"), N_("Right"), N_("Down"), N_("Select"), N_("Print"), N_("Execute"),
36 N_("Snapshot"), N_("Insert"), N_("Delete"), N_("Help"), "0", "1", "2", "3", "4", "5",
37 "6", "7", "8", "9", "-", "-", "-", "-", "-", "-", "-", "A", "B", "C",
38 "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q",
39 "R", "S", "T", "U", "V", "W", "X", "Y", "Z", N_("Left Windows"),
40 N_("Right Windows"), N_("Apps"), "-", N_("Sleep"), N_("Numpad 0"), N_("Numpad 1"),
41 N_("Numpad 2"), N_("Numpad 3"), N_("Numpad 4"), N_("Numpad 5"), N_("Numpad 6"), N_("Numpad 7"),
42 N_("Numpad 8"), N_("Numpad 9"), N_("Numpad *"), N_("Numpad +"), N_("Numpad /"), N_("Numpad -"),
43 "Numpad .", "Numpad /", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8",
44 "F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18",
45 "F19", "F20", "F21", "F22", "F23", "F24", "-", "-", "-", "-", "-", "-",
46 "-", "-", N_("Num Lock"), N_("Scroll Lock"), "-", "-", "-", "-", "-", "-", "-",
47 "-", "-", "-", "-", "-", "-", "-", N_("Left Shift"), N_("Right Shight"),
48 N_("Left Control"), N_("Right Control"), N_("Left Menu"), N_("Right Menu"), "-", "-",
49 "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
50 "-", "-", "-", "-", "-", N_("Plus"), N_("Comma"), N_("Minus"), N_("Period"), "-", "-",
51 "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
52 "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
53 "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
54 "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", N_("Attn"), N_("CrSel"),
55 N_("ExSel"), N_("Erase OEF"), N_("Play"), N_("Zoom"), N_("PA1"), N_("OEM Clear"), "-" };
57 GUIKeyChangeMenu::GUIKeyChangeMenu(gui::IGUIEnvironment* env,
58 gui::IGUIElement* parent, s32 id, IMenuManager *menumgr) :
59 GUIModalMenu(env, parent, id, menumgr)
65 GUIKeyChangeMenu::~GUIKeyChangeMenu()
70 void GUIKeyChangeMenu::removeChildren()
72 const core::list<gui::IGUIElement*> &children = getChildren();
73 core::list<gui::IGUIElement*> children_copy;
74 for (core::list<gui::IGUIElement*>::ConstIterator i = children.begin(); i
75 != children.end(); i++)
77 children_copy.push_back(*i);
79 for (core::list<gui::IGUIElement*>::Iterator i = children_copy.begin(); i
80 != children_copy.end(); i++)
86 void GUIKeyChangeMenu::regenerateGui(v2u32 screensize)
94 Calculate new sizes and positions
99 core::rect < s32 > rect(screensize.X / 2 - size.X / 2,
100 screensize.Y / 2 - size.Y / 2, screensize.X / 2 + size.X / 2,
101 screensize.Y / 2 + size.Y / 2);
104 recalculateAbsolutePosition(false);
109 core::rect < s32 > rect(0, 0, 125, 20);
110 rect += topleft + v2s32(25, 3);
111 //gui::IGUIStaticText *t =
112 Environment->addStaticText(wgettext("KEYBINDINGS"),
113 rect, false, true, this, -1);
114 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
116 v2s32 offset(25, 40);
120 core::rect < s32 > rect(0, 0, 100, 20);
121 rect += topleft + v2s32(offset.X, offset.Y);
122 Environment->addStaticText(wgettext("Forward"),
123 rect, false, true, this, -1);
124 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
128 core::rect < s32 > rect(0, 0, 100, 30);
129 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
130 this->forward = Environment->addButton(rect, this,
131 GUI_ID_KEY_FORWARD_BUTTON,
132 wgettext(KeyNamesLang[key_forward]));
135 offset += v2s32(0, 25);
137 core::rect < s32 > rect(0, 0, 100, 20);
138 rect += topleft + v2s32(offset.X, offset.Y);
139 Environment->addStaticText(wgettext("Backward"),
140 rect, false, true, this, -1);
141 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
145 core::rect < s32 > rect(0, 0, 100, 30);
146 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
147 this->backward = Environment->addButton(rect, this,
148 GUI_ID_KEY_BACKWARD_BUTTON,
149 wgettext(KeyNamesLang[key_backward]));
151 offset += v2s32(0, 25);
153 core::rect < s32 > rect(0, 0, 100, 20);
154 rect += topleft + v2s32(offset.X, offset.Y);
155 Environment->addStaticText(wgettext("Left"),
156 rect, false, true, this, -1);
157 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
161 core::rect < s32 > rect(0, 0, 100, 30);
162 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
163 this->left = Environment->addButton(rect, this, GUI_ID_KEY_LEFT_BUTTON,
164 wgettext(KeyNamesLang[key_left]));
166 offset += v2s32(0, 25);
168 core::rect < s32 > rect(0, 0, 100, 20);
169 rect += topleft + v2s32(offset.X, offset.Y);
170 Environment->addStaticText(wgettext("Right"),
171 rect, false, true, this, -1);
172 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
176 core::rect < s32 > rect(0, 0, 100, 30);
177 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
178 this->right = Environment->addButton(rect, this,
179 GUI_ID_KEY_RIGHT_BUTTON,
180 wgettext(KeyNamesLang[key_right]));
182 offset += v2s32(0, 25);
184 core::rect < s32 > rect(0, 0, 100, 20);
185 rect += topleft + v2s32(offset.X, offset.Y);
186 Environment->addStaticText(wgettext("Use"),
187 rect, false, true, this, -1);
188 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
192 core::rect < s32 > rect(0, 0, 100, 30);
193 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
194 this->use = Environment->addButton(rect, this, GUI_ID_KEY_USE_BUTTON,
195 wgettext(KeyNamesLang[key_use]));
197 offset += v2s32(0, 25);
199 core::rect < s32 > rect(0, 0, 100, 20);
200 rect += topleft + v2s32(offset.X, offset.Y);
201 Environment->addStaticText(wgettext("Sneak"),
202 rect, false, true, this, -1);
203 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
207 core::rect < s32 > rect(0, 0, 100, 30);
208 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
209 this->sneak = Environment->addButton(rect, this,
210 GUI_ID_KEY_SNEAK_BUTTON,
211 wgettext(KeyNamesLang[key_sneak]));
213 offset += v2s32(0, 25);
215 core::rect < s32 > rect(0, 0, 100, 20);
216 rect += topleft + v2s32(offset.X, offset.Y);
217 Environment->addStaticText(wgettext("Jump"), rect, false, true, this, -1);
218 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
222 core::rect < s32 > rect(0, 0, 100, 30);
223 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
224 this->jump = Environment->addButton(rect, this, GUI_ID_KEY_JUMP_BUTTON,
225 wgettext(KeyNamesLang[key_jump]));
228 offset += v2s32(0, 25);
230 core::rect < s32 > rect(0, 0, 100, 20);
231 rect += topleft + v2s32(offset.X, offset.Y);
232 Environment->addStaticText(wgettext("Inventory"),
233 rect, false, true, this, -1);
234 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
238 core::rect < s32 > rect(0, 0, 100, 30);
239 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
240 this->inventory = Environment->addButton(rect, this,
241 GUI_ID_KEY_INVENTORY_BUTTON,
242 wgettext(KeyNamesLang[key_inventory]));
244 offset += v2s32(0, 25);
246 core::rect < s32 > rect(0, 0, 100, 20);
247 rect += topleft + v2s32(offset.X, offset.Y);
248 Environment->addStaticText(wgettext("Chat"), rect, false, true, this, -1);
249 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
253 core::rect < s32 > rect(0, 0, 100, 30);
254 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
255 this->chat = Environment->addButton(rect, this, GUI_ID_KEY_CHAT_BUTTON,
256 wgettext(KeyNamesLang[key_chat]));
260 offset = v2s32(250, 40);
262 core::rect < s32 > rect(0, 0, 100, 20);
263 rect += topleft + v2s32(offset.X, offset.Y);
264 Environment->addStaticText(wgettext("Toggle fly"),
265 rect, false, true, this, -1);
266 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
270 core::rect < s32 > rect(0, 0, 100, 30);
271 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
272 this->fly = Environment->addButton(rect, this, GUI_ID_KEY_FLY_BUTTON,
273 wgettext(KeyNamesLang[key_fly]));
275 offset += v2s32(0, 25);
277 core::rect < s32 > rect(0, 0, 100, 20);
278 rect += topleft + v2s32(offset.X, offset.Y);
279 Environment->addStaticText(wgettext("Toggle fast"),
280 rect, false, true, this, -1);
281 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
285 core::rect < s32 > rect(0, 0, 100, 30);
286 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
287 this->fast = Environment->addButton(rect, this, GUI_ID_KEY_FAST_BUTTON,
288 wgettext(KeyNamesLang[key_fast]));
290 offset += v2s32(0, 25);
292 core::rect < s32 > rect(0, 0, 100, 20);
293 rect += topleft + v2s32(offset.X, offset.Y);
294 Environment->addStaticText(wgettext("Range select"),
295 rect, false, true, this, -1);
296 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
300 core::rect < s32 > rect(0, 0, 100, 30);
301 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
302 this->range = Environment->addButton(rect, this,
303 GUI_ID_KEY_RANGE_BUTTON,
304 wgettext(KeyNamesLang[key_range]));
307 offset += v2s32(0, 25);
309 core::rect < s32 > rect(0, 0, 100, 20);
310 rect += topleft + v2s32(offset.X, offset.Y);
311 Environment->addStaticText(wgettext("Print stacks"),
312 rect, false, true, this, -1);
313 //t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
317 core::rect < s32 > rect(0, 0, 100, 30);
318 rect += topleft + v2s32(offset.X + 105, offset.Y - 5);
319 this->dump = Environment->addButton(rect, this, GUI_ID_KEY_DUMP_BUTTON,
320 wgettext(KeyNamesLang[key_dump]));
323 core::rect < s32 > rect(0, 0, 100, 30);
324 rect += topleft + v2s32(size.X - 100 - 20, size.Y - 40);
325 Environment->addButton(rect, this, GUI_ID_BACK_BUTTON,
329 core::rect < s32 > rect(0, 0, 100, 30);
330 rect += topleft + v2s32(size.X - 100 - 20 - 100 - 20, size.Y - 40);
331 Environment->addButton(rect, this, GUI_ID_ABORT_BUTTON,
337 void GUIKeyChangeMenu::drawMenu()
339 gui::IGUISkin* skin = Environment->getSkin();
342 video::IVideoDriver* driver = Environment->getVideoDriver();
344 video::SColor bgcolor(140, 0, 0, 0);
347 core::rect < s32 > rect(0, 0, 620, 620);
348 rect += AbsoluteRect.UpperLeftCorner;
349 driver->draw2DRectangle(bgcolor, rect, &AbsoluteClippingRect);
352 gui::IGUIElement::draw();
355 bool GUIKeyChangeMenu::acceptInput()
357 g_settings.set("keymap_forward", keycode_to_keyname(key_forward));
358 g_settings.set("keymap_backward", keycode_to_keyname(key_backward));
359 g_settings.set("keymap_left", keycode_to_keyname(key_left));
360 g_settings.set("keymap_right", keycode_to_keyname(key_right));
361 g_settings.set("keymap_jump", keycode_to_keyname(key_jump));
362 g_settings.set("keymap_sneak", keycode_to_keyname(key_sneak));
363 g_settings.set("keymap_inventory", keycode_to_keyname(key_inventory));
364 g_settings.set("keymap_chat", keycode_to_keyname(key_chat));
365 g_settings.set("keymap_rangeselect", keycode_to_keyname(key_range));
366 g_settings.set("keymap_freemove", keycode_to_keyname(key_fly));
367 g_settings.set("keymap_fastmove", keycode_to_keyname(key_fast));
368 g_settings.set("keymap_special1", keycode_to_keyname(key_use));
369 g_settings.set("keymap_print_debug_stacks", keycode_to_keyname(key_dump));
373 void GUIKeyChangeMenu::init_keys()
375 key_forward = getKeySetting("keymap_forward");
376 key_backward = getKeySetting("keymap_backward");
377 key_left = getKeySetting("keymap_left");
378 key_right = getKeySetting("keymap_right");
379 key_jump = getKeySetting("keymap_jump");
380 key_sneak = getKeySetting("keymap_sneak");
381 key_inventory = getKeySetting("keymap_inventory");
382 key_chat = getKeySetting("keymap_chat");
383 key_range = getKeySetting("keymap_rangeselect");
384 key_fly = getKeySetting("keymap_freemove");
385 key_fast = getKeySetting("keymap_fastmove");
386 key_use = getKeySetting("keymap_special1");
387 key_dump = getKeySetting("keymap_print_debug_stacks");
390 bool GUIKeyChangeMenu::resetMenu()
396 case GUI_ID_KEY_FORWARD_BUTTON:
397 this->forward->setText(
398 wgettext(KeyNamesLang[key_forward]));
400 case GUI_ID_KEY_BACKWARD_BUTTON:
401 this->backward->setText(
402 wgettext(KeyNamesLang[key_backward]));
404 case GUI_ID_KEY_LEFT_BUTTON:
405 this->left->setText(wgettext(KeyNamesLang[key_left]));
407 case GUI_ID_KEY_RIGHT_BUTTON:
408 this->right->setText(wgettext(KeyNamesLang[key_right]));
410 case GUI_ID_KEY_JUMP_BUTTON:
411 this->jump->setText(wgettext(KeyNamesLang[key_jump]));
413 case GUI_ID_KEY_SNEAK_BUTTON:
414 this->sneak->setText(wgettext(KeyNamesLang[key_sneak]));
416 case GUI_ID_KEY_INVENTORY_BUTTON:
417 this->inventory->setText(
418 wgettext(KeyNamesLang[key_inventory]));
420 case GUI_ID_KEY_CHAT_BUTTON:
421 this->chat->setText(wgettext(KeyNamesLang[key_chat]));
423 case GUI_ID_KEY_RANGE_BUTTON:
424 this->range->setText(wgettext(KeyNamesLang[key_range]));
426 case GUI_ID_KEY_FLY_BUTTON:
427 this->fly->setText(wgettext(KeyNamesLang[key_fly]));
429 case GUI_ID_KEY_FAST_BUTTON:
430 this->fast->setText(wgettext(KeyNamesLang[key_fast]));
432 case GUI_ID_KEY_USE_BUTTON:
433 this->use->setText(wgettext(KeyNamesLang[key_use]));
435 case GUI_ID_KEY_DUMP_BUTTON:
436 this->dump->setText(wgettext(KeyNamesLang[key_dump]));
444 bool GUIKeyChangeMenu::OnEvent(const SEvent& event)
446 if (event.EventType == EET_KEY_INPUT_EVENT && activeKey >= 0
447 && event.KeyInput.PressedDown)
450 if (activeKey == GUI_ID_KEY_FORWARD_BUTTON)
452 this->forward->setText(
453 wgettext(KeyNamesLang[event.KeyInput.Key]));
454 this->key_forward = event.KeyInput.Key;
456 else if (activeKey == GUI_ID_KEY_BACKWARD_BUTTON)
458 this->backward->setText(
459 wgettext(KeyNamesLang[event.KeyInput.Key]));
460 this->key_backward = event.KeyInput.Key;
462 else if (activeKey == GUI_ID_KEY_LEFT_BUTTON)
465 wgettext(KeyNamesLang[event.KeyInput.Key]));
466 this->key_left = event.KeyInput.Key;
468 else if (activeKey == GUI_ID_KEY_RIGHT_BUTTON)
470 this->right->setText(
471 wgettext(KeyNamesLang[event.KeyInput.Key]));
472 this->key_right = event.KeyInput.Key;
474 else if (activeKey == GUI_ID_KEY_JUMP_BUTTON)
477 wgettext(KeyNamesLang[event.KeyInput.Key]));
478 this->key_jump = event.KeyInput.Key;
480 else if (activeKey == GUI_ID_KEY_SNEAK_BUTTON)
482 this->sneak->setText(
483 wgettext(KeyNamesLang[event.KeyInput.Key]));
484 this->key_sneak = event.KeyInput.Key;
486 else if (activeKey == GUI_ID_KEY_INVENTORY_BUTTON)
488 this->inventory->setText(
489 wgettext(KeyNamesLang[event.KeyInput.Key]));
490 this->key_inventory = event.KeyInput.Key;
492 else if (activeKey == GUI_ID_KEY_CHAT_BUTTON)
495 wgettext(KeyNamesLang[event.KeyInput.Key]));
496 this->key_chat = event.KeyInput.Key;
498 else if (activeKey == GUI_ID_KEY_RANGE_BUTTON)
500 this->range->setText(
501 wgettext(KeyNamesLang[event.KeyInput.Key]));
502 this->key_range = event.KeyInput.Key;
504 else if (activeKey == GUI_ID_KEY_FLY_BUTTON)
507 wgettext(KeyNamesLang[event.KeyInput.Key]));
508 this->key_fly = event.KeyInput.Key;
510 else if (activeKey == GUI_ID_KEY_FAST_BUTTON)
513 wgettext(KeyNamesLang[event.KeyInput.Key]));
514 this->key_fast = event.KeyInput.Key;
516 else if (activeKey == GUI_ID_KEY_USE_BUTTON)
519 wgettext(KeyNamesLang[event.KeyInput.Key]));
520 this->key_use = event.KeyInput.Key;
522 else if (activeKey == GUI_ID_KEY_DUMP_BUTTON)
525 wgettext(KeyNamesLang[event.KeyInput.Key]));
526 this->key_dump = event.KeyInput.Key;
532 if (event.EventType == EET_GUI_EVENT)
534 if (event.GUIEvent.EventType == gui::EGET_ELEMENT_FOCUS_LOST
537 if (!canTakeFocus(event.GUIEvent.Element))
539 dstream << "GUIMainMenu: Not allowing focus change."
541 // Returning true disables focus change
545 if (event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED)
547 if(event.GUIEvent.Caller->getID() != GUI_ID_BACK_BUTTON &&
548 event.GUIEvent.Caller->getID() != GUI_ID_ABORT_BUTTON)
553 switch (event.GUIEvent.Caller->getID())
555 case GUI_ID_BACK_BUTTON: //back
559 case GUI_ID_ABORT_BUTTON: //abort
562 case GUI_ID_KEY_FORWARD_BUTTON:
564 activeKey = event.GUIEvent.Caller->getID();
565 this->forward->setText(wgettext("press Key"));
567 case GUI_ID_KEY_BACKWARD_BUTTON:
569 activeKey = event.GUIEvent.Caller->getID();
570 this->backward->setText(wgettext("press Key"));
572 case GUI_ID_KEY_LEFT_BUTTON:
574 activeKey = event.GUIEvent.Caller->getID();
575 this->left->setText(wgettext("press Key"));
577 case GUI_ID_KEY_RIGHT_BUTTON:
579 activeKey = event.GUIEvent.Caller->getID();
580 this->right->setText(wgettext("press Key"));
582 case GUI_ID_KEY_USE_BUTTON:
584 activeKey = event.GUIEvent.Caller->getID();
585 this->use->setText(wgettext("press Key"));
587 case GUI_ID_KEY_FLY_BUTTON:
589 activeKey = event.GUIEvent.Caller->getID();
590 this->fly->setText(wgettext("press Key"));
592 case GUI_ID_KEY_FAST_BUTTON:
594 activeKey = event.GUIEvent.Caller->getID();
595 this->fast->setText(wgettext("press Key"));
597 case GUI_ID_KEY_JUMP_BUTTON:
599 activeKey = event.GUIEvent.Caller->getID();
600 this->jump->setText(wgettext("press Key"));
602 case GUI_ID_KEY_CHAT_BUTTON:
604 activeKey = event.GUIEvent.Caller->getID();
605 this->chat->setText(wgettext("press Key"));
607 case GUI_ID_KEY_SNEAK_BUTTON:
609 activeKey = event.GUIEvent.Caller->getID();
610 this->sneak->setText(wgettext("press Key"));
612 case GUI_ID_KEY_INVENTORY_BUTTON:
614 activeKey = event.GUIEvent.Caller->getID();
615 this->inventory->setText(wgettext("press Key"));
617 case GUI_ID_KEY_DUMP_BUTTON:
619 activeKey = event.GUIEvent.Caller->getID();
620 this->dump->setText(wgettext("press Key"));
622 case GUI_ID_KEY_RANGE_BUTTON:
624 activeKey = event.GUIEvent.Caller->getID();
625 this->range->setText(wgettext("press Key"));
633 return Parent ? Parent->OnEvent(event) : false;