diff options
author | George Hazan <ghazan@miranda.im> | 2018-08-31 14:24:39 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2018-08-31 14:24:45 +0300 |
commit | b67c7629805f10b181ac4aa7a934aa2adc273a4a (patch) | |
tree | e26ae4f20399280ff1e37e48a97768256f2e140e /plugins/TabSRMM | |
parent | 9e6b4c7922e4fd94682beaae69d8a78db44ba1dd (diff) |
tabSRMM: tray menu code simplification
Diffstat (limited to 'plugins/TabSRMM')
-rw-r--r-- | plugins/TabSRMM/src/chat_window.cpp | 2 | ||||
-rw-r--r-- | plugins/TabSRMM/src/eventpopups.cpp | 73 | ||||
-rw-r--r-- | plugins/TabSRMM/src/mim.cpp | 8 | ||||
-rw-r--r-- | plugins/TabSRMM/src/msgdialog.cpp | 3 |
4 files changed, 28 insertions, 58 deletions
diff --git a/plugins/TabSRMM/src/chat_window.cpp b/plugins/TabSRMM/src/chat_window.cpp index c722134c66..4b2381cb64 100644 --- a/plugins/TabSRMM/src/chat_window.cpp +++ b/plugins/TabSRMM/src/chat_window.cpp @@ -532,7 +532,7 @@ bool CChatRoomDlg::OnInitDialog() m_pPanel.loadHeight(); if (PluginConfig.g_hMenuTrayUnread != nullptr && m_hContact != 0 && m_szProto != nullptr) - UpdateTrayMenu(nullptr, m_wStatus, m_szProto, m_wszStatus, m_hContact, FALSE); + UpdateTrayMenu(nullptr, m_wStatus, m_szProto, m_wszStatus, m_hContact, 0); m_log.SendMsg(EM_HIDESELECTION, TRUE, 0); diff --git a/plugins/TabSRMM/src/eventpopups.cpp b/plugins/TabSRMM/src/eventpopups.cpp index c4e704b293..0e85f99703 100644 --- a/plugins/TabSRMM/src/eventpopups.cpp +++ b/plugins/TabSRMM/src/eventpopups.cpp @@ -676,11 +676,10 @@ void TSAPI UpdateTrayMenuState(CTabBaseDlg *dat, BOOL bForced) GetMenuItemInfo(PluginConfig.g_hMenuTrayUnread, (UINT_PTR)dat->m_hContact, FALSE, &mii);
if (!bForced)
- PluginConfig.m_UnreadInTray -= (mii.dwItemData & 0x0000ffff);
+ PluginConfig.m_UnreadInTray -= mii.dwItemData;
if (mii.dwItemData > 0 || bForced) {
wchar_t szMenuEntry[80];
- mir_snwprintf(szMenuEntry, L"%s: %s (%s) [%d]", tszProto,
- dat->m_cache->getNick(), dat->m_wszStatus[0] ? dat->m_wszStatus : L"(undef)", mii.dwItemData & 0x0000ffff);
+ mir_snwprintf(szMenuEntry, L"%s: %s (%s) [%d]", tszProto, dat->m_cache->getNick(), dat->m_wszStatus[0] ? dat->m_wszStatus : L"(undef)", mii.dwItemData);
if (!bForced)
mii.dwItemData = 0;
@@ -703,58 +702,30 @@ int TSAPI UpdateTrayMenu(const CTabBaseDlg *dat, WORD wStatus, const char *szPro if (tszFinalProto == nullptr)
return 0;
- WORD wMyStatus = (wStatus == 0) ? db_get_w(hContact, szProto, "Status", ID_STATUS_OFFLINE) : wStatus;
- const wchar_t *szMyStatus = (szStatus == nullptr) ? Clist_GetStatusModeDescription(wMyStatus, 0) : szStatus;
+ WORD wMyStatus = (wStatus == 0) ? Contact_GetStatus(hContact) : wStatus;
+ const wchar_t *szMyStatus = (szStatus == nullptr) ? Clist_GetStatusModeDescription(wMyStatus, 0) : szStatus;
- MENUITEMINFO mii = { 0 };
+ MENUITEMINFO mii = {};
mii.cbSize = sizeof(mii);
- mii.fMask = MIIM_DATA | MIIM_ID | MIIM_BITMAP;
- mii.wID = (UINT)hContact;
- mii.hbmpItem = HBMMENU_CALLBACK;
+ mii.fMask = MIIM_DATA | MIIM_ID;
+ mii.wID = hContact;
+ if (!GetMenuItemInfo(PluginConfig.g_hMenuTrayUnread, hContact, FALSE, &mii))
+ AppendMenu(PluginConfig.g_hMenuTrayUnread, MF_BYCOMMAND | MF_STRING, hContact, L"");
+
+ mii.dwItemData += fromEvent;
+ PluginConfig.m_UnreadInTray += fromEvent;
+ if (PluginConfig.m_UnreadInTray)
+ SetEvent(g_hEvent);
wchar_t szMenuEntry[80];
- const wchar_t *szNick = nullptr;
- if (dat != nullptr) {
- szNick = dat->m_cache->getNick();
- GetMenuItemInfo(PluginConfig.g_hMenuTrayUnread, hContact, FALSE, &mii);
- mii.dwItemData++;
- if (fromEvent == 2) // from chat...
- mii.dwItemData |= 0x10000000;
- DeleteMenu(PluginConfig.g_hMenuTrayUnread, hContact, MF_BYCOMMAND);
- mir_snwprintf(szMenuEntry, L"%s: %s (%s) [%d]", tszFinalProto, szNick, szMyStatus, mii.dwItemData & 0x0000ffff);
- AppendMenu(PluginConfig.g_hMenuTrayUnread, MF_BYCOMMAND | MF_STRING, hContact, szMenuEntry);
- PluginConfig.m_UnreadInTray++;
- if (PluginConfig.m_UnreadInTray)
- SetEvent(g_hEvent);
- SetMenuItemInfo(PluginConfig.g_hMenuTrayUnread, hContact, FALSE, &mii);
- }
- else {
- szNick = Clist_GetContactDisplayName(hContact);
- if (CheckMenuItem(PluginConfig.g_hMenuTrayUnread, hContact, MF_BYCOMMAND | MF_UNCHECKED) == -1) {
- mir_snwprintf(szMenuEntry, L"%s: %s (%s) [%d]", tszFinalProto, szNick, szMyStatus, fromEvent ? 1 : 0);
- AppendMenu(PluginConfig.g_hMenuTrayUnread, MF_BYCOMMAND | MF_STRING, hContact, szMenuEntry);
- mii.dwItemData = fromEvent ? 1 : 0;
- PluginConfig.m_UnreadInTray += (mii.dwItemData & 0x0000ffff);
- if (PluginConfig.m_UnreadInTray)
- SetEvent(g_hEvent);
- if (fromEvent == 2)
- mii.dwItemData |= 0x10000000;
- }
- else {
- GetMenuItemInfo(PluginConfig.g_hMenuTrayUnread, hContact, FALSE, &mii);
- mii.dwItemData += (fromEvent ? 1 : 0);
- PluginConfig.m_UnreadInTray += (fromEvent ? 1 : 0);
- if (PluginConfig.m_UnreadInTray)
- SetEvent(g_hEvent);
- mii.fMask |= MIIM_STRING;
- if (fromEvent == 2)
- mii.dwItemData |= 0x10000000;
- mir_snwprintf(szMenuEntry, L"%s: %s (%s) [%d]", tszFinalProto, szNick, szMyStatus, mii.dwItemData & 0x0000ffff);
- mii.cch = (int)mir_wstrlen(szMenuEntry) + 1;
- mii.dwTypeData = szMenuEntry;
- }
- SetMenuItemInfo(PluginConfig.g_hMenuTrayUnread, hContact, FALSE, &mii);
- }
+ const wchar_t *szNick = (dat != nullptr) ? dat->m_cache->getNick() : Clist_GetContactDisplayName(hContact);
+ mir_snwprintf(szMenuEntry, L"%s: %s (%s) [%d]", tszFinalProto, szNick, szMyStatus, mii.dwItemData);
+
+ mii.hbmpItem = HBMMENU_CALLBACK;
+ mii.fMask |= MIIM_STRING | MIIM_BITMAP;
+ mii.cch = (int)mir_wstrlen(szMenuEntry) + 1;
+ mii.dwTypeData = szMenuEntry;
+ SetMenuItemInfo(PluginConfig.g_hMenuTrayUnread, hContact, FALSE, &mii);
return 0;
}
diff --git a/plugins/TabSRMM/src/mim.cpp b/plugins/TabSRMM/src/mim.cpp index 6dd35d2073..e388ce109c 100644 --- a/plugins/TabSRMM/src/mim.cpp +++ b/plugins/TabSRMM/src/mim.cpp @@ -501,13 +501,15 @@ int CMimAPI::MessageEventAdded(WPARAM hContact, LPARAM hDbEvent) } } +nowindowcreate: // for tray support, we add the event to the tray menu. otherwise we send it back to // the contact list for flashing -nowindowcreate: if (!(dbei.flags & DBEF_READ)) { UpdateTrayMenu(nullptr, 0, dbei.szModule, nullptr, hContact, 1); + if (!nen_options.bTraySupport) { - wchar_t toolTip[256], *contactName; + wchar_t toolTip[256]; + mir_snwprintf(toolTip, TranslateT("Message from %s"), Clist_GetContactDisplayName(hContact)); CLISTEVENT cle = {}; cle.hContact = hContact; @@ -515,8 +517,6 @@ nowindowcreate: cle.flags = CLEF_UNICODE; cle.hIcon = Skin_LoadIcon(SKINICON_EVENT_MESSAGE); cle.pszService = MS_MSG_READMESSAGE; - contactName = Clist_GetContactDisplayName(hContact); - mir_snwprintf(toolTip, TranslateT("Message from %s"), contactName); cle.szTooltip.w = toolTip; g_clistApi.pfnAddEvent(&cle); } diff --git a/plugins/TabSRMM/src/msgdialog.cpp b/plugins/TabSRMM/src/msgdialog.cpp index d502b02685..f64daf18c7 100644 --- a/plugins/TabSRMM/src/msgdialog.cpp +++ b/plugins/TabSRMM/src/msgdialog.cpp @@ -750,8 +750,7 @@ bool CSrmmWindow::OnInitDialog() m_log.SendMsg(EM_SETLANGOPTIONS, 0, m_log.SendMsg(EM_GETLANGOPTIONS, 0, 0) & ~IMF_AUTOFONTSIZEADJUST);
// add us to the tray list (if it exists)
- if (PluginConfig.g_hMenuTrayUnread != nullptr && m_hContact != 0 && m_szProto != nullptr)
- UpdateTrayMenu(nullptr, m_wStatus, m_szProto, m_wszStatus, m_hContact, FALSE);
+ UpdateTrayMenu(nullptr, m_wStatus, m_szProto, m_wszStatus, m_hContact, 0);
m_log.SendMsg(EM_AUTOURLDETECT, TRUE, 0);
m_log.SendMsg(EM_EXLIMITTEXT, 0, 0x80000000);
|