Пример #1
0
	virtual EventState OnKeyPress(WChar key, uint16 keycode)
	{
		EventState state = ES_NOT_HANDLED;
		if (keycode == WKC_TAB) {
			ChatTabCompletion();
			state = ES_HANDLED;
		}
		return state;
	}
	virtual EventState OnKeyPress(uint16 key, uint16 keycode)
	{
		EventState state = ES_NOT_HANDLED;
		if (keycode == WKC_TAB) {
			ChatTabCompletion();
			state = ES_HANDLED;
		} else {
			_chat_tab_completion_active = false;
			switch (this->HandleEditBoxKey(NWCW_TEXTBOX, key, keycode, state)) {
				default: NOT_REACHED();
				case HEBR_EDITING: {
					Window *osk = FindWindowById(WC_OSK, 0);
					if (osk != NULL && osk->parent == this) osk->InvalidateData();
					break;
				}
				case HEBR_CONFIRM:
					SendChat(this->text.buf, this->dtype, this->dest);
					/* FALL THROUGH */
				case HEBR_CANCEL: delete this; break;
				case HEBR_NOT_FOCUSED: break;
			}
		}
		return state;
	}