From f5deb8d472fae0fab70467265831a8d0f6f8ac6a Mon Sep 17 00:00:00 2001 From: sje Date: Tue, 10 Jul 2007 06:06:24 +0000 Subject: use new YAPP popup class API git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@265 4f64403b-2f21-0410-a795-97e2b3489a10 --- otr/utils.cpp | 68 +++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 25 deletions(-) (limited to 'otr/utils.cpp') diff --git a/otr/utils.cpp b/otr/utils.cpp index 84034d8..79e4a2d 100644 --- a/otr/utils.cpp +++ b/otr/utils.cpp @@ -9,6 +9,7 @@ HICON hProtoIcon, hLockIcon, hUnlockIcon; HANDLE hIcoLibIconsChanged = 0; +char popup_class_name[128]; LRESULT CALLBACK NullWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { @@ -59,32 +60,36 @@ void ShowPopup( const char* line1, const char* line2, int timeout ) return; } - POPUPDATAEX* ppd = ( POPUPDATAEX* )calloc( sizeof( POPUPDATAEX ), 1 ); - memset((void *)ppd, 0, sizeof(POPUPDATAEX)); - - ppd->lchContact = NULL; - ppd->lchIcon = hProtoIcon; - - if(line1 && line2) { - strcpy( ppd->lpzContactName, line1 ); - strcpy( ppd->lpzText, line2 ); - } else if(line1) strcpy( ppd->lpzText, line1 ); - else if(line2) strcpy( ppd->lpzText, line2 ); - - //ppd->colorBack = GetSysColor( COLOR_BTNFACE ); - //ppd->colorText = GetSysColor( COLOR_WINDOWTEXT ); + if(ServiceExists(MS_POPUP_ADDPOPUPCLASS)) { + ShowClassPopup(popup_class_name, (char *)line1, (char *)line2); + } else { + POPUPDATAEX* ppd = ( POPUPDATAEX* )calloc( sizeof( POPUPDATAEX ), 1 ); + memset((void *)ppd, 0, sizeof(POPUPDATAEX)); - //ppd->colorText = 0x00FFFFFF; // for old popup modules - //ppd->colorBack = POPUP_USE_SKINNED_BG; - - ppd->iSeconds = timeout; - - //ppd->lpzClass = POPUP_CLASS_DEFAULT; - - ppd->PluginWindowProc = ( WNDPROC )NullWindowProc; - ppd->PluginData = NULL; - - QueueUserAPC( sttMainThreadCallback , mainThread, ( ULONG )ppd ); + ppd->lchContact = NULL; + ppd->lchIcon = hProtoIcon; + + if(line1 && line2) { + strcpy( ppd->lpzContactName, line1 ); + strcpy( ppd->lpzText, line2 ); + } else if(line1) strcpy( ppd->lpzText, line1 ); + else if(line2) strcpy( ppd->lpzText, line2 ); + + //ppd->colorBack = GetSysColor( COLOR_BTNFACE ); + //ppd->colorText = GetSysColor( COLOR_WINDOWTEXT ); + + //ppd->colorText = 0x00FFFFFF; // for old popup modules + //ppd->colorBack = POPUP_USE_SKINNED_BG; + + ppd->iSeconds = timeout; + + //ppd->lpzClass = POPUP_CLASS_DEFAULT; + + ppd->PluginWindowProc = ( WNDPROC )NullWindowProc; + ppd->PluginData = NULL; + + QueueUserAPC( sttMainThreadCallback , mainThread, ( ULONG )ppd ); + } } void ShowWarning(char *msg) { @@ -270,6 +275,19 @@ void InitUtils() { hLockIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_START), IMAGE_ICON, 16, 16, 0); hUnlockIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_STOP), IMAGE_ICON, 16, 16, 0); } + + if(ServiceExists(MS_POPUP_ADDPOPUPCLASS)) { + mir_snprintf(popup_class_name, 128, "%s/Notify", MODULE); + + POPUPCLASS test = {0}; + test.cbSize = sizeof(test); + test.hIcon = hProtoIcon; + test.pszDescription = Translate("OTR"); + test.pszName = popup_class_name; + test.PluginWindowProc = NullWindowProc; + CallService(MS_POPUP_REGISTERCLASS, 0, (WPARAM)&test); + } + } void DeinitUtils() { -- cgit v1.2.3