diff options
author | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2007-07-10 06:06:02 +0000 |
---|---|---|
committer | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2007-07-10 06:06:02 +0000 |
commit | 9d31056c8b2c89a132db4bc3c6769d283a4d7d87 (patch) | |
tree | e7ed2946242c2105ff88acaab167eaff2f798095 | |
parent | 03dab2efa522cb0fc82051d4a8ba65f509f6b930 (diff) |
fix sound registration
use new YAPP popup class API
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@264 4f64403b-2f21-0410-a795-97e2b3489a10
-rw-r--r-- | MySpace/MySpace.cpp | 2 | ||||
-rw-r--r-- | MySpace/notifications.cpp | 289 | ||||
-rw-r--r-- | MySpace/version.h | 4 |
3 files changed, 152 insertions, 143 deletions
diff --git a/MySpace/MySpace.cpp b/MySpace/MySpace.cpp index 0478360..4da6231 100644 --- a/MySpace/MySpace.cpp +++ b/MySpace/MySpace.cpp @@ -88,6 +88,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { InitNetlib();
InitMenu();
+ InitNotifications();
return 0;
}
@@ -141,7 +142,6 @@ extern "C" __declspec (dllexport) int Load(PLUGINLINK *link) { }
InitARC4Module();
- InitNotifications();
InitOptions();
/////////////
diff --git a/MySpace/notifications.cpp b/MySpace/notifications.cpp index d0e46c0..25b732b 100644 --- a/MySpace/notifications.cpp +++ b/MySpace/notifications.cpp @@ -2,32 +2,59 @@ #include "notifications.h"
#include "resource.h"
-HWND hWndMailPopup = 0, hWndBlogPopup = 0;
+#include <malloc.h>
-LRESULT CALLBACK MailPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
+#define URL_MAIL "http://messaging.myspace.com/index.cfm?fuseaction=mail.inbox"
+#define URL_BLOG "http://blog.myspace.com/index.cfm?fuseaction=blog"
+#define URL_PROFILE "http://comment.myspace.com/index.cfm?fuseaction=user.viewComments&friendID=%d"
+#define URL_FRIEND "http://messaging.myspace.com/index.cfm?fuseaction=mail.friendRequests"
+
+bool bWndMailPopup = false, bWndBlogPopup = false, bWndProfilePopup = false, bWndFriendPopup = false;
+typedef struct {
+ char *url;
+ bool *bWnd;
+} PopupData;
+
+char popup_class_name[128];
+
+LRESULT CALLBACK NotifyPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message ) {
case UM_INITPOPUP:
- hWndMailPopup = hWnd;
+ {
+ PopupData *pd = (PopupData *)PUGetPluginData(hWnd);
+ if(pd) *pd->bWnd = true;
+ }
break;
case WM_COMMAND:
- CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://messaging.myspace.com/index.cfm?fuseaction=mail.inbox");
+ {
+ PopupData *pd = (PopupData *)PUGetPluginData(hWnd);
+ if(pd) {
+ CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)pd->url); //"http://messaging.myspace.com/index.cfm?fuseaction=mail.inbox"
+ *pd->bWnd = false;
+ }
+ }
- hWndMailPopup = 0;
PUDeletePopUp( hWnd );
return TRUE;
case WM_CONTEXTMENU:
-
- hWndMailPopup = 0;
+ {
+ PopupData *pd = (PopupData *)PUGetPluginData(hWnd);
+ if(pd) *pd->bWnd = false;
+ }
PUDeletePopUp( hWnd );
return TRUE;
+
case UM_FREEPLUGINDATA:
{
- HICON hIcon = (HICON)PUGetPluginData(hWnd);
- DestroyIcon(hIcon);
+ PopupData *pd = (PopupData *)PUGetPluginData(hWnd);
+ if(pd) {
+ free(pd->url);
+ delete pd;
+ }
}
return TRUE;
}
@@ -38,7 +65,7 @@ LRESULT CALLBACK MailPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LP void NotifyMail() {
if (!ServiceExists( MS_POPUP_ADDPOPUPT)) return;
- if(hWndMailPopup) return;
+ if(bWndMailPopup) return;
POPUPDATAT ppd = {0};
TCHAR wproto[256];
@@ -48,14 +75,26 @@ void NotifyMail() { 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);
+ PopupData *pd = new PopupData;
+ pd->url = strdup(URL_MAIL);
+ pd->bWnd = &bWndMailPopup;
+
+ if(ServiceExists(MS_POPUP_ADDPOPUPCLASS)) {
+ POPUPDATACLASS d = {sizeof(d), popup_class_name};
+ d.pwszTitle = (wchar_t *)wproto;
+ d.pwszText = (wchar_t *)TranslateT("You have unread mail");
+ d.PluginData = (void *)pd;
+ CallService(MS_POPUP_ADDPOPUPCLASS, 0, (LPARAM)&d);
+ } else {
+ _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 )NotifyPopupWindowProc;
+ ppd.PluginData = (void *)pd;
+ ppd.iSeconds = -1;
+
+ PUAddPopUpT(&ppd);
+ }
char temp[512];
mir_snprintf(temp, 512, "%s/Mail", MODULE);
@@ -63,39 +102,10 @@ void NotifyMail() { }
-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;
+ if(bWndBlogPopup) return;
POPUPDATAT ppd = {0};
TCHAR wproto[256];
@@ -105,57 +115,36 @@ void NotifyBlogComment() { 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);
+ PopupData *pd = new PopupData;
+ pd->url = strdup(URL_BLOG);
+ pd->bWnd = &bWndBlogPopup;
+
+ if(ServiceExists(MS_POPUP_ADDPOPUPCLASS)) {
+ POPUPDATACLASS d = {sizeof(d), popup_class_name};
+ d.pwszTitle = (wchar_t *)wproto;
+ d.pwszText = (wchar_t *)TranslateT("You have unread blog comments");
+ d.PluginData = (void *)pd;
+ CallService(MS_POPUP_ADDPOPUPCLASS, 0, (LPARAM)&d);
+ } else {
+ _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 )NotifyPopupWindowProc;
+ ppd.PluginData = (void *)pd;
+ 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;
+ if(bWndProfilePopup) return;
POPUPDATAT ppd = {0};
TCHAR wproto[256];
@@ -165,53 +154,37 @@ void NotifyProfileComment() { 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);
+ PopupData *pd = new PopupData;
+ char url[1024];
+ mir_snprintf(url, 1024, URL_PROFILE, DBGetContactSettingDword(0, MODULE, "UID", 0));
+ pd->url = strdup(url);
+ pd->bWnd = &bWndProfilePopup;
+
+ if(ServiceExists(MS_POPUP_ADDPOPUPCLASS)) {
+ POPUPDATACLASS d = {sizeof(d), popup_class_name};
+ d.pwszTitle = (wchar_t *)wproto;
+ d.pwszText = (wchar_t *)TranslateT("You have unread profile comments");
+ d.PluginData = (void *)pd;
+ CallService(MS_POPUP_ADDPOPUPCLASS, 0, (LPARAM)&d);
+ } else {
+ _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 )NotifyPopupWindowProc;
+ ppd.PluginData = (void *)pd;
+ 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;
+ if(bWndFriendPopup) return;
POPUPDATAT ppd = {0};
TCHAR wproto[256];
@@ -221,26 +194,39 @@ void NotifyFriendRequest() { 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);
+ PopupData *pd = new PopupData;
+ pd->url = strdup(URL_FRIEND);
+ pd->bWnd = &bWndFriendPopup;
+
+ if(ServiceExists(MS_POPUP_ADDPOPUPCLASS)) {
+ POPUPDATACLASS d = {sizeof(d), popup_class_name};
+ d.pwszTitle = (wchar_t *)wproto;
+ d.pwszText = (wchar_t *)TranslateT("You have new friend requests");
+ d.PluginData = (void *)pd;
+ CallService(MS_POPUP_ADDPOPUPCLASS, 0, (LPARAM)&d);
+ } else {
+ _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 )NotifyPopupWindowProc;
+ ppd.PluginData = (void *)pd;
+ ppd.iSeconds = -1;
+
+ PUAddPopUpT(&ppd);
+ }
char temp[512];
mir_snprintf(temp, 512, "%s/FriendRequest", MODULE);
SkinPlaySound(temp);
}
+HICON hProtoIcon;
void InitNotifications() {
SKINSOUNDDESCEX sd = {0};
sd.cbSize = sizeof(sd);
- char temp[512];
- mir_snprintf(temp, 512, "%s Notifications", MODULE);
- sd.pszSection = temp;
+ char temp_sec[512], temp[512];
+ mir_snprintf(temp_sec, 512, "%s Notifications", MODULE);
+ sd.pszSection = temp_sec;
mir_snprintf(temp, 512, "%s/Mail", MODULE);
sd.pszName = temp;
@@ -261,8 +247,31 @@ void InitNotifications() { sd.pszName = temp;
sd.pszDescription = "New friend request";
CallService(MS_SKIN_ADDNEWSOUND, 0, (LPARAM)&sd);
+
+ hProtoIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, 0);
+ if(ServiceExists(MS_POPUP_ADDPOPUPCLASS)) {
+ TCHAR tmod[128];
+#ifdef _UNICODE
+ MultiByteToWideChar(code_page, 0, MODULE, -1, tmod, 128);
+#else
+ strncpy(tmod, MODULE, 128);
+#endif
+
+ mir_snprintf(popup_class_name, 128, "%s/Notify", MODULE);
+
+ POPUPCLASS test = {0};
+ test.cbSize = sizeof(test);
+ test.flags = PCF_TCHAR;
+ test.hIcon = hProtoIcon;
+ test.iSeconds = -1;
+ test.ptszDescription = tmod;
+ test.pszName = popup_class_name;
+ test.PluginWindowProc = NotifyPopupWindowProc;
+ CallService(MS_POPUP_REGISTERCLASS, 0, (WPARAM)&test);
+ }
}
void DeinitNotifications() {
+ DestroyIcon(hProtoIcon);
}
diff --git a/MySpace/version.h b/MySpace/version.h index 3a97a3e..96a627f 100644 --- a/MySpace/version.h +++ b/MySpace/version.h @@ -4,8 +4,8 @@ #define __MAJOR_VERSION 0
#define __MINOR_VERSION 0
-#define __RELEASE_NUM 3
-#define __BUILD_NUM 5
+#define __RELEASE_NUM 4
+#define __BUILD_NUM 0
#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
#define __FILEVERSION_STRING_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM
|