From e84bafdd3f3d2eb67e10a9bd3fbe600748962b6f Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 24 Mar 2017 15:38:17 +0300 Subject: revolution in chat menus - common code moved to the core (Chat_CreateGCMenu, Chat_DestroyGCMenu); - ability added to any plugin to add its own items into any GC menu, not only to the protocol plugins to do that a plugin calls Chat_AddMenuItems and returns 0 to allow any other plugin to process menu hook --- protocols/AimOscar/src/chat.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'protocols/AimOscar/src') diff --git a/protocols/AimOscar/src/chat.cpp b/protocols/AimOscar/src/chat.cpp index bd7a371619..24df22d77b 100644 --- a/protocols/AimOscar/src/chat.cpp +++ b/protocols/AimOscar/src/chat.cpp @@ -162,16 +162,15 @@ int CAimProto::OnGCEvent(WPARAM, LPARAM lParam) int CAimProto::OnGCMenuHook(WPARAM, LPARAM lParam) { GCMENUITEMS *gcmi = (GCMENUITEMS*)lParam; - - if (gcmi == NULL || _stricmp(gcmi->pszModule, m_szModuleName)) return 0; + if (mir_strcmp(gcmi->pszModule, m_szModuleName)) + return 0; if (gcmi->Type == MENU_ON_LOG) { static const struct gc_item Items[] = { { TranslateT("&Invite user..."), 10, MENU_ITEM, FALSE }, { TranslateT("&Leave chat session"), 20, MENU_ITEM, FALSE } }; - gcmi->nItems = _countof(Items); - gcmi->Item = (gc_item*)Items; + Chat_AddMenuItems(gcmi->hMenu, _countof(Items), Items); } else if (gcmi->Type == MENU_ON_NICKLIST) { char* sn = mir_u2a(gcmi->pszUID); @@ -182,16 +181,14 @@ int CAimProto::OnGCMenuHook(WPARAM, LPARAM lParam) { L"", 100, MENU_SEPARATOR, FALSE }, { TranslateT("&Leave chat session"), 110, MENU_ITEM, FALSE } }; - gcmi->nItems = _countof(Items); - gcmi->Item = (gc_item*)Items; + Chat_AddMenuItems(gcmi->hMenu, _countof(Items), Items); } else { static const struct gc_item Items[] = { { TranslateT("User &details"), 10, MENU_ITEM, FALSE }, { TranslateT("User &history"), 20, MENU_ITEM, FALSE } }; - gcmi->nItems = _countof(Items); - gcmi->Item = (gc_item*)Items; + Chat_AddMenuItems(gcmi->hMenu, _countof(Items), Items); } mir_free(sn); } -- cgit v1.2.3