From 3abd733254c02e2ca2c9bcc7fbbd1417c4a8ff74 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 16 Dec 2013 16:07:54 +0000 Subject: - new menu object helpers (MO_CreateMenuObject, MO_SetMenuObjectParam); - menu item display names are now translatable; - old nasty pieces of junk removed in CLUIFrames/cluiframes.cpp git-svn-id: http://svn.miranda-ng.org/main/trunk@7247 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Clist_mw/src/CLUIFrames/cluiframes.cpp | 11 +-- plugins/Clist_mw/src/CLUIFrames/cluiframes.h | 9 --- plugins/Clist_mw/src/CLUIFrames/framesmenu.cpp | 98 ++++---------------------- plugins/Clist_mw/src/clisttray.cpp | 28 ++------ plugins/Clist_mw/src/groupmenu.cpp | 63 +++-------------- 5 files changed, 30 insertions(+), 179 deletions(-) (limited to 'plugins/Clist_mw/src') diff --git a/plugins/Clist_mw/src/CLUIFrames/cluiframes.cpp b/plugins/Clist_mw/src/CLUIFrames/cluiframes.cpp index 5374b67ae1..a624ec563f 100644 --- a/plugins/Clist_mw/src/CLUIFrames/cluiframes.cpp +++ b/plugins/Clist_mw/src/CLUIFrames/cluiframes.cpp @@ -36,11 +36,9 @@ extern HINSTANCE g_hInst; #define frame_menu_visible 2 #define frame_menu_showtitlebar 3 #define frame_menu_floating 4 -extern int ModifyMenuItemProxy(WPARAM wParam,LPARAM lParam); static int UpdateTBToolTip(int framepos); INT_PTR CLUIFrameSetFloat(WPARAM wParam,LPARAM lParam); int CLUIFrameResizeFloatingFrame(int framepos); -extern int ProcessCommandProxy(WPARAM wParam,LPARAM lParam); extern int InitFramesMenus(void); int GapBetweenTitlebar; @@ -796,7 +794,7 @@ HMENU CLUIFramesCreateMenuForFrame(int frameid,int root,int popuppos,HGENMENU (* INT_PTR ModifyMItem(WPARAM wParam,LPARAM lParam) { - return ModifyMenuItemProxy(wParam,lParam); + return CallService(MS_CLIST_MODIFYMENUITEM, wParam, lParam); } static int CLUIFramesModifyContextMenuForFrame(WPARAM wParam,LPARAM lParam) @@ -2168,13 +2166,10 @@ LRESULT CALLBACK CLUIFrameTitleBarProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA return 0; case WM_COMMAND: - if ( ServiceExists(MO_CREATENEWMENUOBJECT)) { - if (ProcessCommandProxy(MAKEWPARAM(LOWORD(wParam),0),(LPARAM)Frameid)) break; - } - else if ( CallService(MS_CLIST_MENUPROCESSCOMMAND,MAKEWPARAM(LOWORD(wParam),MPCF_CONTEXTFRAMEMENU),(LPARAM)Frameid)) + if ( CallService(MS_CLIST_MENUPROCESSCOMMAND, MAKEWPARAM(LOWORD(wParam),0), Frameid)) break; - if (HIWORD(wParam) == 0) {//mouse events for self created menu + if (HIWORD(wParam) == 0) { //mouse events for self created menu int framepos = id2pos(Frameid); if (framepos == -1) break; diff --git a/plugins/Clist_mw/src/CLUIFrames/cluiframes.h b/plugins/Clist_mw/src/CLUIFrames/cluiframes.h index 6430c6655d..d36dff07da 100644 --- a/plugins/Clist_mw/src/CLUIFrames/cluiframes.h +++ b/plugins/Clist_mw/src/CLUIFrames/cluiframes.h @@ -33,12 +33,3 @@ typedef struct tagProtocolData { #define CLUIFrameTitleBarClassName _T("CLUIFrameTitleBar") #define CLUIFrameModule "CLUIFrames" - -//integrated menu module -#define MS_INT_MENUMEASUREITEM "CLUIFrames/IntMenuMeasureItem" -#define MS_INT_MENUDRAWITEM "CLUIFrames/IntMenuDrawItem" -#define MS_INT_MENUPROCESSCOMMAND "CLUIFrames/IntMenuProcessCommand" -#define MS_INT_MODIFYMENUITEM "CLUIFrames/IntModifyMenuItem" - - - diff --git a/plugins/Clist_mw/src/CLUIFrames/framesmenu.cpp b/plugins/Clist_mw/src/CLUIFrames/framesmenu.cpp index f850143c20..4e94c8b75f 100644 --- a/plugins/Clist_mw/src/CLUIFrames/framesmenu.cpp +++ b/plugins/Clist_mw/src/CLUIFrames/framesmenu.cpp @@ -127,93 +127,21 @@ static INT_PTR BuildContextFrameMenu(WPARAM wParam,LPARAM lParam) } // == == == == == == == == == == == == == Frames end -boolean InternalGenMenuModule = FALSE; - -int MeasureItemProxy(WPARAM wParam,LPARAM lParam) -{ - int val; - if (InternalGenMenuModule) - { - val = CallService(MS_INT_MENUMEASUREITEM,wParam,lParam); - if (val) return(val); - } - return CallService(MS_CLIST_MENUMEASUREITEM,wParam,lParam); -} - -int DrawItemProxy(WPARAM wParam,LPARAM lParam) -{ - if (InternalGenMenuModule) - { - int val; - val = CallService(MS_INT_MENUDRAWITEM,wParam,lParam); - if (val) return(val); - } - return CallService(MS_CLIST_MENUDRAWITEM,wParam,lParam); -} - -int ProcessCommandProxy(WPARAM wParam,LPARAM lParam) -{ - if (InternalGenMenuModule) - { - int val; - val = CallService(MS_INT_MENUPROCESSCOMMAND,wParam,lParam); - if (val) return(val); - } - - return CallService(MS_CLIST_MENUPROCESSCOMMAND,wParam,lParam); - -} - -int ModifyMenuItemProxy(WPARAM wParam,LPARAM lParam) -{ - if (InternalGenMenuModule) - { - int val; - val = CallService(MS_INT_MODIFYMENUITEM,wParam,lParam); - if (val) return(val); - } - - return CallService(MS_CLIST_MODIFYMENUITEM,wParam,lParam); -} int InitFramesMenus(void) { - TMenuParam tmp; - - if ( !ServiceExists(MO_REMOVEMENUOBJECT)) - { - - InitCustomMenus(); - InternalGenMenuModule = TRUE; - } - - if (ServiceExists(MO_REMOVEMENUOBJECT)) - { - CreateServiceFunction("FrameMenuExecService",FrameMenuExecService); - CreateServiceFunction("FrameMenuCheckService",FrameMenuCheckService); - CreateServiceFunction("FrameMenuFreeService",FreeOwnerDataFrameMenu); - - - CreateServiceFunction(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM,RemoveContextFrameMenuItem); - CreateServiceFunction("CList/AddContextFrameMenuItem",AddContextFrameMenuItem); - CreateServiceFunction(MS_CLIST_MENUBUILDFRAMECONTEXT,BuildContextFrameMenu); - CreateServiceFunction(MS_CLIST_FRAMEMENUNOTIFY,ContextFrameMenuNotify); - hPreBuildFrameMenuEvent = CreateHookableEvent(ME_CLIST_PREBUILDFRAMEMENU); - - //frame menu object - memset(&tmp,0,sizeof(tmp)); - tmp.cbSize = sizeof(tmp); - tmp.CheckService = "FrameMenuCheckService"; - tmp.ExecService = "FrameMenuExecService"; - tmp.name = "FrameMenu"; - hFrameMenuObject = (HANDLE)CallService(MO_CREATENEWMENUOBJECT,0,(LPARAM)&tmp); - { - OptParam op; - op.Handle = hFrameMenuObject; - op.Setting = OPT_MENUOBJECT_SET_FREE_SERVICE; - op.Value = (INT_PTR)"FrameMenuFreeService"; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); - } - } + CreateServiceFunction("FrameMenuExecService", FrameMenuExecService); + CreateServiceFunction("FrameMenuCheckService", FrameMenuCheckService); + CreateServiceFunction("FrameMenuFreeService", FreeOwnerDataFrameMenu); + + CreateServiceFunction(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, RemoveContextFrameMenuItem); + CreateServiceFunction("CList/AddContextFrameMenuItem", AddContextFrameMenuItem); + CreateServiceFunction(MS_CLIST_MENUBUILDFRAMECONTEXT, BuildContextFrameMenu); + CreateServiceFunction(MS_CLIST_FRAMEMENUNOTIFY, ContextFrameMenuNotify); + hPreBuildFrameMenuEvent = CreateHookableEvent(ME_CLIST_PREBUILDFRAMEMENU); + + // frame menu object + hFrameMenuObject = MO_CreateMenuObject("FrameMenu", LPGEN("Frame menu"), "FrameMenuCheckService", "FrameMenuExecService"); + MO_SetMenuObjectParam(hFrameMenuObject, OPT_MENUOBJECT_SET_FREE_SERVICE, "FrameMenuFreeService"); return 0; } diff --git a/plugins/Clist_mw/src/clisttray.cpp b/plugins/Clist_mw/src/clisttray.cpp index de61524292..ddfcb22811 100644 --- a/plugins/Clist_mw/src/clisttray.cpp +++ b/plugins/Clist_mw/src/clisttray.cpp @@ -192,16 +192,11 @@ INT_PTR FreeOwnerDataTrayMenu (WPARAM wParam,LPARAM lParam) void InitTrayMenus(void) { - TMenuParam tmp; - OptParam op; - //Tray menu - memset(&tmp,0,sizeof(tmp)); - tmp.cbSize = sizeof(tmp); - tmp.CheckService = NULL; - tmp.ExecService = "CLISTMENUSTRAY/ExecService"; - tmp.name = "TrayMenu"; - hTrayMenuObject = (HANDLE)CallService(MO_CREATENEWMENUOBJECT,0,(LPARAM)&tmp); + hTrayMenuObject = MO_CreateMenuObject("TrayMenu", LPGEN("Tray menu"), 0, "CLISTMENUSTRAY/ExecService"); + MO_SetMenuObjectParam(hTrayMenuObject, OPT_USERDEFINEDITEMS, TRUE); + MO_SetMenuObjectParam(hTrayMenuObject, OPT_MENUOBJECT_SET_FREE_SERVICE, "CLISTMENUSTRAY/FreeOwnerDataTrayMenu"); + MO_SetMenuObjectParam(hTrayMenuObject, OPT_MENUOBJECT_SET_ONADD_SERVICE, "CLISTMENUSTRAY/TrayMenuonAddService"); CreateServiceFunction("CLISTMENUSTRAY/ExecService",TrayMenuExecService); CreateServiceFunction("CLISTMENUSTRAY/FreeOwnerDataTrayMenu",FreeOwnerDataTrayMenu); @@ -212,21 +207,6 @@ void InitTrayMenus(void) CreateServiceFunction(MS_CLIST_MENUBUILDTRAY,BuildTrayMenu); hPreBuildTrayMenuEvent = CreateHookableEvent(ME_CLIST_PREBUILDTRAYMENU); - op.Handle = hTrayMenuObject; - op.Setting = OPT_USERDEFINEDITEMS; - op.Value = TRUE; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); - - op.Handle = hTrayMenuObject; - op.Setting = OPT_MENUOBJECT_SET_FREE_SERVICE; - op.Value = (INT_PTR)"CLISTMENUSTRAY/FreeOwnerDataTrayMenu"; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); - - op.Handle = hTrayMenuObject; - op.Setting = OPT_MENUOBJECT_SET_ONADD_SERVICE; - op.Value = (INT_PTR)"CLISTMENUSTRAY/TrayMenuonAddService"; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); - //add exit command to menu CLISTMENUITEM mi = { sizeof(mi) }; mi.position = 900000; diff --git a/plugins/Clist_mw/src/groupmenu.cpp b/plugins/Clist_mw/src/groupmenu.cpp index 7d57aae318..ba13c66479 100644 --- a/plugins/Clist_mw/src/groupmenu.cpp +++ b/plugins/Clist_mw/src/groupmenu.cpp @@ -235,10 +235,7 @@ int static OnIconLibIconChanged(WPARAM wParam,LPARAM lParam) void InitGroupMenus(void) { - TMenuParam tmp; - OptParam op; - HICON hicon; - hicon = LoadIconFromExternalFile("clisticons.dll",2,TRUE,TRUE,"NewGroup","Contact List","New Group",-IDI_NEWGROUP2,0); + HICON hicon = LoadIconFromExternalFile("clisticons.dll",2,TRUE,TRUE,"NewGroup","Contact List","New Group",-IDI_NEWGROUP2,0); NewGroupIconidx = ImageList_AddIcon(hCListImages,hicon ); CreateServiceFunction("CLISTMENUSGroup/ExecService",GroupMenuExecService); @@ -256,30 +253,11 @@ void InitGroupMenus(void) InitSubGroupMenus(); - //Group menu - memset(&tmp,0,sizeof(tmp)); - tmp.cbSize = sizeof(tmp); - tmp.CheckService = NULL; - tmp.ExecService = "CLISTMENUSGroup/ExecService"; - tmp.name = "Group Menu"; - hGroupMenuObject = (HANDLE)CallService(MO_CREATENEWMENUOBJECT,0,(LPARAM)&tmp); - - - op.Handle = hGroupMenuObject; - op.Setting = OPT_USERDEFINEDITEMS; - op.Value = TRUE; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); - - op.Handle = hGroupMenuObject; - op.Setting = OPT_MENUOBJECT_SET_FREE_SERVICE; - op.Value = (INT_PTR)"CLISTMENUSGroup/FreeOwnerDataGroupMenu"; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); - - op.Handle = hGroupMenuObject; - op.Setting = OPT_MENUOBJECT_SET_ONADD_SERVICE; - op.Value = (INT_PTR)"CLISTMENUSGroup/GroupMenuonAddService"; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); - + // Group menu + hGroupMenuObject = MO_CreateMenuObject("GroupMenu", LPGEN("Group menu"), 0, "CLISTMENUSGroup/ExecService"); + MO_SetMenuObjectParam(hGroupMenuObject, OPT_USERDEFINEDITEMS, TRUE); + MO_SetMenuObjectParam(hGroupMenuObject, OPT_MENUOBJECT_SET_FREE_SERVICE, "CLISTMENUSGroup/FreeOwnerDataGroupMenu"); + MO_SetMenuObjectParam(hGroupMenuObject, OPT_MENUOBJECT_SET_ONADD_SERVICE, "CLISTMENUSGroup/GroupMenuonAddService"); { //add exit command to menu GroupMenuParam gmp; @@ -530,9 +508,6 @@ INT_PTR GroupMenuExecProxy(WPARAM wParam,LPARAM lParam) void InitSubGroupMenus(void) { - TMenuParam tmp; - OptParam op; - CreateServiceFunction("CLISTMENUSSubGroup/ExecService",SubGroupMenuExecService); CreateServiceFunction("CLISTMENUSSubGroup/FreeOwnerDataSubGroupMenu",FreeOwnerDataSubGroupMenu); CreateServiceFunction("CLISTMENUSSubGroup/SubGroupMenuonAddService",SubGroupMenuonAddService); @@ -545,28 +520,10 @@ void InitSubGroupMenus(void) HookEvent(ME_CLIST_PREBUILDSUBGROUPMENU,OnBuildSubGroupMenu); //SubGroup menu - memset(&tmp,0,sizeof(tmp)); - tmp.cbSize = sizeof(tmp); - tmp.CheckService = NULL; - tmp.ExecService = "CLISTMENUSSubGroup/ExecService"; - tmp.name = "SubGroupMenu"; - hSubGroupMenuObject = (HANDLE)CallService(MO_CREATENEWMENUOBJECT,0,(LPARAM)&tmp); - - - op.Handle = hSubGroupMenuObject; - op.Setting = OPT_USERDEFINEDITEMS; - op.Value = TRUE; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); - - op.Handle = hSubGroupMenuObject; - op.Setting = OPT_MENUOBJECT_SET_FREE_SERVICE; - op.Value = (INT_PTR)"CLISTMENUSSubGroup/FreeOwnerDataSubGroupMenu"; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); - - op.Handle = hSubGroupMenuObject; - op.Setting = OPT_MENUOBJECT_SET_ONADD_SERVICE; - op.Value = (INT_PTR)"CLISTMENUSSubGroup/SubGroupMenuonAddService"; - CallService(MO_SETOPTIONSMENUOBJECT,0,(LPARAM)&op); + hSubGroupMenuObject = MO_CreateMenuObject("SubGroupMenu", LPGEN("Subgroup menu"), 0, "CLISTMENUSSubGroup/ExecService"); + MO_SetMenuObjectParam(hSubGroupMenuObject, OPT_USERDEFINEDITEMS, TRUE); + MO_SetMenuObjectParam(hSubGroupMenuObject, OPT_MENUOBJECT_SET_FREE_SERVICE, "CLISTMENUSSubGroup/FreeOwnerDataSubGroupMenu"); + MO_SetMenuObjectParam(hSubGroupMenuObject, OPT_MENUOBJECT_SET_ONADD_SERVICE, "CLISTMENUSSubGroup/SubGroupMenuonAddService"); //add exit command to menu GroupMenuParam gmp; -- cgit v1.2.3