// 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);
}
Exemple #2
0
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);
}
Exemple #3
0
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);
}