#include "common.h" #include "notifications.h" #include "resource.h" HWND hWndMailPopup = 0, hWndBlogPopup = 0; LRESULT CALLBACK MailPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { case UM_INITPOPUP: hWndMailPopup = hWnd; break; case WM_COMMAND: CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://messaging.myspace.com/index.cfm?fuseaction=mail.inbox"); hWndMailPopup = 0; PUDeletePopUp( hWnd ); return TRUE; case WM_CONTEXTMENU: hWndMailPopup = 0; PUDeletePopUp( hWnd ); return TRUE; case UM_FREEPLUGINDATA: { HICON hIcon = (HICON)PUGetPluginData(hWnd); DestroyIcon(hIcon); } return TRUE; } return DefWindowProc(hWnd, message, wParam, lParam); } void NotifyMail() { if (!ServiceExists( MS_POPUP_ADDPOPUPT)) return; if(hWndMailPopup) return; POPUPDATAT ppd = {0}; TCHAR wproto[256]; #ifndef _UNICODE strncpy(wproto, MODULE, 256); #else MultiByteToWideChar(code_page, 0, MODULE, -1, wproto, 256); #endif _tcsncpy(ppd.lptzContactName, wproto, 256); _tcscpy(ppd.lptzText, TranslateT("You have unread mail")); ppd.lchIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, 0); ppd.PluginWindowProc = ( WNDPROC )MailPopupWindowProc; ppd.PluginData = ppd.lchIcon; ppd.iSeconds = -1; PUAddPopUpT(&ppd); char temp[512]; mir_snprintf(temp, 512, "%s/Mail", MODULE); SkinPlaySound(temp); } LRESULT CALLBACK BlogCommentPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { case UM_INITPOPUP: hWndBlogPopup = hWnd; break; case WM_COMMAND: CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://blog.myspace.com/index.cfm?fuseaction=blog"); hWndBlogPopup = 0; PUDeletePopUp( hWnd ); return TRUE; case WM_CONTEXTMENU: hWndBlogPopup = 0; PUDeletePopUp( hWnd ); return TRUE; case UM_FREEPLUGINDATA: { HICON hIcon = (HICON)PUGetPluginData(hWnd); DestroyIcon(hIcon); } return TRUE; } return DefWindowProc(hWnd, message, wParam, lParam); } void NotifyBlogComment() { if (!ServiceExists( MS_POPUP_ADDPOPUPT)) return; if(hWndBlogPopup) return; POPUPDATAT ppd = {0}; TCHAR wproto[256]; #ifndef _UNICODE strncpy(wproto, MODULE, 256); #else MultiByteToWideChar(code_page, 0, MODULE, -1, wproto, 256); #endif _tcsncpy(ppd.lptzContactName, wproto, 256); _tcscpy(ppd.lptzText, TranslateT("You have unread blog comments")); ppd.lchIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, 0); ppd.PluginWindowProc = ( WNDPROC )BlogCommentPopupWindowProc; ppd.PluginData = ppd.lchIcon; ppd.iSeconds = -1; PUAddPopUpT(&ppd); char temp[512]; mir_snprintf(temp, 512, "%s/BlogComment", MODULE); SkinPlaySound(temp); } LRESULT CALLBACK ProfileCommentPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { case UM_INITPOPUP: hWndBlogPopup = hWnd; break; case WM_COMMAND: { char url[1024]; mir_snprintf(url, 1024, "http://comment.myspace.com/index.cfm?fuseaction=user.viewComments&friendID=%d", DBGetContactSettingDword(0, MODULE, "UID", 0)); CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)url); } hWndBlogPopup = 0; PUDeletePopUp( hWnd ); return TRUE; case WM_CONTEXTMENU: hWndBlogPopup = 0; PUDeletePopUp( hWnd ); return TRUE; case UM_FREEPLUGINDATA: { HICON hIcon = (HICON)PUGetPluginData(hWnd); DestroyIcon(hIcon); } return TRUE; } return DefWindowProc(hWnd, message, wParam, lParam); } void NotifyProfileComment() { if (!ServiceExists( MS_POPUP_ADDPOPUPT)) return; if(hWndBlogPopup) return; POPUPDATAT ppd = {0}; TCHAR wproto[256]; #ifndef _UNICODE strncpy(wproto, MODULE, 256); #else MultiByteToWideChar(code_page, 0, MODULE, -1, wproto, 256); #endif _tcsncpy(ppd.lptzContactName, wproto, 256); _tcscpy(ppd.lptzText, TranslateT("You have unread profile comments")); ppd.lchIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, 0); ppd.PluginWindowProc = ( WNDPROC )ProfileCommentPopupWindowProc; ppd.PluginData = ppd.lchIcon; ppd.iSeconds = -1; PUAddPopUpT(&ppd); char temp[512]; mir_snprintf(temp, 512, "%s/ProfileComment", MODULE); SkinPlaySound(temp); } LRESULT CALLBACK FriendRequestPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { case UM_INITPOPUP: hWndBlogPopup = hWnd; break; case WM_COMMAND: CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://messaging.myspace.com/index.cfm?fuseaction=mail.friendRequests"); hWndBlogPopup = 0; PUDeletePopUp( hWnd ); return TRUE; case WM_CONTEXTMENU: hWndBlogPopup = 0; PUDeletePopUp( hWnd ); return TRUE; case UM_FREEPLUGINDATA: { HICON hIcon = (HICON)PUGetPluginData(hWnd); DestroyIcon(hIcon); } return TRUE; } return DefWindowProc(hWnd, message, wParam, lParam); } void NotifyFriendRequest() { if (!ServiceExists( MS_POPUP_ADDPOPUPT)) return; if(hWndBlogPopup) return; POPUPDATAT ppd = {0}; TCHAR wproto[256]; #ifndef _UNICODE strncpy(wproto, MODULE, 256); #else MultiByteToWideChar(code_page, 0, MODULE, -1, wproto, 256); #endif _tcsncpy(ppd.lptzContactName, wproto, 256); _tcscpy(ppd.lptzText, TranslateT("You have new friend requests")); ppd.lchIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, 0); ppd.PluginWindowProc = ( WNDPROC )FriendRequestPopupWindowProc; ppd.PluginData = ppd.lchIcon; ppd.iSeconds = -1; PUAddPopUpT(&ppd); char temp[512]; mir_snprintf(temp, 512, "%s/FriendRequest", MODULE); SkinPlaySound(temp); } void InitNotifications() { SKINSOUNDDESCEX sd = {0}; sd.cbSize = sizeof(sd); char temp[512]; mir_snprintf(temp, 512, "%s Notifications", MODULE); sd.pszSection = temp; mir_snprintf(temp, 512, "%s/Mail", MODULE); sd.pszName = temp; sd.pszDescription = "Mail"; CallService(MS_SKIN_ADDNEWSOUND, 0, (LPARAM)&sd); mir_snprintf(temp, 512, "%s/BlogComment", MODULE); sd.pszName = temp; sd.pszDescription = "New blog comment"; CallService(MS_SKIN_ADDNEWSOUND, 0, (LPARAM)&sd); mir_snprintf(temp, 512, "%s/ProfileComment", MODULE); sd.pszName = temp; sd.pszDescription = "New profile comment"; CallService(MS_SKIN_ADDNEWSOUND, 0, (LPARAM)&sd); mir_snprintf(temp, 512, "%s/FriendRequest", MODULE); sd.pszName = temp; sd.pszDescription = "New friend request"; CallService(MS_SKIN_ADDNEWSOUND, 0, (LPARAM)&sd); } void DeinitNotifications() { }