BOOL CT_Responder (event_t *ev) { if (chatmodeon && ev->type == EV_GUI_Event) { if (ev->subtype == EV_GUI_KeyDown || ev->subtype == EV_GUI_KeyRepeat) { if (ev->data1 == '\r') { ShoveChatStr ((char *)ChatQueue, chatmodeon - 1); CT_Stop (); return true; } else if (ev->data1 == GK_ESCAPE) { CT_Stop (); return true; } else if (ev->data1 == '\b') { CT_BackSpace (); return true; } else if (ev->data1 == 'C' && (ev->data3 & GKM_CTRL)) { I_PutInClipboard ((char *)ChatQueue); return true; } else if (ev->data1 == 'V' && (ev->data3 & GKM_CTRL)) { char *clip = I_GetFromClipboard (); if (clip != NULL) { char *clip_p = clip; strtok (clip, "\n\r\b"); while (*clip_p) { CT_AddChar (*clip_p++); } delete[] clip; } } } else if (ev->subtype == EV_GUI_Char) { // send a macro if (ev->data2 && (ev->data1 >= '0' && ev->data1 <= '9')) { ShoveChatStr (*chat_macros[ev->data1 - '0'], chatmodeon - 1); CT_Stop (); } else { CT_AddChar (ev->data1); } return true; } } return false; }
bool CT_Responder (event_t *ev) { if (chatmodeon && ev->type == EV_GUI_Event) { if (ev->subtype == EV_GUI_KeyDown || ev->subtype == EV_GUI_KeyRepeat) { if (ev->data1 == '\r') { ShoveChatStr ((char *)ChatQueue, chatmodeon - 1); CT_Stop (); return true; } else if (ev->data1 == GK_ESCAPE) { CT_Stop (); return true; } else if (ev->data1 == '\b') { CT_BackSpace (); return true; } else if (ev->data1 == 'C' && (ev->data3 & GKM_CTRL)) { I_PutInClipboard ((char *)ChatQueue); return true; } else if (ev->data1 == 'V' && (ev->data3 & GKM_CTRL)) { CT_PasteChat(I_GetFromClipboard(false)); } } else if (ev->subtype == EV_GUI_Char) { // send a macro if (ev->data2 && (ev->data1 >= '0' && ev->data1 <= '9')) { ShoveChatStr (*chat_macros[ev->data1 - '0'], chatmodeon - 1); CT_Stop (); } else { CT_AddChar (char(ev->data1)); } return true; } #ifdef unix else if (ev->subtype == EV_GUI_MButtonDown) { CT_PasteChat(I_GetFromClipboard(true)); } #endif } return false; }