From 6c0c95718d89b90c1993ca85656183e1a1c27bfe Mon Sep 17 00:00:00 2001 From: George Hazan <george.hazan@gmail.com> Date: Tue, 16 Jan 2024 19:39:31 +0300 Subject: =?UTF-8?q?fixes=20#4078=20(=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BC=D0=B5=D0=BD=D1=8E=20=D0=B3=D1=80=D1=83=D0=BF?= =?UTF-8?q?=D0=BF=20=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF=D0=BD=D0=B5=D0=B5?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mir_app/src/clc.cpp | 26 +--- src/mir_app/src/clui.cpp | 2 +- src/mir_app/src/genmenu.h | 3 +- src/mir_app/src/menu_groups.cpp | 334 ++++++++++++++++------------------------ src/mir_app/src/mir_app.def | 1 - src/mir_app/src/mir_app64.def | 1 - src/mir_app/src/resource.h | 5 - 7 files changed, 133 insertions(+), 239 deletions(-) (limited to 'src/mir_app') diff --git a/src/mir_app/src/clc.cpp b/src/mir_app/src/clc.cpp index 458aae07a0..b52c63f672 100644 --- a/src/mir_app/src/clc.cpp +++ b/src/mir_app/src/clc.cpp @@ -1201,7 +1201,7 @@ LBL_MoveSelection: if (dat->selection != -1 && hitFlags & (CLCHT_ONITEMICON | CLCHT_ONITEMCHECK | CLCHT_ONITEMLABEL)) { HMENU hMenu; if (contact->type == CLCIT_GROUP) - hMenu = Menu_BuildSubGroupMenu(contact->group); + hMenu = Menu_BuildGroupMenu(contact->group); else if (contact->type == CLCIT_CONTACT) hMenu = Menu_BuildContactMenu(contact->hContact); else @@ -1231,30 +1231,8 @@ LBL_MoveSelection: if (Clist_MenuProcessCommand(LOWORD(wParam), MPCF_CONTACTMENU, contact->hContact)) break; - if (contact->type == CLCIT_GROUP) { - switch (LOWORD(wParam)) { - case POPUP_NEWGROUP: - case POPUP_NEWSUBGROUP: - SetWindowLongPtr(hwnd, GWL_STYLE, GetWindowLongPtr(hwnd, GWL_STYLE) & ~CLS_HIDEEMPTYGROUPS); - SetWindowLongPtr(hwnd, GWL_STYLE, GetWindowLongPtr(hwnd, GWL_STYLE) | CLS_USEGROUPS); - if (LOWORD(wParam) == POPUP_NEWGROUP) - Clist_GroupCreate(0, nullptr); - else - Clist_GroupCreate(contact->groupId, nullptr); - break; - case POPUP_RENAMEGROUP: - g_clistApi.pfnBeginRenameSelection(hwnd, dat); - break; - case POPUP_DELETEGROUP: - Clist_GroupDelete(contact->groupId); - break; - case POPUP_GROUPHIDEOFFLINE: - Clist_GroupSetFlags(contact->groupId, MAKELPARAM(contact->group->bHideOffline ? 0 : GROUPF_HIDEOFFLINE, GROUPF_HIDEOFFLINE)); - break; - } - + if (contact->type == CLCIT_GROUP) Menu_ProcessCommandById(wParam, (LPARAM)hwnd); - } break; case WM_DESTROY: diff --git a/src/mir_app/src/clui.cpp b/src/mir_app/src/clui.cpp index 3837862075..e46368d640 100644 --- a/src/mir_app/src/clui.cpp +++ b/src/mir_app/src/clui.cpp @@ -892,7 +892,7 @@ LRESULT CALLBACK fnContactListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM } } if (PtInRect(&rc, pt)) { - HMENU hMenu = Menu_BuildGroupMenu(); + HMENU hMenu = Menu_BuildGroupMenu(nullptr); TrackPopupMenu(hMenu, TPM_TOPALIGN | TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, nullptr); Menu_DestroyNestedMenu(hMenu); return 0; diff --git a/src/mir_app/src/genmenu.h b/src/mir_app/src/genmenu.h index 072c252171..bf004c48b6 100644 --- a/src/mir_app/src/genmenu.h +++ b/src/mir_app/src/genmenu.h @@ -126,8 +126,7 @@ int UninitGenMenu(); int Menu_LoadFromDatabase(TMO_IntMenuItem *pimi, void *param); -HMENU Menu_BuildGroupMenu(void); -HMENU Menu_BuildSubGroupMenu(struct ClcGroup *group); +HMENU Menu_BuildGroupMenu(struct ClcGroup *group); LPTSTR GetMenuItemText(TMO_IntMenuItem*); diff --git a/src/mir_app/src/menu_groups.cpp b/src/mir_app/src/menu_groups.cpp index ea5b08bc98..a8dccf8e77 100644 --- a/src/mir_app/src/menu_groups.cpp +++ b/src/mir_app/src/menu_groups.cpp @@ -25,15 +25,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "stdafx.h" ///////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////// Group MENU ////////////////////////////// +// Group menu -int hGroupMenuObject, hSubGroupMenuObject; +int hGroupMenuObject; -static HANDLE hEventPreBuildGroupMenu, hEventPreBuildSubGroupMenu; -static HGENMENU hHideOfflineUsersMenuItem; -static HGENMENU hHideOfflineUsersOutHereMenuItem; -static HGENMENU hHideEmptyGroupsMenuItem; -static HGENMENU hDisableGroupsMenuItem; +static HANDLE hEventPreBuildGroupMenu; +static HGENMENU hmiHideOfflineUsers, hmiHideOfflineUsersInHere, hmiHideOfflineUsersOutHere; +static HGENMENU hmiHideEmptyGroups, hmiDisableGroups; +static HGENMENU hmiCreateSubgroup, hmiRenameGroup, hmiDeleteGroup; // Groupmenu exec param(ownerdata) @@ -43,12 +42,12 @@ struct GroupMenuExecParam int Param1, Param2; }; -HMENU Menu_BuildGroupMenu() +HMENU Menu_BuildGroupMenu(struct ClcGroup *group) { - NotifyEventHooks(hEventPreBuildGroupMenu, 0, 0); + NotifyEventHooks(hEventPreBuildGroupMenu, WPARAM(group), 0); HMENU hMenu = CreatePopupMenu(); - Menu_Build(hMenu, hGroupMenuObject); + Menu_Build(hMenu, hGroupMenuObject, WPARAM(group)); return hMenu; } @@ -73,6 +72,22 @@ MIR_APP_DLL(HGENMENU) Menu_AddGroupMenuItem(TMO_MenuItem *pmi, GroupMenuParam *g return hNewItem; } +// called with: +// wparam - ClcGroup* +// lparam - lparam from winproc +static INT_PTR GroupMenuCheckService(WPARAM wParam, LPARAM) +{ + TCheckProcParam *CParam = (TCheckProcParam *)wParam; + if (CParam) { + GroupMenuExecParam *mmep = (GroupMenuExecParam *)(CParam->MenuItemOwnerData); + if (mmep) { + mmep->Param1 = CParam->wParam; + mmep->Param2 = CParam->lParam; + } + } + return 1; +} + // called with: // wparam - ownerdata // lparam - lparam from winproc @@ -114,7 +129,7 @@ static INT_PTR UseGroupsHelper(WPARAM, LPARAM) return newVal; } -static INT_PTR HideOfflineHelper(WPARAM, LPARAM) +static INT_PTR ToggleOfflineHelper(WPARAM, LPARAM) { return g_clistApi.pfnSetHideOffline(-1); } @@ -134,119 +149,58 @@ static INT_PTR CreateGroupHelper(WPARAM, LPARAM) return 0; } -static int OnBuildGroupMenu(WPARAM, LPARAM) +static INT_PTR CreateSubGroupHelper(WPARAM wParam, LPARAM) { - bool bChecked = Clist::HideOffline; - Menu_SetChecked(hHideOfflineUsersMenuItem, bChecked); - - bChecked = SendMessage(g_clistApi.hwndContactTree, CLM_GETHIDEOFFLINEROOT, 0, 0) != 0; - Menu_SetChecked(hHideOfflineUsersOutHereMenuItem, bChecked); + SendMessage(g_clistApi.hwndContactTree, CLM_SETHIDEEMPTYGROUPS, 0, 0); + SendMessage(g_clistApi.hwndContactTree, CLM_SETUSEGROUPS, 1, 0); - uint32_t dwStyle = GetWindowLongPtr(g_clistApi.hwndContactTree, GWL_STYLE); - Menu_SetChecked(hHideEmptyGroupsMenuItem, (dwStyle & CLS_HIDEEMPTYGROUPS) != 0); - Menu_SetChecked(hDisableGroupsMenuItem, (dwStyle & CLS_USEGROUPS) == 0); + auto *pGroup = (ClcGroup *)wParam; + Clist_GroupCreate(pGroup ? pGroup->groupId : 0, nullptr); return 0; } -///////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////// SubGroup MENU ////////////////////////////// - -struct SubGroupMenuExecParam +static INT_PTR HideInGroupHelper(WPARAM wParam, LPARAM) { - char *szServiceName; - int Param1, Param2; -}; - -HMENU Menu_BuildSubGroupMenu(ClcGroup *group) -{ - NotifyEventHooks(hEventPreBuildSubGroupMenu, (WPARAM)group, 0); - - HMENU hMenu = CreatePopupMenu(); - Menu_Build(hMenu, hSubGroupMenuObject, (WPARAM)group, 0); - return hMenu; + auto *pGroup = (ClcGroup *)wParam; + Clist_GroupSetFlags(pGroup->groupId, MAKELPARAM(pGroup->bHideOffline ? 0 : GROUPF_HIDEOFFLINE, GROUPF_HIDEOFFLINE)); + return 0; } -///////////////////////////////////////////////////////////////////////////////////////// - -MIR_APP_DLL(HGENMENU) Menu_AddSubGroupMenuItem(TMO_MenuItem *pmi, GroupMenuParam *gmp) +static INT_PTR RenameGroupHelper(WPARAM wParam, LPARAM) { - SubGroupMenuExecParam *mmep = (SubGroupMenuExecParam *)mir_calloc(sizeof(SubGroupMenuExecParam)); - if (mmep == nullptr) - return nullptr; - - // we need just one parametr. - mmep->szServiceName = mir_strdup(pmi->pszService); - if (gmp != nullptr) { - mmep->Param1 = gmp->wParam; - mmep->Param2 = gmp->lParam; - } - - HGENMENU hNewItem = Menu_AddItem(hSubGroupMenuObject, pmi, mmep); - - char buf[1024]; - mir_snprintf(buf, "%s/%s", pmi->pszService, pmi->name.a); - Menu_ConfigureItem(hNewItem, MCI_OPT_UNIQUENAME, buf); - return hNewItem; + auto *pGroup = (ClcGroup *)wParam; + PostMessage(g_clistApi.hwndContactTree, CLM_EDITLABEL, pGroup->groupId | HCONTACT_ISGROUP, 0); + return 0; } -///////////////////////////////////////////////////////////////////////////////////////// - -static INT_PTR SubGroupMenuCheckService(WPARAM wParam, LPARAM) +static INT_PTR DeleteGroupHelper(WPARAM wParam, LPARAM) { - TCheckProcParam *CParam = (TCheckProcParam *)wParam; - if (CParam) { - SubGroupMenuExecParam *mmep = (SubGroupMenuExecParam *)(CParam->MenuItemOwnerData); - if (mmep) - mmep->Param2 = CParam->lParam; - } - return 1; + auto *pGroup = (ClcGroup *)wParam; + Clist_GroupDelete(pGroup->groupId); + return 0; } -///////////////////////////////////////////////////////////////////////////////////////// -// called with: -// wparam - ownerdata -// lparam - lparam from winproc - -static INT_PTR SubGroupMenuExecService(WPARAM wParam, LPARAM lParam) +static int OnBuildGroupMenu(WPARAM wParam, LPARAM) { - if (wParam != 0) { - SubGroupMenuExecParam *mmep = (SubGroupMenuExecParam *)wParam; - CallService(mmep->szServiceName, mmep->Param1, lParam); - } - return 1; -} - -///////////////////////////////////////////////////////////////////////////////////////// + bool bChecked = Clist::HideOffline; + Menu_SetChecked(hmiHideOfflineUsers, bChecked); -static INT_PTR FreeOwnerDataSubGroupMenu(WPARAM, LPARAM lParam) -{ - SubGroupMenuExecParam *mmep = (SubGroupMenuExecParam *)lParam; - if (mmep != nullptr) { - mir_free(mmep->szServiceName); - mir_free(mmep); - } - return 0; -} + bChecked = SendMessage(g_clistApi.hwndContactTree, CLM_GETHIDEOFFLINEROOT, 0, 0) != 0; + Menu_SetChecked(hmiHideOfflineUsersOutHere, bChecked); -///////////////////////////////////////////////////////////////////////////////////////// + uint32_t dwStyle = GetWindowLongPtr(g_clistApi.hwndContactTree, GWL_STYLE); + Menu_SetChecked(hmiHideEmptyGroups, (dwStyle & CLS_HIDEEMPTYGROUPS) != 0); + Menu_SetChecked(hmiDisableGroups, (dwStyle & CLS_USEGROUPS) == 0); -static HGENMENU hHideOfflineUsersHereMenuItem; + Menu_ShowItem(hmiRenameGroup, wParam != 0); + Menu_ShowItem(hmiDeleteGroup, wParam != 0); + Menu_ShowItem(hmiCreateSubgroup, wParam != 0); + Menu_ShowItem(hmiHideOfflineUsersInHere, wParam != 0); + Menu_ShowItem(hmiHideOfflineUsersOutHere, wParam == 0); -static int OnBuildSubGroupMenu(WPARAM wParam, LPARAM) -{ - ClcGroup *group = (ClcGroup*)wParam; + ClcGroup *group = (ClcGroup *)wParam; if (group != nullptr) // contact->group - Menu_SetChecked(hHideOfflineUsersHereMenuItem, group->bHideOffline != 0); - return 0; -} - -///////////////////////////////////////////////////////////////////////////////////////// -// wparam menu handle to pass to clc.c -// lparam WM_COMMAND HWND - -static INT_PTR GroupMenuExecProxy(WPARAM wParam, LPARAM lParam) -{ - SendMessage(lParam ? (HWND)lParam : (HWND)g_clistApi.hwndContactTree, WM_COMMAND, wParam, 0); + Menu_SetChecked(hmiHideOfflineUsersInHere, group->bHideOffline != 0); return 0; } @@ -254,10 +208,9 @@ static INT_PTR GroupMenuExecProxy(WPARAM wParam, LPARAM lParam) void InitGroupMenus(void) { - GroupMenuParam gmp = {}; - // Group menu CreateServiceFunction("CLISTMENUSGroup/ExecService", GroupMenuExecService); + CreateServiceFunction("CLISTMENUSGroup/CheckService", GroupMenuCheckService); CreateServiceFunction("CLISTMENUSGroup/FreeOwnerDataGroupMenu", FreeOwnerDataGroupMenu); hEventPreBuildGroupMenu = CreateHookableEvent(ME_CLIST_PREBUILDGROUPMENU); @@ -265,106 +218,77 @@ void InitGroupMenus(void) hGroupMenuObject = Menu_AddObject("GroupMenu", LPGEN("Group menu"), nullptr, "CLISTMENUSGroup/ExecService"); Menu_ConfigureObject(hGroupMenuObject, MCO_OPT_USERDEFINEDITEMS, TRUE); + Menu_ConfigureObject(hGroupMenuObject, MCO_OPT_CHECK_SERVICE, "CLISTMENUSGroup/CheckService"); Menu_ConfigureObject(hGroupMenuObject, MCO_OPT_FREE_SERVICE, "CLISTMENUSGroup/FreeOwnerDataGroupMenu"); Menu_ConfigureObject(hGroupMenuObject, MCO_OPT_ONADD_SERVICE, "CLISTMENUSGroup/GroupMenuOnAddService"); - { - CMenuItem mi(&g_plugin); - - SET_UID(mi, 0x2f75bc72, 0xd836, 0x4922, 0x9f, 0xe, 0xed, 0x9e, 0xe7, 0x2b, 0x84, 0xf0); - mi.position = 100000; - mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_GROUPADD); - mi.pszService = "CLISTMENUSGroup/CreateGroupHelper"; - mi.name.a = LPGEN("New group"); - Menu_AddGroupMenuItem(&mi); - CreateServiceFunction(mi.pszService, CreateGroupHelper); - - SET_UID(mi, 0xe6269658, 0x69, 0x4094, 0x9b, 0x35, 0x4e, 0x80, 0x29, 0x26, 0xf, 0x8e); - mi.position = 500001; - mi.hIcolibItem = nullptr; - mi.pszService = MS_CLIST_TOGGLEHIDEOFFLINE; - mi.name.a = LPGEN("Hide offline users"); - gmp.wParam = -1; - hHideOfflineUsersMenuItem = Menu_AddGroupMenuItem(&mi, &gmp); - CreateServiceFunction(mi.pszService, HideOfflineHelper); - - SET_UID(mi, 0xeded7371, 0xf6e6, 0x48c3, 0x8c, 0x9e, 0x62, 0xc1, 0xd5, 0xcb, 0x51, 0xbc); - mi.position++; - mi.pszService = MS_CLIST_TOGGLEHIDEOFFLINEROOT; - mi.name.a = LPGEN("Hide offline users out here"); - hHideOfflineUsersOutHereMenuItem = Menu_AddGroupMenuItem(&mi); - CreateServiceFunction(mi.pszService, HideOfflineRootHelper); - - SET_UID(mi, 0x4c17b9cf, 0x513a, 0x41d8, 0x8d, 0x2b, 0x89, 0x44, 0x81, 0x14, 0x0, 0x91); - mi.position++; - mi.pszService = MS_CLIST_TOGGLEEMPTYGROUPS; - mi.name.a = LPGEN("Hide empty groups"); - hHideEmptyGroupsMenuItem = Menu_AddGroupMenuItem(&mi); - CreateServiceFunction(mi.pszService, HideGroupsHelper); - - SET_UID(mi, 0xfcbdbbb1, 0xa553, 0x49ac, 0xa5, 0xdf, 0xb4, 0x81, 0x38, 0xf, 0xa0, 0xc7); - mi.position++; - mi.pszService = MS_CLIST_TOGGLEGROUPS; - mi.name.a = LPGEN("Disable groups"); - hDisableGroupsMenuItem = Menu_AddGroupMenuItem(&mi); - CreateServiceFunction(mi.pszService, UseGroupsHelper); - - SET_UID(mi, 0xfffb8733, 0xa3e4, 0x4566, 0xa6, 0x6e, 0x4c, 0x4c, 0x7c, 0xe9, 0x56, 0x99); - mi.position = 1900000; - mi.pszService = "CloseAction"; - mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_EXIT); - mi.name.a = LPGEN("Exit"); - Menu_AddGroupMenuItem(&mi); - } - // SubGroup menu - CreateServiceFunction("CLISTMENUSSubGroup/ExecService", SubGroupMenuExecService); - CreateServiceFunction("CLISTMENUSSubGroup/FreeOwnerDataSubGroupMenu", FreeOwnerDataSubGroupMenu); - CreateServiceFunction("CLISTMENUSSubGroup/SubGroupMenuCheckService", SubGroupMenuCheckService); - - hEventPreBuildSubGroupMenu = CreateHookableEvent(ME_CLIST_PREBUILDSUBGROUPMENU); - HookEvent(ME_CLIST_PREBUILDSUBGROUPMENU, OnBuildSubGroupMenu); - - hSubGroupMenuObject = Menu_AddObject("SubGroupMenu", LPGEN("Subgroup menu"), nullptr, "CLISTMENUSSubGroup/ExecService"); - Menu_ConfigureObject(hSubGroupMenuObject, MCO_OPT_USERDEFINEDITEMS, TRUE); - Menu_ConfigureObject(hSubGroupMenuObject, MCO_OPT_FREE_SERVICE, "CLISTMENUSSubGroup/FreeOwnerDataSubGroupMenu"); - Menu_ConfigureObject(hSubGroupMenuObject, MCO_OPT_CHECK_SERVICE, "CLISTMENUSSubGroup/SubGroupMenuCheckService"); - { - CMenuItem mi(&g_plugin); - mi.pszService = "CLISTMENUSSubGroup/GroupMenuExecProxy"; - CreateServiceFunction(mi.pszService, GroupMenuExecProxy); - - SET_UID(mi, 0xd208f1d2, 0x7220, 0x4d37, 0xb6, 0xe4, 0xd5, 0x4a, 0xe8, 0xa3, 0xf4, 0x53); - mi.position = 1000; - mi.name.a = LPGEN("New group"); - mi.hIcolibItem = Skin_GetIconHandle(SKINICON_AUTH_ADD); - gmp.wParam = POPUP_NEWGROUP; - Menu_AddSubGroupMenuItem(&mi, &gmp); - - SET_UID(mi, 0x24bcb592, 0x660e, 0x4541, 0xa0, 0xac, 0x11, 0x4a, 0x23, 0xc8, 0x9b, 0x91); - mi.position++; - mi.name.a = LPGEN("New subgroup"); - gmp.wParam = POPUP_NEWSUBGROUP; - Menu_AddSubGroupMenuItem(&mi, &gmp); - - SET_UID(mi, 0xd85f5ff0, 0x12ca, 0x464d, 0x86, 0x51, 0x53, 0x36, 0x9f, 0x1d, 0x80, 0x45); - mi.position++; - mi.hIcolibItem = nullptr; - mi.name.a = LPGEN("Hide offline users in here"); - gmp.wParam = POPUP_GROUPHIDEOFFLINE; - hHideOfflineUsersHereMenuItem = Menu_AddSubGroupMenuItem(&mi, &gmp); - - SET_UID(mi, 0xf0953dd, 0x5c31, 0x48a4, 0xb4, 0x16, 0x89, 0x5, 0x97, 0xd0, 0x75, 0x3e); - mi.position = 900001; - mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_RENAME); - mi.name.a = LPGEN("Rename group"); - gmp.wParam = POPUP_RENAMEGROUP; - Menu_AddSubGroupMenuItem(&mi, &gmp); - - SET_UID(mi, 0xb0d63cda, 0xa743, 0x4cfa, 0xa6, 0x2d, 0x50, 0xc0, 0x90, 0xe7, 0x6a, 0xc4); - mi.position++; - mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_DELETE); - mi.name.a = LPGEN("Delete group"); - gmp.wParam = POPUP_DELETEGROUP; - Menu_AddSubGroupMenuItem(&mi, &gmp); - } + CMenuItem mi(&g_plugin); + + SET_UID(mi, 0x2f75bc72, 0xd836, 0x4922, 0x9f, 0xe, 0xed, 0x9e, 0xe7, 0x2b, 0x84, 0xf0); + mi.position = 100000; + mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_GROUPADD); + mi.pszService = "CLISTMENUSGroup/CreateGroupHelper"; + mi.name.a = LPGEN("New group"); + Menu_AddGroupMenuItem(&mi); + CreateServiceFunction(mi.pszService, CreateGroupHelper); + + SET_UID(mi, 0x24bcb592, 0x660e, 0x4541, 0xa0, 0xac, 0x11, 0x4a, 0x23, 0xc8, 0x9b, 0x91); + mi.position++; + mi.name.a = LPGEN("New subgroup"); + mi.pszService = "CLISTMENUSGroup/CreateGroupHelper"; + hmiCreateSubgroup = Menu_AddGroupMenuItem(&mi); + CreateServiceFunction(mi.pszService, CreateSubGroupHelper); + + SET_UID(mi, 0xe6269658, 0x69, 0x4094, 0x9b, 0x35, 0x4e, 0x80, 0x29, 0x26, 0xf, 0x8e); + mi.position = 500001; + mi.hIcolibItem = nullptr; + mi.pszService = MS_CLIST_TOGGLEHIDEOFFLINE; + mi.name.a = LPGEN("Hide offline users"); + hmiHideOfflineUsers = Menu_AddGroupMenuItem(&mi); + CreateServiceFunction(mi.pszService, ToggleOfflineHelper); + + SET_UID(mi, 0xeded7371, 0xf6e6, 0x48c3, 0x8c, 0x9e, 0x62, 0xc1, 0xd5, 0xcb, 0x51, 0xbc); + mi.position++; + mi.pszService = MS_CLIST_TOGGLEHIDEOFFLINEROOT; + mi.name.a = LPGEN("Hide offline users out here"); + hmiHideOfflineUsersOutHere = Menu_AddGroupMenuItem(&mi); + CreateServiceFunction(mi.pszService, HideOfflineRootHelper); + + SET_UID(mi, 0x4c17b9cf, 0x513a, 0x41d8, 0x8d, 0x2b, 0x89, 0x44, 0x81, 0x14, 0x0, 0x91); + mi.position++; + mi.pszService = MS_CLIST_TOGGLEEMPTYGROUPS; + mi.name.a = LPGEN("Hide empty groups"); + hmiHideEmptyGroups = Menu_AddGroupMenuItem(&mi); + CreateServiceFunction(mi.pszService, HideGroupsHelper); + + SET_UID(mi, 0xfcbdbbb1, 0xa553, 0x49ac, 0xa5, 0xdf, 0xb4, 0x81, 0x38, 0xf, 0xa0, 0xc7); + mi.position++; + mi.pszService = MS_CLIST_TOGGLEGROUPS; + mi.name.a = LPGEN("Disable groups"); + hmiDisableGroups = Menu_AddGroupMenuItem(&mi); + CreateServiceFunction(mi.pszService, UseGroupsHelper); + + SET_UID(mi, 0xd85f5ff0, 0x12ca, 0x464d, 0x86, 0x51, 0x53, 0x36, 0x9f, 0x1d, 0x80, 0x45); + mi.position = 900001; + mi.hIcolibItem = nullptr; + mi.name.a = LPGEN("Hide offline users in here"); + mi.pszService = "CLISTMENUSGroup/HideInGroupHelper"; + hmiHideOfflineUsersInHere = Menu_AddGroupMenuItem(&mi); + CreateServiceFunction(mi.pszService, HideInGroupHelper); + + SET_UID(mi, 0xf0953dd, 0x5c31, 0x48a4, 0xb4, 0x16, 0x89, 0x5, 0x97, 0xd0, 0x75, 0x3e); + mi.position++; + mi.name.a = LPGEN("Rename group"); + mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_RENAME); + mi.pszService = "CLISTMENUSGroup/RenameGroupHelper"; + hmiRenameGroup = Menu_AddGroupMenuItem(&mi); + CreateServiceFunction(mi.pszService, RenameGroupHelper); + + SET_UID(mi, 0xb0d63cda, 0xa743, 0x4cfa, 0xa6, 0x2d, 0x50, 0xc0, 0x90, 0xe7, 0x6a, 0xc4); + mi.position++; + mi.name.a = LPGEN("Delete group"); + mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_DELETE); + mi.pszService = "CLISTMENUSGroup/DeleteGroupHelper"; + hmiDeleteGroup = Menu_AddGroupMenuItem(&mi); + CreateServiceFunction(mi.pszService, DeleteGroupHelper); } diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index f1267d12ad..9a82e8e1f0 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -158,7 +158,6 @@ Menu_BuildContactMenu @226 Menu_GetMainMenu @228 Menu_GetStatusMenu @229 Menu_AddGroupMenuItem @231 -Menu_AddSubGroupMenuItem @232 Menu_AddTrayMenuItem @234 Menu_BuildTrayMenu @235 Menu_DestroyNestedMenu @236 diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index 4dd4d1e245..64227040f5 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -158,7 +158,6 @@ Menu_BuildContactMenu @226 Menu_GetMainMenu @228 Menu_GetStatusMenu @229 Menu_AddGroupMenuItem @231 -Menu_AddSubGroupMenuItem @232 Menu_AddTrayMenuItem @234 Menu_BuildTrayMenu @235 Menu_DestroyNestedMenu @236 diff --git a/src/mir_app/src/resource.h b/src/mir_app/src/resource.h index d3bd1a71b9..1576f6d873 100644 --- a/src/mir_app/src/resource.h +++ b/src/mir_app/src/resource.h @@ -664,9 +664,6 @@ #define ID_ICQ_EXIT 40001 #define IDM_COPY 40001 #define ID_RESET 40002 -#define POPUP_NEWGROUP 40003 -#define POPUP_NEWSUBGROUP 40004 -#define POPUP_GROUPHIDEOFFLINE 40006 #define IDM_SENDMESSAGE 40009 #define IDM_COPYALL 40011 #define IDM_SELECTALL 40012 @@ -675,8 +672,6 @@ #define IDM_COPYLINK 40015 #define ID_CANCELCHANGE 40018 #define POPUP_GROUPSHOWOFFLINE 40019 -#define POPUP_RENAMEGROUP 40052 -#define POPUP_DELETEGROUP 40053 #define ID_GROUP 40066 #define ID_UNGROUP 40067 #define IDM_SEARCH_GOOGLE 40080 -- cgit v1.2.3