From 533a975813e8f8803a54274f286cd86e742125cd Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 5 Mar 2025 12:34:03 +0300 Subject: minus one unneeded function in chat_manager --- include/m_chat_int.h | 8 +++++--- libs/win32/mir_app.lib | Bin 302188 -> 302584 bytes libs/win64/mir_app.lib | Bin 302256 -> 302666 bytes plugins/Scriver/src/chat_manager.cpp | 3 +-- plugins/TabSRMM/src/chat_tools.cpp | 3 +-- src/mir_app/src/chat.h | 2 ++ src/mir_app/src/chat_manager.cpp | 11 +++++------ src/mir_app/src/chat_svc.cpp | 5 +++++ src/mir_app/src/mir_app.def | 1 + src/mir_app/src/mir_app64.def | 1 + src/mir_app/src/srmm_base.cpp | 4 ++-- 11 files changed, 23 insertions(+), 15 deletions(-) diff --git a/include/m_chat_int.h b/include/m_chat_int.h index 6f52166e5f..7189facdca 100644 --- a/include/m_chat_int.h +++ b/include/m_chat_int.h @@ -280,7 +280,6 @@ struct CHAT_MANAGER BOOL (*MM_RemoveAll)(void); STATUSINFO* (*TM_FindStatus)(STATUSINFO *pStatusList, const wchar_t *pszStatus); - wchar_t* (*TM_WordToString)(STATUSINFO *pStatusList, uint16_t Status); BOOL (*TM_RemoveAll)(STATUSINFO** pStatusList); int (*UM_CompareItem)(const USERINFO *u1, const USERINFO *u2); @@ -365,13 +364,16 @@ MIR_APP_DLL(void) Chat_EmptyHistory(SESSION_INFO *si); // creates custom popup menu for a group chat MIR_APP_DLL(void) Chat_CreateMenu(HMENU hMenu, SESSION_INFO *si, const wchar_t *pszUID); -// calculates width or height of a string -MIR_APP_DLL(int) Chat_GetTextPixelSize(const wchar_t *pszText, HFONT hFont, bool bWidth); +// retrieves user's role/status +MIR_APP_DLL(STATUSINFO*) Chat_GetStatus(STATUSINFO *pStatuses, const USERINFO *pUser); // creates a default description of a group chat event // returns true if lin->ptszText is already utilized, you need to add it manually then otherwise MIR_APP_DLL(bool) Chat_GetDefaultEventDescr(const SESSION_INFO *si, const LOGINFO *lin, CMStringW &res); +// calculates width or height of a string +MIR_APP_DLL(int) Chat_GetTextPixelSize(const wchar_t *pszText, HFONT hFont, bool bWidth); + // sets mute mode for a group chat MIR_APP_DLL(int) Chat_IsMuted(MCONTACT hContact); MIR_APP_DLL(void) Chat_Mute(MCONTACT hContact, int mode); diff --git a/libs/win32/mir_app.lib b/libs/win32/mir_app.lib index ce3cfdd152..4e32f03a3f 100644 Binary files a/libs/win32/mir_app.lib and b/libs/win32/mir_app.lib differ diff --git a/libs/win64/mir_app.lib b/libs/win64/mir_app.lib index 32149e97b8..ce355311e6 100644 Binary files a/libs/win64/mir_app.lib and b/libs/win64/mir_app.lib differ diff --git a/plugins/Scriver/src/chat_manager.cpp b/plugins/Scriver/src/chat_manager.cpp index c4f3efa815..e2974b6d15 100644 --- a/plugins/Scriver/src/chat_manager.cpp +++ b/plugins/Scriver/src/chat_manager.cpp @@ -50,8 +50,7 @@ char SM_GetStatusIndicator(SESSION_INFO *si, USERINFO *ui) if (!ui || !si) return '\0'; - STATUSINFO *ti = g_chatApi.TM_FindStatus(si->pStatuses, g_chatApi.TM_WordToString(si->pStatuses, ui->Status)); - if (ti) { + if (auto *ti = Chat_GetStatus(si->getStatuses(), ui)) { switch (si->iStatusCount - ti->iIconIndex - 1) { case 0: return '\0'; case 1: return '+'; diff --git a/plugins/TabSRMM/src/chat_tools.cpp b/plugins/TabSRMM/src/chat_tools.cpp index 4f2b720d83..ae57463343 100644 --- a/plugins/TabSRMM/src/chat_tools.cpp +++ b/plugins/TabSRMM/src/chat_tools.cpp @@ -367,8 +367,7 @@ char GetIndicator(SESSION_INFO *si, LPCTSTR ptszNick, int *iNickIndex) for (auto &ui : si->getUserList()) { if (!mir_wstrcmp(ui->pszNick, ptszNick)) { - STATUSINFO *ti = g_chatApi.TM_FindStatus(pStatuses, g_chatApi.TM_WordToString(pStatuses, ui->Status)); - if (ti) { + if (auto *ti = Chat_GetStatus(pStatuses, ui)) { if (iNickIndex) *iNickIndex = ti->iIconIndex; // color table's index is not zero-based return szIndicators[ti->iIconIndex]; diff --git a/src/mir_app/src/chat.h b/src/mir_app/src/chat.h index 7334aae921..cbca7a51b3 100644 --- a/src/mir_app/src/chat.h +++ b/src/mir_app/src/chat.h @@ -101,7 +101,9 @@ SESSION_INFO* SM_FindSessionByContact(MCONTACT hContact); SESSION_INFO* SM_FindSessionByIndex(const char *pszModule, int iItem); STATUSINFO* TM_AddStatus(STATUSINFO **ppStatusList, const wchar_t *pszStatus, int *iCount); +STATUSINFO* TM_FindStatus(STATUSINFO *pStatusList, const wchar_t *pszStatus); uint16_t TM_StringToWord(STATUSINFO *pStatusList, const wchar_t *pszStatus); +wchar_t* TM_WordToString(STATUSINFO *pStatusList, uint16_t Status); USERINFO* UM_AddUser(SESSION_INFO *si, const wchar_t *pszUID, const wchar_t *pszNick, uint16_t wStatus); BOOL UM_RemoveAll(SESSION_INFO *si); diff --git a/src/mir_app/src/chat_manager.cpp b/src/mir_app/src/chat_manager.cpp index e7b83a5da8..76c7ee93e4 100644 --- a/src/mir_app/src/chat_manager.cpp +++ b/src/mir_app/src/chat_manager.cpp @@ -359,7 +359,7 @@ static HICON SM_GetStatusIcon(SESSION_INFO *si, USERINFO *ui) return nullptr; auto *pStatuses = si->getStatuses(); - STATUSINFO *ti = g_chatApi.TM_FindStatus(pStatuses, g_chatApi.TM_WordToString(pStatuses, ui->Status)); + STATUSINFO *ti = g_chatApi.TM_FindStatus(pStatuses, TM_WordToString(pStatuses, ui->Status)); if (ti != nullptr) return g_chatApi.hStatusIcons[ti->iIconIndex]; @@ -672,12 +672,12 @@ STATUSINFO* TM_AddStatus(STATUSINFO **ppStatusList, const wchar_t *pszStatus, in return nullptr; } -static STATUSINFO* TM_FindStatus(STATUSINFO *pStatusList, const wchar_t *pszStatus) +STATUSINFO* TM_FindStatus(STATUSINFO *pStatusList, const wchar_t *pszStatus) { if (!pStatusList || !pszStatus) return nullptr; - for (STATUSINFO *pTemp = pStatusList; pTemp != nullptr; pTemp = pTemp->next) + for (auto *pTemp = pStatusList; pTemp != nullptr; pTemp = pTemp->next) if (mir_wstrcmpi(pTemp->pszGroup, pszStatus) == 0) return pTemp; @@ -699,12 +699,12 @@ uint16_t TM_StringToWord(STATUSINFO *pStatusList, const wchar_t *pszStatus) return 0; } -static wchar_t* TM_WordToString(STATUSINFO *pStatusList, uint16_t Status) +wchar_t* TM_WordToString(STATUSINFO *pStatusList, uint16_t Status) { if (!pStatusList) return nullptr; - for (STATUSINFO *pTemp = pStatusList; pTemp != nullptr; pTemp = pTemp->next) { + for (auto *pTemp = pStatusList; pTemp != nullptr; pTemp = pTemp->next) { if (pTemp->iStatus & Status) { Status -= pTemp->iStatus; if (Status == 0) @@ -771,7 +771,6 @@ static void ResetApi() g_chatApi.MM_RemoveAll = ::MM_RemoveAll; g_chatApi.TM_FindStatus = ::TM_FindStatus; - g_chatApi.TM_WordToString = ::TM_WordToString; g_chatApi.TM_RemoveAll = ::TM_RemoveAll; g_chatApi.UM_AddUser = ::UM_AddUser; diff --git a/src/mir_app/src/chat_svc.cpp b/src/mir_app/src/chat_svc.cpp index fa74c2d448..e75c602692 100644 --- a/src/mir_app/src/chat_svc.cpp +++ b/src/mir_app/src/chat_svc.cpp @@ -680,6 +680,11 @@ MIR_APP_DLL(int) Chat_ChangeUserId(SESSION_INFO *si, const wchar_t *wszOldId, co return 0; } +MIR_APP_DLL(STATUSINFO *) Chat_GetStatus(STATUSINFO *pStatuses, const USERINFO *ui) +{ + return TM_FindStatus(pStatuses, TM_WordToString(pStatuses, ui->Status)); +} + MIR_APP_DLL(void*) Chat_GetUserInfo(SESSION_INFO *si) { return (si) ? si->pItemData : nullptr; diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index 0beb254bc1..393feb360d 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -997,3 +997,4 @@ Proto_CanDeleteHistory @1118 NONAME ?iHistoryMode@Srmm@@3V?$CMOption@E@@A @1128 NONAME ?getConn@MWebSocket@@QBEPAXXZ @1129 NONAME ?getStatuses@SESSION_INFO@@QBEPAUSTATUSINFO@@XZ @1130 NONAME +?Chat_GetStatus@@YGPAUSTATUSINFO@@PAU1@PBUUSERINFO@@@Z @1131 NONAME diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index 18a35ef558..6bfd96a14a 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -997,3 +997,4 @@ Proto_CanDeleteHistory @1118 NONAME ?iHistoryMode@Srmm@@3V?$CMOption@E@@A @1128 NONAME ?getConn@MWebSocket@@QEBAPEAXXZ @1129 NONAME ?getStatuses@SESSION_INFO@@QEBAPEAUSTATUSINFO@@XZ @1130 NONAME +?Chat_GetStatus@@YAPEAUSTATUSINFO@@PEAU1@PEBUUSERINFO@@@Z @1131 NONAME diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp index 52dbc09f40..729543cd94 100644 --- a/src/mir_app/src/srmm_base.cpp +++ b/src/mir_app/src/srmm_base.cpp @@ -313,7 +313,7 @@ static void ProcessNickListHovering(const CCtrlListBox &listBox, int hoveredItem wszBuf.Format(L"%s: %s\r\n%s: %s\r\n%s: %s", TranslateT("Nickname"), ui->pszNick, TranslateT("Unique ID"), ui->pszUID, - TranslateT("Status"), g_chatApi.TM_WordToString(si->getStatuses(), ui->Status)); + TranslateT("Status"), TM_WordToString(si->getStatuses(), ui->Status)); ti.lpszText = wszBuf.GetBuffer(); } @@ -339,7 +339,7 @@ void CSrmmBaseDialog::OnNickListTimer(CTimer *pTimer) wszBuf.Format(L"%s:\t%s\n%s:\t%s\n%s:\t%s", TranslateT("Nick"), ui->pszNick, TranslateT("Unique ID"), ui->pszUID, - TranslateT("Status"), g_chatApi.TM_WordToString(m_si->getStatuses(), ui->Status)); + TranslateT("Status"), TM_WordToString(m_si->getStatuses(), ui->Status)); CLCINFOTIP ti = { sizeof(ti) }; Tipper_ShowTip(wszBuf, &ti); -- cgit v1.2.3