void FacebookProto::NotifyEvent(TCHAR* title, TCHAR* info, HANDLE contact, DWORD flags, std::string *url, std::string *notification_id) { char name[256]; switch (flags) { case FACEBOOK_EVENT_CLIENT: if (!getByte(FACEBOOK_KEY_EVENT_CLIENT_ENABLE, DEFAULT_EVENT_CLIENT_ENABLE)) return; mir_snprintf(name, SIZEOF(name), "%s_%s", m_szModuleName, "Client"); flags |= NIIF_WARNING; break; case FACEBOOK_EVENT_NEWSFEED: if (!getByte(FACEBOOK_KEY_EVENT_FEEDS_ENABLE, DEFAULT_EVENT_FEEDS_ENABLE)) return; mir_snprintf(name, SIZEOF(name), "%s_%s", m_szModuleName, "Newsfeed"); SkinPlaySound("NewsFeed"); flags |= NIIF_INFO; break; case FACEBOOK_EVENT_NOTIFICATION: if (!getByte(FACEBOOK_KEY_EVENT_NOTIFICATIONS_ENABLE, DEFAULT_EVENT_NOTIFICATIONS_ENABLE)) return; mir_snprintf(name, SIZEOF(name), "%s_%s", m_szModuleName, "Notification"); SkinPlaySound("Notification"); flags |= NIIF_INFO; break; case FACEBOOK_EVENT_OTHER: if (!getByte(FACEBOOK_KEY_EVENT_OTHER_ENABLE, DEFAULT_EVENT_OTHER_ENABLE)) return; mir_snprintf(name, SIZEOF(name), "%s_%s", m_szModuleName, "Other"); SkinPlaySound("OtherEvent"); flags |= NIIF_INFO; break; } if (!getByte(FACEBOOK_KEY_SYSTRAY_NOTIFY,DEFAULT_SYSTRAY_NOTIFY)) { if (ServiceExists(MS_POPUP_ADDPOPUPCLASS)) { // TODO: if popup with particular ID is already showed, just update his content // ... but f***ed up Popup Classes won't allow it now - they need to return hPopupWindow somehow /* if (popup exists) { if (PUChangeTextT(hWndPopup, info) > 0) // success return; }*/ POPUPDATACLASS pd = { sizeof(pd) }; pd.ptszTitle = title; pd.ptszText = info; pd.pszClassName = name; pd.hContact = contact; if (url != NULL || notification_id != NULL) { popup_data *data = new popup_data(this); if (url != NULL) data->url = *url; if (notification_id != NULL) data->notification_id = *notification_id; pd.PluginData = data; } if (CallService(MS_POPUP_ADDPOPUPCLASS, 0, (LPARAM)&pd) == 0) return; } } else { if (ServiceExists(MS_CLIST_SYSTRAY_NOTIFY)) { MIRANDASYSTRAYNOTIFY err; int niif_flags = flags; REMOVE_FLAG(niif_flags, FACEBOOK_EVENT_CLIENT | FACEBOOK_EVENT_NEWSFEED | FACEBOOK_EVENT_NOTIFICATION | FACEBOOK_EVENT_OTHER); err.szProto = m_szModuleName; err.cbSize = sizeof(err); err.dwInfoFlags = NIIF_INTERN_TCHAR | niif_flags; err.tszInfoTitle = title; err.tszInfo = info; err.uTimeout = 10000; if (CallService(MS_CLIST_SYSTRAY_NOTIFY, 0, (LPARAM) & err) == 0) return; } } if (FLAG_CONTAINS(flags, FACEBOOK_EVENT_CLIENT)) MessageBox(NULL, info, title, MB_OK | MB_ICONINFORMATION); }
HWND FacebookProto::NotifyEvent(TCHAR* title, TCHAR* info, MCONTACT contact, DWORD flags, std::string *url, std::string *notification_id, const char *icon) { if (title == NULL || info == NULL) return NULL; char name[256]; switch (flags) { case FACEBOOK_EVENT_CLIENT: mir_snprintf(name, "%s_%s", m_szModuleName, "Client"); flags |= NIIF_WARNING; break; case FACEBOOK_EVENT_NEWSFEED: mir_snprintf(name, "%s_%s", m_szModuleName, "Newsfeed"); flags |= NIIF_INFO; break; case FACEBOOK_EVENT_NOTIFICATION: mir_snprintf(name, "%s_%s", m_szModuleName, "Notification"); SkinPlaySound("Notification"); flags |= NIIF_INFO; break; case FACEBOOK_EVENT_OTHER: mir_snprintf(name, "%s_%s", m_szModuleName, "Other"); SkinPlaySound("OtherEvent"); flags |= NIIF_INFO; break; case FACEBOOK_EVENT_FRIENDSHIP: mir_snprintf(name, "%s_%s", m_szModuleName, "Friendship"); SkinPlaySound("Friendship"); flags |= NIIF_INFO; break; case FACEBOOK_EVENT_TICKER: mir_snprintf(name, "%s_%s", m_szModuleName, "Ticker"); SkinPlaySound("Ticker"); flags |= NIIF_INFO; break; case FACEBOOK_EVENT_ON_THIS_DAY: mir_snprintf(name, "%s_%s", m_szModuleName, "OnThisDay"); flags |= NIIF_INFO; break; } if (!getByte(FACEBOOK_KEY_SYSTRAY_NOTIFY, DEFAULT_SYSTRAY_NOTIFY)) { if (ServiceExists(MS_POPUP_ADDPOPUPCLASS)) { // TODO: if popup with particular ID is already showed, just update his content // ... but f***ed up Popup Classes won't allow it now - they need to return hPopupWindow somehow /* if (popup exists) { if (PUChangeTextT(hWndPopup, info) > 0) // success return; }*/ POPUPDATACLASS pd = { sizeof(pd) }; pd.ptszTitle = title; pd.ptszText = info; pd.pszClassName = name; pd.hContact = contact; if (icon != NULL) { // pd.hIcon = IcoLib_GetIconByHandle(GetIconHandle(icon)); // FIXME: Uncomment when implemented in Popup+ and YAPP correctly } if (url != NULL || notification_id != NULL) { popup_data *data = new popup_data(this); if (url != NULL) data->url = *url; if (notification_id != NULL) data->notification_id = *notification_id; pd.PluginData = data; } return (HWND)CallService(MS_POPUP_ADDPOPUPCLASS, 0, (LPARAM)&pd); } } else { if (ServiceExists(MS_CLIST_SYSTRAY_NOTIFY)) { MIRANDASYSTRAYNOTIFY err; int niif_flags = flags; REMOVE_FLAG(niif_flags, FACEBOOK_EVENT_CLIENT | FACEBOOK_EVENT_NEWSFEED | FACEBOOK_EVENT_NOTIFICATION | FACEBOOK_EVENT_OTHER | FACEBOOK_EVENT_FRIENDSHIP); err.szProto = m_szModuleName; err.cbSize = sizeof(err); err.dwInfoFlags = NIIF_INTERN_TCHAR | niif_flags; err.tszInfoTitle = title; err.tszInfo = info; err.uTimeout = 10000; if (CallService(MS_CLIST_SYSTRAY_NOTIFY, 0, (LPARAM)& err) == 0) return NULL; } } if (FLAG_CONTAINS(flags, FACEBOOK_EVENT_CLIENT)) MessageBox(NULL, info, title, MB_OK | MB_ICONERROR); return NULL; }
void WhatsAppProto::NotifyEvent(const TCHAR *title, const TCHAR *info, MCONTACT contact, DWORD flags, TCHAR* szUrl) { int ret; int timeout; COLORREF colorBack = 0; COLORREF colorText = 0; switch (flags) { case WHATSAPP_EVENT_CLIENT: if (!getByte(WHATSAPP_KEY_EVENT_CLIENT_ENABLE, DEFAULT_EVENT_CLIENT_ENABLE)) goto exit; if (!getByte(WHATSAPP_KEY_EVENT_CLIENT_DEFAULT, 0)) { colorBack = getDword(WHATSAPP_KEY_EVENT_CLIENT_COLBACK, DEFAULT_EVENT_COLBACK); colorText = getDword(WHATSAPP_KEY_EVENT_CLIENT_COLTEXT, DEFAULT_EVENT_COLTEXT); } timeout = getDword(WHATSAPP_KEY_EVENT_CLIENT_TIMEOUT, 0); flags |= NIIF_WARNING; break; case WHATSAPP_EVENT_OTHER: if (!getByte(WHATSAPP_KEY_EVENT_OTHER_ENABLE, DEFAULT_EVENT_OTHER_ENABLE)) goto exit; if (!getByte(WHATSAPP_KEY_EVENT_OTHER_DEFAULT, 0)) { colorBack = getDword(WHATSAPP_KEY_EVENT_OTHER_COLBACK, DEFAULT_EVENT_COLBACK); colorText = getDword(WHATSAPP_KEY_EVENT_OTHER_COLTEXT, DEFAULT_EVENT_COLTEXT); } timeout = getDword(WHATSAPP_KEY_EVENT_OTHER_TIMEOUT, -1); SkinPlaySound("OtherEvent"); flags |= NIIF_INFO; break; } if (!getByte(WHATSAPP_KEY_SYSTRAY_NOTIFY, DEFAULT_SYSTRAY_NOTIFY)) { if (ServiceExists(MS_POPUP_ADDPOPUP)) { POPUPDATAT pd; pd.colorBack = colorBack; pd.colorText = colorText; pd.iSeconds = timeout; pd.lchContact = contact; pd.lchIcon = IcoLib_GetIconByHandle(m_hProtoIcon); // TODO: Icon test pd.PluginData = szUrl; pd.PluginWindowProc = PopupDlgProc; mir_tstrcpy(pd.lptzContactName, title); mir_tstrcpy(pd.lptzText, info); ret = PUAddPopupT(&pd); if (ret == 0) return; } } else { if (ServiceExists(MS_CLIST_SYSTRAY_NOTIFY)) { MIRANDASYSTRAYNOTIFY err; int niif_flags = flags; REMOVE_FLAG(niif_flags, WHATSAPP_EVENT_CLIENT | WHATSAPP_EVENT_NOTIFICATION | WHATSAPP_EVENT_OTHER); err.szProto = m_szModuleName; err.cbSize = sizeof(err); err.dwInfoFlags = NIIF_INTERN_TCHAR | niif_flags; err.tszInfoTitle = (TCHAR*)title; err.tszInfo = (TCHAR*)info; err.uTimeout = 1000 * timeout; ret = CallService(MS_CLIST_SYSTRAY_NOTIFY, 0, (LPARAM)& err); if (ret == 0) goto exit; } } if (FLAG_CONTAINS(flags, WHATSAPP_EVENT_CLIENT)) MessageBox(NULL, info, title, MB_OK | MB_ICONINFORMATION); exit: if (szUrl != NULL) mir_free(szUrl); }
CHAR * VAR::dump(CHAR * buf) { CHAR * tb = buf; CHAR * name = SYM_name(VAR_name(this)); CHAR tt[43]; if (xstrlen(name) > 43) { memcpy(tt, name, 43); tt[39] = '.'; tt[40] = '.'; tt[41] = '.'; tt[42] = 0; name = tt; } buf += sprintf(buf, "VAR%d(%s):", VAR_id(this), name); if (HAVE_FLAG(VAR_flag(this), VAR_GLOBAL)) { strcat(buf, "global"); } else if (HAVE_FLAG(VAR_flag(this), VAR_LOCAL)) { strcat(buf, "local"); } else { IS_TRUE0(0); } if (HAVE_FLAG(VAR_flag(this), VAR_STATIC)) { strcat(buf, ",static"); } if (HAVE_FLAG(VAR_flag(this), VAR_READONLY)) { strcat(buf, ",const"); } if (HAVE_FLAG(VAR_flag(this), VAR_VOLATILE)) { strcat(buf, ",volatile"); } if (HAVE_FLAG(VAR_flag(this), VAR_IS_RESTRICT)) { strcat(buf, ",restrict"); } if (HAVE_FLAG(VAR_flag(this), VAR_HAS_INIT_VAL)) { strcat(buf, ",has_init_val"); } if (HAVE_FLAG(VAR_flag(this), VAR_FUNC_UNIT)) { strcat(buf, ",func_unit"); } if (HAVE_FLAG(VAR_flag(this), VAR_FUNC_DECL)) { strcat(buf, ",func_decl"); } if (HAVE_FLAG(VAR_flag(this), VAR_FAKE)) { strcat(buf, ",fake"); } if (HAVE_FLAG(VAR_flag(this), VAR_IS_FORMAL_PARAM)) { strcat(buf, ",formal_param"); } if (HAVE_FLAG(VAR_flag(this), VAR_IS_SPILL)) { strcat(buf, ",spill_loc"); } if (HAVE_FLAG(VAR_flag(this), VAR_ADDR_TAKEN)) { strcat(buf, ",addr_taken"); } if (VAR_is_str(this)) { strcat(buf, ",str"); } if (HAVE_FLAG(VAR_flag(this), VAR_IS_ARRAY)) { strcat(buf, ",array"); } if (HAVE_FLAG(VAR_flag(this), VAR_IS_ALLOCABLE)) { strcat(buf, ",allocable"); } if (VAR_is_pointer(this)) { buf += strlen(buf); sprintf(buf, ",pointer,pt_base_sz:%d", VAR_pointer_base_size(this)); } buf += strlen(buf); sprintf(buf, ",%s", DTDES_name(&g_dtype_desc[VAR_data_type(this)])); if (VAR_data_type(this) > D_F128) { buf += strlen(buf); sprintf(buf, ",mem_size:%d", VAR_data_size(this)); } if (VAR_align(this) != 0) { buf += strlen(buf); sprintf(buf, ",align:%d", VAR_align(this)); } strcat(buf, ",decl:'"); buf += strlen(buf); dump_var_decl(buf, 40); strcat(buf, "'"); #ifdef _DEBUG_ UINT tmpf = VAR_flag(this); REMOVE_FLAG(tmpf, VAR_GLOBAL); REMOVE_FLAG(tmpf, VAR_LOCAL); REMOVE_FLAG(tmpf, VAR_STATIC); REMOVE_FLAG(tmpf, VAR_READONLY); REMOVE_FLAG(tmpf, VAR_VOLATILE); REMOVE_FLAG(tmpf, VAR_HAS_INIT_VAL); REMOVE_FLAG(tmpf, VAR_FUNC_UNIT); REMOVE_FLAG(tmpf, VAR_FUNC_DECL); REMOVE_FLAG(tmpf, VAR_FAKE); REMOVE_FLAG(tmpf, VAR_IS_ARRAY); REMOVE_FLAG(tmpf, VAR_IS_FORMAL_PARAM); REMOVE_FLAG(tmpf, VAR_IS_SPILL); REMOVE_FLAG(tmpf, VAR_ADDR_TAKEN); REMOVE_FLAG(tmpf, VAR_IS_PR); REMOVE_FLAG(tmpf, VAR_IS_RESTRICT); REMOVE_FLAG(tmpf, VAR_IS_ALLOCABLE); IS_TRUE0(tmpf == 0); #endif return tb; }