summaryrefslogtreecommitdiff
path: root/otr/utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'otr/utils.cpp')
-rw-r--r--otr/utils.cpp68
1 files changed, 43 insertions, 25 deletions
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() {