summaryrefslogtreecommitdiff
path: root/MySpace/menu.cpp
diff options
context:
space:
mode:
authorsje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-11 07:54:06 +0000
committersje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-11 07:54:06 +0000
commit801768c22a7643afad2f334b5fecead14645ab78 (patch)
treee8728a438a9ed4d8ff8d027a7c0e2492cf35329f /MySpace/menu.cpp
parent01a664406e36abb810364237fda24e204265d7b4 (diff)
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
Diffstat (limited to 'MySpace/menu.cpp')
-rw-r--r--MySpace/menu.cpp52
1 files changed, 34 insertions, 18 deletions
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