From 801768c22a7643afad2f334b5fecead14645ab78 Mon Sep 17 00:00:00 2001 From: sje Date: Wed, 11 Jul 2007 07:54:06 +0000 Subject: added myim: link support added main menu item to add myspace friends to contact list git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@277 4f64403b-2f21-0410-a795-97e2b3489a10 --- MySpace/menu.cpp | 52 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 18 deletions(-) (limited to 'MySpace/menu.cpp') diff --git a/MySpace/menu.cpp b/MySpace/menu.cpp index c713aba..889204e 100644 --- a/MySpace/menu.cpp +++ b/MySpace/menu.cpp @@ -2,24 +2,25 @@ #include "menu.h" #include "resource.h" #include "server_con.h" +#include "options.h" +#include "notifications.h" HANDLE hMenuMain = 0, hServiceMenuMain = 0; int MainMenuService(WPARAM wParam, LPARAM lParam) { - // TODO: add code here that executes when the menu item is chosen - - // e.g. modify main menu item - see m_clist.h - //CLISTMENUITEM menu = {0}; - //menu.cbSize=sizeof(menu); - //menu.flags = CMIM_NAME | CMIF_TCHAR; - //menu.ptszName = (char *)TranslateT("Changed menu text"); - //CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuMain, (LPARAM)&menu); - CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://home.myspace.com/index.cfm?fuseaction=user"); return 0; } +HANDLE hMenuMainAdd = 0, hServiceMenuMainAdd = 0; + +int MainMenuServiceAdd(WPARAM wParam, LPARAM lParam) { + CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://www.myspace.com/index.cfm?fuseaction=im.friendslist&tab=1"); + + return 0; +} + HANDLE hMenuContact = 0, hServiceMenuContact = 0, hEventMenuBuild = 0; int ContactMenuService(WPARAM wParam, LPARAM lParam) { @@ -33,6 +34,13 @@ int ContactMenuService(WPARAM wParam, LPARAM lParam) { return 0; } +void EnableMainAdd(bool enable) { + CLISTMENUITEM menu = {0}; + menu.cbSize=sizeof(menu); + menu.flags = CMIM_FLAGS | (enable ? 0 : CMIF_GRAYED); + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuMainAdd, (LPARAM)&menu); +} + // this function is called when the contact's menu is about to be shown - you can e.g. // modify the menu here using the MS_CLIST_MODIFYMENUITEM service int PrebuildContactMenu(WPARAM wParam, LPARAM lParam) { @@ -54,25 +62,30 @@ void InitMenu() { menu.cbSize=sizeof(menu); char buff[512]; - menu.flags = CMIM_ALL | CMIF_TCHAR; + menu.flags = CMIM_ALL; menu.hIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, 0, 0, 0); hServiceMenuMain = CreateProtoServiceFunction(MODULE, "/MainMenu", MainMenuService); - TCHAR tbuff[512]; -#ifdef _UNICODE - MultiByteToWideChar(code_page, 0, MODULE, -1, tbuff, 512); -#else - strncpy(tbuff, MODULE, 512); -#endif - menu.ptszName = TranslateTS(tbuff); mir_snprintf(buff, 512, "%s%s", MODULE, "/MainMenu"); + menu.pszName = Translate("Home"); menu.pszService = buff; menu.position = 2000060000; + menu.popupPosition = 500099900; + menu.pszPopupName = MODULE; hMenuMain = (HANDLE)CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&menu); + hServiceMenuMainAdd = CreateProtoServiceFunction(MODULE, "/MainMenuAdd", MainMenuServiceAdd); + mir_snprintf(buff, 512, "%s%s", MODULE, "/MainMenuAdd"); + menu.pszName = Translate("Add friends"); + menu.pszService = buff; + menu.position = 2000060001; + menu.popupPosition = 0; + menu.pszPopupName = MODULE; + hMenuMainAdd = (HANDLE)CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&menu); + // contact menu item hServiceMenuContact = CreateProtoServiceFunction(MODULE, "/ContactMenu", ContactMenuService); - menu.ptszName = TranslateT("Show profile"); + menu.pszName = Translate("Show profile"); mir_snprintf(buff, 512, "%s%s", MODULE, "/ContactMenu"); menu.pszService = buff; menu.position = 0; @@ -81,10 +94,13 @@ void InitMenu() { hMenuContact = (HANDLE)CallService(MS_CLIST_ADDCONTACTMENUITEM,0,(LPARAM)&menu); hEventMenuBuild = HookEvent(ME_CLIST_PREBUILDCONTACTMENU, PrebuildContactMenu); + + EnableMainAdd(options.handle_links); } void DeinitMenu() { UnhookEvent(hEventMenuBuild); DestroyServiceFunction(hServiceMenuContact); DestroyServiceFunction(hServiceMenuMain); + DestroyServiceFunction(hServiceMenuMainAdd); } \ No newline at end of file -- cgit v1.2.3