summaryrefslogtreecommitdiff
path: root/protocols/JabberG/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2013-04-05 16:54:27 +0000
committerGeorge Hazan <george.hazan@gmail.com>2013-04-05 16:54:27 +0000
commitb665a90f50f09435aef5bc3b5b9da710e4558690 (patch)
tree3053606dcddc1b15f73e7af1fb2507afbf20f052 /protocols/JabberG/src
parent6c01981a8452577f3751298c7cdbe59b3ae81d51 (diff)
various menu items quirks, simplifications & optimization
git-svn-id: http://svn.miranda-ng.org/main/trunk@4319 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/JabberG/src')
-rw-r--r--protocols/JabberG/src/jabber_menu.cpp135
-rw-r--r--protocols/JabberG/src/jabber_proto.cpp2
-rw-r--r--protocols/JabberG/src/jabber_proto.h6
-rw-r--r--protocols/JabberG/src/jabber_xstatus.cpp3
-rw-r--r--protocols/JabberG/src/jabber_xstatus.h4
5 files changed, 66 insertions, 84 deletions
diff --git a/protocols/JabberG/src/jabber_menu.cpp b/protocols/JabberG/src/jabber_menu.cpp
index d70d2c5241..f6f404c4e0 100644
--- a/protocols/JabberG/src/jabber_menu.cpp
+++ b/protocols/JabberG/src/jabber_menu.cpp
@@ -162,30 +162,20 @@ static INT_PTR JabberMenuHandleDirectPresence(WPARAM wParam, LPARAM lParam, LPAR
return(ppro) ? ppro->OnMenuHandleDirectPresence(wParam, lParam, lRes) : 0;
}
-static void sttEnableMenuItem(HANDLE hMenuItem, BOOL bEnable)
-{
- CLISTMENUITEM clmi = { sizeof(clmi) };
- clmi.flags = CMIM_FLAGS;
- if ( !bEnable)
- clmi.flags |= CMIF_HIDDEN;
-
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuItem, (LPARAM)&clmi);
-}
-
static int JabberPrebuildContactMenu(WPARAM wParam, LPARAM lParam)
{
- sttEnableMenuItem(g_hMenuRequestAuth, FALSE);
- sttEnableMenuItem(g_hMenuGrantAuth, FALSE);
- sttEnableMenuItem(g_hMenuRevokeAuth, FALSE);
- sttEnableMenuItem(g_hMenuCommands, FALSE);
- sttEnableMenuItem(g_hMenuSendNote, FALSE);
- sttEnableMenuItem(g_hMenuConvert, FALSE);
- sttEnableMenuItem(g_hMenuRosterAdd, FALSE);
- sttEnableMenuItem(g_hMenuLogin, FALSE);
- sttEnableMenuItem(g_hMenuRefresh, FALSE);
- sttEnableMenuItem(g_hMenuAddBookmark, FALSE);
- sttEnableMenuItem(g_hMenuResourcesRoot, FALSE);
- sttEnableMenuItem(g_hMenuDirectPresence[0], FALSE);
+ Menu_ShowItem(g_hMenuRequestAuth, FALSE);
+ Menu_ShowItem(g_hMenuGrantAuth, FALSE);
+ Menu_ShowItem(g_hMenuRevokeAuth, FALSE);
+ Menu_ShowItem(g_hMenuCommands, FALSE);
+ Menu_ShowItem(g_hMenuSendNote, FALSE);
+ Menu_ShowItem(g_hMenuConvert, FALSE);
+ Menu_ShowItem(g_hMenuRosterAdd, FALSE);
+ Menu_ShowItem(g_hMenuLogin, FALSE);
+ Menu_ShowItem(g_hMenuRefresh, FALSE);
+ Menu_ShowItem(g_hMenuAddBookmark, FALSE);
+ Menu_ShowItem(g_hMenuResourcesRoot, FALSE);
+ Menu_ShowItem(g_hMenuDirectPresence[0], FALSE);
CJabberProto* ppro = JabberGetInstanceByHContact((HANDLE)wParam);
return(ppro) ? ppro->OnPrebuildContactMenu(wParam, lParam) : 0;
@@ -367,6 +357,7 @@ void g_MenuUninit(void)
int CJabberProto::OnPrebuildContactMenu(WPARAM wParam, LPARAM)
{
+ DBVARIANT dbv;
HANDLE hContact;
if ((hContact=(HANDLE)wParam) == NULL)
return 0;
@@ -375,74 +366,72 @@ int CJabberProto::OnPrebuildContactMenu(WPARAM wParam, LPARAM)
BYTE bIsTransport = (BYTE)JGetByte(hContact, "IsTransport", 0);
if ((bIsChatRoom == GCW_CHATROOM) || bIsChatRoom == 0) {
- DBVARIANT dbv;
if ( !JGetStringT(hContact, bIsChatRoom?(char*)"ChatRoomID":(char*)"jid", &dbv)) {
db_free(&dbv);
- sttEnableMenuItem(g_hMenuConvert, TRUE);
+ Menu_ShowItem(g_hMenuConvert, TRUE);
CLISTMENUITEM clmi = { sizeof(clmi) };
clmi.pszName = bIsChatRoom ? (char *)LPGEN("&Convert to Contact") : (char *)LPGEN("&Convert to Chat Room");
clmi.flags = CMIM_NAME | CMIM_FLAGS;
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)g_hMenuConvert, (LPARAM)&clmi);
- } }
+ Menu_ModifyItem(g_hMenuConvert, &clmi);
+ }
+ }
if ( !m_bJabberOnline)
return 0;
- sttEnableMenuItem(g_hMenuDirectPresence[0], TRUE);
- for (int i = 0; i < SIZEOF(PresenceModeArray); i++)
- {
+ Menu_ShowItem(g_hMenuDirectPresence[0], TRUE);
+ for (int i = 0; i < SIZEOF(PresenceModeArray); i++) {
CLISTMENUITEM clmi = { sizeof(clmi) };
- clmi.flags = CMIM_ICON|CMIM_FLAGS;
+ clmi.flags = CMIM_ICON | CMIM_FLAGS;
clmi.hIcon = (HICON)LoadSkinnedProtoIcon(m_szModuleName, PresenceModeArray[i].mode);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)g_hMenuDirectPresence[i+1], (LPARAM)&clmi);
+ Menu_ModifyItem(g_hMenuDirectPresence[i+1], &clmi);
}
if (bIsChatRoom) {
- DBVARIANT dbv;
if ( !JGetStringT(hContact, "ChatRoomID", &dbv)) {
- sttEnableMenuItem(g_hMenuRosterAdd, FALSE);
+ Menu_ShowItem(g_hMenuRosterAdd, FALSE);
if (ListGetItemPtr(LIST_BOOKMARK, dbv.ptszVal) == NULL)
if (m_ThreadInfo && m_ThreadInfo->jabberServerCaps & JABBER_CAPS_PRIVATE_STORAGE)
- sttEnableMenuItem(g_hMenuAddBookmark, TRUE);
+ Menu_ShowItem(g_hMenuAddBookmark, TRUE);
db_free(&dbv);
- } }
+ }
+ }
if (bIsChatRoom == GCW_CHATROOM)
return 0;
if (bIsTransport) {
- sttEnableMenuItem(g_hMenuLogin, TRUE);
- sttEnableMenuItem(g_hMenuRefresh, TRUE);
+ Menu_ShowItem(g_hMenuLogin, TRUE);
+ Menu_ShowItem(g_hMenuRefresh, TRUE);
}
- DBVARIANT dbv;
if ( !JGetStringT(hContact, "jid", &dbv)) {
JabberCapsBits jcb = GetTotalJidCapabilites(dbv.ptszVal);
JABBER_LIST_ITEM* item = ListGetItemPtr(LIST_ROSTER, dbv.ptszVal);
db_free(&dbv);
if (item != NULL) {
BOOL bCtrlPressed = (GetKeyState(VK_CONTROL)&0x8000) != 0;
- sttEnableMenuItem(g_hMenuRequestAuth, item->subscription == SUB_FROM || item->subscription == SUB_NONE || bCtrlPressed);
- sttEnableMenuItem(g_hMenuGrantAuth, bCtrlPressed);
- sttEnableMenuItem(g_hMenuRevokeAuth, item->subscription == SUB_FROM || item->subscription == SUB_BOTH || bCtrlPressed);
- sttEnableMenuItem(g_hMenuCommands, ((jcb & JABBER_CAPS_COMMANDS) != 0) || bCtrlPressed);
- sttEnableMenuItem(g_hMenuSendNote, TRUE);
+ Menu_ShowItem(g_hMenuRequestAuth, item->subscription == SUB_FROM || item->subscription == SUB_NONE || bCtrlPressed);
+ Menu_ShowItem(g_hMenuGrantAuth, bCtrlPressed);
+ Menu_ShowItem(g_hMenuRevokeAuth, item->subscription == SUB_FROM || item->subscription == SUB_BOTH || bCtrlPressed);
+ Menu_ShowItem(g_hMenuCommands, ((jcb & JABBER_CAPS_COMMANDS) != 0) || bCtrlPressed);
+ Menu_ShowItem(g_hMenuSendNote, TRUE);
if (item->resourceCount >= 1) {
- sttEnableMenuItem(g_hMenuResourcesRoot, TRUE);
+ Menu_ShowItem(g_hMenuResourcesRoot, TRUE);
CLISTMENUITEM mi = { sizeof(mi) };
mi.flags = CMIM_ICON|CMIM_FLAGS;
mi.icolibItem = m_hProtoIcon;
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)g_hMenuResourcesRoot, (LPARAM)&mi);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)g_hMenuResourcesActive, (LPARAM)&mi);
+ Menu_ModifyItem(g_hMenuResourcesRoot, &mi);
+ Menu_ModifyItem(g_hMenuResourcesActive, &mi);
int nMenuResourceItemsNew = m_nMenuResourceItems;
if (m_nMenuResourceItems < item->resourceCount) {
- m_phMenuResourceItems = (HANDLE *)mir_realloc(m_phMenuResourceItems, item->resourceCount * sizeof(HANDLE));
+ m_phMenuResourceItems = (HGENMENU*)mir_realloc(m_phMenuResourceItems, item->resourceCount * sizeof(HGENMENU));
nMenuResourceItemsNew = item->resourceCount;
}
@@ -482,19 +471,17 @@ int CJabberProto::OnPrebuildContactMenu(WPARAM wParam, LPARAM)
(TCHAR *)CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION, item->resource[i].status, GSMDF_TCHAR),
item->resource[i].priority);
clmi.ptszName = szTmp;
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_phMenuResourceItems[i], (LPARAM)&clmi);
+ Menu_ModifyItem(m_phMenuResourceItems[i], &clmi);
DestroyIcon(clmi.hIcon);
}
- else sttEnableMenuItem(m_phMenuResourceItems[i], FALSE);
+ else Menu_ShowItem(m_phMenuResourceItems[i], FALSE);
}
- mi.flags = CMIM_FLAGS | CMIF_CHILDPOPUP | CMIF_ICONFROMICOLIB |
- ((item->resourceMode == RSMODE_LASTSEEN) ? CMIF_CHECKED : 0);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)g_hMenuResourcesActive, (LPARAM)&mi);
+ mi.flags = CMIM_FLAGS | CMIF_CHILDPOPUP | CMIF_ICONFROMICOLIB | ((item->resourceMode == RSMODE_LASTSEEN) ? CMIF_CHECKED : 0);
+ Menu_ModifyItem(g_hMenuResourcesActive, &mi);
- mi.flags = CMIM_FLAGS | CMIF_CHILDPOPUP | CMIF_ICONFROMICOLIB |
- ((item->resourceMode == RSMODE_SERVER) ? CMIF_CHECKED : 0);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)g_hMenuResourcesServer, (LPARAM)&mi);
+ mi.flags = CMIM_FLAGS | CMIF_CHILDPOPUP | CMIF_ICONFROMICOLIB | ((item->resourceMode == RSMODE_SERVER) ? CMIF_CHECKED : 0);
+ Menu_ModifyItem(g_hMenuResourcesServer, &mi);
m_nMenuResourceItems = nMenuResourceItemsNew;
}
@@ -878,7 +865,7 @@ void CJabberProto::UpdatePriorityMenu(short priority)
CLISTMENUITEM mi = { sizeof(mi) };
mi.flags = CMIF_TCHAR | CMIM_NAME;
mi.ptszName = szName;
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuPriorityRoot, (LPARAM)&mi);
+ Menu_ModifyItem(m_hMenuPriorityRoot, &mi);
m_priorityMenuVal = priority;
m_priorityMenuValSet = true;
@@ -896,7 +883,7 @@ void CJabberProto::GlobalMenuInit()
tmi.ownerdata = this;
tmi.position = iChooserMenuPos++;
tmi.ptszName = m_tszUserName;
- m_hChooseMenuItem = (HANDLE)CallService(MO_ADDNEWMENUITEM, (WPARAM)hChooserMenu, (LPARAM)&tmi);
+ m_hChooseMenuItem = (HGENMENU)CallService(MO_ADDNEWMENUITEM, (WPARAM)hChooserMenu, (LPARAM)&tmi);
//////////////////////////////////////////////////////////////////////////////////////
// Hotkeys
@@ -1005,30 +992,26 @@ void CJabberProto::CheckMenuItems()
if ( !m_menuItemsStatus)
clmi.flags |= CMIF_GRAYED;
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuChangePassword, (LPARAM)&clmi);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuGroupchat, (LPARAM)&clmi);
+ Menu_ModifyItem(m_hMenuChangePassword, &clmi);
+ Menu_ModifyItem(m_hMenuGroupchat, &clmi);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuPrivacyLists, (LPARAM)&clmi);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuRosterControl, (LPARAM)&clmi);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuServiceDiscovery, (LPARAM)&clmi);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuSDMyTransports, (LPARAM)&clmi);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuSDTransports, (LPARAM)&clmi);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuSDConferences, (LPARAM)&clmi);
+ Menu_ModifyItem(m_hMenuPrivacyLists, &clmi);
+ Menu_ModifyItem(m_hMenuRosterControl, &clmi);
+ Menu_ModifyItem(m_hMenuServiceDiscovery, &clmi);
+ Menu_ModifyItem(m_hMenuSDMyTransports, &clmi);
+ Menu_ModifyItem(m_hMenuSDTransports, &clmi);
+ Menu_ModifyItem(m_hMenuSDConferences, &clmi);
- clmi.flags = CMIM_FLAGS | ((m_ThreadInfo && (m_ThreadInfo->jabberServerCaps & JABBER_CAPS_PRIVATE_STORAGE)) ? 0 : CMIF_HIDDEN);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuBookmarks, (LPARAM)&clmi);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuNotes, (LPARAM)&clmi);
+ bool bEnabled = m_ThreadInfo && (m_ThreadInfo->jabberServerCaps & JABBER_CAPS_PRIVATE_STORAGE);
+ Menu_ShowItem(m_hMenuNotes, bEnabled);
+ Menu_ShowItem(m_hMenuBookmarks, bEnabled);
- clmi.flags = CMIM_FLAGS | ((m_ThreadInfo && (m_ThreadInfo->jabberServerCaps & JABBER_CAPS_PRIVACY_LISTS)) ? 0 : CMIF_HIDDEN);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hPrivacyMenuRoot, (LPARAM)&clmi);
+ Menu_ShowItem(m_hPrivacyMenuRoot, m_ThreadInfo && (m_ThreadInfo->jabberServerCaps & JABBER_CAPS_PRIVACY_LISTS));
- clmi.flags = CMIM_FLAGS | (m_menuItemsStatus ? 0 : CMIF_HIDDEN);
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuPriorityRoot, (LPARAM)&clmi);
+ Menu_ShowItem(m_hMenuPriorityRoot, m_menuItemsStatus != 0);
- if ( !m_bPepSupported)
- clmi.flags |= CMIF_HIDDEN;
for (int i=0; i < m_pepServices.getCount(); i++)
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_pepServices[i].GetMenu(), (LPARAM)&clmi);
+ Menu_ShowItem(m_pepServices[i].GetMenu(), m_bPepSupported);
JabberUpdateDialogs(m_menuItemsStatus);
}
@@ -1273,7 +1256,7 @@ CJabberProto *JabberChooseInstance(bool bIsLink)
}
else clmi.flags |= CMIF_HIDDEN;
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)ppro->m_hChooseMenuItem, (LPARAM)&clmi);
+ Menu_ModifyItem(ppro->m_hChooseMenuItem, &clmi);
}
if (nItems > 1) {
diff --git a/protocols/JabberG/src/jabber_proto.cpp b/protocols/JabberG/src/jabber_proto.cpp
index 19a4745d34..b4083314e9 100644
--- a/protocols/JabberG/src/jabber_proto.cpp
+++ b/protocols/JabberG/src/jabber_proto.cpp
@@ -1589,7 +1589,7 @@ int __cdecl CJabberProto::OnEvent(PROTOEVENTTYPE eventType, WPARAM wParam, LPARA
CLISTMENUITEM clmi = { sizeof(clmi) };
clmi.flags = CMIM_NAME | CMIF_TCHAR | CMIF_KEEPUNTRANSLATED;
clmi.ptszName = m_tszUserName;
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuRoot, (LPARAM)&clmi);
+ Menu_ModifyItem(m_hMenuRoot, &clmi);
}
break;
diff --git a/protocols/JabberG/src/jabber_proto.h b/protocols/JabberG/src/jabber_proto.h
index 90ef79398a..ea534109d1 100644
--- a/protocols/JabberG/src/jabber_proto.h
+++ b/protocols/JabberG/src/jabber_proto.h
@@ -346,7 +346,7 @@ struct CJabberProto : public PROTO_INTERFACE
DWORD m_dwSDLastRefresh;
DWORD m_dwSDLastAutoDisco;
- HANDLE m_hChooseMenuItem;
+ HGENMENU m_hChooseMenuItem;
int m_privacyMenuServiceAllocated;
TFilterInfo m_filterInfo;
@@ -1005,8 +1005,8 @@ private:
BOOL m_menuItemsStatus;
LIST<void> m_hPrivacyMenuItems;
- int m_nMenuResourceItems;
- HANDLE* m_phMenuResourceItems;
+ int m_nMenuResourceItems;
+ HGENMENU *m_phMenuResourceItems;
};
extern LIST<CJabberProto> g_Instances;
diff --git a/protocols/JabberG/src/jabber_xstatus.cpp b/protocols/JabberG/src/jabber_xstatus.cpp
index 95d1b60946..5427401826 100644
--- a/protocols/JabberG/src/jabber_xstatus.cpp
+++ b/protocols/JabberG/src/jabber_xstatus.cpp
@@ -481,7 +481,6 @@ void CPepGuiService::RebuildMenu()
mi.pszService = szService;
mi.position = 200010;
mi.flags = CMIF_TCHAR | CMIF_ICONFROMICOLIB | CMIF_HIDDEN | CMIF_ROOTHANDLE;
-
mi.icolibItem = m_hIcolibItem;
mi.ptszName = m_szText ? m_szText : _T("<advanced status slot>");
m_hMenuItem = Menu_AddProtoMenuItem(&mi);
@@ -510,7 +509,7 @@ void CPepGuiService::UpdateMenuItem(HANDLE hIcolibIcon, TCHAR *text)
mi.flags = CMIF_TCHAR | CMIF_ICONFROMICOLIB | CMIM_ICON | CMIM_NAME;
mi.icolibItem = m_hIcolibItem;
mi.ptszName = m_szText ? m_szText : _T("<advanced status slot>");
- CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)m_hMenuItem, (LPARAM)&mi);
+ Menu_ModifyItem(m_hMenuItem, &mi);
}
int CPepGuiService::OnMenuItemClick(WPARAM, LPARAM)
diff --git a/protocols/JabberG/src/jabber_xstatus.h b/protocols/JabberG/src/jabber_xstatus.h
index dbbd95c678..2fc8cb77ab 100644
--- a/protocols/JabberG/src/jabber_xstatus.h
+++ b/protocols/JabberG/src/jabber_xstatus.h
@@ -34,7 +34,7 @@ public:
CPepService(CJabberProto *proto, char *name, TCHAR *node);
virtual ~CPepService();
- HANDLE GetMenu() { return m_hMenuItem; }
+ HGENMENU GetMenu() { return m_hMenuItem; }
TCHAR *GetNode() { return m_node; }
virtual void ProcessItems(const TCHAR *from, HXML items) = 0;
@@ -51,7 +51,7 @@ protected:
CJabberProto *m_proto;
char *m_name;
TCHAR *m_node;
- HANDLE m_hMenuItem;
+ HGENMENU m_hMenuItem;
int m_wasPublished;