From 33a4b26cc972c8649ff082d62e4b898507e5f701 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sat, 31 May 2025 13:56:17 +0300 Subject: useless/obsolete MCO_OPT_ONADD_SERVICE removed --- src/mir_app/src/genmenu.h | 7 +++---- src/mir_app/src/menu_clist.cpp | 34 +++++++++++++++++----------------- src/mir_app/src/menu_tray.cpp | 27 +++------------------------ src/mir_app/src/menu_utils.cpp | 17 +++++++++-------- src/mir_app/src/miranda.h | 2 +- 5 files changed, 33 insertions(+), 54 deletions(-) (limited to 'src') diff --git a/src/mir_app/src/genmenu.h b/src/mir_app/src/genmenu.h index 851f08fb4e..13288e210a 100644 --- a/src/mir_app/src/genmenu.h +++ b/src/mir_app/src/genmenu.h @@ -27,6 +27,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /* genmenu structs */ +#define MS_CLIST_MAIN_MENU "MainMenu/Command" +#define MS_CLIST_STATUS_MENU "GlobalStatus/Command" + #define MENUITEM_SIGNATURE 0xDEADBEEF struct TIntMenuObject; @@ -94,10 +97,6 @@ struct TIntMenuObject : public MZeroedObject //WPARAM wParam;//menuitemhandle char *FreeService;//callback service used to free ownerdata for menuitems - //LPARAM lParam;//MENUITEMINFO filled with all needed data - //WPARAM wParam;//menuitemhandle - char *onAddService;//called just before add MENUITEMINFO to hMenu - TMO_LinkedList m_items; HIMAGELIST m_hMenuIcons; bool m_bUseUserDefinedItems; diff --git a/src/mir_app/src/menu_clist.cpp b/src/mir_app/src/menu_clist.cpp index 4a1ac8459c..a547644a07 100644 --- a/src/mir_app/src/menu_clist.cpp +++ b/src/mir_app/src/menu_clist.cpp @@ -54,7 +54,7 @@ bool prochotkey; HANDLE hPreBuildMainMenuEvent, hStatusModeChangeEvent, hPreBuildContactMenuEvent, hPreBuildStatusMenuEvent; -HMENU hMainMenu, hStatusMenu; +HMENU g_hMainMenu, g_hStatusMenu; MStatus g_statuses[MAX_STATUS_COUNT] = { @@ -103,13 +103,13 @@ struct MainMenuExecParam MIR_APP_DLL(HMENU) Menu_GetMainMenu(void) { - RecursiveDeleteMenu(hMainMenu); + RecursiveDeleteMenu(g_hMainMenu); NotifyEventHooks(hPreBuildMainMenuEvent, 0, 0); - Menu_Build(hMainMenu, hMainMenuObject); + Menu_Build(g_hMainMenu, hMainMenuObject); DrawMenuBar(g_clistApi.hwndContactList); - return hMainMenu; + return g_hMainMenu; } MIR_APP_DLL(HGENMENU) Menu_AddMainMenuItem(TMO_MenuItem *pmi, const char *pszProto) @@ -350,10 +350,10 @@ MIR_APP_DLL(HGENMENU) Menu_AddStatusMenuItem(TMO_MenuItem *pmi, const char *pszP MIR_APP_DLL(HMENU) Menu_GetStatusMenu() { - RecursiveDeleteMenu(hStatusMenu); + RecursiveDeleteMenu(g_hStatusMenu); - Menu_Build(hStatusMenu, hStatusMenuObject); - return hStatusMenu; + Menu_Build(g_hStatusMenu, hStatusMenuObject); + return g_hStatusMenu; } ///////////////////////////////////////////////////////////////////////////////////////// @@ -435,9 +435,9 @@ static INT_PTR StatusMenuCheckService(WPARAM wParam, LPARAM) timiParent = MO_GetIntMenuItem(pimi->mi.root); MenuItemData it = {}; - if (FindMenuHandleByGlobalID(hStatusMenu, timiParent, &it)) { + if (FindMenuHandleByGlobalID(g_hStatusMenu, timiParent, &it)) { wchar_t d[100]; - GetMenuString(it.OwnerMenu, it.position, d, _countof(d), MF_BYPOSITION); + GetMenuStringW(it.OwnerMenu, it.position, d, _countof(d), MF_BYPOSITION); MENUITEMINFO mii = {}; mii.cbSize = sizeof(mii); @@ -685,14 +685,14 @@ MIR_APP_DLL(int) Clist_GetAccountIndex(int Pos) void RebuildMenuOrder(void) { // clear statusmenu - RecursiveDeleteMenu(hStatusMenu); + RecursiveDeleteMenu(g_hStatusMenu); // status menu if (hStatusMenuObject != 0) Menu_RemoveObject(hStatusMenuObject); hStatusMenuObject = Menu_AddObject("StatusMenu", LPGEN("Status menu"), "StatusMenuCheckService", "StatusMenuExecService"); - Menu_ConfigureObject(hStatusMenuObject, MCO_OPT_FREE_SERVICE, (INT_PTR)"CLISTMENUS/FreeOwnerDataStatusMenu"); + Menu_ConfigureObject(hStatusMenuObject, MCO_OPT_FREE_SERVICE, "CLISTMENUS/FreeOwnerDataStatusMenu"); g_menuProtos.destroy(); @@ -1025,8 +1025,8 @@ void InitCustomMenus(void) HookEvent(ME_PROTO_ACK, MenuProtoAck); - hMainMenu = CreatePopupMenu(); - hStatusMenu = CreatePopupMenu(); + g_hMainMenu = CreatePopupMenu(); + g_hStatusMenu = CreatePopupMenu(); // new menu sys InitGenMenu(); @@ -1034,12 +1034,12 @@ void InitCustomMenus(void) // main menu hMainMenuObject = Menu_AddObject("MainMenu", LPGEN("Main menu"), nullptr, "MainMenuExecService"); Menu_ConfigureObject(hMainMenuObject, MCO_OPT_USERDEFINEDITEMS, TRUE); - Menu_ConfigureObject(hMainMenuObject, MCO_OPT_FREE_SERVICE, (INT_PTR)"CLISTMENUS/FreeOwnerDataMainMenu"); + Menu_ConfigureObject(hMainMenuObject, MCO_OPT_FREE_SERVICE, "CLISTMENUS/FreeOwnerDataMainMenu"); // contact menu hContactMenuObject = Menu_AddObject("ContactMenu", LPGEN("Contact menu"), "ContactMenuCheckService", "ContactMenuExecService"); Menu_ConfigureObject(hContactMenuObject, MCO_OPT_USERDEFINEDITEMS, TRUE); - Menu_ConfigureObject(hContactMenuObject, MCO_OPT_FREE_SERVICE, (INT_PTR)"CLISTMENUS/FreeOwnerDataContactMenu"); + Menu_ConfigureObject(hContactMenuObject, MCO_OPT_FREE_SERVICE, "CLISTMENUS/FreeOwnerDataContactMenu"); // other menus InitGroupMenus(); @@ -1096,6 +1096,6 @@ void UninitCustomMenus(void) g_menuProtos.destroy(); - DestroyMenu(hMainMenu); - DestroyMenu(hStatusMenu); + DestroyMenu(g_hMainMenu); + DestroyMenu(g_hStatusMenu); } diff --git a/src/mir_app/src/menu_tray.cpp b/src/mir_app/src/menu_tray.cpp index 4215575095..0f9f2b5b2d 100644 --- a/src/mir_app/src/menu_tray.cpp +++ b/src/mir_app/src/menu_tray.cpp @@ -54,7 +54,7 @@ MIR_APP_DLL(void) Menu_DestroyNestedMenu(HMENU hMenu) int cnt = GetMenuItemCount(hMenu); for (int i = 0; i < cnt; ++i) { HMENU hSubMenu = GetSubMenu(hMenu, i); - if (hSubMenu && ((hSubMenu == hStatusMenu) || (hSubMenu == hMainMenu))) + if (hSubMenu && ((hSubMenu == g_hStatusMenu) || (hSubMenu == g_hMainMenu))) RemoveMenu(hMenu, i--, MF_BYPOSITION); } DestroyMenu(hMenu); @@ -77,25 +77,6 @@ static INT_PTR FreeOwnerDataTrayMenu(WPARAM, LPARAM lParam) return 0; } -static INT_PTR TrayMenuOnAddService(WPARAM wParam, LPARAM lParam) -{ - MENUITEMINFO *mii = (MENUITEMINFO*)wParam; - if (mii == nullptr) - return 0; - - if (hTrayMainMenuItemProxy == (HGENMENU)lParam) { - mii->fMask |= MIIM_SUBMENU; - mii->hSubMenu = hMainMenu = Menu_GetMainMenu(); - } - - if (hTrayStatusMenuItemProxy == (HGENMENU)lParam) { - mii->fMask |= MIIM_SUBMENU; - mii->hSubMenu = hStatusMenu = Menu_GetStatusMenu(); - } - - return TRUE; -} - static INT_PTR ShowHideStub(WPARAM, LPARAM) { return g_clistApi.pfnShowHide(); @@ -105,7 +86,6 @@ void InitTrayMenus(void) { CreateServiceFunction("CLISTMENUSTRAY/ExecService", TrayMenuExecService); CreateServiceFunction("CLISTMENUSTRAY/FreeOwnerDataTrayMenu", FreeOwnerDataTrayMenu); - CreateServiceFunction("CLISTMENUSTRAY/TrayMenuOnAddService", TrayMenuOnAddService); hEventPreBuildTrayMenu = CreateHookableEvent(ME_CLIST_PREBUILDTRAYMENU); @@ -113,7 +93,6 @@ void InitTrayMenus(void) hTrayMenuObject = Menu_AddObject("TrayMenu", LPGEN("Tray menu"), nullptr, "CLISTMENUSTRAY/ExecService"); Menu_ConfigureObject(hTrayMenuObject, MCO_OPT_USERDEFINEDITEMS, TRUE); Menu_ConfigureObject(hTrayMenuObject, MCO_OPT_FREE_SERVICE, "CLISTMENUSTRAY/FreeOwnerDataTrayMenu"); - Menu_ConfigureObject(hTrayMenuObject, MCO_OPT_ONADD_SERVICE, "CLISTMENUSTRAY/TrayMenuOnAddService"); // add exit command to menu CMenuItem mi(&g_plugin); @@ -138,14 +117,14 @@ void InitTrayMenus(void) SET_UID(mi, 0xb6d861bc, 0x9c3f, 0x40d9, 0xaf, 0x58, 0x53, 0x9f, 0x22, 0xe4, 0x77, 0x98); mi.position = 300000; mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_MAINMENU); // eternity #004 - mi.pszService = "MainMenu/Command"; + mi.pszService = MS_CLIST_MAIN_MENU; mi.name.a = LPGEN("&Main menu"); hTrayMainMenuItemProxy = Menu_AddTrayMenuItem(&mi); SET_UID(mi, 0xbafb2db6, 0x8994, 0x40f5, 0x8f, 0x34, 0x4, 0xde, 0x67, 0x8e, 0x6e, 0x70); mi.position = 300100; mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_STATUS); // eternity #004 - mi.pszService = "GlobalStatus/Command"; + mi.pszService = MS_CLIST_STATUS_MENU; mi.name.a = LPGEN("&Status"); hTrayStatusMenuItemProxy = Menu_AddTrayMenuItem(&mi); diff --git a/src/mir_app/src/menu_utils.cpp b/src/mir_app/src/menu_utils.cpp index c92174f4c9..33baa03ddb 100644 --- a/src/mir_app/src/menu_utils.cpp +++ b/src/mir_app/src/menu_utils.cpp @@ -563,10 +563,6 @@ MIR_APP_DLL(int) Menu_ConfigureObject(int hMenuObject, int setting, INT_PTR valu TIntMenuObject *pmo = GetMenuObjbyId(hMenuObject); if (pmo != nullptr) { switch (setting) { - case MCO_OPT_ONADD_SERVICE: - replaceStr(pmo->onAddService, (char*)value); - return true; - case MCO_OPT_FREE_SERVICE: replaceStr(pmo->FreeService, (char*)value); return true; @@ -1175,9 +1171,15 @@ static HMENU BuildRecursiveMenu(HMENU hMenu, const TMO_LinkedList &pList, WPARAM } #endif - if (pmo->onAddService != nullptr) - if (CallService(pmo->onAddService, (WPARAM)&mii, (LPARAM)pmi) == FALSE) - continue; + if (!mir_strcmp(pmi->mi.pszService, MS_CLIST_MAIN_MENU)) { + mii.fMask |= MIIM_SUBMENU; + mii.hSubMenu = Menu_GetMainMenu(); + } + + if (!mir_strcmp(pmi->mi.pszService, MS_CLIST_STATUS_MENU)) { + mii.fMask |= MIIM_SUBMENU; + mii.hSubMenu = Menu_GetStatusMenu(); + } InsertMenuItemWithSeparators(hMenu, i, &mii); } @@ -1335,7 +1337,6 @@ TIntMenuObject::~TIntMenuObject() m_items.destroy(); mir_free(FreeService); - mir_free(onAddService); mir_free(CheckService); mir_free(ExecService); mir_free(ptszDisplayName); diff --git a/src/mir_app/src/miranda.h b/src/mir_app/src/miranda.h index 25f19bb8f6..099f40736c 100644 --- a/src/mir_app/src/miranda.h +++ b/src/mir_app/src/miranda.h @@ -115,7 +115,7 @@ void Clist_RemoveContactEvent(MCONTACT hContact); extern int hMainMenuObject, hContactMenuObject, hStatusMenuObject; extern HANDLE hPreBuildMainMenuEvent, hPreBuildContactMenuEvent; -extern HMENU hMainMenu, hStatusMenu; +extern HMENU g_hMainMenu, g_hStatusMenu; struct MStatus { -- cgit v1.2.3