From 6e53dfca72b932c4bdcd7aa02ca62bf8b2630eac Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 26 Jul 2016 09:20:25 +0000 Subject: less TCHARs: - TCHAR is replaced with wchar_t everywhere; - LPGENT replaced with either LPGENW or LPGEN; - fixes for ANSI plugins that improperly used _t functions; - TCHAR *t removed from MAllStrings; - ptszGroup, ptszTitle & ptszTab in OPTIONSDIALOGPAGE replaced with pwsz* git-svn-id: http://svn.miranda-ng.org/main/trunk@17133 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/TabSRMM/src/chat/chat.h | 16 +- plugins/TabSRMM/src/chat/log.cpp | 68 +++---- plugins/TabSRMM/src/chat/main.cpp | 2 +- plugins/TabSRMM/src/chat/manager.cpp | 12 +- plugins/TabSRMM/src/chat/muchighlight.cpp | 20 +- plugins/TabSRMM/src/chat/muchighlight.h | 10 +- plugins/TabSRMM/src/chat/options.cpp | 304 +++++++++++++++--------------- plugins/TabSRMM/src/chat/services.cpp | 16 +- plugins/TabSRMM/src/chat/tools.cpp | 30 +-- plugins/TabSRMM/src/chat/window.cpp | 86 ++++----- 10 files changed, 282 insertions(+), 282 deletions(-) (limited to 'plugins/TabSRMM/src/chat') diff --git a/plugins/TabSRMM/src/chat/chat.h b/plugins/TabSRMM/src/chat/chat.h index 536f837528..59f4078655 100644 --- a/plugins/TabSRMM/src/chat/chat.h +++ b/plugins/TabSRMM/src/chat/chat.h @@ -52,7 +52,7 @@ struct MODULEINFO : public GCModuleInfoBase { DWORD idleTimeStamp; DWORD lastIdleCheck; - TCHAR tszIdleMsg[60]; + wchar_t tszIdleMsg[60]; }; struct SESSION_INFO : public GCSessionInfoBase @@ -62,7 +62,7 @@ struct SESSION_INFO : public GCSessionInfoBase int iLogTrayFlags, iLogPopupFlags, iDiskLogFlags; int iSearchItem; - TCHAR szSearch[255]; + wchar_t szSearch[255]; }; struct LOGSTREAMDATA : public GCLogStreamDataBase @@ -116,7 +116,7 @@ char* Log_CreateRtfHeader(MODULEINFO *mi); // window.c INT_PTR CALLBACK RoomWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -int GetTextPixelSize(TCHAR* pszText, HFONT hFont, bool bWidth); +int GetTextPixelSize(wchar_t* pszText, HFONT hFont, bool bWidth); // options.c enum { FONTSECTION_AUTO, FONTSECTION_IM, FONTSECTION_IP }; @@ -132,28 +132,28 @@ HWND CreateNewRoom(TContainerData *pContainer, SESSION_INFO *si, BOOL bActivateT // manager.c SESSION_INFO* SM_FindSessionByHWND(HWND h); SESSION_INFO* SM_FindSessionByHCONTACT(MCONTACT h); -SESSION_INFO* SM_FindSessionAutoComplete(const char* pszModule, SESSION_INFO* currSession, SESSION_INFO* prevSession, const TCHAR* pszOriginal, const TCHAR* pszCurrent); +SESSION_INFO* SM_FindSessionAutoComplete(const char* pszModule, SESSION_INFO* currSession, SESSION_INFO* prevSession, const wchar_t* pszOriginal, const wchar_t* pszCurrent); void SM_RemoveContainer(TContainerData *pContainer); BOOL SM_ReconfigureFilters(); -int UM_CompareItem(USERINFO *u1, const TCHAR* pszNick, WORD wStatus); +int UM_CompareItem(USERINFO *u1, const wchar_t* pszNick, WORD wStatus); //clist.c //tools.c BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight, int bManyFix); int Chat_GetColorIndex(const char* pszModule, COLORREF cr); -TCHAR* my_strstri(const TCHAR* s1, const TCHAR* s2); +wchar_t* my_strstri(const wchar_t* s1, const wchar_t* s2); int GetRichTextLength(HWND hwnd); BOOL IsHighlighted(SESSION_INFO *si, GCEVENT *pszText); char GetIndicator(SESSION_INFO *si, LPCTSTR ptszNick, int *iNickIndex); -UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO *si, TCHAR* pszUID, TCHAR* pszWordText); +UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO *si, wchar_t* pszUID, wchar_t* pszWordText); void DestroyGCMenu(HMENU *hMenu, int iIndex); void Chat_SetFilters(SESSION_INFO *si); void TSAPI DoFlashAndSoundWorker(FLASH_PARAMS* p); BOOL DoPopup(SESSION_INFO *si, GCEVENT* gce); -int ShowPopup(MCONTACT hContact, SESSION_INFO *si, HICON hIcon, char* pszProtoName, TCHAR* pszRoomName, COLORREF crBkg, const TCHAR* fmt, ...); +int ShowPopup(MCONTACT hContact, SESSION_INFO *si, HICON hIcon, char* pszProtoName, wchar_t* pszRoomName, COLORREF crBkg, const wchar_t* fmt, ...); BOOL LogToFile(SESSION_INFO *si, GCEVENT *gce); #include "chat_resource.h" diff --git a/plugins/TabSRMM/src/chat/log.cpp b/plugins/TabSRMM/src/chat/log.cpp index a7894b3e37..09b240c6aa 100644 --- a/plugins/TabSRMM/src/chat/log.cpp +++ b/plugins/TabSRMM/src/chat/log.cpp @@ -54,16 +54,16 @@ static char* u2a(const wchar_t* src, int codepage) return result; } -static char* t2acp(const TCHAR* src, int codepage) +static char* t2acp(const wchar_t* src, int codepage) { return u2a(src, codepage); } -static TCHAR *a2tcp(const char *text, int cp) +static wchar_t *a2tcp(const char *text, int cp) { if (text != NULL) { int cbLen = MultiByteToWideChar(cp, 0, text, -1, NULL, 0); - TCHAR* result = (TCHAR*)mir_alloc(sizeof(TCHAR)*(cbLen + 1)); + wchar_t* result = (wchar_t*)mir_alloc(sizeof(wchar_t)*(cbLen + 1)); if (result == NULL) return NULL; MultiByteToWideChar(cp, 0, text, -1, result, cbLen); @@ -72,12 +72,12 @@ static TCHAR *a2tcp(const char *text, int cp) return NULL; } -static int Log_AppendIEView(LOGSTREAMDATA* streamData, BOOL simpleMode, TCHAR **buffer, int *cbBufferEnd, int *cbBufferAlloced, const TCHAR *fmt, ...) +static int Log_AppendIEView(LOGSTREAMDATA* streamData, BOOL simpleMode, wchar_t **buffer, int *cbBufferEnd, int *cbBufferAlloced, const wchar_t *fmt, ...) { va_list va; int lineLen, textCharsCount = 0; - TCHAR* line = (TCHAR*)_alloca(8001 * sizeof(TCHAR)); - TCHAR* d; + wchar_t* line = (wchar_t*)_alloca(8001 * sizeof(wchar_t)); + wchar_t* d; MODULEINFO *mi = pci->MM_FindModule(streamData->si->pszModule); va_start(va, fmt); @@ -89,14 +89,14 @@ static int Log_AppendIEView(LOGSTREAMDATA* streamData, BOOL simpleMode, TCHAR ** lineLen = lineLen * 9 + 8; if (*cbBufferEnd + lineLen > *cbBufferAlloced) { cbBufferAlloced[0] += (lineLen + 1024 - lineLen % 1024); - *buffer = (TCHAR*)mir_realloc(*buffer, *cbBufferAlloced * sizeof(TCHAR)); + *buffer = (wchar_t*)mir_realloc(*buffer, *cbBufferAlloced * sizeof(wchar_t)); } d = *buffer + *cbBufferEnd; for (; *line; line++, textCharsCount++) { if (*line == '%' && !simpleMode) { - TCHAR szTemp[200]; + wchar_t szTemp[200]; szTemp[0] = '\0'; switch (*++line) { @@ -109,12 +109,12 @@ static int Log_AppendIEView(LOGSTREAMDATA* streamData, BOOL simpleMode, TCHAR ** case 'f': if (!g_Settings.bStripFormat && !streamData->bStripFormat) { if (line[1] != '\0' && line[2] != '\0') { - TCHAR szTemp3[3], c = *line; + wchar_t szTemp3[3], c = *line; int col; szTemp3[0] = line[1]; szTemp3[1] = line[2]; szTemp3[2] = '\0'; - col = _ttoi(szTemp3); + col = _wtoi(szTemp3); mir_sntprintf(szTemp, L"%%%c#%02X%02X%02X", c, GetRValue(mi->crColors[col]), GetGValue(mi->crColors[col]), GetBValue(mi->crColors[col])); } } @@ -141,7 +141,7 @@ static int Log_AppendIEView(LOGSTREAMDATA* streamData, BOOL simpleMode, TCHAR ** if (szTemp[0]) { size_t iLen = mir_tstrlen(szTemp); - memcpy(d, szTemp, iLen * sizeof(TCHAR)); + memcpy(d, szTemp, iLen * sizeof(wchar_t)); d += iLen; } } @@ -150,7 +150,7 @@ static int Log_AppendIEView(LOGSTREAMDATA* streamData, BOOL simpleMode, TCHAR ** *d++ = (char)*line; } else { - *d++ = (TCHAR)*line; + *d++ = (wchar_t)*line; } } *d = '\0'; @@ -158,21 +158,21 @@ static int Log_AppendIEView(LOGSTREAMDATA* streamData, BOOL simpleMode, TCHAR ** return textCharsCount; } -static void AddEventTextToBufferIEView(TCHAR **buffer, int *bufferEnd, int *bufferAlloced, LOGSTREAMDATA *streamData) +static void AddEventTextToBufferIEView(wchar_t **buffer, int *bufferEnd, int *bufferAlloced, LOGSTREAMDATA *streamData) { if (streamData->lin->ptszText) Log_AppendIEView(streamData, FALSE, str, L": %s", streamData->lin->ptszText); } -static void AddEventToBufferIEView(TCHAR **buffer, int *bufferEnd, int *bufferAlloced, LOGSTREAMDATA *streamData, TCHAR *pszNick) +static void AddEventToBufferIEView(wchar_t **buffer, int *bufferEnd, int *bufferAlloced, LOGSTREAMDATA *streamData, wchar_t *pszNick) { if (streamData && streamData->lin) { switch (streamData->lin->iType) { case GC_EVENT_MESSAGE: if (streamData->lin->ptszText) { - TCHAR *ptszTemp = NULL; - TCHAR *ptszText = streamData->lin->ptszText; + wchar_t *ptszTemp = NULL; + wchar_t *ptszText = streamData->lin->ptszText; if (streamData->dat->codePage != CP_ACP) { char *aText = t2acp(streamData->lin->ptszText, CP_ACP); ptszText = ptszTemp = a2tcp(aText, streamData->dat->codePage); @@ -249,9 +249,9 @@ static void AddEventToBufferIEView(TCHAR **buffer, int *bufferEnd, int *bufferAl } } -static void LogEventIEView(LOGSTREAMDATA *streamData, TCHAR *ptszNick) +static void LogEventIEView(LOGSTREAMDATA *streamData, wchar_t *ptszNick) { - TCHAR *buffer = NULL; + wchar_t *buffer = NULL; int bufferEnd = 0; int bufferAlloced = 0; IEVIEWEVENTDATA ied; @@ -422,10 +422,10 @@ static int EventToIcon(LOGINFO * lin) return 0; } -static void Log_AppendRTF(LOGSTREAMDATA *streamData, BOOL simpleMode, CMStringA &str, const TCHAR *fmt, ...) +static void Log_AppendRTF(LOGSTREAMDATA *streamData, BOOL simpleMode, CMStringA &str, const wchar_t *fmt, ...) { int textCharsCount = 0; - TCHAR *line = (TCHAR*)_alloca(8001 * sizeof(TCHAR)); + wchar_t *line = (wchar_t*)_alloca(8001 * sizeof(wchar_t)); va_list va; va_start(va, fmt); @@ -458,14 +458,14 @@ static void Log_AppendRTF(LOGSTREAMDATA *streamData, BOOL simpleMode, CMStringA if (g_Settings.bStripFormat || streamData->bStripFormat) line += 2; else if (line[1] != '\0' && line[2] != '\0') { - TCHAR szTemp3[3], c = *line; + wchar_t szTemp3[3], c = *line; int col; szTemp3[0] = line[1]; szTemp3[1] = line[2]; szTemp3[2] = '\0'; line += 2; - col = _ttoi(szTemp3); + col = _wtoi(szTemp3); col += (OPTIONS_FONTCOUNT + 1); res.AppendFormat((c == 'c') ? "\\cf%u " : "\\highlight%u ", col); } @@ -520,8 +520,8 @@ static void Log_AppendRTF(LOGSTREAMDATA *streamData, BOOL simpleMode, CMStringA static void AddEventToBuffer(CMStringA &str, LOGSTREAMDATA *streamData) { - TCHAR szTemp[512], szTemp2[512]; - TCHAR* pszNick = NULL; + wchar_t szTemp[512], szTemp2[512]; + wchar_t* pszNick = NULL; if (streamData == NULL) return; @@ -531,20 +531,20 @@ static void AddEventToBuffer(CMStringA &str, LOGSTREAMDATA *streamData) if (streamData->lin->ptszNick) { if (g_Settings.bLogLimitNames && mir_tstrlen(streamData->lin->ptszNick) > 20) { - _tcsncpy_s(szTemp, 20, streamData->lin->ptszNick, _TRUNCATE); - _tcsncpy_s(szTemp + 20, 4, L"...", _TRUNCATE); + wcsncpy_s(szTemp, 20, streamData->lin->ptszNick, _TRUNCATE); + wcsncpy_s(szTemp + 20, 4, L"...", _TRUNCATE); } - else _tcsncpy_s(szTemp, streamData->lin->ptszNick, _TRUNCATE); + else wcsncpy_s(szTemp, streamData->lin->ptszNick, _TRUNCATE); if (g_Settings.bClickableNicks) mir_sntprintf(szTemp2, L"~~++#%s#++~~", szTemp); else - _tcsncpy_s(szTemp2, szTemp, _TRUNCATE); + wcsncpy_s(szTemp2, szTemp, _TRUNCATE); if (streamData->lin->ptszUserInfo && streamData->lin->iType != GC_EVENT_TOPIC) mir_sntprintf(szTemp, L"%s (%s)", szTemp2, streamData->lin->ptszUserInfo); else - _tcsncpy_s(szTemp, szTemp2, _TRUNCATE); + wcsncpy_s(szTemp, szTemp2, _TRUNCATE); pszNick = szTemp; } @@ -669,7 +669,7 @@ char* Log_CreateRtfHeader(MODULEINFO *mi) int iIndent = 0; if (g_Settings.bLogSymbols) { - TCHAR szString[2]; + wchar_t szString[2]; LOGFONT lf; szString[1] = 0; @@ -770,10 +770,10 @@ static char* Log_CreateRTF(LOGSTREAMDATA *streamData) //insert timestamp if (g_Settings.bShowTime) { - TCHAR szTimeStamp[30], szOldTimeStamp[30]; + wchar_t szTimeStamp[30], szOldTimeStamp[30]; - _tcsncpy_s(szTimeStamp, pci->MakeTimeStamp(g_Settings.pszTimeStamp, lin->time), _TRUNCATE); - _tcsncpy_s(szOldTimeStamp, pci->MakeTimeStamp(g_Settings.pszTimeStamp, streamData->si->LastTime), _TRUNCATE); + wcsncpy_s(szTimeStamp, pci->MakeTimeStamp(g_Settings.pszTimeStamp, lin->time), _TRUNCATE); + wcsncpy_s(szOldTimeStamp, pci->MakeTimeStamp(g_Settings.pszTimeStamp, streamData->si->LastTime), _TRUNCATE); if (!g_Settings.bShowTimeIfChanged || streamData->si->LastTime == 0 || mir_tstrcmp(szTimeStamp, szOldTimeStamp)) { streamData->si->LastTime = lin->time; Log_AppendRTF(streamData, TRUE, str, L"%s", szTimeStamp); @@ -984,7 +984,7 @@ void Log_StreamInEvent(HWND hwndDlg, LOGINFO* lin, SESSION_INFO *si, bool bRedra // trim the message log to the number of most recent events // this uses hidden marks in the rich text to find the events which should be deleted if (si->bTrimmed) { - TCHAR szPattern[50]; + wchar_t szPattern[50]; mir_sntprintf(szPattern, L"~-+%d+-~", si->pLogEnd); FINDTEXTEX fi; diff --git a/plugins/TabSRMM/src/chat/main.cpp b/plugins/TabSRMM/src/chat/main.cpp index eee0f6823d..61859eab96 100644 --- a/plugins/TabSRMM/src/chat/main.cpp +++ b/plugins/TabSRMM/src/chat/main.cpp @@ -269,7 +269,7 @@ int Chat_Load() { CheckUpdate(); - CHAT_MANAGER_INITDATA data = { &g_Settings, sizeof(MODULEINFO), sizeof(SESSION_INFO), LPGENT("Message Sessions") L"/" LPGENT("Group chats"), FONTMODE_ALTER }; + CHAT_MANAGER_INITDATA data = { &g_Settings, sizeof(MODULEINFO), sizeof(SESSION_INFO), LPGENW("Message Sessions") L"/" LPGENW("Group chats"), FONTMODE_ALTER }; mir_getCI(&data); saveCI = *pci; pci->OnCreateModule = OnCreateModule; diff --git a/plugins/TabSRMM/src/chat/manager.cpp b/plugins/TabSRMM/src/chat/manager.cpp index b1958c909c..014b238b05 100644 --- a/plugins/TabSRMM/src/chat/manager.cpp +++ b/plugins/TabSRMM/src/chat/manager.cpp @@ -26,14 +26,14 @@ #include "../stdafx.h" -static int sttCompareNicknames(const TCHAR *s1, const TCHAR *s2) +static int sttCompareNicknames(const wchar_t *s1, const wchar_t *s2) { if (s2 == NULL) return 1; // skip rubbish - while (*s1 && !_istalpha(*s1)) ++s1; - while (*s2 && !_istalpha(*s2)) ++s2; + while (*s1 && !iswalpha(*s1)) ++s1; + while (*s2 && !iswalpha(*s2)) ++s2; // are there ~0veRy^kEwL_n1kz? if (!*s1 && !*s2) return 0; @@ -44,7 +44,7 @@ static int sttCompareNicknames(const TCHAR *s1, const TCHAR *s2) return mir_tstrcmpi(s1, s2); } -int UM_CompareItem(USERINFO *u1, const TCHAR* pszNick, WORD wStatus) +int UM_CompareItem(USERINFO *u1, const wchar_t* pszNick, WORD wStatus) { WORD dw1 = u1->Status; WORD dw2 = wStatus; @@ -108,12 +108,12 @@ SESSION_INFO* SM_FindSessionByHCONTACT(MCONTACT h) return NULL; } -SESSION_INFO* SM_FindSessionAutoComplete(const char* pszModule, SESSION_INFO* currSession, SESSION_INFO* prevSession, const TCHAR* pszOriginal, const TCHAR* pszCurrent) +SESSION_INFO* SM_FindSessionAutoComplete(const char* pszModule, SESSION_INFO* currSession, SESSION_INFO* prevSession, const wchar_t* pszOriginal, const wchar_t* pszCurrent) { if (prevSession == NULL && my_strstri(currSession->ptszName, pszOriginal) == currSession->ptszName) return currSession; - TCHAR* pszName = NULL; + wchar_t* pszName = NULL; if (currSession == prevSession) pszCurrent = pszOriginal; diff --git a/plugins/TabSRMM/src/chat/muchighlight.cpp b/plugins/TabSRMM/src/chat/muchighlight.cpp index 4567ba7000..0ec60454ff 100644 --- a/plugins/TabSRMM/src/chat/muchighlight.cpp +++ b/plugins/TabSRMM/src/chat/muchighlight.cpp @@ -65,12 +65,12 @@ void CMUCHighlight::init() tokenize(m_NickPatternString, m_NickPatterns, m_iNickPatterns); } -void CMUCHighlight::tokenize(TCHAR *tszString, TCHAR**& patterns, UINT& nr) +void CMUCHighlight::tokenize(wchar_t *tszString, wchar_t**& patterns, UINT& nr) { if (tszString == 0) return; - TCHAR *p = tszString; + wchar_t *p = tszString; if (*p == 0) return; @@ -83,14 +83,14 @@ void CMUCHighlight::tokenize(TCHAR *tszString, TCHAR**& patterns, UINT& nr) while (*p) { if (*p == ' ') { p++; - while (*p && _istspace(*p)) + while (*p && iswspace(*p)) p++; if (*p) nr++; } p++; } - patterns = (TCHAR **)mir_alloc(nr * sizeof(TCHAR*)); + patterns = (wchar_t **)mir_alloc(nr * sizeof(wchar_t*)); p = tszString; nr = 0; @@ -101,7 +101,7 @@ void CMUCHighlight::tokenize(TCHAR *tszString, TCHAR**& patterns, UINT& nr) while (*p) { if (*p == ' ') { *p++ = 0; - while (*p && _istspace(*p)) + while (*p && iswspace(*p)) p++; if (*p) patterns[nr++] = p; @@ -118,13 +118,13 @@ int CMUCHighlight::match(const GCEVENT *pgce, const SESSION_INFO *psi, DWORD dwF return 0; if ((m_dwFlags & MATCH_TEXT) && (dwFlags & MATCH_TEXT) && (m_fHighlightMe || m_iTextPatterns > 0) && psi != 0) { - TCHAR *p = pci->RemoveFormatting(pgce->ptszText); - p = NEWTSTR_ALLOCA(p); + wchar_t *p = pci->RemoveFormatting(pgce->ptszText); + p = NEWWSTR_ALLOCA(p); if (p == NULL) return 0; CharLower(p); - TCHAR *tszMe = ((psi && psi->pMe) ? NEWTSTR_ALLOCA(psi->pMe->pszNick) : 0); + wchar_t *tszMe = ((psi && psi->pMe) ? NEWWSTR_ALLOCA(psi->pMe->pszNick) : 0); if (tszMe) CharLower(tszMe); @@ -141,7 +141,7 @@ int CMUCHighlight::match(const GCEVENT *pgce, const SESSION_INFO *psi, DWORD dwF if (*p == 0) break; - TCHAR *p1 = p; + wchar_t *p1 = p; while (*p1 && *p1 != ' ' && *p1 != ',' && *p1 != '.' && *p1 != ':' && *p1 != ';' && *p1 != '?' && *p1 != '!') p1++; @@ -250,7 +250,7 @@ INT_PTR CALLBACK CMUCHighlight::dlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, L iLen = ::GetWindowTextLength(::GetDlgItem(hwndDlg, IDC_HIGHLIGHTTEXTPATTERN)); if (iLen) { - szBuf = reinterpret_cast(mir_realloc(szBuf, sizeof(wchar_t) * (iLen + 2))); + szBuf = reinterpret_cast(mir_realloc(szBuf, sizeof(wchar_t) * (iLen + 2))); ::GetDlgItemText(hwndDlg, IDC_HIGHLIGHTTEXTPATTERN, szBuf, iLen + 1); db_set_ts(0, CHAT_MODULE, "HighlightWords", szBuf); } diff --git a/plugins/TabSRMM/src/chat/muchighlight.h b/plugins/TabSRMM/src/chat/muchighlight.h index 570541e075..5f8533868e 100644 --- a/plugins/TabSRMM/src/chat/muchighlight.h +++ b/plugins/TabSRMM/src/chat/muchighlight.h @@ -60,16 +60,16 @@ public: static INT_PTR CALLBACK dlgProcAdd(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); // for the "add to" dialog private: - void tokenize(TCHAR *tszString, TCHAR**& patterns, UINT& nr); + void tokenize(wchar_t *tszString, wchar_t**& patterns, UINT& nr); DWORD m_dwFlags; bool m_fInitialized; - TCHAR** m_NickPatterns; - TCHAR** m_TextPatterns; + wchar_t** m_NickPatterns; + wchar_t** m_TextPatterns; UINT m_iNickPatterns; UINT m_iTextPatterns; - TCHAR *m_NickPatternString; - TCHAR *m_TextPatternString; + wchar_t *m_NickPatternString; + wchar_t *m_TextPatternString; bool m_Valid; bool m_fHighlightMe; }; diff --git a/plugins/TabSRMM/src/chat/options.cpp b/plugins/TabSRMM/src/chat/options.cpp index 36c9ec9d29..79bfc11d83 100644 --- a/plugins/TabSRMM/src/chat/options.cpp +++ b/plugins/TabSRMM/src/chat/options.cpp @@ -33,13 +33,13 @@ struct FontOptionsList { - TCHAR* szDescr; + wchar_t* szDescr; COLORREF defColour; - TCHAR* szDefFace; + wchar_t* szDefFace; BYTE defCharset, defStyle; char defSize; COLORREF colour; - TCHAR szFace[LF_FACESIZE]; + wchar_t szFace[LF_FACESIZE]; BYTE charset, style; char size; }; @@ -47,8 +47,8 @@ struct FontOptionsList struct ColorOptionsList { int order; - TCHAR* tszGroup; - TCHAR* tszName; + wchar_t* tszGroup; + wchar_t* tszName; char* szSetting; COLORREF def; }; @@ -58,70 +58,70 @@ struct ColorOptionsList * (GetSysColor(default_color & 0x00ffffff)), not a rgb value. */ static ColorOptionsList _clrs[] = { - { 0, LPGENT("Message Sessions"), LPGENT("Input area background"), "inputbg", SRMSGDEFSET_BKGCOLOUR }, - { 1, LPGENT("Message Sessions"), LPGENT("Log background"), SRMSGSET_BKGCOLOUR, SRMSGDEFSET_BKGCOLOUR }, - { 0, LPGENT("Message Sessions") L"/" LPGENT("Single Messaging"), LPGENT("Outgoing background"), "outbg", SRMSGDEFSET_BKGOUTCOLOUR }, - { 1, LPGENT("Message Sessions") L"/" LPGENT("Single Messaging"), LPGENT("Incoming background"), "inbg", SRMSGDEFSET_BKGINCOLOUR }, - { 2, LPGENT("Message Sessions") L"/" LPGENT("Single Messaging"), LPGENT("Status background"), "statbg", SRMSGDEFSET_BKGCOLOUR }, - { 3, LPGENT("Message Sessions") L"/" LPGENT("Single Messaging"), LPGENT("Incoming background(old)"), "oldinbg", SRMSGDEFSET_BKGINCOLOUR }, - { 4, LPGENT("Message Sessions") L"/" LPGENT("Single Messaging"), LPGENT("Outgoing background(old)"), "oldoutbg", SRMSGDEFSET_BKGOUTCOLOUR }, - { 5, LPGENT("Message Sessions") L"/" LPGENT("Single Messaging"), LPGENT("Horizontal Grid Lines"), "hgrid", RGB(224, 224, 224) }, - { 0, LPGENT("Message Sessions") L"/" LPGENT("Info Panel"), LPGENT("Panel background low"), "ipfieldsbg", 0x62caff }, - { 1, LPGENT("Message Sessions") L"/" LPGENT("Info Panel"), LPGENT("Panel background high"), "ipfieldsbgHigh", 0xf0f0f0 }, - { 0, LPGENT("Message Sessions") L"/" LPGENT("Common colors"), LPGENT("Toolbar background high"), "tbBgHigh", 0 }, - { 1, LPGENT("Message Sessions") L"/" LPGENT("Common colors"), LPGENT("Toolbar background low"), "tbBgLow", 0 }, - { 2, LPGENT("Message Sessions") L"/" LPGENT("Common colors"), LPGENT("Window fill color"), "fillColor", 0 }, - { 3, LPGENT("Message Sessions") L"/" LPGENT("Common colors"), LPGENT("Text area borders"), "cRichBorders", 0 }, - { 4, LPGENT("Message Sessions") L"/" LPGENT("Common colors"), LPGENT("Aero glow effect"), "aeroGlow", RGB(40, 40, 255) }, - { 4, LPGENT("Message Sessions") L"/" LPGENT("Common colors"), LPGENT("Generic text color (only when fill color is set)"), "genericTxtClr", 0xff000000 | COLOR_BTNTEXT }, + { 0, LPGENW("Message Sessions"), LPGENW("Input area background"), "inputbg", SRMSGDEFSET_BKGCOLOUR }, + { 1, LPGENW("Message Sessions"), LPGENW("Log background"), SRMSGSET_BKGCOLOUR, SRMSGDEFSET_BKGCOLOUR }, + { 0, LPGENW("Message Sessions") L"/" LPGENW("Single Messaging"), LPGENW("Outgoing background"), "outbg", SRMSGDEFSET_BKGOUTCOLOUR }, + { 1, LPGENW("Message Sessions") L"/" LPGENW("Single Messaging"), LPGENW("Incoming background"), "inbg", SRMSGDEFSET_BKGINCOLOUR }, + { 2, LPGENW("Message Sessions") L"/" LPGENW("Single Messaging"), LPGENW("Status background"), "statbg", SRMSGDEFSET_BKGCOLOUR }, + { 3, LPGENW("Message Sessions") L"/" LPGENW("Single Messaging"), LPGENW("Incoming background(old)"), "oldinbg", SRMSGDEFSET_BKGINCOLOUR }, + { 4, LPGENW("Message Sessions") L"/" LPGENW("Single Messaging"), LPGENW("Outgoing background(old)"), "oldoutbg", SRMSGDEFSET_BKGOUTCOLOUR }, + { 5, LPGENW("Message Sessions") L"/" LPGENW("Single Messaging"), LPGENW("Horizontal Grid Lines"), "hgrid", RGB(224, 224, 224) }, + { 0, LPGENW("Message Sessions") L"/" LPGENW("Info Panel"), LPGENW("Panel background low"), "ipfieldsbg", 0x62caff }, + { 1, LPGENW("Message Sessions") L"/" LPGENW("Info Panel"), LPGENW("Panel background high"), "ipfieldsbgHigh", 0xf0f0f0 }, + { 0, LPGENW("Message Sessions") L"/" LPGENW("Common colors"), LPGENW("Toolbar background high"), "tbBgHigh", 0 }, + { 1, LPGENW("Message Sessions") L"/" LPGENW("Common colors"), LPGENW("Toolbar background low"), "tbBgLow", 0 }, + { 2, LPGENW("Message Sessions") L"/" LPGENW("Common colors"), LPGENW("Window fill color"), "fillColor", 0 }, + { 3, LPGENW("Message Sessions") L"/" LPGENW("Common colors"), LPGENW("Text area borders"), "cRichBorders", 0 }, + { 4, LPGENW("Message Sessions") L"/" LPGENW("Common colors"), LPGENW("Aero glow effect"), "aeroGlow", RGB(40, 40, 255) }, + { 4, LPGENW("Message Sessions") L"/" LPGENW("Common colors"), LPGENW("Generic text color (only when fill color is set)"), "genericTxtClr", 0xff000000 | COLOR_BTNTEXT }, }; static ColorOptionsList _tabclrs[] = { - { 0, LPGENT("Message Sessions") L"/" LPGENT("Tabs"), LPGENT("Normal text"), "tab_txt_normal", 0xff000000 | COLOR_BTNTEXT }, - { 1, LPGENT("Message Sessions") L"/" LPGENT("Tabs"), LPGENT("Active text"), "tab_txt_active", 0xff000000 | COLOR_BTNTEXT }, - { 2, LPGENT("Message Sessions") L"/" LPGENT("Tabs"), LPGENT("Hovered text"), "tab_txt_hottrack", 0xff000000 | COLOR_HOTLIGHT }, - { 3, LPGENT("Message Sessions") L"/" LPGENT("Tabs"), LPGENT("Unread text"), "tab_txt_unread", 0xff000000 | COLOR_HOTLIGHT }, - - { 4, LPGENT("Message Sessions") L"/" LPGENT("Tabs"), LPGENT("Normal background"), "tab_bg_normal", 0xff000000 | COLOR_3DFACE }, - { 5, LPGENT("Message Sessions") L"/" LPGENT("Tabs"), LPGENT("Active background"), "tab_bg_active", 0xff000000 | COLOR_3DFACE }, - { 6, LPGENT("Message Sessions") L"/" LPGENT("Tabs"), LPGENT("Hovered background"), "tab_bg_hottrack", 0xff000000 | COLOR_3DFACE }, - { 7, LPGENT("Message Sessions") L"/" LPGENT("Tabs"), LPGENT("Unread background"), "tab_bg_unread", 0xff000000 | COLOR_3DFACE } + { 0, LPGENW("Message Sessions") L"/" LPGENW("Tabs"), LPGENW("Normal text"), "tab_txt_normal", 0xff000000 | COLOR_BTNTEXT }, + { 1, LPGENW("Message Sessions") L"/" LPGENW("Tabs"), LPGENW("Active text"), "tab_txt_active", 0xff000000 | COLOR_BTNTEXT }, + { 2, LPGENW("Message Sessions") L"/" LPGENW("Tabs"), LPGENW("Hovered text"), "tab_txt_hottrack", 0xff000000 | COLOR_HOTLIGHT }, + { 3, LPGENW("Message Sessions") L"/" LPGENW("Tabs"), LPGENW("Unread text"), "tab_txt_unread", 0xff000000 | COLOR_HOTLIGHT }, + + { 4, LPGENW("Message Sessions") L"/" LPGENW("Tabs"), LPGENW("Normal background"), "tab_bg_normal", 0xff000000 | COLOR_3DFACE }, + { 5, LPGENW("Message Sessions") L"/" LPGENW("Tabs"), LPGENW("Active background"), "tab_bg_active", 0xff000000 | COLOR_3DFACE }, + { 6, LPGENW("Message Sessions") L"/" LPGENW("Tabs"), LPGENW("Hovered background"), "tab_bg_hottrack", 0xff000000 | COLOR_3DFACE }, + { 7, LPGENW("Message Sessions") L"/" LPGENW("Tabs"), LPGENW("Unread background"), "tab_bg_unread", 0xff000000 | COLOR_3DFACE } }; extern LOGFONT lfDefault; static FontOptionsList IM_fontOptionsList[] = { - { LPGENT(">> Outgoing messages"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT(">> Outgoing misc events"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("<< Incoming messages"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("<< Incoming misc events"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT(">> Outgoing name"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, - { LPGENT(">> Outgoing timestamp"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, - { LPGENT("<< Incoming name"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, - { LPGENT("<< Incoming timestamp"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, - { LPGENT(">> Outgoing messages (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT(">> Outgoing misc events (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("<< Incoming messages (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("<< Incoming misc events (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT(">> Outgoing name (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, - { LPGENT(">> Outgoing timestamp (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, - { LPGENT("<< Incoming name (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, - { LPGENT("<< Incoming timestamp (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, - { LPGENT("* Message Input Area"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("* Status changes"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("* Dividers"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("* Error and warning messages"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("* Symbols (incoming)"), RGB(50, 50, 50), L"Webdings", SYMBOL_CHARSET, 0, -12 }, - { LPGENT("* Symbols (outgoing)"), RGB(50, 50, 50), L"Webdings", SYMBOL_CHARSET, 0, -12 }, + { LPGENW(">> Outgoing messages"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW(">> Outgoing misc events"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("<< Incoming messages"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("<< Incoming misc events"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW(">> Outgoing name"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, + { LPGENW(">> Outgoing timestamp"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, + { LPGENW("<< Incoming name"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, + { LPGENW("<< Incoming timestamp"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, + { LPGENW(">> Outgoing messages (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW(">> Outgoing misc events (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("<< Incoming messages (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("<< Incoming misc events (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW(">> Outgoing name (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, + { LPGENW(">> Outgoing timestamp (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, + { LPGENW("<< Incoming name (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, + { LPGENW("<< Incoming timestamp (old)"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, FONTF_BOLD, -12 }, + { LPGENW("* Message Input Area"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("* Status changes"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("* Dividers"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("* Error and warning messages"), RGB(50, 50, 50), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("* Symbols (incoming)"), RGB(50, 50, 50), L"Webdings", SYMBOL_CHARSET, 0, -12 }, + { LPGENW("* Symbols (outgoing)"), RGB(50, 50, 50), L"Webdings", SYMBOL_CHARSET, 0, -12 }, }; static FontOptionsList IP_fontOptionsList[] = { - { LPGENT("Nickname"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("UIN"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("Status"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("Protocol"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("Contacts local time"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, - { LPGENT("Window caption (skinned mode)"), RGB(255, 255, 255), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("Nickname"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("UIN"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("Status"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("Protocol"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("Contacts local time"), RGB(0, 0, 0), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, + { LPGENW("Window caption (skinned mode)"), RGB(255, 255, 255), lfDefault.lfFaceName, DEFAULT_CHARSET, 0, -12 }, }; static FontOptionsList *fontOptionsList = IM_fontOptionsList; @@ -129,49 +129,49 @@ static int fontCount = MSGDLGFONTCOUNT; struct branch_t { - TCHAR* szDescr; + wchar_t* szDescr; char* szDBName; int iMode; BYTE bDefault; HTREEITEM hItem; }; static branch_t branch1[] = { - { LPGENT("Open new chat rooms in the default container"), "DefaultContainer", 0, 1, NULL }, - { LPGENT("Flash window when someone speaks"), "FlashWindow", 0, 0, NULL }, - { LPGENT("Flash window when a word is highlighted"), "FlashWindowHighlight", 0, 1, NULL }, - { LPGENT("Create tabs or windows for highlight events"), "CreateWindowOnHighlight", 0, 0, NULL }, - { LPGENT("Activate chat window on highlight"), "AnnoyingHighlight", 0, 0, NULL }, - { LPGENT("Show list of users in the chat room"), "ShowNicklist", 0, 1, NULL }, - { LPGENT("Colorize nicknames in member list"), "ColorizeNicks", 0, 1, NULL }, - { LPGENT("Show button menus when right clicking the buttons"), "RightClickFilter", 0, 1, NULL }, - { LPGENT("Show topic as status message on the contact list"), "TopicOnClist", 0, 1, NULL }, - { LPGENT("Do not pop up the window when joining a chat room"), "PopupOnJoin", 0, 0, NULL }, - { LPGENT("Hide or show the window by double click in the contact list"), "ToggleVisibility", 0, 0, NULL }, - { LPGENT("Sync splitter position with standard IM sessions"), "SyncSplitter", 0, 0, NULL }, - { LPGENT("Show contact's status modes if supported by the protocol"), "ShowContactStatus", 0, 1, NULL }, - { LPGENT("Display contact's status icon before user role icon"), "ContactStatusFirst", 0, 0, NULL }, - { LPGENT("Use IRC style status indicators in the nick list"), "ClassicIndicators", 0, 0, NULL }, - { LPGENT("Use alternative sorting method in member list"), "AlternativeSorting", 0, 1, NULL } + { LPGENW("Open new chat rooms in the default container"), "DefaultContainer", 0, 1, NULL }, + { LPGENW("Flash window when someone speaks"), "FlashWindow", 0, 0, NULL }, + { LPGENW("Flash window when a word is highlighted"), "FlashWindowHighlight", 0, 1, NULL }, + { LPGENW("Create tabs or windows for highlight events"), "CreateWindowOnHighlight", 0, 0, NULL }, + { LPGENW("Activate chat window on highlight"), "AnnoyingHighlight", 0, 0, NULL }, + { LPGENW("Show list of users in the chat room"), "ShowNicklist", 0, 1, NULL }, + { LPGENW("Colorize nicknames in member list"), "ColorizeNicks", 0, 1, NULL }, + { LPGENW("Show button menus when right clicking the buttons"), "RightClickFilter", 0, 1, NULL }, + { LPGENW("Show topic as status message on the contact list"), "TopicOnClist", 0, 1, NULL }, + { LPGENW("Do not pop up the window when joining a chat room"), "PopupOnJoin", 0, 0, NULL }, + { LPGENW("Hide or show the window by double click in the contact list"), "ToggleVisibility", 0, 0, NULL }, + { LPGENW("Sync splitter position with standard IM sessions"), "SyncSplitter", 0, 0, NULL }, + { LPGENW("Show contact's status modes if supported by the protocol"), "ShowContactStatus", 0, 1, NULL }, + { LPGENW("Display contact's status icon before user role icon"), "ContactStatusFirst", 0, 0, NULL }, + { LPGENW("Use IRC style status indicators in the nick list"), "ClassicIndicators", 0, 0, NULL }, + { LPGENW("Use alternative sorting method in member list"), "AlternativeSorting", 0, 1, NULL } }; static branch_t branch2[] = { - { LPGENT("Prefix all events with a timestamp"), "ShowTimeStamp", 0, 1, NULL }, - { LPGENT("Timestamp only when event time differs"), "ShowTimeStampIfChanged", 0, 0, NULL }, - { LPGENT("Timestamp has same color as the event"), "TimeStampEventColour", 0, 0, NULL }, - { LPGENT("Indent the second line of a message"), "LogIndentEnabled", 0, 1, NULL }, - { LPGENT("Limit user names in the message log to 20 characters"), "LogLimitNames", 0, 1, NULL }, - { LPGENT("Add a colon (:) to auto-completed user names"), "AddColonToAutoComplete", 0, 1, NULL }, - { LPGENT("Add a comma instead of a colon to auto-completed user names"), "UseCommaAsColon", 0, 0, NULL }, - { LPGENT("Start private conversation on double click in nick list (insert nick if unchecked)"), "DoubleClick4Privat", 0, 0, NULL }, - { LPGENT("Strip colors from messages in the log"), "StripFormatting", 0, 0, NULL }, - { LPGENT("Enable the 'event filter' for new rooms"), "FilterEnabled", 0, 0, NULL }, - { LPGENT("Use IRC style status indicators in the log"), "LogClassicIndicators", 0, 0, NULL }, - { LPGENT("Allow clickable user names in the message log"), "ClickableNicks", 0, 1, NULL }, - { LPGENT("Add new line after names"), "NewlineAfterNames", 0, 0, NULL }, - { LPGENT("Colorize user names in message log"), "ColorizeNicksInLog", 0, 1, NULL }, - { LPGENT("Scale down icons to 10x10 pixels in the chat log"), "ScaleIcons", 0, 1, NULL }, - { LPGENT("Place a separator in the log after a window lost its foreground status"), "UseDividers", 0, 1, NULL }, - { LPGENT("Only place a separator when an incoming event is announced with a popup"), "DividersUsePopupConfig", 0, 1, NULL } + { LPGENW("Prefix all events with a timestamp"), "ShowTimeStamp", 0, 1, NULL }, + { LPGENW("Timestamp only when event time differs"), "ShowTimeStampIfChanged", 0, 0, NULL }, + { LPGENW("Timestamp has same color as the event"), "TimeStampEventColour", 0, 0, NULL }, + { LPGENW("Indent the second line of a message"), "LogIndentEnabled", 0, 1, NULL }, + { LPGENW("Limit user names in the message log to 20 characters"), "LogLimitNames", 0, 1, NULL }, + { LPGENW("Add a colon (:) to auto-completed user names"), "AddColonToAutoComplete", 0, 1, NULL }, + { LPGENW("Add a comma instead of a colon to auto-completed user names"), "UseCommaAsColon", 0, 0, NULL }, + { LPGENW("Start private conversation on double click in nick list (insert nick if unchecked)"), "DoubleClick4Privat", 0, 0, NULL }, + { LPGENW("Strip colors from messages in the log"), "StripFormatting", 0, 0, NULL }, + { LPGENW("Enable the 'event filter' for new rooms"), "FilterEnabled", 0, 0, NULL }, + { LPGENW("Use IRC style status indicators in the log"), "LogClassicIndicators", 0, 0, NULL }, + { LPGENW("Allow clickable user names in the message log"), "ClickableNicks", 0, 1, NULL }, + { LPGENW("Add new line after names"), "NewlineAfterNames", 0, 0, NULL }, + { LPGENW("Colorize user names in message log"), "ColorizeNicksInLog", 0, 1, NULL }, + { LPGENW("Scale down icons to 10x10 pixels in the chat log"), "ScaleIcons", 0, 1, NULL }, + { LPGENW("Place a separator in the log after a window lost its foreground status"), "UseDividers", 0, 1, NULL }, + { LPGENW("Only place a separator when an incoming event is announced with a popup"), "DividersUsePopupConfig", 0, 1, NULL } }; static HWND hPathTip = 0; @@ -222,19 +222,19 @@ void LoadMsgDlgFont(int section, int i, LOGFONT *lf, COLORREF* colour, char *szM mir_snprintf(str, "Font%d", i); if ((i == 17 && !mir_strcmp(szMod, CHATFONT_MODULE)) || ((i == 20 || i == 21) && !mir_strcmp(szMod, FONTMODULE))) { lf->lfCharSet = SYMBOL_CHARSET; - _tcsncpy_s(lf->lfFaceName, L"Webdings", _TRUNCATE); + wcsncpy_s(lf->lfFaceName, L"Webdings", _TRUNCATE); } else { ptrT tszDefFace(db_get_tsa(NULL, szMod, str)); if (tszDefFace == NULL) - _tcsncpy_s(lf->lfFaceName, fol[j].szDefFace, _TRUNCATE); + wcsncpy_s(lf->lfFaceName, fol[j].szDefFace, _TRUNCATE); else - _tcsncpy_s(lf->lfFaceName, tszDefFace, _TRUNCATE); + wcsncpy_s(lf->lfFaceName, tszDefFace, _TRUNCATE); } } } -static HTREEITEM InsertBranch(HWND hwndTree, TCHAR* pszDescr, BOOL bExpanded) +static HTREEITEM InsertBranch(HWND hwndTree, wchar_t* pszDescr, BOOL bExpanded) { TVINSERTSTRUCT tvis; tvis.hParent = NULL; @@ -354,7 +354,7 @@ HICON LoadIconEx(char *pszIcoLibName) return IcoLib_GetIcon(szTemp); } -static void InitSetting(TCHAR* &ppPointer, const char *pszSetting, const TCHAR *pszDefault) +static void InitSetting(wchar_t* &ppPointer, const char *pszSetting, const wchar_t *pszDefault) { ptrT val(db_get_tsa(NULL, CHAT_MODULE, pszSetting)); replaceStrT(ppPointer, (val != NULL) ? val : pszDefault); @@ -410,7 +410,7 @@ INT_PTR CALLBACK DlgProcOptions1(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM FillBranch(GetDlgItem(hwndDlg, IDC_CHECKBOXES), hListHeading1, branch1, _countof(branch1), 0x0000); FillBranch(GetDlgItem(hwndDlg, IDC_CHECKBOXES), hListHeading2, branch2, _countof(branch2), 0x0000); - TCHAR* pszGroup = NULL; + wchar_t* pszGroup = NULL; InitSetting(pszGroup, "AddToGroup", L"Chat rooms"); SetDlgItemText(hwndDlg, IDC_GROUP, pszGroup); mir_free(pszGroup); @@ -435,12 +435,12 @@ INT_PTR CALLBACK DlgProcOptions1(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: int iLen; - TCHAR *pszText = NULL; + wchar_t *pszText = NULL; BYTE b; iLen = GetWindowTextLength(GetDlgItem(hwndDlg, IDC_GROUP)); if (iLen > 0) { - pszText = (TCHAR*)mir_realloc(pszText, (iLen + 2) * sizeof(TCHAR)); + pszText = (wchar_t*)mir_realloc(pszText, (iLen + 2) * sizeof(wchar_t)); GetDlgItemText(hwndDlg, IDC_GROUP, pszText, iLen + 1); db_set_ts(NULL, CHAT_MODULE, "AddToGroup", pszText); } @@ -472,16 +472,16 @@ INT_PTR CALLBACK DlgProcOptions1(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM return FALSE; } -static TCHAR* chatcolorsnames[] = +static wchar_t* chatcolorsnames[] = { - LPGENT("Voiced"), - LPGENT("Half operators"), - LPGENT("Channel operators"), - LPGENT("Extended mode 1"), - LPGENT("Extended mode 2"), - LPGENT("Selection background"), - LPGENT("Selected text"), - LPGENT("Incremental search highlight") + LPGENW("Voiced"), + LPGENW("Half operators"), + LPGENW("Channel operators"), + LPGENW("Extended mode 1"), + LPGENW("Extended mode 2"), + LPGENW("Selection background"), + LPGENW("Selected text"), + LPGENW("Incremental search highlight") }; void RegisterFontServiceFonts() @@ -502,54 +502,54 @@ void RegisterFontServiceFonts() mir_snprintf(szTemp, "Font%d", i); strncpy(fid.prefix, szTemp, _countof(fid.prefix)); fid.order = i; - _tcsncpy(fid.name, fontOptionsList[i].szDescr, _countof(fid.name)); + wcsncpy(fid.name, fontOptionsList[i].szDescr, _countof(fid.name)); fid.deffontsettings.colour = fontOptionsList[i].colour; fid.deffontsettings.size = (char)lf.lfHeight; fid.deffontsettings.style = (lf.lfWeight >= FW_BOLD ? FONTF_BOLD : 0) | (lf.lfItalic ? FONTF_ITALIC : 0); fid.deffontsettings.charset = lf.lfCharSet; fid.flags = fid.flags & ~FIDF_CLASSMASK | (fid.deffontsettings.style&FONTF_BOLD ? FIDF_CLASSHEADER : FIDF_CLASSGENERAL); - _tcsncpy(fid.deffontsettings.szFace, lf.lfFaceName, LF_FACESIZE); - _tcsncpy(fid.backgroundGroup, LPGENT("Message Sessions") L"/" LPGENT("Single Messaging"), _countof(fid.backgroundGroup)); - _tcsncpy(fid.group, LPGENT("Message Sessions") L"/" LPGENT("Single Messaging"), _countof(fid.group)); + wcsncpy(fid.deffontsettings.szFace, lf.lfFaceName, LF_FACESIZE); + wcsncpy(fid.backgroundGroup, LPGENW("Message Sessions") L"/" LPGENW("Single Messaging"), _countof(fid.backgroundGroup)); + wcsncpy(fid.group, LPGENW("Message Sessions") L"/" LPGENW("Single Messaging"), _countof(fid.group)); switch (i) { case MSGFONTID_MYMSG: case 1: case MSGFONTID_MYNAME: case MSGFONTID_MYTIME: case 21: - _tcsncpy(fid.backgroundName, LPGENT("Outgoing background"), _countof(fid.backgroundName)); + wcsncpy(fid.backgroundName, LPGENW("Outgoing background"), _countof(fid.backgroundName)); break; case 8: case 9: case 12: case 13: - _tcsncpy(fid.backgroundName, LPGENT("Outgoing background(old)"), _countof(fid.backgroundName)); + wcsncpy(fid.backgroundName, LPGENW("Outgoing background(old)"), _countof(fid.backgroundName)); break; case 10: case 11: case 14: case 15: - _tcsncpy(fid.backgroundName, LPGENT("Incoming background(old)"), _countof(fid.backgroundName)); + wcsncpy(fid.backgroundName, LPGENW("Incoming background(old)"), _countof(fid.backgroundName)); break; case MSGFONTID_MESSAGEAREA: - _tcsncpy(fid.group, LPGENT("Message Sessions"), _countof(fid.group)); - _tcsncpy(fid.backgroundGroup, LPGENT("Message Sessions"), _countof(fid.backgroundGroup)); - _tcsncpy(fid.backgroundName, LPGENT("Input area background"), _countof(fid.backgroundName)); + wcsncpy(fid.group, LPGENW("Message Sessions"), _countof(fid.group)); + wcsncpy(fid.backgroundGroup, LPGENW("Message Sessions"), _countof(fid.backgroundGroup)); + wcsncpy(fid.backgroundName, LPGENW("Input area background"), _countof(fid.backgroundName)); fid.flags |= FIDF_DISABLESTYLES; fid.flags &= ~FIDF_ALLOWEFFECTS; break; case 17: - _tcsncpy(fid.backgroundName, LPGENT("Status background"), _countof(fid.backgroundName)); + wcsncpy(fid.backgroundName, LPGENW("Status background"), _countof(fid.backgroundName)); break; case 18: - _tcsncpy(fid.backgroundGroup, LPGENT("Message Sessions"), _countof(fid.backgroundGroup)); - _tcsncpy(fid.backgroundName, LPGENT("Log background"), _countof(fid.backgroundName)); + wcsncpy(fid.backgroundGroup, LPGENW("Message Sessions"), _countof(fid.backgroundGroup)); + wcsncpy(fid.backgroundName, LPGENW("Log background"), _countof(fid.backgroundName)); break; case 19: - _tcsncpy(fid.backgroundName, L"", _countof(fid.backgroundName)); + wcsncpy(fid.backgroundName, L"", _countof(fid.backgroundName)); break; default: - _tcsncpy(fid.backgroundName, LPGENT("Incoming background"), _countof(fid.backgroundName)); + wcsncpy(fid.backgroundName, LPGENW("Incoming background"), _countof(fid.backgroundName)); break; } FontRegisterT(&fid); @@ -557,35 +557,35 @@ void RegisterFontServiceFonts() fontOptionsList = IP_fontOptionsList; fid.flags = FIDF_DEFAULTVALID | FIDF_ALLOWEFFECTS; - _tcsncpy(fid.group, LPGENT("Message Sessions") L"/" LPGENT("Info Panel"), _countof(fid.group)); - _tcsncpy(fid.backgroundGroup, LPGENT("Message Sessions") L"/" LPGENT("Info Panel"), _countof(fid.backgroundGroup)); - _tcsncpy(fid.backgroundName, LPGENT("Fields background"), _countof(fid.backgroundName)); + wcsncpy(fid.group, LPGENW("Message Sessions") L"/" LPGENW("Info Panel"), _countof(fid.group)); + wcsncpy(fid.backgroundGroup, LPGENW("Message Sessions") L"/" LPGENW("Info Panel"), _countof(fid.backgroundGroup)); + wcsncpy(fid.backgroundName, LPGENW("Fields background"), _countof(fid.backgroundName)); for (int i = 0; i < IPFONTCOUNT; i++) { LoadMsgDlgFont(FONTSECTION_IP, i + 100, &lf, &fontOptionsList[i].colour, FONTMODULE); mir_snprintf(szTemp, "Font%d", i + 100); strncpy(fid.prefix, szTemp, _countof(fid.prefix)); fid.order = i + 100; - _tcsncpy(fid.name, fontOptionsList[i].szDescr, _countof(fid.name)); + wcsncpy(fid.name, fontOptionsList[i].szDescr, _countof(fid.name)); fid.deffontsettings.colour = fontOptionsList[i].colour; fid.deffontsettings.size = (char)lf.lfHeight; fid.deffontsettings.style = (lf.lfWeight >= FW_BOLD ? FONTF_BOLD : 0) | (lf.lfItalic ? FONTF_ITALIC : 0); fid.deffontsettings.charset = lf.lfCharSet; fid.flags = fid.flags & ~FIDF_CLASSMASK | (fid.deffontsettings.style&FONTF_BOLD ? FIDF_CLASSHEADER : FIDF_CLASSGENERAL); fid.deffontsettings.charset = lf.lfCharSet; - _tcsncpy(fid.deffontsettings.szFace, lf.lfFaceName, LF_FACESIZE); + wcsncpy(fid.deffontsettings.szFace, lf.lfFaceName, LF_FACESIZE); if (i == IPFONTCOUNT - 1) { - _tcsncpy(fid.backgroundGroup, L"", _countof(fid.backgroundGroup)); - _tcsncpy(fid.backgroundName, L"", _countof(fid.backgroundName)); - _tcsncpy(fid.group, LPGENT("Message Sessions"), _countof(fid.group)); + wcsncpy(fid.backgroundGroup, L"", _countof(fid.backgroundGroup)); + wcsncpy(fid.backgroundName, L"", _countof(fid.backgroundName)); + wcsncpy(fid.group, LPGENW("Message Sessions"), _countof(fid.group)); } FontRegisterT(&fid); } - _tcsncpy(cid.group, LPGENT("Message Sessions") L"/" LPGENT("Group chats"), _countof(cid.group)); + wcsncpy(cid.group, LPGENW("Message Sessions") L"/" LPGENW("Group chats"), _countof(cid.group)); strncpy(cid.dbSettingsGroup, CHAT_MODULE, _countof(cid.dbSettingsGroup)); for (int i = 0; i <= 7; i++) { mir_snprintf(szTemp, "NickColor%d", i); - _tcsncpy(cid.name, chatcolorsnames[i], _countof(cid.name)); + wcsncpy(cid.name, chatcolorsnames[i], _countof(cid.name)); cid.order = i + 1; strncpy(cid.setting, szTemp, _countof(cid.setting)); switch (i) { @@ -602,13 +602,13 @@ void RegisterFontServiceFonts() ColourRegisterT(&cid); } cid.order++; - _tcsncpy_s(cid.name, LPGENT("Nick list background"), _TRUNCATE); + wcsncpy_s(cid.name, LPGENW("Nick list background"), _TRUNCATE); strncpy_s(cid.setting, "ColorNicklistBG", _TRUNCATE); cid.defcolour = SRMSGDEFSET_BKGCOLOUR; ColourRegisterT(&cid); cid.order++; - _tcsncpy_s(cid.name, LPGENT("Group chat log background"), _TRUNCATE); + wcsncpy_s(cid.name, LPGENW("Group chat log background"), _TRUNCATE); strncpy_s(cid.setting, "ColorLogBG", _TRUNCATE); ColourRegisterT(&cid); @@ -618,8 +618,8 @@ void RegisterFontServiceFonts() for (int i = 0; i < _countof(_clrs); i++) { cid.order = _clrs[i].order; - _tcsncpy(cid.group, _clrs[i].tszGroup, _countof(fid.group)); - _tcsncpy(cid.name, _clrs[i].tszName, _countof(cid.name)); + wcsncpy(cid.group, _clrs[i].tszGroup, _countof(fid.group)); + wcsncpy(cid.name, _clrs[i].tszName, _countof(cid.name)); strncpy(cid.setting, _clrs[i].szSetting, _countof(cid.setting)); if (_clrs[i].def & 0xff000000) cid.defcolour = GetSysColor(_clrs[i].def & 0x000000ff); @@ -633,8 +633,8 @@ void RegisterFontServiceFonts() // text and background colors for tabs for (int i = 0; i < _countof(_tabclrs); i++) { cid.order = _tabclrs[i].order; - _tcsncpy(cid.group, _tabclrs[i].tszGroup, _countof(fid.group)); - _tcsncpy(cid.name, _tabclrs[i].tszName, _countof(cid.name)); + wcsncpy(cid.group, _tabclrs[i].tszGroup, _countof(fid.group)); + wcsncpy(cid.name, _tabclrs[i].tszName, _countof(cid.name)); strncpy(cid.setting, _tabclrs[i].szSetting, _countof(cid.setting)); if (_tabclrs[i].def & 0xff000000) cid.defcolour = GetSysColor(_tabclrs[i].def & 0x000000ff); @@ -689,7 +689,7 @@ INT_PTR CALLBACK DlgProcOptions2(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM SendDlgItemMessage(hwndDlg, IDC_CHAT_SPIN4, UDM_SETPOS, 0, MAKELONG(db_get_w(NULL, CHAT_MODULE, "LoggingLimit", 100), 0)); Utils::enableDlgControl(hwndDlg, IDC_LIMIT, g_Settings.bLoggingEnabled); - TCHAR tszTooltipText[2048]; + wchar_t tszTooltipText[2048]; mir_sntprintf(tszTooltipText, L"%s - %s\n%s - %s\n%s - %s\n%s - %s\n\n" @@ -745,23 +745,23 @@ INT_PTR CALLBACK DlgProcOptions2(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM switch (LOWORD(wParam)) { case IDC_MUC_OPENLOGBASEDIR: { - TCHAR tszTemp[MAX_PATH + 20]; - _tcsncpy_s(tszTemp, g_Settings.pszLogDir, _TRUNCATE); + wchar_t tszTemp[MAX_PATH + 20]; + wcsncpy_s(tszTemp, g_Settings.pszLogDir, _TRUNCATE); - TCHAR *p = tszTemp; + wchar_t *p = tszTemp; while (*p && (*p == '\\' || *p == '.')) p++; if (*p) - if (TCHAR *p1 = _tcschr(p, '\\')) + if (wchar_t *p1 = wcschr(p, '\\')) *p1 = 0; - TCHAR tszInitialDir[_MAX_DRIVE + _MAX_PATH + 10]; + wchar_t tszInitialDir[_MAX_DRIVE + _MAX_PATH + 10]; mir_sntprintf(tszInitialDir, L"%s%s", M.getChatLogPath(), p); if (!PathFileExists(tszInitialDir)) - _tcsncpy_s(tszInitialDir, M.getChatLogPath(), _TRUNCATE); + wcsncpy_s(tszInitialDir, M.getChatLogPath(), _TRUNCATE); - TCHAR tszReturnName[MAX_PATH]; tszReturnName[0] = 0; + wchar_t tszReturnName[MAX_PATH]; tszReturnName[0] = 0; mir_sntprintf(tszTemp, L"%s%c*.*%c%c", TranslateT("All files"), 0, 0, 0); OPENFILENAME ofn = { 0 }; @@ -779,7 +779,7 @@ INT_PTR CALLBACK DlgProcOptions2(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM case IDC_FONTCHOOSE: { - TCHAR tszDirectory[MAX_PATH]; + wchar_t tszDirectory[MAX_PATH]; LPMALLOC psMalloc; if (SUCCEEDED(CoGetMalloc(1, &psMalloc))) { @@ -793,11 +793,11 @@ INT_PTR CALLBACK DlgProcOptions2(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM LPITEMIDLIST idList = SHBrowseForFolder(&bi); if (idList) { - const TCHAR *szUserDir = M.getUserDir(); + const wchar_t *szUserDir = M.getUserDir(); SHGetPathFromIDList(idList, tszDirectory); mir_tstrcat(tszDirectory, L"\\"); - TCHAR tszTemp[MAX_PATH]; + wchar_t tszTemp[MAX_PATH]; PathToRelativeT(tszDirectory, tszTemp, szUserDir); SetDlgItemText(hwndDlg, IDC_LOGDIRECTORY, mir_tstrlen(tszTemp) > 1 ? tszTemp : DEFLOGFILENAME); } @@ -824,7 +824,7 @@ INT_PTR CALLBACK DlgProcOptions2(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM int iLen = GetWindowTextLength(GetDlgItem(hwndDlg, IDC_LOGDIRECTORY)); if (iLen > 0) { - TCHAR *pszText1 = (TCHAR*)mir_alloc(iLen*sizeof(TCHAR) + 2); + wchar_t *pszText1 = (wchar_t*)mir_alloc(iLen*sizeof(wchar_t) + 2); GetDlgItemText(hwndDlg, IDC_LOGDIRECTORY, pszText1, iLen + 1); db_set_ts(NULL, CHAT_MODULE, "LogDirectory", pszText1); mir_free(pszText1); diff --git a/plugins/TabSRMM/src/chat/services.cpp b/plugins/TabSRMM/src/chat/services.cpp index d892fc66aa..4fd40eb4d2 100644 --- a/plugins/TabSRMM/src/chat/services.cpp +++ b/plugins/TabSRMM/src/chat/services.cpp @@ -34,9 +34,9 @@ HWND CreateNewRoom(TContainerData *pContainer, SESSION_INFO *si, BOOL bActivateT if (M.FindWindow(hContact) != 0) return 0; - if (hContact != 0 && M.GetByte("limittabs", 0) && !_tcsncmp(pContainer->szName, L"default", 6)) { + if (hContact != 0 && M.GetByte("limittabs", 0) && !wcsncmp(pContainer->szName, L"default", 6)) { if ((pContainer = FindMatchingContainer(L"default")) == NULL) { - TCHAR szName[CONTAINER_NAMELEN + 1]; + wchar_t szName[CONTAINER_NAMELEN + 1]; mir_sntprintf(szName, L"default"); if ((pContainer = CreateContainer(szName, CNT_CREATEFLAG_CLONED, hContact)) == NULL) return 0; @@ -49,17 +49,17 @@ HWND CreateNewRoom(TContainerData *pContainer, SESSION_INFO *si, BOOL bActivateT newData.szInitialText = NULL; memset(&newData.item, 0, sizeof(newData.item)); - TCHAR *contactName = pcli->pfnGetContactDisplayName(newData.hContact, 0); + wchar_t *contactName = pcli->pfnGetContactDisplayName(newData.hContact, 0); // cut nickname if larger than x chars... - TCHAR newcontactname[128]; + wchar_t newcontactname[128]; if (mir_tstrlen(contactName) > 0) { if (M.GetByte("cuttitle", 0)) CutContactName(contactName, newcontactname, _countof(newcontactname)); else - _tcsncpy_s(newcontactname, contactName, _TRUNCATE); + wcsncpy_s(newcontactname, contactName, _TRUNCATE); } - else _tcsncpy_s(newcontactname, L"_U_", _TRUNCATE); + else wcsncpy_s(newcontactname, L"_U_", _TRUNCATE); newData.item.pszText = newcontactname; newData.item.mask = TCIF_TEXT | TCIF_IMAGE | TCIF_PARAM; @@ -163,12 +163,12 @@ void ShowRoom(SESSION_INFO *si, WPARAM, BOOL) return; } - TCHAR szName[CONTAINER_NAMELEN + 2]; szName[0] = 0; + wchar_t szName[CONTAINER_NAMELEN + 2]; szName[0] = 0; TContainerData *pContainer = si->pContainer; if (pContainer == NULL) { GetContainerNameForContact(si->hContact, szName, CONTAINER_NAMELEN); if (!g_Settings.bOpenInDefault && !mir_tstrcmp(szName, L"default")) - _tcsncpy(szName, L"Chat Rooms", CONTAINER_NAMELEN); + wcsncpy(szName, L"Chat Rooms", CONTAINER_NAMELEN); szName[CONTAINER_NAMELEN] = 0; pContainer = FindContainerByName(szName); } diff --git a/plugins/TabSRMM/src/chat/tools.cpp b/plugins/TabSRMM/src/chat/tools.cpp index 98a3b8f603..274e4ab8a0 100644 --- a/plugins/TabSRMM/src/chat/tools.cpp +++ b/plugins/TabSRMM/src/chat/tools.cpp @@ -92,11 +92,11 @@ BOOL DoTrayIcon(SESSION_INFO *si, GCEVENT *gce) return TRUE; } -int ShowPopup(MCONTACT hContact, SESSION_INFO *si, HICON hIcon, char* pszProtoName, TCHAR*, COLORREF crBkg, const TCHAR* fmt, ...) +int ShowPopup(MCONTACT hContact, SESSION_INFO *si, HICON hIcon, char* pszProtoName, wchar_t*, COLORREF crBkg, const wchar_t* fmt, ...) { POPUPDATAT pd = { 0 }; va_list marker; - static TCHAR szBuf[4 * 1024]; + static wchar_t szBuf[4 * 1024]; if (!fmt || mir_tstrlen(fmt) == 0 || mir_tstrlen(fmt) > 2000) return 0; @@ -114,7 +114,7 @@ int ShowPopup(MCONTACT hContact, SESSION_INFO *si, HICON hIcon, char* pszProtoNa PROTOACCOUNT *pa = Proto_GetAccount(pszProtoName); mir_sntprintf(pd.lptzContactName, L"%s - %s", (pa == NULL) ? _A2T(pszProtoName) : pa->tszAccountName, pcli->pfnGetContactDisplayName(hContact, 0)); - _tcsncpy_s(pd.lptzText, TranslateTS(szBuf), _TRUNCATE); + wcsncpy_s(pd.lptzText, TranslateTS(szBuf), _TRUNCATE); pd.iSeconds = g_Settings.iPopupTimeout; if (g_Settings.iPopupStyle == 2) { @@ -144,7 +144,7 @@ BOOL DoPopup(SESSION_INFO *si, GCEVENT* gce) TWindowData *dat = si->dat; TContainerData *pContainer = dat ? dat->pContainer : NULL; - TCHAR *bbStart, *bbEnd; + wchar_t *bbStart, *bbEnd; if (g_Settings.bBBCodeInPopups) { bbStart = L"[b]"; bbEnd = L"[/b]"; @@ -474,15 +474,15 @@ int Chat_GetColorIndex(const char* pszModule, COLORREF cr) return -1; } -TCHAR* my_strstri(const TCHAR* s1, const TCHAR* s2) +wchar_t* my_strstri(const wchar_t* s1, const wchar_t* s2) { int i, j, k; - _tsetlocale(LC_ALL, L""); + _wsetlocale(LC_ALL, L""); for (i = 0; s1[i]; i++) - for (j = i, k = 0; _totlower(s1[j]) == _totlower(s2[k]); j++, k++) + for (j = i, k = 0; towlower(s1[j]) == towlower(s2[k]); j++, k++) if (!s2[k + 1]) - return (TCHAR*)(s1 + i); + return (wchar_t*)(s1 + i); return NULL; } @@ -505,7 +505,7 @@ BOOL LogToFile(SESSION_INFO *si, GCEVENT *gce) return saveCI.LogToFile(si, gce); // call kernel method } -UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO *si, TCHAR* pszUID, TCHAR* pszWordText) +UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO *si, wchar_t* pszUID, wchar_t* pszWordText) { HMENU hSubMenu = 0; @@ -531,7 +531,7 @@ UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO } if (pszWordText && pszWordText[0]) { - TCHAR szMenuText[4096]; + wchar_t szMenuText[4096]; mir_sntprintf(szMenuText, TranslateT("Look up '%s':"), pszWordText); ModifyMenu(*hMenu, 4, MF_STRING | MF_BYPOSITION, 4, szMenuText); } @@ -539,14 +539,14 @@ UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO gcmi.Type = MENU_ON_LOG; } else if (iIndex == 0) { - TCHAR szTemp[50]; + wchar_t szTemp[50]; if (pszWordText) mir_sntprintf(szTemp, TranslateT("&Message %s"), pszWordText); else - _tcsncpy_s(szTemp, TranslateT("&Message"), _TRUNCATE); + wcsncpy_s(szTemp, TranslateT("&Message"), _TRUNCATE); if (mir_tstrlen(szTemp) > 40) - _tcsncpy_s(szTemp + 40, 4, L"...", _TRUNCATE); + wcsncpy_s(szTemp + 40, 4, L"...", _TRUNCATE); ModifyMenu(*hMenu, ID_MESS, MF_STRING | MF_BYCOMMAND, ID_MESS, szTemp); gcmi.Type = MENU_ON_NICKLIST; } @@ -557,7 +557,7 @@ UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO AppendMenu(*hMenu, MF_SEPARATOR, 0, 0); for (int i = 0; i < gcmi.nItems; i++) { - TCHAR *ptszText = TranslateTS(gcmi.Item[i].pszDesc); + wchar_t *ptszText = TranslateTS(gcmi.Item[i].pszDesc); DWORD dwState = gcmi.Item[i].bDisabled ? MF_GRAYED : 0; if (gcmi.Item[i].uType == MENU_NEWPOPUP) { @@ -686,7 +686,7 @@ BOOL IsHighlighted(SESSION_INFO *si, GCEVENT *gce) dwMask |= CMUCHighlight::MATCH_NICKNAME; if (si && g_Settings.bLogClassicIndicators) { size_t len = mir_tstrlen(gce->ptszNick) + 1; - TCHAR *tmp = (TCHAR*)_alloca(sizeof(TCHAR)*(len + 1)); + wchar_t *tmp = (wchar_t*)_alloca(sizeof(wchar_t)*(len + 1)); *tmp = GetIndicator(si, gce->ptszNick, 0); mir_tstrcpy(tmp + 1, gce->ptszNick); evTmp.ptszNick = tmp; diff --git a/plugins/TabSRMM/src/chat/window.cpp b/plugins/TabSRMM/src/chat/window.cpp index c633d50ee9..cde016a19e 100644 --- a/plugins/TabSRMM/src/chat/window.cpp +++ b/plugins/TabSRMM/src/chat/window.cpp @@ -44,8 +44,8 @@ char szIndicators[] = { 0, '+', '%', '@', '!', '*' }; struct MESSAGESUBDATA { time_t lastEnterTime; - TCHAR *szSearchQuery; - TCHAR *szSearchResult; + wchar_t *szSearchQuery; + wchar_t *szSearchResult; BOOL iSavedSpaces; SESSION_INFO *lastSession; }; @@ -130,18 +130,18 @@ static BOOL CheckCustomLink(HWND hwndDlg, POINT *ptClient, UINT uMsg, WPARAM wPa return bIsCustomLink; } -bool IsStringValidLink(TCHAR *pszText) +bool IsStringValidLink(wchar_t *pszText) { if (pszText == NULL) return false; - if (mir_tstrlen(pszText) < 5 || _tcschr(pszText, '"')) + if (mir_tstrlen(pszText) < 5 || wcschr(pszText, '"')) return false; - if (_totlower(pszText[0]) == 'w' && _totlower(pszText[1]) == 'w' && _totlower(pszText[2]) == 'w' && pszText[3] == '.' && _istalnum(pszText[4])) + if (towlower(pszText[0]) == 'w' && towlower(pszText[1]) == 'w' && towlower(pszText[2]) == 'w' && pszText[3] == '.' && iswalnum(pszText[4])) return true; - return _tcsstr(pszText, L"://") != NULL; + return wcsstr(pszText, L"://") != NULL; } ///////////////////////////////////////////////////////////////////////////////////////// @@ -440,11 +440,11 @@ static bool TabAutoComplete(HWND hwnd, MESSAGESUBDATA *dat, SESSION_INFO *si) return false; bool isTopic = false, isRoom = false; - TCHAR *pszName = NULL; - TCHAR *pszText = (TCHAR*)mir_calloc((iLen + 10) * sizeof(TCHAR)); + wchar_t *pszName = NULL; + wchar_t *pszText = (wchar_t*)mir_calloc((iLen + 10) * sizeof(wchar_t)); gt.flags = GT_DEFAULT; - gt.cb = (iLen + 9) * sizeof(TCHAR); + gt.cb = (iLen + 9) * sizeof(wchar_t); SendMessage(hwnd, EM_GETTEXTEX, (WPARAM)>, (LPARAM)pszText); if (start > 1 && pszText[start - 1] == ' ' && pszText[start - 2] == ':') @@ -452,7 +452,7 @@ static bool TabAutoComplete(HWND hwnd, MESSAGESUBDATA *dat, SESSION_INFO *si) if (dat->szSearchResult != NULL) { int cbResult = (int)mir_tstrlen(dat->szSearchResult); - if (start >= cbResult && !_tcsncicmp(dat->szSearchResult, pszText + start - cbResult, cbResult)) { + if (start >= cbResult && !wcsnicmp(dat->szSearchResult, pszText + start - cbResult, cbResult)) { start -= cbResult; goto LBL_SkipEnd; } @@ -471,7 +471,7 @@ LBL_SkipEnd: int topicStart = start; while (topicStart > 0 && (pszText[topicStart - 1] == ' ' || pszText[topicStart - 1] == 13 || pszText[topicStart - 1] == VK_TAB)) topicStart--; - if (topicStart > 5 && _tcsstr(&pszText[topicStart - 6], L"/topic") == &pszText[topicStart - 6]) + if (topicStart > 5 && wcsstr(&pszText[topicStart - 6], L"/topic") == &pszText[topicStart - 6]) isTopic = TRUE; } if (dat->szSearchQuery == NULL) { @@ -495,7 +495,7 @@ LBL_SkipEnd: if (end != start) { ptrT szReplace; if (!isRoom && !isTopic && g_Settings.bAddColonToAutoComplete && start == 0) { - szReplace = (TCHAR*)mir_alloc((mir_wstrlen(pszName) + 4) * sizeof(TCHAR)); + szReplace = (wchar_t*)mir_alloc((mir_wstrlen(pszName) + 4) * sizeof(wchar_t)); mir_wstrcpy(szReplace, pszName); mir_wstrcat(szReplace, g_Settings.bUseCommaAsColon ? L", " : L": "); pszName = szReplace; @@ -1308,14 +1308,14 @@ static void ProcessNickListHovering(HWND hwnd, int hoveredItem, SESSION_INFO *pa ti.uId = 1; ti.rect = clientRect; - TCHAR tszBuf[1024]; tszBuf[0] = 0; + wchar_t tszBuf[1024]; tszBuf[0] = 0; USERINFO *ui1 = pci->SM_GetUserFromIndex(parentdat->ptszID, parentdat->pszModule, currentHovered); if (ui1) { if (ProtoServiceExists(parentdat->pszModule, MS_GC_PROTO_GETTOOLTIPTEXT)) { - TCHAR *p = (TCHAR*)CallProtoService(parentdat->pszModule, MS_GC_PROTO_GETTOOLTIPTEXT, (WPARAM)parentdat->ptszID, (LPARAM)ui1->pszUID); + wchar_t *p = (wchar_t*)CallProtoService(parentdat->pszModule, MS_GC_PROTO_GETTOOLTIPTEXT, (WPARAM)parentdat->ptszID, (LPARAM)ui1->pszUID); if (p != NULL) { - _tcsncpy_s(tszBuf, p, _TRUNCATE); + wcsncpy_s(tszBuf, p, _TRUNCATE); mir_free(p); } } @@ -1460,8 +1460,8 @@ static LRESULT CALLBACK NicklistSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, MessageBeep(MB_OK); break; } - TCHAR szNew[2]; - szNew[0] = (TCHAR)wParam; + wchar_t szNew[2]; + szNew[0] = (wchar_t)wParam; szNew[1] = '\0'; mir_tstrcat(si->szSearch, szNew); } @@ -1472,7 +1472,7 @@ static LRESULT CALLBACK NicklistSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, for (i = 0; i < iItems; i++) { USERINFO *ui = pci->UM_FindUserFromIndex(si->pUsers, i); if (ui) { - if (!_tcsnicmp(ui->pszNick, si->szSearch, mir_tstrlen(si->szSearch))) { + if (!wcsnicmp(ui->pszNick, si->szSearch, mir_tstrlen(si->szSearch))) { SendMessage(hwnd, LB_SETSEL, FALSE, -1); SendMessage(hwnd, LB_SETSEL, TRUE, i); si->iSearchItem = i; @@ -1662,11 +1662,11 @@ static LRESULT CALLBACK NicklistSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, USERINFO *ui1 = pci->SM_GetUserFromIndex(parentdat->ptszID, parentdat->pszModule, currentHovered); if (ui1) { - TCHAR tszBuf[1024]; tszBuf[0] = 0; + wchar_t tszBuf[1024]; tszBuf[0] = 0; if (ProtoServiceExists(parentdat->pszModule, MS_GC_PROTO_GETTOOLTIPTEXT)) { - TCHAR *p = (TCHAR*)CallProtoService(parentdat->pszModule, MS_GC_PROTO_GETTOOLTIPTEXT, (WPARAM)parentdat->ptszID, (LPARAM)ui1->pszUID); + wchar_t *p = (wchar_t*)CallProtoService(parentdat->pszModule, MS_GC_PROTO_GETTOOLTIPTEXT, (WPARAM)parentdat->ptszID, (LPARAM)ui1->pszUID); if (p) { - _tcsncpy_s(tszBuf, p, _TRUNCATE); + wcsncpy_s(tszBuf, p, _TRUNCATE); mir_free(p); } } @@ -1691,7 +1691,7 @@ static LRESULT CALLBACK NicklistSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, // calculate the required rectangle for a string using the given font. This is more // precise than using GetTextExtentPoint...() -int GetTextPixelSize(TCHAR* pszText, HFONT hFont, bool bWidth) +int GetTextPixelSize(wchar_t* pszText, HFONT hFont, bool bWidth) { if (!pszText || !hFont) return 0; @@ -1889,15 +1889,15 @@ INT_PTR CALLBACK RoomWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar if (!dat->bWasDeleted) { dat->wStatus = si->wStatus; - const TCHAR *szNick = dat->cache->getNick(); + const wchar_t *szNick = dat->cache->getNick(); if (mir_tstrlen(szNick) > 0) { if (M.GetByte("cuttitle", 0)) CutContactName(szNick, dat->newtitle, _countof(dat->newtitle)); else - _tcsncpy_s(dat->newtitle, szNick, _TRUNCATE); + wcsncpy_s(dat->newtitle, szNick, _TRUNCATE); } - TCHAR szTemp[100]; + wchar_t szTemp[100]; HICON hIcon = 0; switch (si->iType) { @@ -1930,7 +1930,7 @@ INT_PTR CALLBACK RoomWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar dat->hTabIcon = dat->hTabStatusIcon; if (dat->cache->getStatus() != dat->cache->getOldStatus()) { - _tcsncpy_s(dat->szStatus, pcli->pfnGetStatusModeDescription(dat->wStatus, 0), _TRUNCATE); + wcsncpy_s(dat->szStatus, pcli->pfnGetStatusModeDescription(dat->wStatus, 0), _TRUNCATE); TCITEM item = { 0 }; item.mask = TCIF_TEXT; @@ -1953,7 +1953,7 @@ INT_PTR CALLBACK RoomWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar break; if (si->pszModule != NULL) { - TCHAR szFinalStatusBarText[512]; + wchar_t szFinalStatusBarText[512]; //Mad: strange rare crash here... MODULEINFO *mi = pci->MM_FindModule(si->pszModule); @@ -1990,7 +1990,7 @@ INT_PTR CALLBACK RoomWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar if (si->ptszStatusbarText) mir_sntprintf(szFinalStatusBarText, L"%s %s", mi->ptszModDispName, si->ptszStatusbarText); else - _tcsncpy_s(szFinalStatusBarText, mi->ptszModDispName, _TRUNCATE); + wcsncpy_s(szFinalStatusBarText, mi->ptszModDispName, _TRUNCATE); } SendMessage(dat->pContainer->hwndStatus, SB_SETTEXT, 0, (LPARAM)szFinalStatusBarText); UpdateStatusBar(dat); @@ -2511,7 +2511,7 @@ LABEL_SHOWWINDOW: ClientToScreen(((LPNMHDR)lParam)->hwndFrom, &pt); // fixing stuff for searches - TCHAR *pszWord = (TCHAR*)_alloca(8192); + wchar_t *pszWord = (wchar_t*)_alloca(8192); pszWord[0] = '\0'; POINTL ptl = { pt.x, pt.y }; ScreenToClient(GetDlgItem(hwndDlg, IDC_CHAT_LOG), (LPPOINT)&ptl); @@ -2531,7 +2531,7 @@ LABEL_SHOWWINDOW: TEXTRANGE tr = { 0 }; tr.chrg = cr; - tr.lpstrText = (TCHAR*)pszWord; + tr.lpstrText = (wchar_t*)pszWord; int iRes = SendDlgItemMessage(hwndDlg, IDC_CHAT_LOG, EM_GETTEXTRANGE, 0, (LPARAM)&tr); if (iRes > 0) { @@ -2617,7 +2617,7 @@ LABEL_SHOWWINDOW: TEXTRANGE tr; tr.lpstrText = NULL; tr.chrg = ((ENLINK*)lParam)->chrg; - tr.lpstrText = (TCHAR*)mir_alloc(sizeof(TCHAR) * (tr.chrg.cpMax - tr.chrg.cpMin + 2)); + tr.lpstrText = (wchar_t*)mir_alloc(sizeof(wchar_t) * (tr.chrg.cpMax - tr.chrg.cpMin + 2)); SendMessage(((LPNMHDR)lParam)->hwndFrom, EM_GETTEXTRANGE, 0, (LPARAM)&tr); BOOL isLink = IsStringValidLink(tr.lpstrText); @@ -2684,19 +2684,19 @@ LABEL_SHOWWINDOW: CHARRANGE chr; SendDlgItemMessage(hwndDlg, IDC_CHAT_MESSAGE, EM_EXGETSEL, 0, (LPARAM)&chr); - TCHAR tszAplTmpl[] = L"%s:"; + wchar_t tszAplTmpl[] = L"%s:"; size_t bufSize = mir_tstrlen(tr.lpstrText) + mir_tstrlen(tszAplTmpl) + 3; - TCHAR *tszTmp = (TCHAR*)mir_alloc(bufSize * sizeof(TCHAR)), *tszAppeal = tszTmp; + wchar_t *tszTmp = (wchar_t*)mir_alloc(bufSize * sizeof(wchar_t)), *tszAppeal = tszTmp; TEXTRANGE tr2; - tr2.lpstrText = (LPTSTR)mir_alloc(sizeof(TCHAR) * 2); + tr2.lpstrText = (LPTSTR)mir_alloc(sizeof(wchar_t) * 2); if (chr.cpMin) { // prepend nick with space if needed tr2.chrg.cpMin = chr.cpMin - 1; tr2.chrg.cpMax = chr.cpMin; SendDlgItemMessage(hwndDlg, IDC_CHAT_MESSAGE, EM_GETTEXTRANGE, 0, (LPARAM)&tr2); - if (!_istspace(*tr2.lpstrText)) - *tszTmp++ = _T(' '); + if (!iswspace(*tr2.lpstrText)) + *tszTmp++ = ' '; mir_tstrcpy(tszTmp, tr.lpstrText); } else // in the beginning of the message window @@ -2708,14 +2708,14 @@ LABEL_SHOWWINDOW: tr2.chrg.cpMax = chr.cpMax + 1; // if there is no space after selection, // or there is nothing after selection at all... - if (!SendDlgItemMessage(hwndDlg, IDC_CHAT_MESSAGE, EM_GETTEXTRANGE, 0, (LPARAM)&tr2) || !_istspace(*tr2.lpstrText)) { - tszAppeal[st++] = _T(' '); - tszAppeal[st++] = _T('\0'); + if (!SendDlgItemMessage(hwndDlg, IDC_CHAT_MESSAGE, EM_GETTEXTRANGE, 0, (LPARAM)&tr2) || !iswspace(*tr2.lpstrText)) { + tszAppeal[st++] = ' '; + tszAppeal[st++] = '\0'; } } else { - tszAppeal[st++] = _T(' '); - tszAppeal[st++] = _T('\0'); + tszAppeal[st++] = ' '; + tszAppeal[st++] = '\0'; } SendDlgItemMessage(hwndDlg, IDC_CHAT_MESSAGE, EM_REPLACESEL, FALSE, (LPARAM)tszAppeal); mir_free((void*)tr2.lpstrText); @@ -3202,11 +3202,11 @@ LABEL_SHOWWINDOW: case DM_CONTAINERSELECTED: { - TCHAR *szNewName = (TCHAR*)lParam; + wchar_t *szNewName = (wchar_t*)lParam; if (!mir_tstrcmp(szNewName, TranslateT("Default container"))) szNewName = CGlobals::m_default_container_name; int iOldItems = TabCtrl_GetItemCount(hwndTab); - if (!_tcsncmp(dat->pContainer->szName, szNewName, CONTAINER_NAMELEN)) + if (!wcsncmp(dat->pContainer->szName, szNewName, CONTAINER_NAMELEN)) break; TContainerData *pNewContainer = FindContainerByName(szNewName); if (pNewContainer == NULL) -- cgit v1.2.3