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; }
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 CHAT_Input( event_t *pEvent ) { if ( pEvent->type != EV_GUI_Event ) return ( false ); // Server doesn't use this at all. if ( NETWORK_GetState( ) == NETSTATE_SERVER ) return ( false ); // Determine to do with our keypress. if ( g_ulChatMode != CHATMODE_NONE ) { if ( pEvent->subtype == EV_GUI_KeyDown || pEvent->subtype == EV_GUI_KeyRepeat ) { if ( pEvent->data1 == '\r' ) { chat_SendMessage( g_ulChatMode, g_szChatBuffer ); chat_SetChatMode( CHATMODE_NONE ); return ( true ); } else if ( pEvent->data1 == GK_ESCAPE ) { chat_SetChatMode( CHATMODE_NONE ); return ( true ); } else if ( pEvent->data1 == '\b' ) { chat_DeleteChar( ); return ( true ); } // Ctrl+C. else if ( pEvent->data1 == 'C' && ( pEvent->data3 & GKM_CTRL )) { I_PutInClipboard(g_szChatBuffer ); return ( true ); } // Ctrl+V. else if ( pEvent->data1 == 'V' && ( pEvent->data3 & GKM_CTRL )) { CT_PasteChat(I_GetFromClipboard(false)); } } else if ( pEvent->subtype == EV_GUI_Char ) { // Send a macro. if ( pEvent->data2 && (( pEvent->data1 >= '0' ) && ( pEvent->data1 <= '9' ))) { chat_SendMessage( g_ulChatMode, *g_ChatMacros[pEvent->data1 - '0'] ); chat_SetChatMode( CHATMODE_NONE ); } else chat_AddChar( pEvent->data1 ); return ( true ); } #ifdef unix else if (pEvent->subtype == EV_GUI_MButtonDown) { CT_PasteChat(I_GetFromClipboard(true)); } #endif } return ( false ); }