diff options
-rw-r--r-- | otr/otr_private.h | 4 | ||||
-rw-r--r-- | otr/utils.cpp | 68 |
2 files changed, 45 insertions, 27 deletions
diff --git a/otr/otr_private.h b/otr/otr_private.h index 2bb2dd1..78d022c 100644 --- a/otr/otr_private.h +++ b/otr/otr_private.h @@ -4,8 +4,8 @@ /* VERSION DEFINITIONS */
#define VER_MAJOR 0
#define VER_MINOR 5
-#define VER_RELEASE 4
-#define VER_BUILD 5
+#define VER_RELEASE 5
+#define VER_BUILD 0
#define __STRINGIZE(x) #x
#define VER_STRING __STRINGIZE( VER_MAJOR.VER_MINOR.VER_RELEASE.VER_BUILD )
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() {
|