// Show an popup void ShowPopup(const char *title, const char *description, int type) { if (!ServiceExists(MS_POPUP_ADDPOPUP) || !EnablePopups) return; // Make popup POPUPDATA ppd = { 0 }; ppd.lchIcon = LoadSkinnedIcon(SKINICON_OTHER_MIRANDA); strncpy(ppd.lpzContactName, title == NULL ? "Modern Contact List" : title, SIZEOF(ppd.lpzContactName)-1); ppd.lpzContactName[SIZEOF(ppd.lpzContactName)-1] = '\0'; if (description != NULL) { strncpy(ppd.lpzText, description, SIZEOF(ppd.lpzText)-1); ppd.lpzText[SIZEOF(ppd.lpzText)-1] = '\0'; } if (type != POPUP_TYPE_NORMAL && type != POPUP_TYPE_TEST) { ppd.colorBack = -1; ppd.colorText = RGB(255,255,255); } ppd.PluginWindowProc = DumbPopupDlgProc; PUAddPopup(&ppd); }
void popupWatchedVar(MCONTACT hContact,const char* module,const char* setting) { HICON hIcon = LoadIcon(hInst, MAKEINTRESOURCE(ICO_REGEDIT)); char lpzContactName[MAX_CONTACTNAME]; char lpzText[MAX_SECONDLINE]; COLORREF colorBack = db_get_dw(NULL,modname,"PopupColour",RGB(255,0,0)); COLORREF colorText = RGB(0,0,0); int timeout = db_get_b(NULL,modname,"PopupDelay",3); if (hContact) { // contacts nick char szProto[256]; if (GetValue(hContact,"Protocol","p",szProto,SIZEOF(szProto))) mir_snprintf(lpzContactName, MAX_SECONDLINE, "%s (%s)", (char*)GetContactName(hContact, szProto, 0), szProto); else mir_snprintf(lpzContactName, MAX_SECONDLINE, nick_unknown); } else strcpy(lpzContactName,Translate("Settings")); // 2nd line DBVARIANT dbv; if ( GetSetting(hContact, module, setting, &dbv)) return; switch (dbv.type) { case DBVT_BYTE: mir_snprintf(lpzText, SIZEOF(lpzText), Translate("Database Setting Changed: \nModule: \"%s\" , Setting: \"%s\"\nNew Value: (BYTE) %d"), module, setting, dbv.bVal); break; case DBVT_WORD: mir_snprintf(lpzText, SIZEOF(lpzText), Translate("Database Setting Changed: \nModule: \"%s\" , Setting: \"%s\"\nNew Value: (WORD) %d"), module, setting, dbv.wVal); break; case DBVT_DWORD: mir_snprintf(lpzText, SIZEOF(lpzText), Translate("Database Setting Changed: \nModule: \"%s\" , Setting: \"%s\"\nNew Value: (DWORD) 0x%X"), module, setting, dbv.dVal); break; case DBVT_ASCIIZ: mir_snprintf(lpzText, SIZEOF(lpzText), Translate("Database Setting Changed: \nModule: \"%s\" , Setting: \"%s\"\nNew Value: \"%s\""), module, setting, dbv.pszVal); break; case DBVT_UTF8: mir_snprintf(lpzText, SIZEOF(lpzText), Translate("Database Setting Changed: \nModule: \"%s\" , Setting: \"%s\"\nNew Value (UTF8): \"%s\""), module, setting, dbv.pszVal); break; default: return; } db_free(&dbv); POPUPDATA ppd = { 0 }; ppd.lchContact = (MCONTACT)hContact; ppd.lchIcon = hIcon; lstrcpyn(ppd.lpzContactName, lpzContactName,MAX_CONTACTNAME); lstrcpyn(ppd.lpzText, lpzText,MAX_SECONDLINE); ppd.colorBack = colorBack; ppd.colorText = colorText; ppd.iSeconds = timeout ? timeout : -1; PUAddPopup(&ppd); }
void ShowNotification(const char *caption, const char *message, int flags, MCONTACT hContact) { if (Miranda_Terminated()) return; if (ServiceExists(MS_POPUP_ADDPOPUPT) && db_get_b(NULL, "Popup", "ModuleIsEnabled", 1)) { POPUPDATA ppd = { 0 }; ppd.lchContact = hContact; mir_strncpy(ppd.lpzContactName, caption, MAX_CONTACTNAME); mir_strncpy(ppd.lpzText, message, MAX_SECONDLINE); if (!PUAddPopup(&ppd)) return; } ::MessageBoxA(NULL, message, caption, MB_OK | flags); }