From 581a7a4fca5155decdc48ee1972af806d24c6ceb Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Sat, 16 May 2015 14:23:28 +0000 Subject: cleanup git-svn-id: http://svn.miranda-ng.org/main/trunk@13616 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp | 10 +- .../Clist_modern/src/hdr/modern_commonheaders.h | 6 +- plugins/Clist_modern/src/hdr/modern_effectenum.h | 68 +- plugins/Clist_modern/src/hdr/modern_log.h | 2 +- plugins/Clist_modern/src/modern_aniavatars.cpp | 8 +- plugins/Clist_modern/src/modern_cachefuncs.cpp | 40 +- plugins/Clist_modern/src/modern_clc.cpp | 12 +- plugins/Clist_modern/src/modern_clcidents.cpp | 2 +- plugins/Clist_modern/src/modern_clcmsgs.cpp | 156 ++-- plugins/Clist_modern/src/modern_clcopts.cpp | 38 +- plugins/Clist_modern/src/modern_clcpaint.cpp | 930 ++++++++++----------- plugins/Clist_modern/src/modern_clcutils.cpp | 4 +- plugins/Clist_modern/src/modern_clistmod.cpp | 5 +- plugins/Clist_modern/src/modern_clisttray.cpp | 47 +- plugins/Clist_modern/src/modern_clui.cpp | 18 +- plugins/Clist_modern/src/modern_row.cpp | 72 +- .../Clist_modern/src/modern_rowheight_funcs.cpp | 8 +- plugins/Clist_modern/src/modern_rowtemplateopt.cpp | 6 +- plugins/Clist_modern/src/modern_skinbutton.cpp | 24 +- plugins/Clist_modern/src/modern_skinengine.cpp | 48 +- plugins/Clist_modern/src/modern_skinopt.cpp | 232 ++--- plugins/Clist_modern/src/modern_skinselector.cpp | 15 +- plugins/Clist_modern/src/modern_statusbar.cpp | 12 +- plugins/Clist_modern/src/modern_tbbutton.cpp | 2 +- plugins/Clist_modern/src/modern_toolbar.cpp | 2 +- plugins/Clist_modern/src/modern_utils.cpp | 4 +- plugins/Clist_modern/src/modern_viewmodebar.cpp | 28 +- 27 files changed, 896 insertions(+), 903 deletions(-) (limited to 'plugins/Clist_modern/src') diff --git a/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp b/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp index 53170369c0..832f59484f 100644 --- a/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp +++ b/plugins/Clist_modern/src/CLUIFrames/cluiframes.cpp @@ -221,7 +221,7 @@ int CLUIFrames_OnShowHide(int mode) else SetWindowPos(g_pfwFrames[i].OwnerWindow, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE); } } - + if (mode != SW_HIDE) SetForegroundWindow(pcli->hwndContactList); AniAva_RedrawAllAvatars(TRUE); @@ -243,7 +243,7 @@ static int id2pos(int id) for (int i = 0; i < g_nFramesCount; i++) if (g_pfwFrames[i].id == id) return i; - + return -1; }; @@ -292,7 +292,7 @@ int FindFrameID(HWND FrameHwnd) { if (FrameHwnd == NULL) return 0; - + FRAMEWND *frm = FindFrameByItsHWND(FrameHwnd); return (frm) ? frm->id : 0; } @@ -595,8 +595,8 @@ static void GetBorderSize(HWND hwnd, RECT *rect) static char __inline *AS(char *str, const char *setting, char *addstr) { if (str != NULL) { - strcpy(str, setting); - strcat(str, addstr); + mir_strcpy(str, setting); + mir_strcat(str, addstr); } return str; } diff --git a/plugins/Clist_modern/src/hdr/modern_commonheaders.h b/plugins/Clist_modern/src/hdr/modern_commonheaders.h index ab4108520f..f1e5cbcce0 100644 --- a/plugins/Clist_modern/src/hdr/modern_commonheaders.h +++ b/plugins/Clist_modern/src/hdr/modern_commonheaders.h @@ -290,19 +290,19 @@ public: HashStringKeyNoCase(const char* szKey) { - _strKey = _strdup(szKey); + _strKey = mir_strdup(szKey); _CreateHashKey(); } HashStringKeyNoCase(const HashStringKeyNoCase& hsKey) { - _strKey = _strdup(hsKey._strKey); + _strKey = mir_strdup(hsKey._strKey); _dwKey = hsKey._dwKey; } HashStringKeyNoCase& operator= (const HashStringKeyNoCase& hsKey) { - _strKey = _strdup(hsKey._strKey); + _strKey = mir_strdup(hsKey._strKey); _dwKey = hsKey._dwKey; } diff --git a/plugins/Clist_modern/src/hdr/modern_effectenum.h b/plugins/Clist_modern/src/hdr/modern_effectenum.h index 0a63ffbdce..b15c4a1f11 100644 --- a/plugins/Clist_modern/src/hdr/modern_effectenum.h +++ b/plugins/Clist_modern/src/hdr/modern_effectenum.h @@ -20,7 +20,7 @@ typedef struct _MODERNEFFECT }MODERNEFFECT; #ifdef _EFFECTENUM_FULL_H -TCHAR * ModernEffectNames[]= +TCHAR * ModernEffectNames[] = #else TCHAR * _ModernEffectNames[] = #endif @@ -35,51 +35,51 @@ TCHAR * _ModernEffectNames[] = }; #ifdef _EFFECTENUM_FULL_H -MODERNEFFECTMATRIX ModernEffectsEnum[]={ +MODERNEFFECTMATRIX ModernEffectsEnum[] = { { //Shadow at Left - { 0, 0, 0, 0, 0, - 0, 4, 16, 4, 4, - 0, 16, 64, 32, 16, - 0, 4, 32, 32, 16, - 0, 4, 16, 16, 16 }, 2,2,2,2,1}, + { 0, 0, 0, 0, 0, + 0, 4, 16, 4, 4, + 0, 16, 64, 32, 16, + 0, 4, 32, 32, 16, + 0, 4, 16, 16, 16 }, 2, 2, 2, 2, 1 }, { //Shadow at Right - { 0, 0, 0, 0, 0, - 4, 4, 16, 4, 0, - 16, 32, 64, 16, 0, - 16, 32, 32, 4, 0, - 16, 16, 16, 4, 0 }, 2,2,2,2,1}, + { 0, 0, 0, 0, 0, + 4, 4, 16, 4, 0, + 16, 32, 64, 16, 0, + 16, 32, 32, 4, 0, + 16, 16, 16, 4, 0 }, 2, 2, 2, 2, 1 }, { //Outline - { 0, 0, 0, 0, 0, - 0, 16, 16, 16, 0, - 0, 16, 32, 16, 0, - 0, 16, 16, 16, 0, - 0, 0, 0, 0, 0 }, 1,1,1,1,1}, + { 0, 0, 0, 0, 0, + 0, 16, 16, 16, 0, + 0, 16, 32, 16, 0, + 0, 16, 16, 16, 0, + 0, 0, 0, 0, 0 }, 1, 1, 1, 1, 1 }, { //Outline smooth - { 4, 4, 4, 4, 4, - 4, 8, 8, 8, 4, - 4, 8, 32, 8, 4, - 4, 8, 8, 8, 4, - 4, 4, 4, 4, 4 }, 2,2,2,2,1}, + { 4, 4, 4, 4, 4, + 4, 8, 8, 8, 4, + 4, 8, 32, 8, 4, + 4, 8, 8, 8, 4, + 4, 4, 4, 4, 4 }, 2, 2, 2, 2, 1 }, { //Smooth bump - { -2, 2, 2, 2, 2, - -2, -16, 16, 16, 2, - -2, -16, 48, 16, 2, - -2, -16,-16, 16, 2, - -2, -2, -2, -2, -2 }, 2,2,2,2,1+0x80}, + { -2, 2, 2, 2, 2, + -2, -16, 16, 16, 2, + -2, -16, 48, 16, 2, + -2, -16, -16, 16, 2, + -2, -2, -2, -2, -2 }, 2, 2, 2, 2, 1 + 0x80 }, { //Contour thin - { 0, 0, 0, 0, 0, - 0, 48, 64, 48, 0, - 0, 64, 64, 64, 0, - 0, 48, 64, 48, 0, - 0, 0, 0, 0, 0 }, 1,1,1,1,1}, + { 0, 0, 0, 0, 0, + 0, 48, 64, 48, 0, + 0, 64, 64, 64, 0, + 0, 48, 64, 48, 0, + 0, 0, 0, 0, 0 }, 1, 1, 1, 1, 1 }, { //Contour heavy - { 8, 16, 16, 16, 8, + { 8, 16, 16, 16, 8, 16, 64, 64, 64, 16, 16, 64, 64, 64, 16, 16, 64, 64, 64, 16, - 8, 16, 16, 16, 8 }, 2,2,2,2,1}, + 8, 16, 16, 16, 8 }, 2, 2, 2, 2, 1 }, }; #endif diff --git a/plugins/Clist_modern/src/hdr/modern_log.h b/plugins/Clist_modern/src/hdr/modern_log.h index 468dc5117d..b96eaafd65 100644 --- a/plugins/Clist_modern/src/hdr/modern_log.h +++ b/plugins/Clist_modern/src/hdr/modern_log.h @@ -5,7 +5,7 @@ #ifdef _DEBUG -void Log(const char *file,int line,const char *fmt,...); +void Log(const char *file, int line, const char *fmt, ...); #define log0(s) Log(__FILE__,__LINE__,s) #define log1(s,a) Log(__FILE__,__LINE__,s,a) diff --git a/plugins/Clist_modern/src/modern_aniavatars.cpp b/plugins/Clist_modern/src/modern_aniavatars.cpp index 4981ac56d4..14548b7f21 100644 --- a/plugins/Clist_modern/src/modern_aniavatars.cpp +++ b/plugins/Clist_modern/src/modern_aniavatars.cpp @@ -153,7 +153,7 @@ static int _AniAva_SortAvatarInfo(const ANIAVA_INFO *aai1, const ANIAVA_INFO *aa { int res; if (aai1 && aai1->tcsFilename && aai2 && aai2->tcsFilename) - res = _tcsicmp(aai2->tcsFilename, aai1->tcsFilename); + res = mir_tstrcmpi(aai2->tcsFilename, aai1->tcsFilename); else { int a1 = (aai1 != NULL && aai1->tcsFilename != NULL); int a2 = (aai2 != NULL && aai2->tcsFilename != NULL); @@ -188,7 +188,7 @@ static void _AniAva_AnimationTreadProc(void*) DWORD rc = MsgWaitForMultipleObjectsEx(1, &s_hExitEvent, INFINITE, QS_ALLINPUT, MWMO_ALERTABLE); if (MirandaExiting()) break; - + ResetEvent(s_hExitEvent); if (rc == WAIT_OBJECT_0 + 1) { MSG msg; @@ -228,7 +228,7 @@ static void CALLBACK _AniAva_SyncCallerUserAPCProc(DWORD_PTR dwParam) static INT_PTR _AniAva_CreateAvatarWindowSync_Worker(WPARAM tszName, LPARAM) { - HWND hwnd = CreateWindowEx(WS_EX_TOPMOST | WS_EX_TRANSPARENT | WS_EX_NOPARENTNOTIFY, ANIAVAWINDOWCLASS, + HWND hwnd = CreateWindowEx(WS_EX_TOPMOST | WS_EX_TRANSPARENT | WS_EX_NOPARENTNOTIFY, ANIAVAWINDOWCLASS, (TCHAR*)tszName, WS_POPUP, 0, 0, 1, 1, pcli->hwndContactList, NULL, pcli->hInst, NULL); return (INT_PTR)hwnd; } @@ -305,7 +305,7 @@ static void _AniAva_RealRemoveAvatar(DWORD UniqueID) taai->nStripTop -= aai->FrameSize.cx*aai->nFrameCount; } } - + if (s_AniAvatarList.getCount() > 0) { int newWidth = s_width - aai->FrameSize.cx*aai->nFrameCount; int newHeight = 0; diff --git a/plugins/Clist_modern/src/modern_cachefuncs.cpp b/plugins/Clist_modern/src/modern_cachefuncs.cpp index d586363953..218618edc2 100644 --- a/plugins/Clist_modern/src/modern_cachefuncs.cpp +++ b/plugins/Clist_modern/src/modern_cachefuncs.cpp @@ -83,7 +83,7 @@ void CSmileyString::AddListeningToIcon(SHORTDATA *dat, TCHAR *szText) if (szText == NULL) return; - int text_size = (int)_tcslen(szText); + int text_size = (int)mir_tstrlen(szText); plText = List_Create(0, 1); @@ -189,7 +189,7 @@ void CSmileyString::ReplaceSmileys(SHORTDATA *dat, ClcCacheEntry *pdnce, TCHAR * if (!dat->text_replace_smileys || !replace_smileys || szText == NULL) return; - int text_size = (int)_tcslen(szText); + int text_size = (int)mir_tstrlen(szText); // Call service for the first time to see if needs to be used... SMADD_BATCHPARSE2 sp = { 0 }; @@ -304,7 +304,7 @@ int GetStatusName(TCHAR *text, int text_size, ClcCacheEntry *pdnce, BOOL xstatus // Get Status name TCHAR *tmp = pcli->pfnGetStatusModeDescription(nStatus, 0); if (tmp && *tmp) { - _tcsncpy_s(text, text_size, tmp, _TRUNCATE); + mir_tstrncpy(text, tmp, text_size); return 1; } @@ -459,7 +459,7 @@ int Cache_GetLineText( // Try to get XStatusName if (!db_get_ts(pdnce->hContact, pdnce->m_cache_cszProto, "XStatusName", &dbv)) { if (dbv.ptszVal != NULL && dbv.ptszVal[0] != 0) - _tcsncpy_s(text, text_size, dbv.ptszVal, _TRUNCATE); + mir_tstrncpy(text, dbv.ptszVal, text_size); CopySkipUnprintableChars(text, text, text_size - 1); db_free(&dbv); } @@ -484,13 +484,13 @@ int Cache_GetLineText( return TEXT_LISTENING_TO; case TEXT_TEXT: - { - TCHAR *tmp = variables_parsedup(variable_text, pdnce->tszName, pdnce->hContact); - mir_tstrncpy(text, tmp, text_size); - mir_free(tmp); - CopySkipUnprintableChars(text, text, text_size - 1); - } - return TEXT_TEXT; + { + TCHAR *tmp = variables_parsedup(variable_text, pdnce->tszName, pdnce->hContact); + mir_tstrncpy(text, tmp, text_size); + mir_free(tmp); + CopySkipUnprintableChars(text, text, text_size - 1); + } + return TEXT_TEXT; case TEXT_CONTACT_TIME: if (pdnce->hTimeZone) { @@ -523,7 +523,7 @@ void Cache_GetFirstLineText(ClcData *dat, ClcContact *contact) db_free(&dbv); // They are the same -> use the name to keep the case - if (_tcsicmp(name, nick) == 0) + if (mir_tstrcmpi(name, nick) == 0) mir_tstrncpy(contact->szText, name, SIZEOF(contact->szText)); else // Append then @@ -551,8 +551,8 @@ void Cache_GetSecondLineText(SHORTDATA *dat, ClcCacheEntry *pdnce) if (dat->second_line_show) type = Cache_GetLineText(pdnce, dat->second_line_type, Text, SIZEOF(Text), dat->second_line_text, - dat->second_line_xstatus_has_priority, dat->second_line_show_status_if_no_away, dat->second_line_show_listening_if_no_away, - dat->second_line_use_name_and_message_for_xstatus, dat->contact_time_show_only_if_different); + dat->second_line_xstatus_has_priority, dat->second_line_show_status_if_no_away, dat->second_line_show_listening_if_no_away, + dat->second_line_use_name_and_message_for_xstatus, dat->contact_time_show_only_if_different); Text[SIZEOF(Text) - 1] = 0; //to be sure that it is null terminated string @@ -575,8 +575,8 @@ void Cache_GetThirdLineText(SHORTDATA *dat, ClcCacheEntry *pdnce) int type = TEXT_EMPTY; if (dat->third_line_show) type = Cache_GetLineText(pdnce, dat->third_line_type, Text, SIZEOF(Text), dat->third_line_text, - dat->third_line_xstatus_has_priority, dat->third_line_show_status_if_no_away, dat->third_line_show_listening_if_no_away, - dat->third_line_use_name_and_message_for_xstatus, dat->contact_time_show_only_if_different); + dat->third_line_xstatus_has_priority, dat->third_line_show_status_if_no_away, dat->third_line_show_listening_if_no_away, + dat->third_line_use_name_and_message_for_xstatus, dat->contact_time_show_only_if_different); Text[SIZEOF(Text) - 1] = 0; //to be sure that it is null terminated string @@ -592,8 +592,8 @@ void Cache_GetThirdLineText(SHORTDATA *dat, ClcCacheEntry *pdnce) void RemoveTag(TCHAR *to, TCHAR *tag) { TCHAR *st = to; - int len = (int)_tcslen(tag); - int lastsize = (int)_tcslen(to) + 1; + int len = (int)mir_tstrlen(tag); + int lastsize = (int)mir_tstrlen(to) + 1; while (st = _tcsstr(st, tag)) { lastsize -= len; memmove((void*)st, (void*)(st + len), (lastsize)*sizeof(TCHAR)); @@ -712,7 +712,7 @@ void Cache_ProceedAvatarInList(ClcData *dat, ClcContact *contact) // Avatar was not ready or removed - need to remove it from cache if (old_pos >= 0) { ImageArray_RemoveImage(&dat->avatar_cache, old_pos); - + // Update all items ExecuteOnAllContacts(dat, ReduceAvatarPosition, (void *)&old_pos); contact->avatar_pos = AVATAR_POS_DONT_HAVE; @@ -753,7 +753,7 @@ void Cache_ProceedAvatarInList(ClcData *dat, ClcContact *contact) DrawAvatarImageWithGDIp(hdc, 0, 0, width_clip, height_clip, ace->hbmPic, 0, 0, ace->bmWidth, ace->bmHeight, ace->dwFlags, 255); SelectObject(hdc, oldBmp); DeleteDC(hdc); - + // Add to list if (old_pos >= 0) { ImageArray_ChangeImage(&dat->avatar_cache, hDrawBmp, old_pos); diff --git a/plugins/Clist_modern/src/modern_clc.cpp b/plugins/Clist_modern/src/modern_clc.cpp index ab01d8fa73..9683c423d9 100644 --- a/plugins/Clist_modern/src/modern_clc.cpp +++ b/plugins/Clist_modern/src/modern_clc.cpp @@ -1268,7 +1268,7 @@ static LRESULT clcOnLButtonUp(ClcData *dat, HWND hwnd, UINT msg, WPARAM wParam, TCHAR *shortGroup = NULL; TCHAR *sourceGrName = mir_tstrdup(pcli->pfnGetGroupName(destgroup->groupId, 0)); if (groupName) { - int len = (int)_tcslen(groupName); + int len = (int)mir_tstrlen(groupName); do { len--; } while (len >= 0 && groupName[len] != '\\'); if (len >= 0) shortGroup = groupName + len + 1; else shortGroup = groupName; @@ -1278,7 +1278,7 @@ static LRESULT clcOnLButtonUp(ClcData *dat, HWND hwnd, UINT msg, WPARAM wParam, if (sourceGrName) mir_sntprintf(newName, SIZEOF(newName), _T("%s\\%s"), sourceGrName, shortGroup); else - _tcsncpy_s(newName, shortGroup, _TRUNCATE); + mir_tstrncpy(newName, shortGroup, SIZEOF(newName)); } mir_free(groupName); mir_free(sourceGrName); @@ -1621,8 +1621,8 @@ static int clcHookModulesLoaded(WPARAM, LPARAM) if (!ServiceExists(MS_AV_GETAVATARBITMAP)) MessageBox(NULL, - TranslateT("Clist Modern requires AVS plugin to be present. Install it using PluginUpdater or download from http://wiki.miranda-ng.org/Download"), - TranslateT("Error loading plugin"), MB_ICONERROR | MB_OK); + TranslateT("Clist Modern requires AVS plugin to be present. Install it using PluginUpdater or download from http://wiki.miranda-ng.org/Download"), + TranslateT("Error loading plugin"), MB_ICONERROR | MB_OK); HookEvent(ME_AV_AVATARCHANGED, clcHookAvatarChanged); @@ -1781,7 +1781,7 @@ int ClcGetShortData(ClcData* pData, SHORTDATA *pShortData) pShortData->second_line_draw_smileys = pData->second_line_draw_smileys; pShortData->second_line_type = pData->second_line_type; - _tcsncpy(pShortData->second_line_text, pData->second_line_text, TEXT_TEXT_MAX_LENGTH); + mir_tstrncpy(pShortData->second_line_text, pData->second_line_text, SIZEOF(pShortData->second_line_text)); pShortData->second_line_xstatus_has_priority = pData->second_line_xstatus_has_priority; pShortData->second_line_show_status_if_no_away = pData->second_line_show_status_if_no_away; @@ -1793,7 +1793,7 @@ int ClcGetShortData(ClcData* pData, SHORTDATA *pShortData) pShortData->third_line_draw_smileys = pData->third_line_draw_smileys; pShortData->third_line_type = pData->third_line_type; - _tcsncpy(pShortData->third_line_text, pData->third_line_text, TEXT_TEXT_MAX_LENGTH); + mir_tstrncpy(pShortData->third_line_text, pData->third_line_text, SIZEOF(pShortData->third_line_text)); pShortData->third_line_xstatus_has_priority = pData->third_line_xstatus_has_priority; pShortData->third_line_show_status_if_no_away = pData->third_line_show_status_if_no_away; diff --git a/plugins/Clist_modern/src/modern_clcidents.cpp b/plugins/Clist_modern/src/modern_clcidents.cpp index 87ca223163..8e04c56eea 100644 --- a/plugins/Clist_modern/src/modern_clcidents.cpp +++ b/plugins/Clist_modern/src/modern_clcidents.cpp @@ -74,7 +74,7 @@ int cliGetRowsPriorTo(ClcGroup *group, ClcGroup *subgroup, int contactIndex) if (c->type == CLCIT_GROUP) { if (c->group == subgroup && contactIndex == -1) return count - 1; - + if (c->group->expanded) { group = c->group; group->scanIndex = 0; diff --git a/plugins/Clist_modern/src/modern_clcmsgs.cpp b/plugins/Clist_modern/src/modern_clcmsgs.cpp index a706bfb938..849270026b 100644 --- a/plugins/Clist_modern/src/modern_clcmsgs.cpp +++ b/plugins/Clist_modern/src/modern_clcmsgs.cpp @@ -62,17 +62,17 @@ LRESULT cli_ProcessExternalMessages(HWND hwnd, ClcData *dat, UINT msg, WPARAM wP return 0; case CLM_SETHIDEEMPTYGROUPS: - { - BOOL old = ((GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_HIDEEMPTYGROUPS) != 0); - if (wParam) - SetWindowLongPtr(hwnd, GWL_STYLE, GetWindowLongPtr(hwnd, GWL_STYLE) | CLS_HIDEEMPTYGROUPS); - else - SetWindowLongPtr(hwnd, GWL_STYLE, GetWindowLongPtr(hwnd, GWL_STYLE) &~CLS_HIDEEMPTYGROUPS); - BOOL newval = ((GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_HIDEEMPTYGROUPS) != 0); - if (newval != old) - pcli->pfnInitAutoRebuild(hwnd); - } - return 0; + { + BOOL old = ((GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_HIDEEMPTYGROUPS) != 0); + if (wParam) + SetWindowLongPtr(hwnd, GWL_STYLE, GetWindowLongPtr(hwnd, GWL_STYLE) | CLS_HIDEEMPTYGROUPS); + else + SetWindowLongPtr(hwnd, GWL_STYLE, GetWindowLongPtr(hwnd, GWL_STYLE) &~CLS_HIDEEMPTYGROUPS); + BOOL newval = ((GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_HIDEEMPTYGROUPS) != 0); + if (newval != old) + pcli->pfnInitAutoRebuild(hwnd); + } + return 0; case CLM_SETTEXTCOLOR: if (wParam > FONTID_MODERN_MAX) break; @@ -105,76 +105,76 @@ LRESULT cli_ProcessExternalMessages(HWND hwnd, ClcData *dat, UINT msg, WPARAM wP return 0; case CLM_GETNEXTITEM: - { - int i = 0; - if (wParam != CLGN_ROOT) { - if (!pcli->pfnFindItem(hwnd, dat, lParam, &contact, &group, NULL)) - return NULL; - i = List_IndexOf((SortedList*)&group->cl, contact); - if (i < 0) return 0; - } - switch (wParam) { - case CLGN_ROOT: - if (dat->list.cl.count) - return (LRESULT)pcli->pfnContactToHItem(dat->list.cl.items[0]); - else - return NULL; - case CLGN_CHILD: - if (contact->type != CLCIT_GROUP) - return NULL; - group = contact->group; - if (group->cl.count == 0) - return NULL; - return (LRESULT)pcli->pfnContactToHItem(group->cl.items[0]); - case CLGN_PARENT: - return group->groupId | HCONTACT_ISGROUP; - case CLGN_NEXT: - do { - if (++i >= group->cl.count) - return NULL; - } while (group->cl.items[i]->type == CLCIT_DIVIDER); - return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); - case CLGN_PREVIOUS: - do { - if (--i < 0) - return NULL; - } while (group->cl.items[i]->type == CLCIT_DIVIDER); - return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); - case CLGN_NEXTCONTACT: - for (i++; i < group->cl.count; i++) - if (group->cl.items[i]->type == CLCIT_CONTACT) - break; - if (i >= group->cl.count) - return NULL; - return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); - case CLGN_PREVIOUSCONTACT: - if (i >= group->cl.count) - return NULL; - for (i--; i >= 0; i--) - if (group->cl.items[i]->type == CLCIT_CONTACT) - break; - if (i < 0) - return NULL; - return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); - case CLGN_NEXTGROUP: - for (i++; i < group->cl.count; i++) - if (group->cl.items[i]->type == CLCIT_GROUP) - break; - if (i >= group->cl.count) - return NULL; - return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); - case CLGN_PREVIOUSGROUP: - if (i >= group->cl.count) + { + int i = 0; + if (wParam != CLGN_ROOT) { + if (!pcli->pfnFindItem(hwnd, dat, lParam, &contact, &group, NULL)) + return NULL; + i = List_IndexOf((SortedList*)&group->cl, contact); + if (i < 0) return 0; + } + switch (wParam) { + case CLGN_ROOT: + if (dat->list.cl.count) + return (LRESULT)pcli->pfnContactToHItem(dat->list.cl.items[0]); + else + return NULL; + case CLGN_CHILD: + if (contact->type != CLCIT_GROUP) + return NULL; + group = contact->group; + if (group->cl.count == 0) + return NULL; + return (LRESULT)pcli->pfnContactToHItem(group->cl.items[0]); + case CLGN_PARENT: + return group->groupId | HCONTACT_ISGROUP; + case CLGN_NEXT: + do { + if (++i >= group->cl.count) return NULL; - for (i--; i >= 0; i--) - if (group->cl.items[i]->type == CLCIT_GROUP) - break; - if (i < 0) + } while (group->cl.items[i]->type == CLCIT_DIVIDER); + return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); + case CLGN_PREVIOUS: + do { + if (--i < 0) return NULL; - return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); - } + } while (group->cl.items[i]->type == CLCIT_DIVIDER); + return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); + case CLGN_NEXTCONTACT: + for (i++; i < group->cl.count; i++) + if (group->cl.items[i]->type == CLCIT_CONTACT) + break; + if (i >= group->cl.count) + return NULL; + return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); + case CLGN_PREVIOUSCONTACT: + if (i >= group->cl.count) + return NULL; + for (i--; i >= 0; i--) + if (group->cl.items[i]->type == CLCIT_CONTACT) + break; + if (i < 0) + return NULL; + return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); + case CLGN_NEXTGROUP: + for (i++; i < group->cl.count; i++) + if (group->cl.items[i]->type == CLCIT_GROUP) + break; + if (i >= group->cl.count) + return NULL; + return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); + case CLGN_PREVIOUSGROUP: + if (i >= group->cl.count) + return NULL; + for (i--; i >= 0; i--) + if (group->cl.items[i]->type == CLCIT_GROUP) + break; + if (i < 0) + return NULL; + return (LRESULT)pcli->pfnContactToHItem(group->cl.items[i]); } - return NULL; + } + return NULL; case CLM_SELECTITEM: ClcGroup *tgroup; diff --git a/plugins/Clist_modern/src/modern_clcopts.cpp b/plugins/Clist_modern/src/modern_clcopts.cpp index 16a41b358c..dacd58ece0 100644 --- a/plugins/Clist_modern/src/modern_clcopts.cpp +++ b/plugins/Clist_modern/src/modern_clcopts.cpp @@ -135,33 +135,33 @@ void RegisterCLUIFonts(void) int index = 0; fontid.cbSize = sizeof(fontid); - strncpy(fontid.dbSettingsGroup, "CLC", SIZEOF(fontid.dbSettingsGroup)); + mir_strncpy(fontid.dbSettingsGroup, "CLC", SIZEOF(fontid.dbSettingsGroup)); effectid.cbSize = sizeof(effectid); - strncpy(effectid.dbSettingsGroup, "CLC", SIZEOF(effectid.dbSettingsGroup)); + mir_strncpy(effectid.dbSettingsGroup, "CLC", SIZEOF(effectid.dbSettingsGroup)); for (int i = 0; i < SIZEOF(fontOptionsList); i++, index++) { fontid.flags = FIDF_DEFAULTVALID | FIDF_APPENDNAME | FIDF_SAVEPOINTSIZE | FIDF_ALLOWEFFECTS | FIDF_ALLOWREREGISTER | FIDF_NOAS; fontid.flags |= fontOptionsList[i].dwFlags; - _tcsncpy(fontid.group, fontOptionsList[i].szGroup, SIZEOF(fontid.group)); - _tcsncpy(fontid.name, fontOptionsList[i].szDescr, SIZEOF(fontid.name)); + mir_tstrncpy(fontid.group, fontOptionsList[i].szGroup, SIZEOF(fontid.group)); + mir_tstrncpy(fontid.name, fontOptionsList[i].szDescr, SIZEOF(fontid.name)); mir_snprintf(idstr, SIZEOF(idstr), "Font%d", fontOptionsList[i].fontID); - strncpy(fontid.prefix, idstr, SIZEOF(fontid.prefix)); + mir_strncpy(fontid.prefix, idstr, SIZEOF(fontid.prefix)); fontid.order = i + 1; fontid.deffontsettings.charset = fontOptionsList[i].defCharset; fontid.deffontsettings.colour = fontOptionsList[i].defColour; fontid.deffontsettings.size = fontOptionsList[i].defSize; fontid.deffontsettings.style = fontOptionsList[i].defStyle; - _tcsncpy(fontid.deffontsettings.szFace, fontOptionsList[i].szDefFace, SIZEOF(fontid.deffontsettings.szFace)); + mir_tstrncpy(fontid.deffontsettings.szFace, fontOptionsList[i].szDefFace, SIZEOF(fontid.deffontsettings.szFace)); FontRegisterT(&fontid); - _tcsncpy(effectid.group, fontOptionsList[i].szGroup, SIZEOF(effectid.group)); - _tcsncpy(effectid.name, fontOptionsList[i].szDescr, SIZEOF(effectid.name)); + mir_tstrncpy(effectid.group, fontOptionsList[i].szGroup, SIZEOF(effectid.group)); + mir_tstrncpy(effectid.name, fontOptionsList[i].szDescr, SIZEOF(effectid.name)); mir_snprintf(idstr, SIZEOF(idstr), "Font%d", fontOptionsList[i].fontID); - strncpy(effectid.setting, idstr, SIZEOF(effectid.setting)); + mir_strncpy(effectid.setting, idstr, SIZEOF(effectid.setting)); effectid.order = i + 1; effectid.defeffect.effectIndex = fontOptionsList[i].defeffect.effectIndex; @@ -175,10 +175,10 @@ void RegisterCLUIFonts(void) colourid.cbSize = sizeof(colourid); for (int i = 0; i < SIZEOF(colourOptionsList); i++) { - _tcsncpy(colourid.group, colourOptionsList[i].szGroup, SIZEOF(colourid.group)); - _tcsncpy(colourid.name, colourOptionsList[i].szDescr, SIZEOF(colourid.group)); - strncpy(colourid.setting, colourOptionsList[i].chName, SIZEOF(colourid.setting)); - strncpy(colourid.dbSettingsGroup, colourOptionsList[i].chGroup, SIZEOF(colourid.dbSettingsGroup)); + mir_tstrncpy(colourid.group, colourOptionsList[i].szGroup, SIZEOF(colourid.group)); + mir_tstrncpy(colourid.name, colourOptionsList[i].szDescr, SIZEOF(colourid.group)); + mir_strncpy(colourid.setting, colourOptionsList[i].chName, SIZEOF(colourid.setting)); + mir_strncpy(colourid.dbSettingsGroup, colourOptionsList[i].chGroup, SIZEOF(colourid.dbSettingsGroup)); colourid.defcolour = colourOptionsList[i].defColour; colourid.order = i + 1; ColourRegisterT(&colourid); @@ -211,8 +211,8 @@ void GetFontSetting(int i, LOGFONT *lf, COLORREF *colour, BYTE *effect, COLORREF FontIDT fontid = { 0 }; fontid.cbSize = sizeof(fontid); - _tcsncpy(fontid.group, fontOptionsList[index].szGroup, SIZEOF(fontid.group)); - _tcsncpy(fontid.name, fontOptionsList[index].szDescr, SIZEOF(fontid.name)); + mir_tstrncpy(fontid.group, fontOptionsList[index].szGroup, SIZEOF(fontid.group)); + mir_tstrncpy(fontid.name, fontOptionsList[index].szDescr, SIZEOF(fontid.name)); COLORREF col = CallService(MS_FONT_GETT, (WPARAM)&fontid, (LPARAM)lf); @@ -1263,7 +1263,7 @@ static INT_PTR CALLBACK DlgProcClcBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, dat->item = (struct BkgrItem*)mir_alloc(sizeof(struct BkgrItem)*dat->count); dat->indx = CB_ERR; for (indx = 0; indx < dat->count; indx++) { - char *module = bkgrList[indx] + strlen(bkgrList[indx]) + 1; + char *module = bkgrList[indx] + mir_strlen(bkgrList[indx]) + 1; int jndx; dat->item[indx].changed = FALSE; @@ -1276,7 +1276,7 @@ static INT_PTR CALLBACK DlgProcClcBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, if (!db_get_s(NULL, module, "BkBitmap", &dbv)) { int retval = PathToAbsolute(dbv.pszVal, dat->item[indx].filename); if (!retval || retval == CALLSERVICE_NOTFOUND) - mir_strncpy(dat->item[indx].filename, dbv.pszVal, MAX_PATH); + mir_strncpy(dat->item[indx].filename, dbv.pszVal, SIZEOF(dat->item[indx].filename)); mir_free(dbv.pszVal); } else *dat->item[indx].filename = 0; @@ -1429,7 +1429,7 @@ static INT_PTR CALLBACK DlgProcClcBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, if (!p.changed) continue; - char *module = bkgrList[indx] + strlen(bkgrList[indx]) + 1; + char *module = bkgrList[indx] + mir_strlen(bkgrList[indx]) + 1; db_set_b(NULL, module, "UseBitmap", (BYTE)p.useBitmap); COLORREF col; @@ -1467,7 +1467,7 @@ static INT_PTR CALLBACK DlgProcClcBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, static INT_PTR BkgrCfg_Register(WPARAM wParam, LPARAM lParam) { char *szSetting = (char*)wParam; - size_t len = strlen(szSetting) + 1; + size_t len = mir_strlen(szSetting) + 1; char *value = (char *)mir_alloc(len + 4); // add room for flags (DWORD) memcpy(value, szSetting, len); diff --git a/plugins/Clist_modern/src/modern_clcpaint.cpp b/plugins/Clist_modern/src/modern_clcpaint.cpp index 6280bda195..cca4d6844b 100644 --- a/plugins/Clist_modern/src/modern_clcpaint.cpp +++ b/plugins/Clist_modern/src/modern_clcpaint.cpp @@ -438,7 +438,7 @@ void CLCPaint::_DrawTextSmiley(HDC hdcMem, RECT *free_rc, SIZE * text_size, TCH int pos_x = 0; int row_height; RECT tmp_rc = *free_rc; - if (len == -1) len = (int)_tcslen(szText); + if (len == -1) len = (int)mir_tstrlen(szText); if (uTextFormat & DT_RTLREADING) i = plText->realCount - 1; else @@ -539,14 +539,14 @@ void CLCPaint::_FillParam(MASKPARAM * lpParam, DWORD dwParamHash, const char* c { lpParam->bMaskParamFlag = MPF_EQUAL | MPF_HASHED; lpParam->dwId = dwParamHash; - + if (!dwValueHash && szValue && szValue[0]) lpParam->dwValueHash = mod_CalcHash(szValue); else lpParam->dwValueHash = dwValueHash; - + if (szValue) - lpParam->szValue = strdupn(szValue, (int)strlen(szValue)); + lpParam->szValue = strdupn(szValue, (int)mir_strlen(szValue)); else lpParam->szValue = NULL; } @@ -572,7 +572,7 @@ MODERNMASK *CLCPaint::_GetCLCContactRowBackModernMask(ClcGroup *group, ClcContac _AddParamShort(mpModernMask, hi_Open, (Drawing->group && Drawing->group->expanded) ? hi_True : hi_False); _AddParamShort(mpModernMask, hi_IsEmpty, (Drawing->group->cl.count == 0) ? hi_True : hi_False); break; - + case CLCIT_CONTACT: { ClcContact *mCont = Drawing; @@ -599,17 +599,17 @@ MODERNMASK *CLCPaint::_GetCLCContactRowBackModernMask(ClcGroup *group, ClcContac AddParam(mpModernMask, HASH[hi_Protocol], Drawing->proto, 0); _AddParamShort(mpModernMask, hi_RootGroup, (group && group->parent == NULL) ? hi_True : hi_False); switch (GetContactCachedStatus(Drawing->hContact)) { - case ID_STATUS_ONLINE: _AddParamShort(mpModernMask, hi_Status, hi_ONLINE); break; - case ID_STATUS_AWAY: _AddParamShort(mpModernMask, hi_Status, hi_AWAY); break; - case ID_STATUS_DND: _AddParamShort(mpModernMask, hi_Status, hi_DND); break; - case ID_STATUS_NA: _AddParamShort(mpModernMask, hi_Status, hi_NA); break; - case ID_STATUS_OCCUPIED: _AddParamShort(mpModernMask, hi_Status, hi_OCCUPIED); break; - case ID_STATUS_FREECHAT: _AddParamShort(mpModernMask, hi_Status, hi_FREECHAT); break; - case ID_STATUS_INVISIBLE: _AddParamShort(mpModernMask, hi_Status, hi_INVISIBLE); break; - case ID_STATUS_OUTTOLUNCH: _AddParamShort(mpModernMask, hi_Status, hi_OUTTOLUNCH); break; - case ID_STATUS_ONTHEPHONE: _AddParamShort(mpModernMask, hi_Status, hi_ONTHEPHONE); break; - case ID_STATUS_IDLE: _AddParamShort(mpModernMask, hi_Status, hi_IDLE); break; - default: _AddParamShort(mpModernMask, hi_Status, hi_OFFLINE); + case ID_STATUS_ONLINE: _AddParamShort(mpModernMask, hi_Status, hi_ONLINE); break; + case ID_STATUS_AWAY: _AddParamShort(mpModernMask, hi_Status, hi_AWAY); break; + case ID_STATUS_DND: _AddParamShort(mpModernMask, hi_Status, hi_DND); break; + case ID_STATUS_NA: _AddParamShort(mpModernMask, hi_Status, hi_NA); break; + case ID_STATUS_OCCUPIED: _AddParamShort(mpModernMask, hi_Status, hi_OCCUPIED); break; + case ID_STATUS_FREECHAT: _AddParamShort(mpModernMask, hi_Status, hi_FREECHAT); break; + case ID_STATUS_INVISIBLE: _AddParamShort(mpModernMask, hi_Status, hi_INVISIBLE); break; + case ID_STATUS_OUTTOLUNCH: _AddParamShort(mpModernMask, hi_Status, hi_OUTTOLUNCH); break; + case ID_STATUS_ONTHEPHONE: _AddParamShort(mpModernMask, hi_Status, hi_ONTHEPHONE); break; + case ID_STATUS_IDLE: _AddParamShort(mpModernMask, hi_Status, hi_IDLE); break; + default: _AddParamShort(mpModernMask, hi_Status, hi_OFFLINE); } _AddParamShort(mpModernMask, hi_HasAvatar, (dat->avatars_show && Drawing->avatar_data != NULL) ? hi_True : hi_False); _AddParamShort(mpModernMask, hi_Rate, hi_None + Drawing->bContactRate); @@ -623,7 +623,7 @@ MODERNMASK *CLCPaint::_GetCLCContactRowBackModernMask(ClcGroup *group, ClcContac _AddParamShort(mpModernMask, hi_Type, hi_Info); break; } - + if (group->scanIndex == 0 && group->cl.count == 1) _AddParamShort(mpModernMask, hi_GroupPos, hi_First_Single); else if (group->scanIndex == 0) @@ -718,7 +718,7 @@ void CLCPaint::_PaintRowItemsEx(HWND hwnd, HDC hdcMem, ClcData *dat, ClcContact } else if (Drawing->type == CLCIT_CONTACT) iImage = Drawing->iImage; - + if (iImage != -1) { COLORREF colourFg; int mode; @@ -1006,67 +1006,67 @@ void CLCPaint::_PaintRowItemsEx(HWND hwnd, HDC hdcMem, ClcData *dat, ClcContact OffsetRect(&p_rect, dx, dy); if (dat->text_rtl != 0 && gl_RowTabAccess[i]->type != TC_EXTRA /*each extra icon modified separately*/) _RTLRect(&p_rect, free_row_rc.right); - + SIZE text_size; switch (gl_RowTabAccess[i]->type) { case TC_TEXT1: - { - // paint text 1 - UINT uTextFormat = (dat->text_rtl ? DT_RTLREADING : 0); - text_size.cx = p_rect.right - p_rect.left; - text_size.cy = p_rect.bottom - p_rect.top; - ChangeToFont(hdcMem, dat, GetBasicFontID(Drawing), NULL); + { + // paint text 1 + UINT uTextFormat = (dat->text_rtl ? DT_RTLREADING : 0); + text_size.cx = p_rect.right - p_rect.left; + text_size.cy = p_rect.bottom - p_rect.top; + ChangeToFont(hdcMem, dat, GetBasicFontID(Drawing), NULL); - uTextFormat |= (gl_RowTabAccess[i]->valign == TC_VCENTER) ? DT_VCENTER : (gl_RowTabAccess[i]->valign == TC_BOTTOM) ? DT_BOTTOM : 0; - uTextFormat |= (gl_RowTabAccess[i]->halign == TC_HCENTER) ? DT_CENTER : (gl_RowTabAccess[i]->halign == TC_RIGHT) ? DT_RIGHT : 0; + uTextFormat |= (gl_RowTabAccess[i]->valign == TC_VCENTER) ? DT_VCENTER : (gl_RowTabAccess[i]->valign == TC_BOTTOM) ? DT_BOTTOM : 0; + uTextFormat |= (gl_RowTabAccess[i]->halign == TC_HCENTER) ? DT_CENTER : (gl_RowTabAccess[i]->halign == TC_RIGHT) ? DT_RIGHT : 0; - uTextFormat = uTextFormat | (gl_TrimText ? DT_END_ELLIPSIS : 0) | DT_SINGLELINE; - if (Drawing->type == CLCIT_CONTACT) { - if (selected) - SetTextColor(hdcMem, dat->selTextColour); - else if (hottrack) - _SetHotTrackColour(hdcMem, dat); - _DrawTextSmiley(hdcMem, &p_rect, &text_size, Drawing->szText, 0, (int)mir_tstrlen(Drawing->szText), Drawing->ssText.plText, uTextFormat, dat->text_resize_smileys); - if ((dat->filterSearch || selected) && dat->szQuickSearch[0] != '\0') { - int idx = 0; - if (dat->filterSearch) { - TCHAR *lowered = CharLowerW(NEWTSTR_ALLOCA(Drawing->szText)); - TCHAR *lowered_search = CharLowerW(NEWTSTR_ALLOCA(dat->szQuickSearch)); - TCHAR *p1 = _tcsstr(lowered, lowered_search); - if (p1) - idx = int(p1 - lowered); - } - SetTextColor(hdcMem, dat->quickSearchColour); - _DrawTextSmiley(hdcMem, &p_rect, &text_size, Drawing->szText, idx, (int)mir_tstrlen(dat->szQuickSearch), Drawing->ssText.plText, uTextFormat, dat->text_resize_smileys); + uTextFormat = uTextFormat | (gl_TrimText ? DT_END_ELLIPSIS : 0) | DT_SINGLELINE; + if (Drawing->type == CLCIT_CONTACT) { + if (selected) + SetTextColor(hdcMem, dat->selTextColour); + else if (hottrack) + _SetHotTrackColour(hdcMem, dat); + _DrawTextSmiley(hdcMem, &p_rect, &text_size, Drawing->szText, 0, (int)mir_tstrlen(Drawing->szText), Drawing->ssText.plText, uTextFormat, dat->text_resize_smileys); + if ((dat->filterSearch || selected) && dat->szQuickSearch[0] != '\0') { + int idx = 0; + if (dat->filterSearch) { + TCHAR *lowered = CharLowerW(NEWTSTR_ALLOCA(Drawing->szText)); + TCHAR *lowered_search = CharLowerW(NEWTSTR_ALLOCA(dat->szQuickSearch)); + TCHAR *p1 = _tcsstr(lowered, lowered_search); + if (p1) + idx = int(p1 - lowered); } - Drawing->pos_rename_rect = p_rect; + SetTextColor(hdcMem, dat->quickSearchColour); + _DrawTextSmiley(hdcMem, &p_rect, &text_size, Drawing->szText, idx, (int)mir_tstrlen(dat->szQuickSearch), Drawing->ssText.plText, uTextFormat, dat->text_resize_smileys); + } + Drawing->pos_rename_rect = p_rect; - SIZE size; - GetTextSize(&size, hdcMem, p_rect, Drawing->szText, Drawing->ssText.plText, 0, dat->text_resize_smileys ? 0 : Drawing->ssText.iMaxSmileyHeight); - Drawing->pos_label = p_rect; - Drawing->pos_label.right = min(Drawing->pos_label.right, Drawing->pos_label.left + size.cx); + SIZE size; + GetTextSize(&size, hdcMem, p_rect, Drawing->szText, Drawing->ssText.plText, 0, dat->text_resize_smileys ? 0 : Drawing->ssText.iMaxSmileyHeight); + Drawing->pos_label = p_rect; + Drawing->pos_label.right = min(Drawing->pos_label.right, Drawing->pos_label.left + size.cx); + } + else if (Drawing->type == CLCIT_GROUP) { + RECT nameRect = p_rect; + RECT countRect = { 0 }; + RECT count_rc = { 0 }; + SIZE count_size = { 0 }; + int space_width = 0; + TCHAR *szCounts = pcli->pfnGetGroupCountsText(dat, Drawing); + // Has to draw the count? + if (szCounts && mir_tstrlen(szCounts) > 0) { + // calc width and height + ChangeToFont(hdcMem, dat, Drawing->group->expanded ? FONTID_OPENGROUPCOUNTS : FONTID_CLOSEDGROUPCOUNTS, NULL); + ske_DrawText(hdcMem, _T(" "), 1, &count_rc, DT_CALCRECT | DT_NOPREFIX); + count_size.cx = count_rc.right - count_rc.left; + space_width = count_size.cx; + count_rc.right = 0; + count_rc.left = 0; + ske_DrawText(hdcMem, szCounts, (int)mir_tstrlen(szCounts), &count_rc, DT_CALCRECT); + count_size.cx += count_rc.right - count_rc.left; + count_size.cy = count_rc.bottom - count_rc.top; } - else if (Drawing->type == CLCIT_GROUP) { - RECT nameRect = p_rect; - RECT countRect = { 0 }; - RECT count_rc = { 0 }; - SIZE count_size = { 0 }; - int space_width = 0; - TCHAR *szCounts = pcli->pfnGetGroupCountsText(dat, Drawing); - // Has to draw the count? - if (szCounts && mir_tstrlen(szCounts) > 0) { - // calc width and height - ChangeToFont(hdcMem, dat, Drawing->group->expanded ? FONTID_OPENGROUPCOUNTS : FONTID_CLOSEDGROUPCOUNTS, NULL); - ske_DrawText(hdcMem, _T(" "), 1, &count_rc, DT_CALCRECT | DT_NOPREFIX); - count_size.cx = count_rc.right - count_rc.left; - space_width = count_size.cx; - count_rc.right = 0; - count_rc.left = 0; - ske_DrawText(hdcMem, szCounts, (int)mir_tstrlen(szCounts), &count_rc, DT_CALCRECT); - count_size.cx += count_rc.right - count_rc.left; - count_size.cy = count_rc.bottom - count_rc.top; - } - // modify text rect + // modify text rect { SIZE text_size = { 0 }; int wid = p_rect.right - p_rect.left; @@ -1118,66 +1118,66 @@ void CLCPaint::_PaintRowItemsEx(HWND hwnd, HDC hdcMem, ClcData *dat, ClcContact } Drawing->pos_rename_rect = p_rect; Drawing->pos_label = nameRect; - } } - break; + } + break; case TC_TEXT2: - { - // paint text 2 - // - // Select font - UINT uTextFormat = (dat->text_rtl ? DT_RTLREADING : 0); + { + // paint text 2 + // + // Select font + UINT uTextFormat = (dat->text_rtl ? DT_RTLREADING : 0); - if (dat->second_line_show && dat->second_line_type == TEXT_CONTACT_TIME && pdnce->hTimeZone) { - // Get contact time - TCHAR buf[70] = _T(""); - mir_free_and_nil(pdnce->szSecondLineText); + if (dat->second_line_show && dat->second_line_type == TEXT_CONTACT_TIME && pdnce->hTimeZone) { + // Get contact time + TCHAR buf[70] = _T(""); + mir_free_and_nil(pdnce->szSecondLineText); - tmi.printDateTime(pdnce->hTimeZone, _T("t"), buf, SIZEOF(buf), 0); - pdnce->szSecondLineText = mir_tstrdup(buf); - } + tmi.printDateTime(pdnce->hTimeZone, _T("t"), buf, SIZEOF(buf), 0); + pdnce->szSecondLineText = mir_tstrdup(buf); + } - uTextFormat |= (gl_RowTabAccess[i]->valign == TC_VCENTER) ? DT_VCENTER : (gl_RowTabAccess[i]->valign == TC_BOTTOM) ? DT_BOTTOM : 0; - uTextFormat |= (gl_RowTabAccess[i]->halign == TC_HCENTER) ? DT_CENTER : (gl_RowTabAccess[i]->halign == TC_RIGHT) ? DT_RIGHT : 0; + uTextFormat |= (gl_RowTabAccess[i]->valign == TC_VCENTER) ? DT_VCENTER : (gl_RowTabAccess[i]->valign == TC_BOTTOM) ? DT_BOTTOM : 0; + uTextFormat |= (gl_RowTabAccess[i]->halign == TC_HCENTER) ? DT_CENTER : (gl_RowTabAccess[i]->halign == TC_RIGHT) ? DT_RIGHT : 0; - text_size.cx = p_rect.right - p_rect.left; - text_size.cy = p_rect.bottom - p_rect.top; + text_size.cx = p_rect.right - p_rect.left; + text_size.cy = p_rect.bottom - p_rect.top; - ChangeToFont(hdcMem, dat, FONTID_SECONDLINE, NULL); - uTextFormat = uTextFormat | (gl_TrimText ? DT_END_ELLIPSIS : 0) | DT_SINGLELINE; - if (Drawing->type == CLCIT_CONTACT) - _DrawTextSmiley(hdcMem, &p_rect, &text_size, pdnce->szSecondLineText, 0, (int)mir_tstrlen(pdnce->szSecondLineText), pdnce->ssSecondLine.plText, uTextFormat, dat->text_resize_smileys); - } - break; + ChangeToFont(hdcMem, dat, FONTID_SECONDLINE, NULL); + uTextFormat = uTextFormat | (gl_TrimText ? DT_END_ELLIPSIS : 0) | DT_SINGLELINE; + if (Drawing->type == CLCIT_CONTACT) + _DrawTextSmiley(hdcMem, &p_rect, &text_size, pdnce->szSecondLineText, 0, (int)mir_tstrlen(pdnce->szSecondLineText), pdnce->ssSecondLine.plText, uTextFormat, dat->text_resize_smileys); + } + break; case TC_TEXT3: - { - //paint text 3 - // Select font - UINT uTextFormat = (dat->text_rtl ? DT_RTLREADING : 0); + { + //paint text 3 + // Select font + UINT uTextFormat = (dat->text_rtl ? DT_RTLREADING : 0); - if (dat->third_line_show && dat->third_line_type == TEXT_CONTACT_TIME && pdnce->hTimeZone) { - // Get contact time - TCHAR buf[70] = _T(""); - mir_free(pdnce->szThirdLineText); + if (dat->third_line_show && dat->third_line_type == TEXT_CONTACT_TIME && pdnce->hTimeZone) { + // Get contact time + TCHAR buf[70] = _T(""); + mir_free(pdnce->szThirdLineText); - tmi.printDateTime(pdnce->hTimeZone, _T("t"), buf, SIZEOF(buf), 0); - pdnce->szThirdLineText = mir_tstrdup(buf); - } + tmi.printDateTime(pdnce->hTimeZone, _T("t"), buf, SIZEOF(buf), 0); + pdnce->szThirdLineText = mir_tstrdup(buf); + } - uTextFormat |= (gl_RowTabAccess[i]->valign == TC_VCENTER) ? DT_VCENTER : (gl_RowTabAccess[i]->valign == TC_BOTTOM) ? DT_BOTTOM : 0; - uTextFormat |= (gl_RowTabAccess[i]->halign == TC_HCENTER) ? DT_CENTER : (gl_RowTabAccess[i]->halign == TC_RIGHT) ? DT_RIGHT : 0; + uTextFormat |= (gl_RowTabAccess[i]->valign == TC_VCENTER) ? DT_VCENTER : (gl_RowTabAccess[i]->valign == TC_BOTTOM) ? DT_BOTTOM : 0; + uTextFormat |= (gl_RowTabAccess[i]->halign == TC_HCENTER) ? DT_CENTER : (gl_RowTabAccess[i]->halign == TC_RIGHT) ? DT_RIGHT : 0; - text_size.cx = p_rect.right - p_rect.left; - text_size.cy = p_rect.bottom - p_rect.top; + text_size.cx = p_rect.right - p_rect.left; + text_size.cy = p_rect.bottom - p_rect.top; - ChangeToFont(hdcMem, dat, FONTID_THIRDLINE, NULL); - uTextFormat = uTextFormat | (gl_TrimText ? DT_END_ELLIPSIS : 0) | DT_SINGLELINE; - if (Drawing->type == CLCIT_CONTACT) - _DrawTextSmiley(hdcMem, &p_rect, &text_size, pdnce->szThirdLineText, 0, (int)mir_tstrlen(pdnce->szThirdLineText), pdnce->ssThirdLine.plText, uTextFormat, dat->text_resize_smileys); - } - break; + ChangeToFont(hdcMem, dat, FONTID_THIRDLINE, NULL); + uTextFormat = uTextFormat | (gl_TrimText ? DT_END_ELLIPSIS : 0) | DT_SINGLELINE; + if (Drawing->type == CLCIT_CONTACT) + _DrawTextSmiley(hdcMem, &p_rect, &text_size, pdnce->szThirdLineText, 0, (int)mir_tstrlen(pdnce->szThirdLineText), pdnce->ssThirdLine.plText, uTextFormat, dat->text_resize_smileys); + } + break; case TC_STATUS: if ((Drawing->type == CLCIT_GROUP && !dat->row_hide_group_icon) || (Drawing->type == CLCIT_CONTACT && Drawing->iImage != -1 @@ -1220,142 +1220,142 @@ void CLCPaint::_PaintRowItemsEx(HWND hwnd, HDC hdcMem, ClcData *dat, ClcContact break; case TC_AVATAR: - { - BOOL hasAvatar = Drawing->avatar_data != NULL; - BYTE blendmode = 255; - if (hottrack) - blendmode = 255; - else if (Drawing->type == CLCIT_CONTACT && Drawing->flags & CONTACTF_NOTONLIST) - blendmode = 128; - if (Drawing->type == CLCIT_CONTACT && dat->showIdle && (Drawing->flags&CONTACTF_IDLE) && - _GetRealStatus(Drawing, ID_STATUS_OFFLINE) != ID_STATUS_OFFLINE) - blendmode = 128; - if (!hasAvatar) { // if no avatar then paint icon image - int iImage = Drawing->iImage; - if (iImage != -1) { - COLORREF colourFg; - int mode; - // Store pos - Drawing->pos_icon = p_rect; - if (hottrack) { - colourFg = dat->hotTextColour; - mode = ILD_NORMAL; - } - else if (Drawing->type == CLCIT_CONTACT && Drawing->flags & CONTACTF_NOTONLIST) { - colourFg = dat->fontModernInfo[FONTID_NOTONLIST].colour; - mode = ILD_BLEND50; - } - else { - colourFg = dat->selBkColour; - mode = ILD_NORMAL; - } - - if (Drawing->type == CLCIT_CONTACT && dat->showIdle && (Drawing->flags & CONTACTF_IDLE) && - _GetRealStatus(Drawing, ID_STATUS_OFFLINE) != ID_STATUS_OFFLINE) { - mode = ILD_SELECTED; - } - - _DrawStatusIcon(Drawing, dat, iImage, hdcMem, p_rect.left, p_rect.top, 0, 0, CLR_NONE, colourFg, mode); - - } - } - else { - HRGN rgn = NULL; - HRGN oldrgn; - int round_radius = 0; - int width = p_rect.right - p_rect.left; - int height = p_rect.bottom - p_rect.top; + { + BOOL hasAvatar = Drawing->avatar_data != NULL; + BYTE blendmode = 255; + if (hottrack) + blendmode = 255; + else if (Drawing->type == CLCIT_CONTACT && Drawing->flags & CONTACTF_NOTONLIST) + blendmode = 128; + if (Drawing->type == CLCIT_CONTACT && dat->showIdle && (Drawing->flags&CONTACTF_IDLE) && + _GetRealStatus(Drawing, ID_STATUS_OFFLINE) != ID_STATUS_OFFLINE) + blendmode = 128; + if (!hasAvatar) { // if no avatar then paint icon image + int iImage = Drawing->iImage; + if (iImage != -1) { + COLORREF colourFg; + int mode; // Store pos - Drawing->pos_avatar = p_rect; - oldrgn = CreateRectRgn(0, 0, 0, 0); - GetClipRgn(hdcMem, oldrgn); - - // Round corners - if (dat->avatars_round_corners) { - if (dat->avatars_use_custom_corner_size) - round_radius = dat->avatars_custom_corner_size; - else - round_radius = min(width, height) / 5; + Drawing->pos_icon = p_rect; + if (hottrack) { + colourFg = dat->hotTextColour; + mode = ILD_NORMAL; } - else round_radius = 0; - - if (dat->avatars_draw_border) { - HBRUSH hBrush = CreateSolidBrush(dat->avatars_border_color); - HBRUSH hOldBrush = (HBRUSH)SelectObject(hdcMem, hBrush); - HRGN rgn2; - rgn = CreateRoundRectRgn(p_rect.left, p_rect.top, p_rect.right + 1, p_rect.bottom + 1, round_radius << 1, round_radius << 1); - rgn2 = CreateRoundRectRgn(p_rect.left + 1, p_rect.top + 1, p_rect.right, p_rect.bottom, round_radius << 1, round_radius << 1); - CombineRgn(rgn2, rgn, rgn2, RGN_DIFF); - // FrameRgn(hdcMem, rgn, hBrush, 1, 1 ); - FillRgn(hdcMem, rgn2, hBrush); - ske_SetRgnOpaque(hdcMem, rgn2); - SelectObject(hdcMem, hOldBrush); - DeleteObject(hBrush); - DeleteObject(rgn); - DeleteObject(rgn2); + else if (Drawing->type == CLCIT_CONTACT && Drawing->flags & CONTACTF_NOTONLIST) { + colourFg = dat->fontModernInfo[FONTID_NOTONLIST].colour; + mode = ILD_BLEND50; } - if (dat->avatars_round_corners || dat->avatars_draw_border) { - int k = dat->avatars_draw_border ? 1 : 0; - rgn = CreateRoundRectRgn(p_rect.left + k, p_rect.top + k, p_rect.right + 1 - k, p_rect.bottom + 1 - k, round_radius * 2, round_radius * 2); - ExtSelectClipRgn(hdcMem, rgn, RGN_AND); + else { + colourFg = dat->selBkColour; + mode = ILD_NORMAL; } - // Draw avatar - _DrawContactAvatar(hdcMem, dat, Drawing, &row_rc, selected, hottrack, &p_rect); + if (Drawing->type == CLCIT_CONTACT && dat->showIdle && (Drawing->flags & CONTACTF_IDLE) && + _GetRealStatus(Drawing, ID_STATUS_OFFLINE) != ID_STATUS_OFFLINE) { + mode = ILD_SELECTED; + } - // Restore region - if (dat->avatars_round_corners || dat->avatars_draw_border) - DeleteObject(rgn); + _DrawStatusIcon(Drawing, dat, iImage, hdcMem, p_rect.left, p_rect.top, 0, 0, CLR_NONE, colourFg, mode); - SelectClipRgn(hdcMem, oldrgn); - DeleteObject(oldrgn); + } + } + else { + HRGN rgn = NULL; + HRGN oldrgn; + int round_radius = 0; + int width = p_rect.right - p_rect.left; + int height = p_rect.bottom - p_rect.top; + // Store pos + Drawing->pos_avatar = p_rect; + oldrgn = CreateRectRgn(0, 0, 0, 0); + GetClipRgn(hdcMem, oldrgn); + + // Round corners + if (dat->avatars_round_corners) { + if (dat->avatars_use_custom_corner_size) + round_radius = dat->avatars_custom_corner_size; + else + round_radius = min(width, height) / 5; + } + else round_radius = 0; + + if (dat->avatars_draw_border) { + HBRUSH hBrush = CreateSolidBrush(dat->avatars_border_color); + HBRUSH hOldBrush = (HBRUSH)SelectObject(hdcMem, hBrush); + HRGN rgn2; + rgn = CreateRoundRectRgn(p_rect.left, p_rect.top, p_rect.right + 1, p_rect.bottom + 1, round_radius << 1, round_radius << 1); + rgn2 = CreateRoundRectRgn(p_rect.left + 1, p_rect.top + 1, p_rect.right, p_rect.bottom, round_radius << 1, round_radius << 1); + CombineRgn(rgn2, rgn, rgn2, RGN_DIFF); + // FrameRgn(hdcMem, rgn, hBrush, 1, 1 ); + FillRgn(hdcMem, rgn2, hBrush); + ske_SetRgnOpaque(hdcMem, rgn2); + SelectObject(hdcMem, hOldBrush); + DeleteObject(hBrush); + DeleteObject(rgn); + DeleteObject(rgn2); + } + if (dat->avatars_round_corners || dat->avatars_draw_border) { + int k = dat->avatars_draw_border ? 1 : 0; + rgn = CreateRoundRectRgn(p_rect.left + k, p_rect.top + k, p_rect.right + 1 - k, p_rect.bottom + 1 - k, round_radius * 2, round_radius * 2); + ExtSelectClipRgn(hdcMem, rgn, RGN_AND); + } - // Draw borders + // Draw avatar + _DrawContactAvatar(hdcMem, dat, Drawing, &row_rc, selected, hottrack, &p_rect); - //TODO fix overlays - // Draw overlay - if (dat->avatars_draw_overlay && dat->avatars_maxheight_size >= ICON_HEIGHT + (dat->avatars_draw_border ? 2 : 0) - && GetContactCachedStatus(Drawing->hContact) - ID_STATUS_OFFLINE < SIZEOF(g_pAvatarOverlayIcons)) { - p_rect.top = p_rect.bottom - ICON_HEIGHT; - p_rect.left = p_rect.right - ICON_HEIGHT; + // Restore region + if (dat->avatars_round_corners || dat->avatars_draw_border) + DeleteObject(rgn); - if (dat->avatars_draw_border) { - p_rect.top--; - p_rect.left--; - } + SelectClipRgn(hdcMem, oldrgn); + DeleteObject(oldrgn); - switch (dat->avatars_overlay_type) { - case SETTING_AVATAR_OVERLAY_TYPE_NORMAL: - { - UINT a = blendmode; - a = (a << 24); - ske_ImageList_DrawEx(hAvatarOverlays, g_pAvatarOverlayIcons[GetContactCachedStatus(Drawing->hContact) - ID_STATUS_OFFLINE].listID, - hdcMem, - p_rect.left, p_rect.top, ICON_HEIGHT, ICON_HEIGHT, - CLR_NONE, CLR_NONE, - (blendmode == 255) ? ILD_NORMAL : (blendmode == 128) ? ILD_BLEND50 : ILD_BLEND25); - } - break; - case SETTING_AVATAR_OVERLAY_TYPE_PROTOCOL: - { - int item = pcli->pfnIconFromStatusMode(Drawing->proto, Drawing->proto == NULL ? ID_STATUS_OFFLINE : GetContactCachedStatus(Drawing->hContact), Drawing->hContact); - if (item != -1) - _DrawStatusIcon(Drawing, dat, item, hdcMem, - p_rect.left, p_rect.top, ICON_HEIGHT, ICON_HEIGHT, - CLR_NONE, CLR_NONE, (blendmode == 255) ? ILD_NORMAL : (blendmode == 128) ? ILD_BLEND50 : ILD_BLEND25); - } - break; - case SETTING_AVATAR_OVERLAY_TYPE_CONTACT: - if (Drawing->iImage != -1) - _DrawStatusIcon(Drawing, dat, Drawing->iImage, hdcMem, - p_rect.left, p_rect.top, ICON_HEIGHT, ICON_HEIGHT, - CLR_NONE, CLR_NONE, (blendmode == 255) ? ILD_NORMAL : (blendmode == 128) ? ILD_BLEND50 : ILD_BLEND25); - break; - } + // Draw borders + + //TODO fix overlays + // Draw overlay + if (dat->avatars_draw_overlay && dat->avatars_maxheight_size >= ICON_HEIGHT + (dat->avatars_draw_border ? 2 : 0) + && GetContactCachedStatus(Drawing->hContact) - ID_STATUS_OFFLINE < SIZEOF(g_pAvatarOverlayIcons)) { + p_rect.top = p_rect.bottom - ICON_HEIGHT; + p_rect.left = p_rect.right - ICON_HEIGHT; + + if (dat->avatars_draw_border) { + p_rect.top--; + p_rect.left--; + } + + switch (dat->avatars_overlay_type) { + case SETTING_AVATAR_OVERLAY_TYPE_NORMAL: + { + UINT a = blendmode; + a = (a << 24); + ske_ImageList_DrawEx(hAvatarOverlays, g_pAvatarOverlayIcons[GetContactCachedStatus(Drawing->hContact) - ID_STATUS_OFFLINE].listID, + hdcMem, + p_rect.left, p_rect.top, ICON_HEIGHT, ICON_HEIGHT, + CLR_NONE, CLR_NONE, + (blendmode == 255) ? ILD_NORMAL : (blendmode == 128) ? ILD_BLEND50 : ILD_BLEND25); + } + break; + case SETTING_AVATAR_OVERLAY_TYPE_PROTOCOL: + { + int item = pcli->pfnIconFromStatusMode(Drawing->proto, Drawing->proto == NULL ? ID_STATUS_OFFLINE : GetContactCachedStatus(Drawing->hContact), Drawing->hContact); + if (item != -1) + _DrawStatusIcon(Drawing, dat, item, hdcMem, + p_rect.left, p_rect.top, ICON_HEIGHT, ICON_HEIGHT, + CLR_NONE, CLR_NONE, (blendmode == 255) ? ILD_NORMAL : (blendmode == 128) ? ILD_BLEND50 : ILD_BLEND25); + } + break; + case SETTING_AVATAR_OVERLAY_TYPE_CONTACT: + if (Drawing->iImage != -1) + _DrawStatusIcon(Drawing, dat, Drawing->iImage, hdcMem, + p_rect.left, p_rect.top, ICON_HEIGHT, ICON_HEIGHT, + CLR_NONE, CLR_NONE, (blendmode == 255) ? ILD_NORMAL : (blendmode == 128) ? ILD_BLEND50 : ILD_BLEND25); + break; } } } - break; + } + break; case TC_EXTRA: if (Drawing->type == CLCIT_CONTACT && @@ -1804,16 +1804,16 @@ void CLCPaint::_DrawLines(HWND hWnd, ClcData *dat, int paintMode, RECT* rcPaint, switch (dat->HiLightMode) { case 0: case 1: - { - int row_height = row_rc.bottom - row_rc.top; - for (int i = y; i < y + row_height; i += max(dat->row_min_heigh, 1)) { - ImageList_DrawEx(dat->himlHighlight, 0, pc.hdcMem, 0, i, clRect.right, - min(y + row_height - i, max(dat->row_min_heigh, 1)), CLR_NONE, CLR_NONE, - dat->exStyle&CLS_EX_NOTRANSLUCENTSEL ? ILD_NORMAL : ILD_BLEND25); - } - SetTextColor(pc.hdcMem, paintMode&DM_CONTROL ? GetSysColor(COLOR_HIGHLIGHTTEXT) : dat->selTextColour); + { + int row_height = row_rc.bottom - row_rc.top; + for (int i = y; i < y + row_height; i += max(dat->row_min_heigh, 1)) { + ImageList_DrawEx(dat->himlHighlight, 0, pc.hdcMem, 0, i, clRect.right, + min(y + row_height - i, max(dat->row_min_heigh, 1)), CLR_NONE, CLR_NONE, + dat->exStyle&CLS_EX_NOTRANSLUCENTSEL ? ILD_NORMAL : ILD_BLEND25); } - break; + SetTextColor(pc.hdcMem, paintMode&DM_CONTROL ? GetSysColor(COLOR_HIGHLIGHTTEXT) : dat->selTextColour); + } + break; case 2: int row_height = row_rc.bottom - row_rc.top - 1; @@ -1921,7 +1921,7 @@ void CLCPaint::_DrawInsertionMark(ClcData *dat, RECT& clRect, _PaintContext& pc) pts[5].x = pts[2].x + 1; pts[5].y = pts[1].y + 2; pts[6].x = pts[1].x; pts[6].y = pts[5].y; pts[7].x = pts[0].x; pts[7].y = pts[4].y; - + HRGN hRgn = CreatePolygonRgn(pts, sizeof(pts) / sizeof(pts[0]), ALTERNATE); HBRUSH hBrush = CreateSolidBrush(dat->fontModernInfo[FONTID_CONTACTS].colour); HBRUSH hoBrush = (HBRUSH)SelectObject(pc.hdcMem, hBrush); @@ -2054,131 +2054,98 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT switch (dat->row_items[item]) { case ITEM_AVATAR: /////////////////////////////////////////////////////////////////////////////////////////////////// - { - RECT rc; - int max_width; - int width; - int height; - BOOL miniMode; - if (!dat->avatars_show || Drawing->type != CLCIT_CONTACT) - break; - miniMode = CheckMiniMode(dat, selected); - AniAva_InvalidateAvatarPositions(Drawing->hContact); - if (dat->icon_hide_on_avatar && dat->icon_draw_on_avatar_space) - max_width = max(dat->iconXSpace, dat->avatars_maxheight_size); - else - max_width = dat->avatars_maxheight_size; + { + RECT rc; + int max_width; + int width; + int height; + BOOL miniMode; + if (!dat->avatars_show || Drawing->type != CLCIT_CONTACT) + break; + miniMode = CheckMiniMode(dat, selected); + AniAva_InvalidateAvatarPositions(Drawing->hContact); + if (dat->icon_hide_on_avatar && dat->icon_draw_on_avatar_space) + max_width = max(dat->iconXSpace, dat->avatars_maxheight_size); + else + max_width = dat->avatars_maxheight_size; - // Has to draw? - if (Drawing->avatar_data == NULL || miniMode) { - // Don't have to draw avatar + // Has to draw? + if (Drawing->avatar_data == NULL || miniMode) { + // Don't have to draw avatar - // Has to draw icon instead? - if (dat->icon_hide_on_avatar && dat->icon_draw_on_avatar_space && Drawing->iImage != -1) { - RECT rc; + // Has to draw icon instead? + if (dat->icon_hide_on_avatar && dat->icon_draw_on_avatar_space && Drawing->iImage != -1) { + RECT rc; - // Make rectangle - rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, - left, dat->iconXSpace, max_width, ICON_HEIGHT, HORIZONTAL_SPACE); + // Make rectangle + rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, + left, dat->iconXSpace, max_width, ICON_HEIGHT, HORIZONTAL_SPACE); - if (rc.left < rc.right) { - /* center icon in avatar place */ - if (rc.right - rc.left > 16) rc.left += (((rc.right - rc.left) - 16) >> 1); - if (rc.bottom - rc.top > 16) rc.top += (((rc.bottom - rc.top) - 16) >> 1); + if (rc.left < rc.right) { + /* center icon in avatar place */ + if (rc.right - rc.left > 16) rc.left += (((rc.right - rc.left) - 16) >> 1); + if (rc.bottom - rc.top > 16) rc.top += (((rc.bottom - rc.top) - 16) >> 1); - // Store position - _StoreItemPos(Drawing, CIT_ICON, &rc); - } + // Store position + _StoreItemPos(Drawing, CIT_ICON, &rc); } - else { - // Has to keep the empty space?? - if ((left && !dat->row_align_left_items_to_left) || (!left && !dat->row_align_right_items_to_right)) { - // Make rectangle - rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, - left, max_width, max_width, dat->avatars_maxheight_size, HORIZONTAL_SPACE); + } + else { + // Has to keep the empty space?? + if ((left && !dat->row_align_left_items_to_left) || (!left && !dat->row_align_right_items_to_right)) { + // Make rectangle + rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, + left, max_width, max_width, dat->avatars_maxheight_size, HORIZONTAL_SPACE); - // Store position - //StoreItemPos( Drawing, CIT_AVATAR, &rc ); - //Drawing->pos_avatar = rc; - } + // Store position + //StoreItemPos( Drawing, CIT_AVATAR, &rc ); + //Drawing->pos_avatar = rc; } - break; } + break; + } - // Has to draw avatar - if (dat->avatar_cache.nodes && Drawing->avatar_pos > AVATAR_POS_DONT_HAVE) { - width = dat->avatar_cache.nodes[Drawing->avatar_pos].width; - height = dat->avatar_cache.nodes[Drawing->avatar_pos].height; - } - else if (Drawing->avatar_pos == AVATAR_POS_ANIMATED) { - width = Drawing->avatar_size.cx; - height = Drawing->avatar_size.cy; - } - else { - width = 0; - height = 0; - } + // Has to draw avatar + if (dat->avatar_cache.nodes && Drawing->avatar_pos > AVATAR_POS_DONT_HAVE) { + width = dat->avatar_cache.nodes[Drawing->avatar_pos].width; + height = dat->avatar_cache.nodes[Drawing->avatar_pos].height; + } + else if (Drawing->avatar_pos == AVATAR_POS_ANIMATED) { + width = Drawing->avatar_size.cx; + height = Drawing->avatar_size.cy; + } + else { + width = 0; + height = 0; + } - // Make rectangle - rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, - left, width, max_width, height, HORIZONTAL_SPACE); + // Make rectangle + rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, + left, width, max_width, height, HORIZONTAL_SPACE); - rc.top = max(free_row_rc.top, rc.top); - rc.bottom = min(free_row_rc.bottom, rc.bottom); + rc.top = max(free_row_rc.top, rc.top); + rc.bottom = min(free_row_rc.bottom, rc.bottom); - if (rc.left < rc.right) // Store position - _StoreItemPos(Drawing, CIT_AVATAR, &rc); - //TO DO: CALC avatar overlays - } - break; + if (rc.left < rc.right) // Store position + _StoreItemPos(Drawing, CIT_AVATAR, &rc); + //TO DO: CALC avatar overlays + } + break; case ITEM_ICON: ///////////////////////////////////////////////////////////////////////////////////////////////////// - { - RECT rc; - int iImage = -1; - BOOL has_avatar = Drawing->avatar_data != NULL && !CheckMiniMode(dat, selected); - - if (Drawing->type == CLCIT_CONTACT - && dat->icon_hide_on_avatar - && !dat->icon_draw_on_avatar_space - && has_avatar - && !Drawing->image_is_special) - { - // Don't have to draw, but has to keep the empty space? - if ((left && !dat->row_align_left_items_to_left) || (!left && !dat->row_align_right_items_to_right)) { - rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, - left, dat->iconXSpace, dat->iconXSpace, ICON_HEIGHT, HORIZONTAL_SPACE); - - if (rc.left < rc.right) { - // Store position - _StoreItemPos(Drawing, CIT_ICON, &rc); - } - } - break; - } - if (Drawing->type == CLCIT_CONTACT - && dat->icon_hide_on_avatar - && dat->icon_draw_on_avatar_space - && (!Drawing->image_is_special || !has_avatar || - (dat->avatars_draw_overlay - && dat->avatars_maxheight_size >= ICON_HEIGHT + (dat->avatars_draw_border ? 2 : 0) - && GetContactCachedStatus(Drawing->hContact) - ID_STATUS_OFFLINE < SIZEOF(g_pAvatarOverlayIcons) - && dat->avatars_overlay_type == SETTING_AVATAR_OVERLAY_TYPE_CONTACT))) - { - // Don't have to draw and don't have to keep the empty space - break; - } - - // Get image - iImage = -1; - if (Drawing->type == CLCIT_GROUP && !dat->row_hide_group_icon) - iImage = Drawing->group->expanded ? IMAGE_GROUPOPEN : IMAGE_GROUPSHUT; - else if (Drawing->type == CLCIT_CONTACT) - iImage = Drawing->iImage; + { + RECT rc; + int iImage = -1; + BOOL has_avatar = Drawing->avatar_data != NULL && !CheckMiniMode(dat, selected); - // Has image to draw? - if (iImage != -1) { - // Make rectangle + if (Drawing->type == CLCIT_CONTACT + && dat->icon_hide_on_avatar + && !dat->icon_draw_on_avatar_space + && has_avatar + && !Drawing->image_is_special) + { + // Don't have to draw, but has to keep the empty space? + if ((left && !dat->row_align_left_items_to_left) || (!left && !dat->row_align_right_items_to_right)) { rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, left, dat->iconXSpace, dat->iconXSpace, ICON_HEIGHT, HORIZONTAL_SPACE); @@ -2187,40 +2154,73 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT _StoreItemPos(Drawing, CIT_ICON, &rc); } } + break; } - break; + if (Drawing->type == CLCIT_CONTACT + && dat->icon_hide_on_avatar + && dat->icon_draw_on_avatar_space + && (!Drawing->image_is_special || !has_avatar || + (dat->avatars_draw_overlay + && dat->avatars_maxheight_size >= ICON_HEIGHT + (dat->avatars_draw_border ? 2 : 0) + && GetContactCachedStatus(Drawing->hContact) - ID_STATUS_OFFLINE < SIZEOF(g_pAvatarOverlayIcons) + && dat->avatars_overlay_type == SETTING_AVATAR_OVERLAY_TYPE_CONTACT))) + { + // Don't have to draw and don't have to keep the empty space + break; + } + + // Get image + iImage = -1; + if (Drawing->type == CLCIT_GROUP && !dat->row_hide_group_icon) + iImage = Drawing->group->expanded ? IMAGE_GROUPOPEN : IMAGE_GROUPSHUT; + else if (Drawing->type == CLCIT_CONTACT) + iImage = Drawing->iImage; + + // Has image to draw? + if (iImage != -1) { + // Make rectangle + rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, + left, dat->iconXSpace, dat->iconXSpace, ICON_HEIGHT, HORIZONTAL_SPACE); + + if (rc.left < rc.right) { + // Store position + _StoreItemPos(Drawing, CIT_ICON, &rc); + } + } + } + break; case ITEM_CONTACT_TIME: ///////////////////////////////////////////////////////////////////////////////////////////////////// - { - ClcCacheEntry *pdnce = (Drawing->type == CLCIT_CONTACT) ? pcli->pfnGetCacheEntry(Drawing->hContact) : NULL; - if (Drawing->type == CLCIT_CONTACT && dat->contact_time_show && pdnce->hTimeZone) { - TCHAR szResult[80]; + { + ClcCacheEntry *pdnce = (Drawing->type == CLCIT_CONTACT) ? pcli->pfnGetCacheEntry(Drawing->hContact) : NULL; + if (Drawing->type == CLCIT_CONTACT && dat->contact_time_show && pdnce->hTimeZone) { + TCHAR szResult[80]; - if (!tmi.printDateTime(pdnce->hTimeZone, _T("t"), szResult, SIZEOF(szResult), 0)) { - SIZE text_size; - RECT rc; + if (!tmi.printDateTime(pdnce->hTimeZone, _T("t"), szResult, SIZEOF(szResult), 0)) { + SIZE text_size; + RECT rc; - // Select font - ChangeToFont(hdcMem, dat, FONTID_CONTACT_TIME, NULL); + // Select font + ChangeToFont(hdcMem, dat, FONTID_CONTACT_TIME, NULL); - // Get text size - text_size.cy = ske_DrawText(hdcMem, szResult, (int)mir_tstrlen(szResult), &rc, DT_CALCRECT | DT_NOPREFIX | DT_SINGLELINE); - text_size.cy = min(text_size.cy, free_row_rc.bottom - free_row_rc.top); - text_size.cx = rc.right - rc.left; + // Get text size + text_size.cy = ske_DrawText(hdcMem, szResult, (int)mir_tstrlen(szResult), &rc, DT_CALCRECT | DT_NOPREFIX | DT_SINGLELINE); + text_size.cy = min(text_size.cy, free_row_rc.bottom - free_row_rc.top); + text_size.cx = rc.right - rc.left; - // Get rc - rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, left, - text_size.cx, text_size.cx, text_size.cy, HORIZONTAL_SPACE); + // Get rc + rc = _GetRectangle(dat, &row_rc, &free_row_rc, &left_pos, &right_pos, left, + text_size.cx, text_size.cx, text_size.cy, HORIZONTAL_SPACE); - if (rc.left < rc.right) { - // Store pos - Drawing->pos_contact_time = rc; - _StoreItemPos(Drawing, CIT_TIME, &rc); - } + if (rc.left < rc.right) { + // Store pos + Drawing->pos_contact_time = rc; + _StoreItemPos(Drawing, CIT_TIME, &rc); } } } - break; + } + break; case ITEM_TEXT: ///////////////////////////////////////////////////////////////////////////////////////////////////// // Store init text position: @@ -2474,116 +2474,116 @@ void CLCPaint::_CalcItemsPos(HDC hdcMem, ClcData *dat, ClcContact *Drawing, RECT switch (Drawing->type) { case CLCIT_DIVIDER: - { - //devider - RECT trc = free_row_rc; - RECT rc = free_row_rc; - rc.top += (rc.bottom - rc.top) >> 1; - rc.bottom = rc.top + 2; - rc.right = rc.left + ((rc.right - rc.left - text_size.cx) >> 1) - 3; - trc.left = rc.right + 3; - trc.right = trc.left + text_size.cx + 6; - if (text_size.cy < trc.bottom - trc.top) { - trc.top += (trc.bottom - trc.top - text_size.cy) >> 1; - trc.bottom = trc.top + text_size.cy; - } - _StoreItemPos(Drawing, CIT_TEXT, &trc); - rc.left = rc.right + 6 + text_size.cx; - rc.right = free_row_rc.right; + { + //devider + RECT trc = free_row_rc; + RECT rc = free_row_rc; + rc.top += (rc.bottom - rc.top) >> 1; + rc.bottom = rc.top + 2; + rc.right = rc.left + ((rc.right - rc.left - text_size.cx) >> 1) - 3; + trc.left = rc.right + 3; + trc.right = trc.left + text_size.cx + 6; + if (text_size.cy < trc.bottom - trc.top) { + trc.top += (trc.bottom - trc.top - text_size.cy) >> 1; + trc.bottom = trc.top + text_size.cy; } - break; + _StoreItemPos(Drawing, CIT_TEXT, &trc); + rc.left = rc.right + 6 + text_size.cx; + rc.right = free_row_rc.right; + } + break; case CLCIT_GROUP: - { - RECT rc = text_rc; + { + RECT rc = text_rc; + + // Get text rectangle + if (dat->text_align_right) + rc.left = rc.right - text_size.cx; + else + rc.right = rc.left + text_size.cx; + - // Get text rectangle + if (text_size.cy < rc.bottom - rc.top) { + rc.top += (rc.bottom - rc.top - text_size.cy) >> 1; + rc.bottom = rc.top + text_size.cy; + } + + // Draw text + _StoreItemPos(Drawing, CIT_TEXT, &rc); + + // Has to draw the count? + if (counts_size.cx > 0) { + RECT counts_rc = text_rc; + //counts_size.cx; if (dat->text_align_right) - rc.left = rc.right - text_size.cx; + counts_rc.right = text_rc.left + counts_size.cx; else - rc.right = rc.left + text_size.cx; - + counts_rc.left = text_rc.right - counts_size.cx; - if (text_size.cy < rc.bottom - rc.top) { - rc.top += (rc.bottom - rc.top - text_size.cy) >> 1; - rc.bottom = rc.top + text_size.cy; + if (counts_size.cy < counts_rc.bottom - counts_rc.top) { + counts_rc.top += (counts_rc.bottom - counts_rc.top - counts_size.cy + 1) >> 1; + counts_rc.bottom = counts_rc.top + counts_size.cy; } + // Draw counts + _StoreItemPos(Drawing, CIT_SUBTEXT1, &counts_rc); + } + } + break; + case CLCIT_CONTACT: + { + RECT free_rc = text_rc; + if (text_size.cx > 0 && free_rc.bottom > free_rc.top) { + RECT rc = free_rc; + rc.bottom = min(rc.bottom, rc.top + text_size.cy); - // Draw text - _StoreItemPos(Drawing, CIT_TEXT, &rc); - - // Has to draw the count? - if (counts_size.cx > 0) { - RECT counts_rc = text_rc; - //counts_size.cx; + if (text_size.cx < rc.right - rc.left) { if (dat->text_align_right) - counts_rc.right = text_rc.left + counts_size.cx; + rc.left = rc.right - text_size.cx; else - counts_rc.left = text_rc.right - counts_size.cx; - - if (counts_size.cy < counts_rc.bottom - counts_rc.top) { - counts_rc.top += (counts_rc.bottom - counts_rc.top - counts_size.cy + 1) >> 1; - counts_rc.bottom = counts_rc.top + counts_size.cy; - } - // Draw counts - _StoreItemPos(Drawing, CIT_SUBTEXT1, &counts_rc); + rc.right = rc.left + text_size.cx; } + uTextFormat |= DT_VCENTER; + _StoreItemPos(Drawing, CIT_TEXT, &rc); + free_rc.top = rc.bottom; } - break; - case CLCIT_CONTACT: - { - RECT free_rc = text_rc; - if (text_size.cx > 0 && free_rc.bottom > free_rc.top) { + uTextFormat &= ~DT_VCENTER; + if (second_line_text_size.cx > 0 && free_rc.bottom > free_rc.top) { + free_rc.top += dat->second_line_top_space; + + if (free_rc.bottom > free_rc.top) { RECT rc = free_rc; - rc.bottom = min(rc.bottom, rc.top + text_size.cy); + rc.bottom = min(rc.bottom, rc.top + second_line_text_size.cy); - if (text_size.cx < rc.right - rc.left) { + if (second_line_text_size.cx < rc.right - rc.left) { if (dat->text_align_right) - rc.left = rc.right - text_size.cx; + rc.left = rc.right - second_line_text_size.cx; else - rc.right = rc.left + text_size.cx; + rc.right = rc.left + second_line_text_size.cx; } - uTextFormat |= DT_VCENTER; - _StoreItemPos(Drawing, CIT_TEXT, &rc); + _StoreItemPos(Drawing, CIT_SUBTEXT1, &rc); free_rc.top = rc.bottom; } - uTextFormat &= ~DT_VCENTER; - if (second_line_text_size.cx > 0 && free_rc.bottom > free_rc.top) { - free_rc.top += dat->second_line_top_space; - - if (free_rc.bottom > free_rc.top) { - RECT rc = free_rc; - rc.bottom = min(rc.bottom, rc.top + second_line_text_size.cy); - - if (second_line_text_size.cx < rc.right - rc.left) { - if (dat->text_align_right) - rc.left = rc.right - second_line_text_size.cx; - else - rc.right = rc.left + second_line_text_size.cx; - } - _StoreItemPos(Drawing, CIT_SUBTEXT1, &rc); - free_rc.top = rc.bottom; - } - } + } - if (third_line_text_size.cx > 0 && free_rc.bottom > free_rc.top) { - free_rc.top += dat->third_line_top_space; + if (third_line_text_size.cx > 0 && free_rc.bottom > free_rc.top) { + free_rc.top += dat->third_line_top_space; - if (free_rc.bottom > free_rc.top) { - RECT rc = free_rc; - rc.bottom = min(rc.bottom, rc.top + third_line_text_size.cy); + if (free_rc.bottom > free_rc.top) { + RECT rc = free_rc; + rc.bottom = min(rc.bottom, rc.top + third_line_text_size.cy); - if (third_line_text_size.cx < rc.right - rc.left) { - if (dat->text_align_right) - rc.left = rc.right - third_line_text_size.cx; - else - rc.right = rc.left + third_line_text_size.cx; - } - _StoreItemPos(Drawing, CIT_SUBTEXT2, &rc); - free_rc.top = rc.bottom; + if (third_line_text_size.cx < rc.right - rc.left) { + if (dat->text_align_right) + rc.left = rc.right - third_line_text_size.cx; + else + rc.right = rc.left + third_line_text_size.cx; } + _StoreItemPos(Drawing, CIT_SUBTEXT2, &rc); + free_rc.top = rc.bottom; } } - break; + } + break; default: // CLCIT_INFO _StoreItemPos(Drawing, CIT_TEXT, &text_rc); diff --git a/plugins/Clist_modern/src/modern_clcutils.cpp b/plugins/Clist_modern/src/modern_clcutils.cpp index b2d97083c1..6fd85d6d35 100644 --- a/plugins/Clist_modern/src/modern_clcutils.cpp +++ b/plugins/Clist_modern/src/modern_clcutils.cpp @@ -611,7 +611,7 @@ void LoadCLCOptions(HWND hwnd, ClcData *dat, BOOL bFirst) ptrT tszLineText(db_get_tsa(NULL, "CList", "SecondLineText")); if (tszLineText) - _tcsncpy_s(dat->second_line_text, SIZEOF(dat->second_line_text), tszLineText, _TRUNCATE); + mir_tstrncpy(dat->second_line_text, tszLineText, SIZEOF(dat->second_line_text)); else dat->second_line_text[0] = _T('\0'); @@ -639,7 +639,7 @@ void LoadCLCOptions(HWND hwnd, ClcData *dat, BOOL bFirst) ptrT tszLineText(db_get_tsa(NULL, "CList", "ThirdLineText")); if (tszLineText) - _tcsncpy_s(dat->third_line_text, SIZEOF(dat->third_line_text), tszLineText, _TRUNCATE); + mir_tstrncpy(dat->third_line_text, tszLineText, SIZEOF(dat->third_line_text)); else dat->third_line_text[0] = _T('\0'); diff --git a/plugins/Clist_modern/src/modern_clistmod.cpp b/plugins/Clist_modern/src/modern_clistmod.cpp index 288dbf5536..d033a41625 100644 --- a/plugins/Clist_modern/src/modern_clistmod.cpp +++ b/plugins/Clist_modern/src/modern_clistmod.cpp @@ -305,8 +305,7 @@ int GetWindowVisibleState(HWND hWnd, int iStepX, int iStepY) break; } } - } - while (hAux != NULL && hAuxOld != hAux); + } while (hAux != NULL && hAuxOld != hAux); if (hWndFound) // There's window! iNotCoveredDots++; // Let's count the not covered dots. @@ -414,7 +413,7 @@ int cliShowHide(WPARAM, LPARAM lParam) int CListMod_HideWindow() { KillTimer(pcli->hwndContactList, 1); - + if (!CLUI_HideBehindEdge()) return CLUI_SmoothAlphaTransition(pcli->hwndContactList, 0, 1); return 0; diff --git a/plugins/Clist_modern/src/modern_clisttray.cpp b/plugins/Clist_modern/src/modern_clisttray.cpp index 4357e06315..e89b6f8aab 100644 --- a/plugins/Clist_modern/src/modern_clisttray.cpp +++ b/plugins/Clist_modern/src/modern_clisttray.cpp @@ -390,8 +390,7 @@ VOID CALLBACK cliTrayCycleTimerProc(HWND, UINT, UINT_PTR, DWORD) pcli->cycleStep = (pcli->cycleStep + 1) % AccNum; if (pcli->cycleStep == t) return; - } - while (acc[pcli->cycleStep]->bIsVirtual || !acc[pcli->cycleStep]->bIsVisible); + } while (acc[pcli->cycleStep]->bIsVirtual || !acc[pcli->cycleStep]->bIsVisible); cliTrayCalcChanged(acc[pcli->cycleStep]->szModuleName, 0, 0); } @@ -531,18 +530,18 @@ int cliTrayIconInit(HWND hwnd) break; case TRAY_ICON_MODE_ACC: - { - ptrA szProto(db_get_sa(NULL, "CList", (!bDiffers) ? "tiAccS" : "tiAccV")); - if (!szProto) - break; + { + ptrA szProto(db_get_sa(NULL, "CList", (!bDiffers) ? "tiAccS" : "tiAccV")); + if (!szProto) + break; - PROTOACCOUNT *pa = ProtoGetAccount(szProto); - if (!pa || !pa->ppro) - pcli->pfnTrayIconAdd(hwnd, NULL, NULL, CListTray_GetGlobalStatus(0, 0)); - else - pcli->pfnTrayIconAdd(hwnd, pa->szModuleName, NULL, pa->ppro->m_iStatus); - } - break; + PROTOACCOUNT *pa = ProtoGetAccount(szProto); + if (!pa || !pa->ppro) + pcli->pfnTrayIconAdd(hwnd, NULL, NULL, CListTray_GetGlobalStatus(0, 0)); + else + pcli->pfnTrayIconAdd(hwnd, pa->szModuleName, NULL, pa->ppro->m_iStatus); + } + break; case TRAY_ICON_MODE_CYCLE: pcli->pfnTrayIconAdd(hwnd, NULL, NULL, CListTray_GetGlobalStatus(0, 0)); @@ -571,33 +570,33 @@ int cliTrayCalcChanged(const char *szChangedProto, int, int) { if (!szChangedProto) return -1; - + if (!pcli->trayIconCount) return -1; - + if (!pcli->pfnGetProtocolVisibility(szChangedProto)) return -1; bool bDiffers, bConn; GetGoodAccNum(&bDiffers, &bConn); - + // if the icon number to be changed, reinitialize module from scratch BYTE Mode = db_get_b(NULL, "CList", (!bDiffers) ? "tiModeS" : "tiModeV", TRAY_ICON_MODE_GLOBAL); if (Mode != OldMode) { OldMode = Mode; pcli->pfnTrayIconIconsChanged(); } - + HICON hIcon = NULL; int i = 0, iStatus; char *szProto; - + switch (Mode) { case TRAY_ICON_MODE_GLOBAL: hIcon = pcli->pfnGetIconFromStatusMode(NULL, NULL, CListTray_GetGlobalStatus(0, 0)); pcli->pfnTrayIconMakeTooltip(NULL, NULL); break; - + case TRAY_ICON_MODE_ACC: // В этом режиме показывается иконка совершенно определённого аккаунта, и не всегда это szChangedProto. szProto = db_get_sa(NULL, "CList", bDiffers ? "tiAccV" : "tiAccS"); @@ -609,10 +608,10 @@ int cliTrayCalcChanged(const char *szChangedProto, int, int) hIcon = (HICON)CLUI_GetConnectingIconService((WPARAM)szProto, 0); else hIcon = pcli->pfnGetIconFromStatusMode(NULL, szProto, ProtoCallService(szProto, PS_GETSTATUS, 0, 0)); - + pcli->pfnTrayIconMakeTooltip(NULL, szProto); break; - + case TRAY_ICON_MODE_CYCLE: iStatus = ProtoCallService(szChangedProto, PS_GETSTATUS, 0, 0); if (g_StatusBarData.bConnectingIcon && IsStatusConnecting(iStatus)) @@ -621,11 +620,11 @@ int cliTrayCalcChanged(const char *szChangedProto, int, int) hIcon = pcli->pfnGetIconFromStatusMode(NULL, szChangedProto, ProtoCallService(szChangedProto, PS_GETSTATUS, 0, 0)); pcli->pfnTrayIconMakeTooltip(NULL, NULL); break; - + case TRAY_ICON_MODE_ALL: // Какой индекс у аккаунта, который будем апдейтить? for (; i < pcli->trayIconCount; i++) - if (!strcmp(pcli->trayIcon[i].szProto, szChangedProto)) + if (!mir_strcmp(pcli->trayIcon[i].szProto, szChangedProto)) break; iStatus = ProtoCallService(szChangedProto, PS_GETSTATUS, 0, 0); @@ -649,7 +648,7 @@ int cliTrayCalcChanged(const char *szChangedProto, int, int) // if Tipper is missing or turned off for tray, use system tooltips if (!ServiceExists("mToolTip/ShowTip") || !db_get_b(NULL, "Tipper", "TrayTip", 1)) - lstrcpyn(nid.szTip, pcli->szTip, SIZEOF(nid.szTip)); + mir_tstrncpy(nid.szTip, pcli->szTip, SIZEOF(nid.szTip)); Shell_NotifyIcon(NIM_MODIFY, &nid); diff --git a/plugins/Clist_modern/src/modern_clui.cpp b/plugins/Clist_modern/src/modern_clui.cpp index 4e160f4ad0..8474bb8961 100644 --- a/plugins/Clist_modern/src/modern_clui.cpp +++ b/plugins/Clist_modern/src/modern_clui.cpp @@ -276,7 +276,7 @@ HRESULT CLUI::CreateCluiFrames() } CLUI::CLUI() : - m_hDwmapiDll(NULL) +m_hDwmapiDll(NULL) { m_pCLUI = this; g_CluiData.bSTATE = STATE_CLUI_LOADING; @@ -642,7 +642,7 @@ void CLUI_ChangeWindowMode() g_CluiData.fSmoothAnimation = db_get_b(NULL, "CLUI", "FadeInOut", SETTING_FADEIN_DEFAULT); if (g_bTransparentFlag == 0 && g_CluiData.bCurrentAlpha != 0) g_CluiData.bCurrentAlpha = 255; - + // 2 - Calculate STYLES and STYLESEX if (!g_CluiData.fLayered) { style = 0; @@ -1056,19 +1056,19 @@ int CLUI_ReloadCLUIOptions() g_CluiData.fAutoSize = db_get_b(NULL, "CLUI", "AutoSize", SETTING_AUTOSIZE_DEFAULT); g_CluiData.bInternalAwayMsgDiscovery = db_get_b(NULL, "ModernData", "InternalAwayMsgDiscovery", SETTING_INTERNALAWAYMSGREQUEST_DEFAULT); g_CluiData.bRemoveAwayMessageForOffline = db_get_b(NULL, "ModernData", "RemoveAwayMessageForOffline", SETTING_REMOVEAWAYMSGFOROFFLINE_DEFAULT); - + // window borders if (g_CluiData.fDisableSkinEngine) { - g_CluiData.LeftClientMargin = 0; - g_CluiData.RightClientMargin = 0; - g_CluiData.TopClientMargin = 0; + g_CluiData.LeftClientMargin = 0; + g_CluiData.RightClientMargin = 0; + g_CluiData.TopClientMargin = 0; g_CluiData.BottomClientMargin = 0; } else { // window borders - g_CluiData.LeftClientMargin = db_get_b(NULL, "CLUI", "LeftClientMargin", SETTING_LEFTCLIENTMARIGN_DEFAULT); - g_CluiData.RightClientMargin = db_get_b(NULL, "CLUI", "RightClientMargin", SETTING_RIGHTCLIENTMARIGN_DEFAULT); - g_CluiData.TopClientMargin = db_get_b(NULL, "CLUI", "TopClientMargin", SETTING_TOPCLIENTMARIGN_DEFAULT); + g_CluiData.LeftClientMargin = db_get_b(NULL, "CLUI", "LeftClientMargin", SETTING_LEFTCLIENTMARIGN_DEFAULT); + g_CluiData.RightClientMargin = db_get_b(NULL, "CLUI", "RightClientMargin", SETTING_RIGHTCLIENTMARIGN_DEFAULT); + g_CluiData.TopClientMargin = db_get_b(NULL, "CLUI", "TopClientMargin", SETTING_TOPCLIENTMARIGN_DEFAULT); g_CluiData.BottomClientMargin = db_get_b(NULL, "CLUI", "BottomClientMargin", SETTING_BOTTOMCLIENTMARIGN_DEFAULT); } BroadCastMessageToChild(pcli->hwndContactList, WM_THEMECHANGED, 0, 0); diff --git a/plugins/Clist_modern/src/modern_row.cpp b/plugins/Clist_modern/src/modern_row.cpp index 0ea04b808f..52a530e276 100644 --- a/plugins/Clist_modern/src/modern_row.cpp +++ b/plugins/Clist_modern/src/modern_row.cpp @@ -222,40 +222,40 @@ void rowParserGetParam(ROWCELL* &cell, char *tbuf, int &hbuf) char * word = rowParserGetNextWord(tbuf, hbuf); int param = 0; - if (!_strnicmp(word, "avatar", strlen(word))) param = TC_AVATAR; - else if (!_strnicmp(word, "text1", strlen(word))) param = TC_TEXT1; - else if (!_strnicmp(word, "text2", strlen(word))) param = TC_TEXT2; - else if (!_strnicmp(word, "text3", strlen(word))) param = TC_TEXT3; - else if (!_strnicmp(word, "status", strlen(word))) param = TC_STATUS; - else if (!_strnicmp(word, "extra", strlen(word))) param = TC_EXTRA; - else if (!_strnicmp(word, "extra1", strlen(word))) param = TC_EXTRA1; - else if (!_strnicmp(word, "extra2", strlen(word))) param = TC_EXTRA2; - else if (!_strnicmp(word, "extra3", strlen(word))) param = TC_EXTRA3; - else if (!_strnicmp(word, "extra4", strlen(word))) param = TC_EXTRA4; - else if (!_strnicmp(word, "extra5", strlen(word))) param = TC_EXTRA5; - else if (!_strnicmp(word, "extra6", strlen(word))) param = TC_EXTRA6; - else if (!_strnicmp(word, "extra7", strlen(word))) param = TC_EXTRA7; - else if (!_strnicmp(word, "extra8", strlen(word))) param = TC_EXTRA8; - else if (!_strnicmp(word, "extra9", strlen(word))) param = TC_EXTRA9; - else if (!_strnicmp(word, "time", strlen(word))) param = TC_TIME; - else if (!_strnicmp(word, "space", strlen(word))) param = TC_SPACE; - else if (!_strnicmp(word, "fspace", strlen(word))) param = TC_FIXED; - - else if (!_strnicmp(word, "left", strlen(word))) param = TC_LEFT; - else if (!_strnicmp(word, "top", strlen(word))) param = TC_TOP; - else if (!_strnicmp(word, "vcenter", strlen(word))) param = TC_VCENTER; - else if (!_strnicmp(word, "hcenter", strlen(word))) param = TC_HCENTER; - else if (!_strnicmp(word, "right", strlen(word))) param = TC_RIGHT; - else if (!_strnicmp(word, "bottom", strlen(word))) param = TC_BOTTOM; - - else if (!_strnicmp(word, "layer", strlen(word))) cell->layer = TRUE; - - else if (!_strnicmp(word, "width", strlen(word))) param = TC_WIDTH; - else if (!_strnicmp(word, "height", strlen(word))) param = TC_HEIGHT; + if (!_strnicmp(word, "avatar", mir_strlen(word))) param = TC_AVATAR; + else if (!_strnicmp(word, "text1", mir_strlen(word))) param = TC_TEXT1; + else if (!_strnicmp(word, "text2", mir_strlen(word))) param = TC_TEXT2; + else if (!_strnicmp(word, "text3", mir_strlen(word))) param = TC_TEXT3; + else if (!_strnicmp(word, "status", mir_strlen(word))) param = TC_STATUS; + else if (!_strnicmp(word, "extra", mir_strlen(word))) param = TC_EXTRA; + else if (!_strnicmp(word, "extra1", mir_strlen(word))) param = TC_EXTRA1; + else if (!_strnicmp(word, "extra2", mir_strlen(word))) param = TC_EXTRA2; + else if (!_strnicmp(word, "extra3", mir_strlen(word))) param = TC_EXTRA3; + else if (!_strnicmp(word, "extra4", mir_strlen(word))) param = TC_EXTRA4; + else if (!_strnicmp(word, "extra5", mir_strlen(word))) param = TC_EXTRA5; + else if (!_strnicmp(word, "extra6", mir_strlen(word))) param = TC_EXTRA6; + else if (!_strnicmp(word, "extra7", mir_strlen(word))) param = TC_EXTRA7; + else if (!_strnicmp(word, "extra8", mir_strlen(word))) param = TC_EXTRA8; + else if (!_strnicmp(word, "extra9", mir_strlen(word))) param = TC_EXTRA9; + else if (!_strnicmp(word, "time", mir_strlen(word))) param = TC_TIME; + else if (!_strnicmp(word, "space", mir_strlen(word))) param = TC_SPACE; + else if (!_strnicmp(word, "fspace", mir_strlen(word))) param = TC_FIXED; + + else if (!_strnicmp(word, "left", mir_strlen(word))) param = TC_LEFT; + else if (!_strnicmp(word, "top", mir_strlen(word))) param = TC_TOP; + else if (!_strnicmp(word, "vcenter", mir_strlen(word))) param = TC_VCENTER; + else if (!_strnicmp(word, "hcenter", mir_strlen(word))) param = TC_HCENTER; + else if (!_strnicmp(word, "right", mir_strlen(word))) param = TC_RIGHT; + else if (!_strnicmp(word, "bottom", mir_strlen(word))) param = TC_BOTTOM; + + else if (!_strnicmp(word, "layer", mir_strlen(word))) cell->layer = TRUE; + + else if (!_strnicmp(word, "width", mir_strlen(word))) param = TC_WIDTH; + else if (!_strnicmp(word, "height", mir_strlen(word))) param = TC_HEIGHT; else { - hbuf -= (int)strlen(word); + hbuf -= (int)mir_strlen(word); return; } @@ -326,11 +326,11 @@ BOOL rowParse(ROWCELL* &cell, ROWCELL* parent, char *tbuf, int &hbuf, int &seque word = rowParserGetNextWord(tbuf, hbuf); int cont; - if (!_strnicmp(word, "", strlen(word))) cont = TC_ROW; - else if (!_strnicmp(word, "", strlen(word))) cont = TC_COL; - else if (!_strnicmp(word, "/>", strlen(word)) || - !_strnicmp(word, "", strlen(word)) || - !_strnicmp(word, "", strlen(word))) return TRUE; + if (!_strnicmp(word, "", mir_strlen(word))) cont = TC_ROW; + else if (!_strnicmp(word, "", mir_strlen(word))) cont = TC_COL; + else if (!_strnicmp(word, "/>", mir_strlen(word)) || + !_strnicmp(word, "", mir_strlen(word)) || + !_strnicmp(word, "", mir_strlen(word))) return TRUE; else return FALSE; rowAddCell(cell, cont); diff --git a/plugins/Clist_modern/src/modern_rowheight_funcs.cpp b/plugins/Clist_modern/src/modern_rowheight_funcs.cpp index f6a450aa27..bc2aee1df6 100644 --- a/plugins/Clist_modern/src/modern_rowheight_funcs.cpp +++ b/plugins/Clist_modern/src/modern_rowheight_funcs.cpp @@ -318,11 +318,7 @@ int mod_CalcRowHeight_worker(ClcData *dat, HWND hwnd, ClcContact *contact, int i return height; } -/* -* -*/ - -BOOL RowHeights_Initialize(struct ClcData *dat) +BOOL RowHeights_Initialize(struct ClcData *dat) { dat->rowHeight = 0; dat->row_heights_size = 0; @@ -589,7 +585,7 @@ int RowHeights_GetRowHeight_worker(ClcData *dat, HWND hwnd, ClcContact *contact, // Icon size if (!dat->icon_ignore_size_for_row_height) { - if (contact->type == CLCIT_GROUP || + if (contact->type == CLCIT_GROUP || (contact->type == CLCIT_CONTACT && contact->iImage != -1 && !(dat->icon_hide_on_avatar && dat->avatars_show && contact->avatar_data != NULL && !contact->image_is_special))) { height = max(height, ICON_HEIGHT); diff --git a/plugins/Clist_modern/src/modern_rowtemplateopt.cpp b/plugins/Clist_modern/src/modern_rowtemplateopt.cpp index 02600b8d03..fd468c8d70 100644 --- a/plugins/Clist_modern/src/modern_rowtemplateopt.cpp +++ b/plugins/Clist_modern/src/modern_rowtemplateopt.cpp @@ -317,16 +317,16 @@ void RefreshTree(HWND hwndDlg, HTREEITEM hti) if (cell->type == 0) mir_sntprintf(buf, SIZEOF(buf), TranslateT("Empty %s cell"), cell->cont == TC_COL ? TranslateT("column") : TranslateT("line")); else - _tcsncpy_s(buf, TranslateTS(types[cell->type]), _TRUNCATE); + mir_tstrncpy(buf, TranslateTS(types[cell->type]), SIZEOF(buf)); } else { if (cell->type == 0) - _tcsncpy_s(buf, (cell->cont != TC_COL ? TranslateT("columns") : TranslateT("lines")), _TRUNCATE); + mir_tstrncpy(buf, (cell->cont != TC_COL ? TranslateT("columns") : TranslateT("lines")), SIZEOF(buf)); else mir_sntprintf(buf, SIZEOF(buf), TranslateT("%s, contain %s"), TranslateTS(types[cell->type]), cell->cont != TC_COL ? TranslateT("columns") : TranslateT("lines")); } - if (cell->layer) _tcsncat_s(buf, TranslateT(" layered"),_TRUNCATE); + if (cell->layer) mir_tstrncat(buf, TranslateT(" layered"), _TRUNCATE); tvi.mask = TVIF_HANDLE | TVIF_TEXT; tvi.pszText = buf; TreeView_SetItem(htree, &tvi); diff --git a/plugins/Clist_modern/src/modern_skinbutton.cpp b/plugins/Clist_modern/src/modern_skinbutton.cpp index 6d0617bbff..3049b8f7e5 100644 --- a/plugins/Clist_modern/src/modern_skinbutton.cpp +++ b/plugins/Clist_modern/src/modern_skinbutton.cpp @@ -266,7 +266,7 @@ static int ModernSkinButtonToggleDBValue(char * ValueDBSection, char *ValueTypeD static char *_skipblank(char * str) //str will be modified; { - char * endstr = str + strlen(str); + char * endstr = str + mir_strlen(str); while ((*str == ' ' || *str == '\t') && *str != '\0') str++; while ((*endstr == ' ' || *endstr == '\t') && *endstr != '\0' && endstr < str) endstr--; if (*endstr != '\0') @@ -285,7 +285,7 @@ static int _CallServiceStrParams(IN char * toParce, OUT int *Return) char *pszService = mir_strdup(toParce); if (!pszService) return 0; - if (strlen(pszService) == 0) { + if (mir_strlen(pszService) == 0) { mir_free(pszService); return 0; } @@ -295,7 +295,7 @@ static int _CallServiceStrParams(IN char * toParce, OUT int *Return) paramCount++; *param2 = '\0'; param2++; _skipblank(param2); - if (strlen(param2) == 0) + if (mir_strlen(param2) == 0) param2 = NULL; } char *param1 = strrchr(pszService, '%'); @@ -304,13 +304,13 @@ static int _CallServiceStrParams(IN char * toParce, OUT int *Return) paramCount++; *param1 = '\0'; param1++; _skipblank(param1); - if (strlen(param1) == 0) + if (mir_strlen(param1) == 0) param1 = NULL; } if (param1 && *param1 == '\"') { param1++; - *(param1 + strlen(param1)) = '\0'; + *(param1 + mir_strlen(param1)) = '\0'; } else if (param1) { @@ -319,7 +319,7 @@ static int _CallServiceStrParams(IN char * toParce, OUT int *Return) if (param2 && *param2 == '\"') { param2++; - *(param2 + strlen(param2)) = '\0'; + *(param2 + mir_strlen(param2)) = '\0'; } else if (param2) param2 = (char*)atoi(param2); @@ -399,12 +399,12 @@ static LRESULT CALLBACK ModernSkinButtonWndProc(HWND hwndDlg, UINT msg, WPARAM w break; // DONT! fall thru case WM_SETCURSOR: - { - HCURSOR hCurs1 = LoadCursor(NULL, IDC_ARROW); - if (hCurs1) SetCursor(hCurs1); - if (bct) SetToolTip(hwndDlg, bct->Hint); - } - return 1; + { + HCURSOR hCurs1 = LoadCursor(NULL, IDC_ARROW); + if (hCurs1) SetCursor(hCurs1); + if (bct) SetToolTip(hwndDlg, bct->Hint); + } + return 1; case WM_PRINT: if (IsWindowVisible(hwndDlg)) diff --git a/plugins/Clist_modern/src/modern_skinengine.cpp b/plugins/Clist_modern/src/modern_skinengine.cpp index e0aa2ce889..2eac19011f 100644 --- a/plugins/Clist_modern/src/modern_skinengine.cpp +++ b/plugins/Clist_modern/src/modern_skinengine.cpp @@ -185,15 +185,15 @@ HRESULT IniParser::WriteStrToDb(const char * szSection, const char * szName, con int IniParser::GetSkinFolder(IN const TCHAR * szFileName, OUT TCHAR * pszFolderName) { TCHAR *szBuff = mir_tstrdup(szFileName); - TCHAR *pszPos = szBuff + _tcslen(szBuff); + TCHAR *pszPos = szBuff + mir_tstrlen(szBuff); while (pszPos > szBuff && *pszPos != _T('.')) { pszPos--; } *pszPos = _T('\0'); - _tcscpy(pszFolderName, szBuff); + mir_tstrcpy(pszFolderName, szBuff); TCHAR custom_folder[MAX_PATH], cus[MAX_PATH]; TCHAR *b3; - _tcsncpy(custom_folder, pszFolderName, MAX_PATH-1); - b3 = custom_folder + _tcslen(custom_folder); + mir_tstrncpy(custom_folder, pszFolderName, SIZEOF(custom_folder)); + b3 = custom_folder + mir_tstrlen(custom_folder); while (b3 > custom_folder && *b3 != _T('\\')) { b3--; } *b3 = _T('\0'); @@ -288,7 +288,7 @@ const char * IniParser::_RemoveTailings(const char * szLine, size_t& len) const char * pStart = szLine; while (*pStart == ' ' || *pStart == '\t') pStart++; //skip spaces at begin - const char * pEnd = pStart + strlen(pStart); + const char * pEnd = pStart + mir_strlen(pStart); while (pEnd > pStart && (*pEnd == ' ' || *pEnd == '\t' || *pEnd == '\n' || *pEnd == '\r')) pEnd--; @@ -299,7 +299,7 @@ const char * IniParser::_RemoveTailings(const char * szLine, size_t& len) BOOL IniParser::_DoParseLine(char *szLine) { _nLine++; - size_t len = strlen(szLine); + size_t len = mir_strlen(szLine); if (len == 0) return TRUE; @@ -322,7 +322,7 @@ BOOL IniParser::_DoParseLine(char *szLine) DWORD sectionLen = ebuf - tbuf; _szSection = (char*)mir_alloc(sectionLen + 1); - strncpy(_szSection, tbuf, sectionLen); + mir_strncpy(_szSection, tbuf, sectionLen); _szSection[sectionLen] = '\0'; } return TRUE; @@ -334,7 +334,7 @@ BOOL IniParser::_DoParseLine(char *szLine) char *keyName = szLine; char *keyValue = szLine; - size_t eqPlace = 0, len2 = strlen(keyName); + size_t eqPlace = 0, len2 = mir_strlen(keyName); while (eqPlace < len2 && keyName[eqPlace] != '=') eqPlace++; //find '=' @@ -1382,7 +1382,7 @@ INT_PTR ske_Service_DrawGlyph(WPARAM wParam, LPARAM lParam) LPSKINDRAWREQUEST preq = (LPSKINDRAWREQUEST)wParam; if (preq == NULL) return -1; - + mir_cslock lck(cs_SkinChanging); LPSKINOBJECTDESCRIPTOR pgl = (lParam ? ske_FindObjectByMask((MODERNMASK*)lParam, NULL) : ske_FindObject(preq->szObjectID, NULL)); @@ -1462,7 +1462,7 @@ int ske_GetFullFilename(TCHAR *buf, const TCHAR *file, TCHAR *skinfolder, BOOL m if (file[0] != '\\' && file[1] != ':') mir_sntprintf(b2, SIZEOF(b2), _T("%s\\%s"), (skinfolder == NULL) ? SkinPlace : ((INT_PTR)skinfolder != -1) ? skinfolder : _T(""), file); else - _tcsncpy(b2, file, SIZEOF(b2)); + mir_tstrncpy(b2, file, SIZEOF(b2)); if (madeAbsolute) { if (b2[0] == '\\' && b2[1] != '\\') @@ -1470,7 +1470,7 @@ int ske_GetFullFilename(TCHAR *buf, const TCHAR *file, TCHAR *skinfolder, BOOL m else PathToAbsoluteT(b2, buf); } - else _tcsncpy(buf, b2, MAX_PATH); + else mir_tstrncpy(buf, b2, MAX_PATH); mir_free(SkinPlace); return 0; @@ -1742,7 +1742,7 @@ HBITMAP ske_LoadGlyphImage(const TCHAR *tszFileName) return NULL; // add to loaded list - if (dwLoadedImagesCount + 1>dwLoadedImagesAlocated) { + if (dwLoadedImagesCount + 1 > dwLoadedImagesAlocated) { pLoadedImages = (GLYPHIMAGE*)mir_realloc(pLoadedImages, sizeof(GLYPHIMAGE)*(dwLoadedImagesCount + 1)); if (!pLoadedImages) return NULL; @@ -1761,7 +1761,7 @@ int ske_UnloadGlyphImage(HBITMAP hbmp) for (DWORD i = 0; i < dwLoadedImagesCount && pLoadedImages; i++) { if (hbmp != pLoadedImages[i].hGlyph) continue; - + pLoadedImages[i].dwLoadedTimes--; if (pLoadedImages[i].dwLoadedTimes == 0) { LPGLYPHIMAGE gl = &(pLoadedImages[i]); @@ -1802,7 +1802,7 @@ int ske_UnloadSkin(SKINOBJECTSLIST * Skin) if (Skin->pTextList) List_Destroy(Skin->pTextList); mir_free_and_nil(Skin->pTextList); ModernSkinButtonDeleteAll(); - if (Skin->dwObjLPAlocated == 0) + if (Skin->dwObjLPAlocated == 0) return 0; for (DWORD i = 0; i < Skin->dwObjLPAlocated; i++) { @@ -1854,7 +1854,7 @@ static void RegisterMaskByParce(const char *szSetting, char *szValue, SKINOBJECT DWORD ID = atoi(szSetting + 1); Mask = szValue + i + 1; Obj = (char*)mir_alloc(i + 1); - strncpy(Obj, szValue, i); + mir_strncpy(Obj, szValue, i); Obj[i] = '\0'; res = AddStrModernMaskToList(ID, Mask, Obj, pSkin->pMaskList); mir_free(Obj); @@ -2307,7 +2307,7 @@ static int ske_AlphaTextOut(HDC hDC, LPCTSTR lpString, int nCount, RECT *lpRect, int workRectWidth = workRect.right - workRect.left; int workRectHeight = workRect.bottom - workRect.top; if (workRectWidth <= 0 || workRectHeight <= 0) { - if(destHasNotDIB) + if (destHasNotDIB) mir_free(pDestBits); return 0; } @@ -2649,7 +2649,7 @@ BOOL ske_DrawIconEx(HDC hdcDst, int xLeft, int yTop, HICON hIcon, int cxWidth, i DeleteObject(ici.hbmMask); return 0; } - + BITMAP immaskbt; GetObject(ici.hbmMask, sizeof(BITMAP), &immaskbt); DWORD cy = imbt.bmHeight; @@ -2667,7 +2667,7 @@ BOOL ske_DrawIconEx(HDC hdcDst, int xLeft, int yTop, HICON hIcon, int cxWidth, i } DeleteDC(tempDC1); } - + bool NoDIBImage = (imbt.bmBits == NULL); if (NoDIBImage) { imimagbits = (BYTE*)malloc(cy*imbt.bmWidthBytes); @@ -3492,7 +3492,7 @@ static void ske_AddParseSkinFont(char * szFontID, char * szDefineString) logfont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; char buf[255]; - strncpy(logfont.lfFaceName, GetParamN(szDefineString, buf, sizeof(buf), 0, ',', TRUE), 32); + mir_strncpy(logfont.lfFaceName, GetParamN(szDefineString, buf, sizeof(buf), 0, ',', TRUE), SIZEOF(logfont.lfFaceName)); logfont.lfHeight = atoi(GetParamN(szDefineString, buf, sizeof(buf), 1, ',', TRUE)); if (logfont.lfHeight < 0) { HDC hdc = CreateCompatibleDC(NULL); @@ -3749,13 +3749,13 @@ HICON ske_CreateJoinedIcon(HICON hBottom, HICON hTop, BYTE alpha) } #define NEWJOINEDSTR(destination, first, separator, last) \ - destination = (char*)alloca(strlen(first)+strlen(separator)+strlen(last)+1); \ + destination = (char*)alloca(mir_strlen(first)+mir_strlen(separator)+mir_strlen(last)+1); \ if (destination) { \ *destination = '\0'; \ - strcat(destination,first); \ - strcat(destination,separator); \ - strcat(destination,last); \ - } + mir_strcat(destination,first); \ + mir_strcat(destination,separator); \ + mir_strcat(destination,last); \ + } #define SKINSETSECTION "SkinnedSettings" diff --git a/plugins/Clist_modern/src/modern_skinopt.cpp b/plugins/Clist_modern/src/modern_skinopt.cpp index 2a9fe1b69e..1e6ff91483 100644 --- a/plugins/Clist_modern/src/modern_skinopt.cpp +++ b/plugins/Clist_modern/src/modern_skinopt.cpp @@ -105,39 +105,39 @@ INT_PTR CALLBACK DlgSkinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPara break; case IDC_BUTTON_INFO: + { + TCHAR Author[255], URL[MAX_PATH], Contact[255], Description[400], text[2000]; + SkinListData *sd = NULL; + HTREEITEM hti = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_TREE1)); + if (hti == 0) return 0; { - TCHAR Author[255], URL[MAX_PATH], Contact[255], Description[400], text[2000]; - SkinListData *sd = NULL; - HTREEITEM hti = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_TREE1)); - if (hti == 0) return 0; - { - TVITEM tvi = { 0 }; - tvi.hItem = hti; - tvi.mask = TVIF_HANDLE | TVIF_PARAM; - TreeView_GetItem(GetDlgItem(hwndDlg, IDC_TREE1), &tvi); - sd = (SkinListData*)(tvi.lParam); - } - if (!sd) return 0; - if (sd->File && !_tcschr(sd->File, _T('%'))) { - GetPrivateProfileString(_T("Skin_Description_Section"), _T("Author"), TranslateT("( unknown )"), Author, SIZEOF(Author), sd->File); - GetPrivateProfileString(_T("Skin_Description_Section"), _T("URL"), _T(""), URL, SIZEOF(URL), sd->File); - GetPrivateProfileString(_T("Skin_Description_Section"), _T("Contact"), _T(""), Contact, SIZEOF(Contact), sd->File); - GetPrivateProfileString(_T("Skin_Description_Section"), _T("Description"), _T(""), Description, SIZEOF(Description), sd->File); - mir_sntprintf(text, SIZEOF(text), TranslateT("%s\n\n%s\n\nAuthor(s):\t %s\nContact:\t %s\nWeb:\t %s\n\nFile:\t %s"), - sd->Name, Description, Author, Contact, URL, sd->File); - } - else { - mir_sntprintf(text, SIZEOF(text), TranslateT("%s\n\n%s\n\nAuthor(s): %s\nContact:\t %s\nWeb:\t %s\n\nFile:\t %s"), - TranslateT("reVista for Modern v0.5"), - TranslateT("This is second default Modern Contact list skin in Vista Aero style"), - TranslateT("Angeli-Ka (graphics), FYR (template)"), - _T("JID: fyr@jabber.ru"), - _T("fyr.mirandaim.ru"), - TranslateT("Inside library")); - } - MessageBox(hwndDlg, text, TranslateT("Skin information"), MB_OK | MB_ICONINFORMATION); + TVITEM tvi = { 0 }; + tvi.hItem = hti; + tvi.mask = TVIF_HANDLE | TVIF_PARAM; + TreeView_GetItem(GetDlgItem(hwndDlg, IDC_TREE1), &tvi); + sd = (SkinListData*)(tvi.lParam); } - break; + if (!sd) return 0; + if (sd->File && !_tcschr(sd->File, _T('%'))) { + GetPrivateProfileString(_T("Skin_Description_Section"), _T("Author"), TranslateT("( unknown )"), Author, SIZEOF(Author), sd->File); + GetPrivateProfileString(_T("Skin_Description_Section"), _T("URL"), _T(""), URL, SIZEOF(URL), sd->File); + GetPrivateProfileString(_T("Skin_Description_Section"), _T("Contact"), _T(""), Contact, SIZEOF(Contact), sd->File); + GetPrivateProfileString(_T("Skin_Description_Section"), _T("Description"), _T(""), Description, SIZEOF(Description), sd->File); + mir_sntprintf(text, SIZEOF(text), TranslateT("%s\n\n%s\n\nAuthor(s):\t %s\nContact:\t %s\nWeb:\t %s\n\nFile:\t %s"), + sd->Name, Description, Author, Contact, URL, sd->File); + } + else { + mir_sntprintf(text, SIZEOF(text), TranslateT("%s\n\n%s\n\nAuthor(s): %s\nContact:\t %s\nWeb:\t %s\n\nFile:\t %s"), + TranslateT("reVista for Modern v0.5"), + TranslateT("This is second default Modern Contact list skin in Vista Aero style"), + TranslateT("Angeli-Ka (graphics), FYR (template)"), + _T("JID: fyr@jabber.ru"), + _T("fyr.mirandaim.ru"), + TranslateT("Inside library")); + } + MessageBox(hwndDlg, text, TranslateT("Skin information"), MB_OK | MB_ICONINFORMATION); + } + break; case IDC_BUTTON_APPLY_SKIN: if (HIWORD(wParam) == BN_CLICKED) { @@ -230,88 +230,88 @@ INT_PTR CALLBACK DlgSkinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPara case WM_NOTIFY: switch (((LPNMHDR)lParam)->idFrom) { case IDC_TREE1: - { - NMTREEVIEW * nmtv = (NMTREEVIEW *)lParam; - if (nmtv == NULL) - return 0; - - if (nmtv->hdr.code == TVN_SELCHANGED) { - SkinListData * sd = NULL; - if (hPreviewBitmap) { - ske_UnloadGlyphImage(hPreviewBitmap); - hPreviewBitmap = NULL; - } + { + NMTREEVIEW * nmtv = (NMTREEVIEW *)lParam; + if (nmtv == NULL) + return 0; + + if (nmtv->hdr.code == TVN_SELCHANGED) { + SkinListData * sd = NULL; + if (hPreviewBitmap) { + ske_UnloadGlyphImage(hPreviewBitmap); + hPreviewBitmap = NULL; + } - if (nmtv->itemNew.lParam) { - sd = (SkinListData*)nmtv->itemNew.lParam; - - TCHAR buf[MAX_PATH]; - PathToRelativeT(sd->File, buf); - SetDlgItemText(hwndDlg, IDC_EDIT_SKIN_FILENAME, buf); - - TCHAR prfn[MAX_PATH] = { 0 }, imfn[MAX_PATH] = { 0 }, skinfolder[MAX_PATH] = { 0 }; - GetPrivateProfileString(_T("Skin_Description_Section"), _T("Preview"), _T(""), imfn, SIZEOF(imfn), sd->File); - IniParser::GetSkinFolder(sd->File, skinfolder); - mir_sntprintf(prfn, SIZEOF(prfn), _T("%s\\%s"), skinfolder, imfn); - PathToAbsoluteT(prfn, imfn); - hPreviewBitmap = ske_LoadGlyphImage(imfn); - - EnableWindow(GetDlgItem(hwndDlg, IDC_BUTTON_APPLY_SKIN), TRUE); - EnableWindow(GetDlgItem(hwndDlg, IDC_BUTTON_INFO), TRUE); - if (hPreviewBitmap) - InvalidateRect(GetDlgItem(hwndDlg, IDC_PREVIEW), NULL, TRUE); - else { //prepare text - TCHAR Author[255], URL[MAX_PATH], Contact[255], Description[400], text[2000]; - SkinListData* sd = NULL; - HTREEITEM hti = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_TREE1)); - if (hti == 0) return 0; - { - TVITEM tvi = { 0 }; - tvi.hItem = hti; - tvi.mask = TVIF_HANDLE | TVIF_PARAM; - TreeView_GetItem(GetDlgItem(hwndDlg, IDC_TREE1), &tvi); - sd = (SkinListData*)(tvi.lParam); - } - if (!sd) return 0; - - if (sd->File && !_tcschr(sd->File, _T('%'))) { - GetPrivateProfileString(_T("Skin_Description_Section"), _T("Author"), TranslateT("( unknown )"), Author, SIZEOF(Author), sd->File); - GetPrivateProfileString(_T("Skin_Description_Section"), _T("URL"), _T(""), URL, SIZEOF(URL), sd->File); - GetPrivateProfileString(_T("Skin_Description_Section"), _T("Contact"), _T(""), Contact, SIZEOF(Contact), sd->File); - GetPrivateProfileString(_T("Skin_Description_Section"), _T("Description"), _T(""), Description, SIZEOF(Description), sd->File); - mir_sntprintf(text, SIZEOF(text), TranslateT("Preview is not available\n\n%s\n----------------------\n\n%s\n\nAUTHOR(S):\n%s\n\nCONTACT:\n%s\n\nHOMEPAGE:\n%s"), - sd->Name, Description, Author, Contact, URL); - } - else { - mir_sntprintf(text, SIZEOF(text), TranslateT("%s\n\n%s\n\nAUTHORS:\n%s\n\nCONTACT:\n%s\n\nWEB:\n%s\n\n\n"), - TranslateT("reVista for Modern v0.5"), - TranslateT("This is second default Modern Contact list skin in Vista Aero style"), - TranslateT("graphics by Angeli-Ka\ntemplate by FYR"), - _T("JID: fyr@jabber.ru"), - _T("fyr.mirandaim.ru")); - } - ShowWindow(GetDlgItem(hwndDlg, IDC_PREVIEW), SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg, IDC_STATIC_INFO), SW_SHOW); - SetDlgItemText(hwndDlg, IDC_STATIC_INFO, text); + if (nmtv->itemNew.lParam) { + sd = (SkinListData*)nmtv->itemNew.lParam; + + TCHAR buf[MAX_PATH]; + PathToRelativeT(sd->File, buf); + SetDlgItemText(hwndDlg, IDC_EDIT_SKIN_FILENAME, buf); + + TCHAR prfn[MAX_PATH] = { 0 }, imfn[MAX_PATH] = { 0 }, skinfolder[MAX_PATH] = { 0 }; + GetPrivateProfileString(_T("Skin_Description_Section"), _T("Preview"), _T(""), imfn, SIZEOF(imfn), sd->File); + IniParser::GetSkinFolder(sd->File, skinfolder); + mir_sntprintf(prfn, SIZEOF(prfn), _T("%s\\%s"), skinfolder, imfn); + PathToAbsoluteT(prfn, imfn); + hPreviewBitmap = ske_LoadGlyphImage(imfn); + + EnableWindow(GetDlgItem(hwndDlg, IDC_BUTTON_APPLY_SKIN), TRUE); + EnableWindow(GetDlgItem(hwndDlg, IDC_BUTTON_INFO), TRUE); + if (hPreviewBitmap) + InvalidateRect(GetDlgItem(hwndDlg, IDC_PREVIEW), NULL, TRUE); + else { //prepare text + TCHAR Author[255], URL[MAX_PATH], Contact[255], Description[400], text[2000]; + SkinListData* sd = NULL; + HTREEITEM hti = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_TREE1)); + if (hti == 0) return 0; + { + TVITEM tvi = { 0 }; + tvi.hItem = hti; + tvi.mask = TVIF_HANDLE | TVIF_PARAM; + TreeView_GetItem(GetDlgItem(hwndDlg, IDC_TREE1), &tvi); + sd = (SkinListData*)(tvi.lParam); + } + if (!sd) return 0; + + if (sd->File && !_tcschr(sd->File, _T('%'))) { + GetPrivateProfileString(_T("Skin_Description_Section"), _T("Author"), TranslateT("( unknown )"), Author, SIZEOF(Author), sd->File); + GetPrivateProfileString(_T("Skin_Description_Section"), _T("URL"), _T(""), URL, SIZEOF(URL), sd->File); + GetPrivateProfileString(_T("Skin_Description_Section"), _T("Contact"), _T(""), Contact, SIZEOF(Contact), sd->File); + GetPrivateProfileString(_T("Skin_Description_Section"), _T("Description"), _T(""), Description, SIZEOF(Description), sd->File); + mir_sntprintf(text, SIZEOF(text), TranslateT("Preview is not available\n\n%s\n----------------------\n\n%s\n\nAUTHOR(S):\n%s\n\nCONTACT:\n%s\n\nHOMEPAGE:\n%s"), + sd->Name, Description, Author, Contact, URL); + } + else { + mir_sntprintf(text, SIZEOF(text), TranslateT("%s\n\n%s\n\nAUTHORS:\n%s\n\nCONTACT:\n%s\n\nWEB:\n%s\n\n\n"), + TranslateT("reVista for Modern v0.5"), + TranslateT("This is second default Modern Contact list skin in Vista Aero style"), + TranslateT("graphics by Angeli-Ka\ntemplate by FYR"), + _T("JID: fyr@jabber.ru"), + _T("fyr.mirandaim.ru")); } - } - else { - //no selected - SetDlgItemText(hwndDlg, IDC_EDIT_SKIN_FILENAME, TranslateT("Select skin from list")); - EnableWindow(GetDlgItem(hwndDlg, IDC_BUTTON_APPLY_SKIN), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDC_BUTTON_INFO), FALSE); - SetDlgItemText(hwndDlg, IDC_STATIC_INFO, TranslateT("Please select skin to apply")); ShowWindow(GetDlgItem(hwndDlg, IDC_PREVIEW), SW_HIDE); + ShowWindow(GetDlgItem(hwndDlg, IDC_STATIC_INFO), SW_SHOW); + SetDlgItemText(hwndDlg, IDC_STATIC_INFO, text); } - ShowWindow(GetDlgItem(hwndDlg, IDC_PREVIEW), hPreviewBitmap ? SW_SHOW : SW_HIDE); - return 0; } - else if (nmtv->hdr.code == TVN_DELETEITEM) { - mir_free_and_nil(nmtv->itemOld.lParam); - return 0; + else { + //no selected + SetDlgItemText(hwndDlg, IDC_EDIT_SKIN_FILENAME, TranslateT("Select skin from list")); + EnableWindow(GetDlgItem(hwndDlg, IDC_BUTTON_APPLY_SKIN), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_BUTTON_INFO), FALSE); + SetDlgItemText(hwndDlg, IDC_STATIC_INFO, TranslateT("Please select skin to apply")); + ShowWindow(GetDlgItem(hwndDlg, IDC_PREVIEW), SW_HIDE); } + ShowWindow(GetDlgItem(hwndDlg, IDC_PREVIEW), hPreviewBitmap ? SW_SHOW : SW_HIDE); + return 0; } - break; + else if (nmtv->hdr.code == TVN_DELETEITEM) { + mir_free_and_nil(nmtv->itemOld.lParam); + return 0; + } + } + break; case 0: switch (((LPNMHDR)lParam)->code) { @@ -346,7 +346,7 @@ int SearchSkinFiles(HWND hwndDlg, TCHAR * Folder) hFile = _tfindfirst(mask, &fd); { do { - if (fd.attrib&_A_SUBDIR && !(_tcsicmp(fd.name, _T(".")) == 0 || _tcsicmp(fd.name, _T("..")) == 0)) + if (fd.attrib&_A_SUBDIR && !(mir_tstrcmpi(fd.name, _T(".")) == 0 || mir_tstrcmpi(fd.name, _T("..")) == 0)) {//Next level of subfolders TCHAR path[MAX_PATH]; mir_sntprintf(path, SIZEOF(path), _T("%s\\%s"), Folder, fd.name); @@ -384,8 +384,8 @@ HTREEITEM AddSkinToListFullName(HWND hwndDlg, TCHAR * fullName) TCHAR path[MAX_PATH] = { 0 }; TCHAR file[MAX_PATH] = { 0 }; TCHAR *buf; - _tcsncpy(path, fullName, SIZEOF(path)); - buf = path + _tcslen(path); + mir_tstrncpy(path, fullName, SIZEOF(path)); + buf = path + mir_tstrlen(path); while (buf > path) { if (*buf == _T('\\')) @@ -396,7 +396,7 @@ HTREEITEM AddSkinToListFullName(HWND hwndDlg, TCHAR * fullName) buf--; } buf++; - _tcsncpy(file, buf, SIZEOF(file)); + mir_tstrncpy(file, buf, SIZEOF(file)); return AddSkinToList(hwndDlg, path, file); } @@ -411,14 +411,14 @@ HTREEITEM AddSkinToList(HWND hwndDlg, TCHAR * path, TCHAR* file) if (!file || _tcschr(file, _T('%'))) { mir_sntprintf(sd->File, SIZEOF(sd->File), _T("%%Default Skin%%")); mir_sntprintf(sd->Name, SIZEOF(sd->Name), TranslateT("%Default Skin%")); - _tcsncpy(fullName, TranslateT("Default Skin"), SIZEOF(fullName)); + mir_tstrncpy(fullName, TranslateT("Default Skin"), SIZEOF(fullName)); } else { mir_sntprintf(fullName, SIZEOF(fullName), _T("%s\\%s"), path, file); - memcpy(defskinname, file, (_tcslen(file) - 4) * sizeof(TCHAR)); - defskinname[_tcslen(file) + 1] = _T('\0'); + memcpy(defskinname, file, (mir_tstrlen(file) - 4) * sizeof(TCHAR)); + defskinname[mir_tstrlen(file) + 1] = _T('\0'); GetPrivateProfileString(_T("Skin_Description_Section"), _T("Name"), defskinname, sd->Name, SIZEOF(sd->Name), fullName); - _tcscpy(sd->File, fullName); + mir_tstrcpy(sd->File, fullName); } return AddItemToTree(GetDlgItem(hwndDlg, IDC_TREE1), sd->Name, sd); } @@ -439,7 +439,7 @@ HTREEITEM FindChild(HWND hTree, HTREEITEM Parent, TCHAR * Caption, void * data) tvi.pszText = buf; tvi.cchTextMax = SIZEOF(buf); TreeView_GetItem(hTree, &tvi); - if (_tcsicmp(Caption, tvi.pszText) == 0) { + if (mir_tstrcmpi(Caption, tvi.pszText) == 0) { if (!data) return tmp; @@ -449,7 +449,7 @@ HTREEITEM FindChild(HWND hTree, HTREEITEM Parent, TCHAR * Caption, void * data) TreeView_GetItem(hTree, &tvi); SkinListData *sd = (SkinListData*)tvi.lParam; if (sd) - if (!_tcsicmp(sd->File, ((SkinListData*)data)->File)) + if (!mir_tstrcmpi(sd->File, ((SkinListData*)data)->File)) return tmp; } tmp = TreeView_GetNextSibling(hTree, tmp); diff --git a/plugins/Clist_modern/src/modern_skinselector.cpp b/plugins/Clist_modern/src/modern_skinselector.cpp index 7d62758208..e78f3f79e1 100644 --- a/plugins/Clist_modern/src/modern_skinselector.cpp +++ b/plugins/Clist_modern/src/modern_skinselector.cpp @@ -95,7 +95,7 @@ DWORD mod_CalcHash(const char *szStr) mov esi, szStr mov al, [esi] xor cl, cl -lph_top : //only 4 of 9 instructions in here don't use AL, so optimal pipe use is impossible + lph_top : //only 4 of 9 instructions in here don't use AL, so optimal pipe use is impossible xor edx, eax inc esi xor eax, eax @@ -195,8 +195,7 @@ int SortMaskList(LISTMODERNMASK * mmList) pos = 1; } else pos++; - } - while (pos < mmList->dwMaskCnt); + } while (pos < mmList->dwMaskCnt); return 1; } @@ -327,7 +326,7 @@ int ParseToModernMask(MODERNMASK *mm, char *szText) } else //ParamName = 'Module' { - param.szName = _strdup("Module"); + param.szName = mir_strdup("Module"); param.dwId = mod_CalcHash(param.szName); } @@ -414,7 +413,7 @@ int AddStrModernMaskToList(DWORD maskID, char *szStr, char *objectName, LISTMODE SKINOBJECTDESCRIPTOR *skin_FindObjectByMask(MODERNMASK *mm, LISTMODERNMASK *mmTemplateList) { - for (DWORD i = 0;i < mmTemplateList->dwMaskCnt;i++) + for (DWORD i = 0; i < mmTemplateList->dwMaskCnt; i++) if (CompareModernMask(mm, &(mmTemplateList->pl_Masks[i]))) return (SKINOBJECTDESCRIPTOR*)mmTemplateList->pl_Masks[i].pObject; @@ -465,7 +464,7 @@ WCHAR* GetParamN(WCHAR *string, WCHAR *buf, int buflen, BYTE paramN, WCHAR Delim i--; } len = ((int)(i - start) < buflen) ? i - start : buflen; - _tcsncpy(buf, string + start, len); + mir_tstrncpy(buf, string + start, len); buf[len] = '\0'; } else buf[0] = '\0'; @@ -491,7 +490,7 @@ char * GetParamN(char * string, char * buf, int buflen, BYTE paramN, char Delim, i--; } len = ((int)(i - start) < buflen) ? i - start : buflen; - strncpy(buf, string + start, len); + mir_strncpy(buf, string + start, len); buf[len] = '\0'; } else buf[0] = '\0'; @@ -642,6 +641,6 @@ int SkinDrawGlyphMask(HDC hdc, RECT *rcSize, RECT *rcClip, MODERNMASK *ModernMas rq.hDC = hdc; rq.rcDestRect = *rcSize; rq.rcClipRect = *rcClip; - strncpy(rq.szObjectID, "Masked draw", SIZEOF(rq.szObjectID)-1); + mir_strncpy(rq.szObjectID, "Masked draw", SIZEOF(rq.szObjectID)); return ske_Service_DrawGlyph((WPARAM)&rq, (LPARAM)ModernMask); } diff --git a/plugins/Clist_modern/src/modern_statusbar.cpp b/plugins/Clist_modern/src/modern_statusbar.cpp index 8527387a58..82d031905c 100644 --- a/plugins/Clist_modern/src/modern_statusbar.cpp +++ b/plugins/Clist_modern/src/modern_statusbar.cpp @@ -566,7 +566,7 @@ int ModernDrawStatusBarWorker(HWND hWnd, HDC hDC) RECT rt = r; rt.left = x + (spaceWidth >> 1); rt.top = textY; - ske_DrawText(hDC, p.tszProtoXStatus, (int)_tcslen(p.tszProtoXStatus), &rt, 0); + ske_DrawText(hDC, p.tszProtoXStatus, (int)mir_tstrlen(p.tszProtoXStatus), &rt, 0); } p.protoRect = r; @@ -782,10 +782,10 @@ LRESULT CALLBACK ModernStatusProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa char *pos = strstri(g_CluiData.protoFilter, p.szAccountName); if (pos) { // remove filter - size_t len = strlen(protoF); - memmove(pos, pos + len, strlen(pos + len) + 1); + size_t len = mir_strlen(protoF); + memmove(pos, pos + len, mir_strlen(pos + len) + 1); - if (strlen(g_CluiData.protoFilter) == 0) + if (mir_strlen(g_CluiData.protoFilter) == 0) ApplyViewMode(""); else g_CluiData.bFilterEffective = CLVM_FILTER_PROTOS; @@ -816,8 +816,8 @@ LRESULT CALLBACK ModernStatusProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa if (strstri(g_CluiData.protoFilter, protoF)) { char * temp = mir_utf8encodeT(accs[i]->tszAccountName); if (!first) - strncat(filterName, "; ", SIZEOF(filterName) - strlen(filterName)); - strncat(filterName, temp, SIZEOF(filterName) - strlen(filterName)); + mir_strncat(filterName, "; ", SIZEOF(filterName) - mir_strlen(filterName)); + mir_strncat(filterName, temp, SIZEOF(filterName) - mir_strlen(filterName)); first = false; mir_free(temp); } diff --git a/plugins/Clist_modern/src/modern_tbbutton.cpp b/plugins/Clist_modern/src/modern_tbbutton.cpp index 95beef5399..9d38947961 100644 --- a/plugins/Clist_modern/src/modern_tbbutton.cpp +++ b/plugins/Clist_modern/src/modern_tbbutton.cpp @@ -239,7 +239,7 @@ static LRESULT CALLBACK ToolbarButtonProc(HWND hwndDlg, UINT msg, WPARAM wParam break; case WM_SETTEXT: - _tcsncpy_s(bct->szText, (TCHAR*)lParam, _TRUNCATE); + mir_tstrncpy(bct->szText, (TCHAR*)lParam, SIZEOF(bct->szText)); break; case WM_SETFONT: diff --git a/plugins/Clist_modern/src/modern_toolbar.cpp b/plugins/Clist_modern/src/modern_toolbar.cpp index 07195a35f2..cee0d5137a 100644 --- a/plugins/Clist_modern/src/modern_toolbar.cpp +++ b/plugins/Clist_modern/src/modern_toolbar.cpp @@ -318,7 +318,7 @@ void CustomizeButton(HANDLE ttbid, HWND hWnd, LPARAM lParam); static int Toolbar_ModuleReloaded(WPARAM wParam, LPARAM) { PLUGININFOEX *pInfo = (PLUGININFOEX*)wParam; - if (!_stricmp(pInfo->shortName, "TopToolBar")) + if (!mir_strcmpi(pInfo->shortName, "TopToolBar")) TopToolbar_SetCustomProc(CustomizeButton, 0); return 0; diff --git a/plugins/Clist_modern/src/modern_utils.cpp b/plugins/Clist_modern/src/modern_utils.cpp index 1dbd55bb5d..6164b79de4 100644 --- a/plugins/Clist_modern/src/modern_utils.cpp +++ b/plugins/Clist_modern/src/modern_utils.cpp @@ -6,8 +6,8 @@ char * __cdecl strstri(char *a, const char *b) { char * x, *y; if (!a || !b) return FALSE; - x = _strdup(a); - y = _strdup(b); + x = mir_strdup(a); + y = mir_strdup(b); x = _strupr(x); y = _strupr(y); char * pos = strstr(x, y); diff --git a/plugins/Clist_modern/src/modern_viewmodebar.cpp b/plugins/Clist_modern/src/modern_viewmodebar.cpp index 56767b068b..a5af9e501b 100644 --- a/plugins/Clist_modern/src/modern_viewmodebar.cpp +++ b/plugins/Clist_modern/src/modern_viewmodebar.cpp @@ -183,7 +183,7 @@ static void UpdateStickies() MCONTACT hItem = (MCONTACT)SendDlgItemMessage(clvmHwnd, IDC_CLIST, CLM_FINDCONTACT, hContact, 0); if (hItem) SendDlgItemMessage(clvmHwnd, IDC_CLIST, CLM_SETCHECKMARK, (WPARAM)hItem, (BYTE)db_get_dw(hContact, CLVM_MODULE, g_szModename, 0) ? 1 : 0); - + DWORD localMask = HIWORD(db_get_dw(hContact, CLVM_MODULE, g_szModename, 0)); UpdateClistItem(hItem, (localMask == 0 || localMask == stickyStatusMask) ? stickyStatusMask : localMask); } @@ -287,7 +287,7 @@ static int FillDialog(HWND hwnd) static void SetAllChildIcons(HWND hwndList, HANDLE hFirstItem, int iColumn, int iImage) { int typeOfFirst = SendMessage(hwndList, CLM_GETITEMTYPE, (WPARAM)hFirstItem, 0); - + // check groups HANDLE hItem = (typeOfFirst == CLCIT_GROUP) ? hFirstItem : (HANDLE)SendMessage(hwndList, CLM_GETNEXTITEM, CLGN_NEXTGROUP, (LPARAM)hFirstItem); while (hItem) { @@ -296,7 +296,7 @@ static void SetAllChildIcons(HWND hwndList, HANDLE hFirstItem, int iColumn, int SetAllChildIcons(hwndList, hChildItem, iColumn, iImage); hItem = (HANDLE)SendMessage(hwndList, CLM_GETNEXTITEM, CLGN_NEXTGROUP, (LPARAM)hItem); } - + // check contacts if (typeOfFirst == CLCIT_CONTACT) hItem = hFirstItem; else hItem = (HANDLE)SendMessage(hwndList, CLM_GETNEXTITEM, CLGN_NEXTCONTACT, (LPARAM)hFirstItem); @@ -391,8 +391,8 @@ void SaveState() item.cchTextMax = SIZEOF(szTemp); item.iItem = i; SendMessageA(hwndList, LVM_GETITEMA, 0, (LPARAM)&item); - strncat(newProtoFilter, szTemp, SIZEOF(newProtoFilter)); - strncat(newProtoFilter, "|", SIZEOF(newProtoFilter)); + mir_strncat(newProtoFilter, szTemp, _TRUNCATE); + mir_strncat(newProtoFilter, "|", _TRUNCATE); newProtoFilter[2047] = 0; } } @@ -412,8 +412,8 @@ void SaveState() item.cchTextMax = SIZEOF(szTemp); item.iItem = i; SendMessage(hwndList, LVM_GETITEM, 0, (LPARAM)&item); - _tcsncat(newGroupFilter, szTemp, SIZEOF(newGroupFilter)); - _tcsncat(newGroupFilter, _T("|"), SIZEOF(newGroupFilter)); + mir_tstrncat(newGroupFilter, szTemp, _TRUNCATE); + mir_tstrncat(newGroupFilter, _T("|"), _TRUNCATE); newGroupFilter[2047] = 0; } } @@ -506,7 +506,7 @@ static void UpdateFilters() SendDlgItemMessage(clvmHwnd, IDC_VIEWMODES, LB_GETTEXT, clvm_curItem, (LPARAM)szTempBuf); szBuf = mir_utf8encodeT(szTempBuf); - strncpy(g_szModename, szBuf, SIZEOF(g_szModename)); + mir_strncpy(g_szModename, szBuf, SIZEOF(g_szModename)); g_szModename[SIZEOF(g_szModename) - 1] = 0; mir_sntprintf(szTemp, SIZEOF(szTemp), TranslateT("Configuring view mode: %s"), szTempBuf); SetDlgItemText(clvmHwnd, IDC_CURVIEWMODE2, szTemp); @@ -1122,13 +1122,13 @@ LRESULT CALLBACK ViewModeFrameWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM case IDC_RESETMODES: clvm_reset_command : ApplyViewMode(""); - break; + break; case IDC_CONFIGUREMODES: clvm_config_command : if (!g_ViewModeOptDlg) CreateDialogParam(g_hInst, MAKEINTRESOURCE(IDD_OPT_VIEWMODES), 0, DlgProcViewModesSetup, 0); - break; + break; } default: @@ -1286,7 +1286,7 @@ void ApplyViewMode(const char *Name, bool onlySelector) mir_snprintf(szSetting, SIZEOF(szSetting), "%c%s_PF", 246, Name); if (!db_get_s(NULL, CLVM_MODULE, szSetting, &dbv)) { if (mir_strlen(dbv.pszVal) >= 2) { - strncpy(g_CluiData.protoFilter, dbv.pszVal, SIZEOF(g_CluiData.protoFilter)); + mir_strncpy(g_CluiData.protoFilter, dbv.pszVal, SIZEOF(g_CluiData.protoFilter)); g_CluiData.protoFilter[SIZEOF(g_CluiData.protoFilter) - 1] = 0; g_CluiData.bFilterEffective |= CLVM_FILTER_PROTOS; } @@ -1295,7 +1295,7 @@ void ApplyViewMode(const char *Name, bool onlySelector) mir_snprintf(szSetting, SIZEOF(szSetting), "%c%s_GF", 246, Name); if (!db_get_ts(NULL, CLVM_MODULE, szSetting, &dbv)) { if (mir_tstrlen(dbv.ptszVal) >= 2) { - _tcsncpy(g_CluiData.groupFilter, dbv.ptszVal, SIZEOF(g_CluiData.groupFilter)); + mir_tstrncpy(g_CluiData.groupFilter, dbv.ptszVal, SIZEOF(g_CluiData.groupFilter)); g_CluiData.groupFilter[SIZEOF(g_CluiData.groupFilter) - 1] = 0; g_CluiData.bFilterEffective |= CLVM_FILTER_GROUPS; } @@ -1318,7 +1318,7 @@ void ApplyViewMode(const char *Name, bool onlySelector) if (g_CluiData.filterFlags & CLVM_AUTOCLEAR) { mir_snprintf(szSetting, SIZEOF(szSetting), "%c%s_OPT", 246, Name); DWORD timerexpire = LOWORD(db_get_dw(NULL, CLVM_MODULE, szSetting, 0)); - strncpy(g_CluiData.old_viewmode, g_CluiData.current_viewmode, 256); + mir_strncpy(g_CluiData.old_viewmode, g_CluiData.current_viewmode, SIZEOF(g_CluiData.old_viewmode)); g_CluiData.old_viewmode[255] = 0; CLUI_SafeSetTimer(g_hwndViewModeFrame, TIMERID_VIEWMODEEXPIRE, timerexpire * 1000, NULL); } @@ -1326,7 +1326,7 @@ void ApplyViewMode(const char *Name, bool onlySelector) mir_snprintf(szSetting, SIZEOF(szSetting), "%c_LastMode", 246); db_set_s(NULL, CLVM_MODULE, szSetting, Name); } - strncpy(g_CluiData.current_viewmode, Name, 256); + mir_strncpy(g_CluiData.current_viewmode, Name, SIZEOF(g_CluiData.current_viewmode)); g_CluiData.current_viewmode[255] = 0; if (g_CluiData.filterFlags & CLVM_USELASTMSG) { -- cgit v1.2.3