#ifndef _KVI_MIRCCNTRL_H_ #define _KVI_MIRCCNTRL_H_ //============================================================================= // // File : kvi_mirccntrl.h // Creation date : Thu Jun 29 2000 21:06:55 CEST by Szymon Stefanek // // This file is part of the KVirc irc client distribution // Copyright (C) 1999-2001 Szymon Stefanek (pragma at kvirc dot net) // // This program is FREE software. You can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your opinion) any later version. // // This program is distributed in the HOPE that it will be USEFUL, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, write to the Free Software Foundation, // Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // //============================================================================= //============================================================================= // This file contains non-customizable standards // // Better do not touch this :) //============================================================================= #include "kvi_settings.h" #include "kvi_string.h" // // mIrc color codes // #define KVI_WHITE 0 #define KVI_BLACK 1 #define KVI_DARKBLUE 2 #define KVI_DARKGREEN 3 #define KVI_RED 4 #define KVI_DARKRED 5 #define KVI_DARKVIOLET 6 #define KVI_ORANGE 7 #define KVI_YELLOW 8 #define KVI_LIGHTGREEN 9 #define KVI_BLUEMARINE 10 #define KVI_LIGHTBLUE 11 #define KVI_BLUE 12 #define KVI_LIGHTVIOLET 13 #define KVI_DARKGRAY 14 #define KVI_LIGHTGRAY 15 #define KVI_MIRCCOLOR_MAX_FOREGROUND 15 #define KVI_MIRCCOLOR_MAX_BACKGROUND 15 // // Non-standard color codes for KviIrcView // #define KVI_TRANSPARENT 100 #define KVI_NOCHANGE 101 // // Internal control codes for KviIrcView // // (Totally artificial and internal to KviIrcView) #define KVI_TEXT_ESCAPE 0x04 #define KVI_TEXT_UNESCAPE 0x05 #define KVI_TEXT_UNICON 0x06 //#define KVI_TEXT_EMOTICON 0x07 // ASCII Stuff: the following defines are meant to be escape sequences // that can go thru an IRC connection // The following table is a 30-minute analysis of the escape characters commonly used over the IRC protocol... // created when looking for a good placement for the CRYPT escape char in KVirc. // I guess that the best chars to be used were FS,GS,RS,US,DC1,DC2,DC3,DC4...they have the "less defined" // meaning as ASCII control chars. // mmmh... :) // ASCII IRC Meaning // 000 NUL Null (Cannot be assigned) // 001 SOH Start of heading ( CTCP Escape: only beginning of the message ) // 002 STX Start of text ( Bold text ) // 003 ETX End of text ( Color text escape sequence ) // 004 EOT End of transmission ( Assigned internally (escape) ) // 005 ENQ Enquiry (WRU: Who are you) ( Assigned internally (unescape) ) // 006 ACK Acknowledge (Not so good, but can be used as last resource) // 007 BEL Bell ( Recognized as bell by terminals and IRCII ) (Used also by some IRC servers) // 008 BS Backspace (Should not be assigned: terminal control) // 009 HT Qt::Horizontal tabulation (Should not be assigned: terminal control) // 010 LF Line feed (Should not be assigned: terminal control) // 011 VT Qt::Vertical tabulation (Should not be assigned: terminal control) // 012 FF Form feed (Should not be assigned: terminal control) // 013 CR Carriage return (Should not be assigned: terminal control) // 014 SO Shift out (Should not be assigned: terminal control) // 015 SI Shift in ( Resets Bold,Color,Underline and Reverse ) (Conflicting with terminal control) // 016 DLE Data link escape (Decent , can be assigned) // 017 DC1 Device control 1 (Good to be assigned) // 018 DC2 Device control 2 (Good to be assigned) // 019 DC3 Device control 3 (Good to be assigned) // 020 DC4 Device control 4 (Good to be assigned) // 021 NAK Negative acknowledge (Not so good, but could be used as last resource) // 022 SYN Synchronous idle ( Reverse text ) // 023 ETB End of transmission block (Decent , can be assigned) // 024 CAN Cancel (Should not be assigned: terminal control) // 025 EM End of medium (Decent , can be assigned) // 026 SUB Substitute (Should not be assigned: terminal control) // 027 ESC Escape (Should not be assigned: terminal control) // 028 FS File separator (Excellent , should be used as first candidate) // 029 GS Group separator ( ICONS Escape: beginning of a word ) // 030 RS Record separator ( CRYPT Escape: only beginning of the message ) // 031 US Unit separator ( Underline text ) // // mIrc control codes // //31 (0001 1111) US (Unit separator) #define KVI_TEXT_UNDERLINE 0x1f //2 (0000 0010) STX (Start of text) #define KVI_TEXT_BOLD 0x02 //15 (0000 1111) SI (Shift in) #define KVI_TEXT_RESET 0x0f //22 (0001 0110) SYN (Synchronous idle) #define KVI_TEXT_REVERSE 0x16 //3 (0000 0011) ETX (End of text) #define KVI_TEXT_COLOR 0x03 // // Irc control codes // //1 (0000 0001) SOH (Start of heading) #define KVI_TEXT_CTCP 0x01 // // KVirc added control codes // //30 (0001 1110) RS (Record separator) #define KVI_TEXT_CRYPTESCAPE 0x1e //29 (0001 1101) GS (Group separator) #define KVI_TEXT_ICON 0x1d #ifndef _KVI_MIRCCNTRL_CPP_ extern KVILIB_API const char * getColorBytes(const char *data_ptr,unsigned char *byte_1,unsigned char *byte_2); extern KVILIB_API const kvi_wchar_t * getColorBytesW(const kvi_wchar_t *data_ptr,unsigned char *byte_1,unsigned char *byte_2); extern KVILIB_API unsigned int getUnicodeColorBytes(const TQString &szData,unsigned int charIdx,unsigned char *byte_1,unsigned char *byte_2); inline const TQChar * getUnicodeColorBytes(const TQChar *pData,unsigned char *byte_1,unsigned char *byte_2) { return (TQChar *)getColorBytesW((const kvi_wchar_t *)pData,byte_1,byte_2); }; #endif namespace KviMircCntrl { KVILIB_API TQString stripControlBytes(const TQString &szData); } #endif //_KVI_MIRCCNTRL_H_