void SamFile::init(const char* filename, OpenType mode, SamFileHeader* header) { init(); resetFile(); bool openStatus = true; if(mode == READ) { // open the file for read. openStatus = OpenForRead(filename, header); } else { // open the file for write. openStatus = OpenForWrite(filename, header); } if(!openStatus) { // Failed to open the file - print error and abort. fprintf(stderr, "%s\n", GetStatusMessage()); std::cerr << "FAILURE - EXITING!!!" << std::endl; exit(-1); } }
TSSSetting::TSSSetting(int profile, PROTOACCOUNT *pa) { cbSize = sizeof(PROTOCOLSETTINGEX); // copy name szName = pa->szModuleName; tszAccName = pa->tszAccountName; // load status char setting[80]; mir_snprintf(setting, "%d_%s", profile, pa->szModuleName); int iStatus = db_get_w(NULL, MODULENAME, setting, 0); if (iStatus < MIN_STATUS || iStatus > MAX_STATUS) iStatus = DEFAULT_STATUS; status = iStatus; // load last status mir_snprintf(setting, "%s%s", PREFIX_LAST, szName); iStatus = db_get_w(NULL, MODULENAME, setting, 0); if (iStatus < MIN_STATUS || iStatus > MAX_STATUS) iStatus = DEFAULT_STATUS; lastStatus = iStatus; szMsg = GetStatusMessage(profile, szName); if (szMsg) szMsg = _tcsdup(szMsg); }
void CPlayerStatusBar::SetStatusMessage(CString str) { str.Trim(); if (GetStatusMessage() != str) { m_status.SetRedraw(FALSE); m_status.SetWindowText(str); m_status.SetRedraw(TRUE); Relayout(); } }
BOOL CPlayerStatusBar::OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult) { TOOLTIPTEXT* pTTT = reinterpret_cast<LPTOOLTIPTEXT>(pNMHDR); if (pTTT->uFlags & TTF_IDISHWND) { UINT_PTR nID = pNMHDR->idFrom; if (::GetDlgCtrlID((HWND)nID) == IDC_PLAYERSTATUS) { CString type; const CString msg = GetStatusMessage(); if (m_pMainFrame->GetDecoderType(type) && (msg.Find(ResStr(IDS_CONTROLS_PAUSED)) == 0 || msg.Find(ResStr(IDS_CONTROLS_PLAYING)) == 0)) { _tcscpy_s(pTTT->szText, type); *pResult = 0; return TRUE; } } } return FALSE; }
void FriendListItem::UpdateFriendsStatus(const QString &new_status, const QString &new_message) { if (new_status != GetStatus()) { SetStatus(new_status); setIcon(UiDefines::PresenceStatus::GetIconForStatusCode(GetStatus())); } if (new_message != GetStatusMessage()) { QString status_string; if (new_message.isEmpty() || new_message.isNull()) status_string = name_; else status_string = name_ + "\n" + new_message; SetStatusMessage(new_message); setText(status_string); } }
// Get the text based on the settings for a especific line void Cache_GetLineText(struct ClcContact *contact, int type, LPTSTR text, int text_size, TCHAR *variable_text, BOOL xstatus_has_priority, BOOL show_status_if_no_away, BOOL use_name_and_message_for_xstatus, BOOL contact_time_show_only_if_different) { text[0] = '\0'; switch(type) { case TEXT_STATUS: { if (GetStatusName(text, text_size, contact, xstatus_has_priority) == -1 && use_name_and_message_for_xstatus) { DBVARIANT dbv; // Try to get XStatusMsg if (!DBGetContactSettingTString(contact->hContact, contact->proto, "XStatusMsg", &dbv)) { if (dbv.ptszVal != NULL && dbv.ptszVal[0] != 0) { TCHAR *tmp = mir_strdupT(text); mir_sntprintf(text, text_size, TEXT("%s: %s"), tmp, dbv.pszVal); mir_free(tmp); } DBFreeVariant(&dbv); } } break; } case TEXT_NICKNAME: { if (contact->hContact && contact->proto) { DBVARIANT dbv; if (!DBGetContactSettingTString(contact->hContact, contact->proto, "Nick", &dbv)) { lstrcpyn(text, dbv.ptszVal, text_size); DBFreeVariant(&dbv); } } break; } case TEXT_STATUS_MESSAGE: { if (GetStatusMessage(text, text_size, contact, xstatus_has_priority) == -1 && use_name_and_message_for_xstatus) { DBVARIANT dbv; // Try to get XStatusName if (!DBGetContactSettingTString(contact->hContact, contact->proto, "XStatusName", &dbv)) { if (dbv.pszVal != NULL && dbv.pszVal[0] != 0) { TCHAR *tmp = mir_strdupT(text); mir_sntprintf(text, text_size, TEXT("%s: %s"), dbv.pszVal, tmp); mir_free(tmp); } DBFreeVariant(&dbv); } } break; } case TEXT_TEXT: { #ifndef UNICODE if (!ServiceExists(MS_VARS_FORMATSTRING)) { lstrcpyn(text, variable_text, text_size); } else { char *tmp = variables_parse(variable_text, contact->szText, contact->hContact); lstrcpyn(text, tmp, text_size); variables_free(tmp); } #else lstrcpyn(text, variable_text, text_size); #endif break; } case TEXT_CONTACT_TIME: { if (contact->timezone != -1 && (!contact_time_show_only_if_different || contact->timediff != 0)) { // Get contact time DBTIMETOSTRINGT dbtts; time_t contact_time; contact_time = time(NULL) - contact->timediff; text[0] = '\0'; dbtts.szDest = text; dbtts.cbDest = 70; dbtts.szFormat = TEXT("t"); CallService(MS_DB_TIME_TIMESTAMPTOSTRINGT, contact_time, (LPARAM) & dbtts); } break; } } if (type==TEXT_STATUS_MESSAGE && show_status_if_no_away && text[0] == '\0') { //re-request status if no away Cache_GetLineText(contact, TEXT_STATUS, text, text_size, variable_text, xstatus_has_priority,0, use_name_and_message_for_xstatus, contact_time_show_only_if_different); } }
/* * Get the text for specified lines */ int Cache_GetLineText( ClcCacheEntry *pdnce, int type, LPTSTR text, int text_size, TCHAR *variable_text, BOOL xstatus_has_priority, BOOL show_status_if_no_away, BOOL show_listening_if_no_away, BOOL use_name_and_message_for_xstatus, BOOL pdnce_time_show_only_if_different) { if (text == NULL) return TEXT_EMPTY; text[0] = '\0'; switch (type) { case TEXT_STATUS: if (GetStatusName(text, text_size, pdnce, xstatus_has_priority) == -1 && use_name_and_message_for_xstatus) { DBVARIANT dbv = { 0 }; // Try to get XStatusMsg if (!db_get_ts(pdnce->hContact, pdnce->m_cache_cszProto, "XStatusMsg", &dbv)) { if (dbv.ptszVal != NULL && dbv.ptszVal[0] != 0) { TCHAR *tmp = NEWTSTR_ALLOCA(text); mir_sntprintf(text, text_size, _T("%s: %s"), tmp, dbv.ptszVal); CopySkipUnprintableChars(text, text, text_size - 1); } db_free(&dbv); } } return TEXT_STATUS; case TEXT_NICKNAME: if (pdnce->hContact && pdnce->m_cache_cszProto) { DBVARIANT dbv = { 0 }; if (!db_get_ts(pdnce->hContact, pdnce->m_cache_cszProto, "Nick", &dbv)) { mir_tstrncpy(text, dbv.ptszVal, text_size); db_free(&dbv); CopySkipUnprintableChars(text, text, text_size - 1); } } return TEXT_NICKNAME; case TEXT_STATUS_MESSAGE: if (GetStatusMessage(text, text_size, pdnce, xstatus_has_priority) == -1 && use_name_and_message_for_xstatus) { DBVARIANT dbv = { 0 }; // Try to get XStatusName if (!db_get_ts(pdnce->hContact, pdnce->m_cache_cszProto, "XStatusName", &dbv)) { if (dbv.pszVal != NULL && dbv.pszVal[0] != 0) { TCHAR *tmp = NEWTSTR_ALLOCA(text); mir_sntprintf(text, text_size, _T("%s: %s"), dbv.pszVal, tmp); } CopySkipUnprintableChars(text, text, text_size - 1); db_free(&dbv); } } else if (use_name_and_message_for_xstatus && xstatus_has_priority) { DBVARIANT dbv = { 0 }; // Try to get XStatusName if (!db_get_ts(pdnce->hContact, pdnce->m_cache_cszProto, "XStatusName", &dbv)) { if (dbv.ptszVal != NULL && dbv.ptszVal[0] != 0) mir_tstrncpy(text, dbv.ptszVal, text_size); CopySkipUnprintableChars(text, text, text_size - 1); db_free(&dbv); } } if (text[0] == '\0') { if (show_listening_if_no_away) { Cache_GetLineText(pdnce, TEXT_LISTENING_TO, text, text_size, variable_text, xstatus_has_priority, 0, 0, use_name_and_message_for_xstatus, pdnce_time_show_only_if_different); if (text[0] != '\0') return TEXT_LISTENING_TO; } if (show_status_if_no_away) { //re-request status if no away return Cache_GetLineText(pdnce, TEXT_STATUS, text, text_size, variable_text, xstatus_has_priority, 0, 0, use_name_and_message_for_xstatus, pdnce_time_show_only_if_different); } } return TEXT_STATUS_MESSAGE; case TEXT_LISTENING_TO: GetListeningTo(text, text_size, pdnce); return TEXT_LISTENING_TO; case TEXT_TEXT: { TCHAR *tmp = variables_parsedup(variable_text, pdnce->tszName, pdnce->hContact); mir_tstrncpy(text, tmp, text_size); mir_free(tmp); CopySkipUnprintableChars(text, text, text_size - 1); } return TEXT_TEXT; case TEXT_CONTACT_TIME: if (pdnce->hTimeZone) { // Get pdnce time text[0] = 0; TimeZone_PrintDateTime(pdnce->hTimeZone, _T("t"), text, text_size, 0); } return TEXT_CONTACT_TIME; } return TEXT_EMPTY; }
int Cache_GetLineText(ClcCacheEntry *pdnce, int type, LPTSTR text, int text_size, ClcLineInfo &line) { if (text == nullptr) return TEXT_EMPTY; text[0] = '\0'; switch (type) { case TEXT_STATUS: LBL_Status: if (GetStatusName(text, text_size, pdnce, line.xstatus_has_priority) == -1 && line.use_name_and_message_for_xstatus) { // Try to get XStatusMsg ptrW tszXStatusMsg(db_get_wsa(pdnce->hContact, pdnce->szProto, "XStatusMsg")); if (tszXStatusMsg != nullptr && tszXStatusMsg[0] != 0) { wchar_t *tmp = NEWWSTR_ALLOCA(text); mir_snwprintf(text, text_size, L"%s: %s", tmp, tszXStatusMsg); CopySkipUnprintableChars(text, text, text_size - 1); } } return TEXT_STATUS; case TEXT_NICKNAME: if (pdnce->hContact && pdnce->szProto) { ptrW tszNick(db_get_wsa(pdnce->hContact, pdnce->szProto, "Nick")); if (tszNick != nullptr) { mir_wstrncpy(text, tszNick, text_size); CopySkipUnprintableChars(text, text, text_size - 1); } } return TEXT_NICKNAME; case TEXT_STATUS_MESSAGE: if (GetStatusMessage(text, text_size, pdnce, line.xstatus_has_priority) == -1 && line.use_name_and_message_for_xstatus) { // Try to get XStatusName ptrW tszXStatusName(db_get_wsa(pdnce->hContact, pdnce->szProto, "XStatusName")); if (tszXStatusName != nullptr && tszXStatusName[0] != 0) { wchar_t *tmp = NEWWSTR_ALLOCA(text); mir_snwprintf(text, text_size, L"%s: %s", tszXStatusName, tmp); CopySkipUnprintableChars(text, text, text_size - 1); } } else if (line.use_name_and_message_for_xstatus && line.xstatus_has_priority) { // Try to get XStatusName ptrW tszXStatusName(db_get_wsa(pdnce->hContact, pdnce->szProto, "XStatusName")); if (tszXStatusName != nullptr && tszXStatusName[0] != 0) { mir_wstrncpy(text, tszXStatusName, text_size); CopySkipUnprintableChars(text, text, text_size - 1); } } if (text[0] == '\0') { if (line.show_listening_if_no_away) { GetListeningTo(text, text_size, pdnce); if (text[0] != '\0') return TEXT_LISTENING_TO; } if (line.show_status_if_no_away) // re-request status if no away goto LBL_Status; } return TEXT_STATUS_MESSAGE; case TEXT_LISTENING_TO: GetListeningTo(text, text_size, pdnce); return TEXT_LISTENING_TO; case TEXT_TEXT: { ptrW tmp(variables_parsedup(line.text, pdnce->tszName, pdnce->hContact)); mir_wstrncpy(text, tmp, text_size); CopySkipUnprintableChars(text, text, text_size - 1); } return TEXT_TEXT; case TEXT_CONTACT_TIME: if (pdnce->hTimeZone) { // Get pdnce time text[0] = 0; TimeZone_PrintDateTime(pdnce->hTimeZone, L"t", text, text_size, 0); } return TEXT_CONTACT_TIME; } return TEXT_EMPTY; }
void RebuildEntireListInternal(HWND hwnd, ClcData *tmp_dat, BOOL call_orig) { ClcData *dat = (ClcData*)tmp_dat; struct ClcGroup *group; struct ClcContact *item; TCHAR tmp[1024]; TCHAR count[128]; TCHAR template_contact[1024]; TCHAR template_group[1024]; TCHAR template_divider[1024]; TCHAR template_info[1024]; TCHAR *text; size_t size; int selection = dat->selection; BOOL has_focus = (GetFocus() == dat->hwnd_list || GetFocus() == hwnd); if (call_orig) coreCli.pfnRebuildEntireList(hwnd, (ClcData*)dat); MyDBGetContactSettingTString(NULL, "CLC", "TemplateContact", template_contact, 1024, TranslateT("%name% [%status% %protocol%] %status_message%")); MyDBGetContactSettingTString(NULL, "CLC", "TemplateGroup", template_group, 1024, TranslateT("Group: %name% %count% [%mode%]")); MyDBGetContactSettingTString(NULL, "CLC", "TemplateDivider", template_divider, 1024, TranslateT("Divider: %s")); MyDBGetContactSettingTString(NULL, "CLC", "TemplateInfo", template_info, 1024, TranslateT("Info: %s")); SendMessage(dat->hwnd_list, WM_SETREDRAW, FALSE, 0); // Reset content SendMessage(dat->hwnd_list, LB_RESETCONTENT, 0, 0); // Set font SendMessage(dat->hwnd_list, WM_SETFONT, (WPARAM) dat->fontInfo[FONTID_CONTACTS].hFont, 0); // Add all items to the list group = &dat->list; group->scanIndex = 0; text = tmp; size = _countof(tmp); while(1) { if (group->scanIndex == group->cl.count) { group = group->parent; if (group == NULL) break; text -= 2; size += 2; group->scanIndex++; continue; } item = group->cl.items[group->scanIndex]; text[0] = _T('\0'); switch(item->type) { case CLCIT_GROUP: { TCHAR *szCounts = pcli->pfnGetGroupCountsText((ClcData*)dat, item); const TCHAR *t[] = { _T("%name%"), _T("%count%"), _T("%mode%") }; const TCHAR *v[] = { item->szText, count, item->group->expanded ? TranslateT("Expanded") : TranslateT("Collapsed") }; TCHAR *txt; if (szCounts[0] != '\0') mir_sntprintf(count, _countof(count), _T("%s "), szCounts); else count[0] = _T('\0'); txt = ParseText(template_group, t, _countof(t), v, _countof(v)); if (txt != NULL) mir_tstrncpy(text, txt, (int)size); mir_free(txt); break; } case CLCIT_CONTACT: { const TCHAR *t[] = { _T("%name%"), _T("%status%"), _T("%protocol%"), _T("%status_message%") }; const TCHAR *v[] = { item->szText, GetStatusName(item), GetProtoName(item), GetStatusMessage(item) }; TCHAR *txt = ParseText(template_contact, t, _countof(t), v, _countof(v)); if (txt != NULL) mir_tstrncpy(text, txt, (int)size); mir_free(txt); break; } case CLCIT_DIVIDER: { mir_sntprintf(text, size, template_divider, item->szText); break; } case CLCIT_INFO: { mir_sntprintf(text, size, template_info, item->szText); break; } } SendMessage(dat->hwnd_list, LB_ADDSTRING, 0, (LPARAM) tmp); if (item->type == CLCIT_GROUP && item->group->expanded) { group = item->group; text[0] = _T(' '); text[1] = _T(' '); text += 2; size -= 2; group->scanIndex = 0; continue; } group->scanIndex++; } SendMessage(dat->hwnd_list, WM_SETREDRAW, TRUE, 0); InvalidateRect(dat->hwnd_list, NULL, TRUE); dat->selection = selection; SendMessage(dat->hwnd_list, LB_SETCURSEL, dat->selection, 0); if (has_focus) SetFocus(dat->hwnd_list); dat->need_rebuild = FALSE; }
/* * Get the text for specified lines */ int Cache_GetLineText(PDNCE pdnce, int type, LPTSTR text, int text_size, TCHAR *variable_text, BOOL xstatus_has_priority, BOOL show_status_if_no_away, BOOL show_listening_if_no_away, BOOL use_name_and_message_for_xstatus, BOOL pdnce_time_show_only_if_different) { text[0] = '\0'; switch(type) { case TEXT_STATUS: { if (GetStatusName(text, text_size, pdnce, xstatus_has_priority) == -1 && use_name_and_message_for_xstatus) { DBVARIANT dbv={0}; // Try to get XStatusMsg if (!ModernGetSettingTString(pdnce->m_cache_hContact, pdnce->m_cache_cszProto, "XStatusMsg", &dbv)) { if (dbv.ptszVal != NULL && dbv.ptszVal[0] != 0) { TCHAR *tmp = mir_tstrdup(text); mir_sntprintf(text, text_size, TEXT("%s: %s"), tmp, dbv.pszVal); mir_free_and_nill(tmp); CopySkipUnprintableChars(text, text, text_size-1); } ModernDBFreeVariant(&dbv); } } return TEXT_STATUS; } case TEXT_NICKNAME: { if (pdnce->m_cache_hContact && pdnce->m_cache_cszProto) { DBVARIANT dbv={0}; if (!ModernGetSettingTString(pdnce->m_cache_hContact, pdnce->m_cache_cszProto, "Nick", &dbv)) { lstrcpyn(text, dbv.ptszVal, text_size); ModernDBFreeVariant(&dbv); CopySkipUnprintableChars(text, text, text_size-1); } } return TEXT_NICKNAME; } case TEXT_STATUS_MESSAGE: { if (GetStatusMessage(text, text_size, pdnce, xstatus_has_priority) == -1 && use_name_and_message_for_xstatus) { DBVARIANT dbv={0}; // Try to get XStatusName if (!ModernGetSettingTString(pdnce->m_cache_hContact, pdnce->m_cache_cszProto, "XStatusName", &dbv)) { if (dbv.pszVal != NULL && dbv.pszVal[0] != 0) { TCHAR *tmp = mir_tstrdup(text); mir_sntprintf(text, text_size, TEXT("%s: %s"), dbv.pszVal, tmp); mir_free_and_nill(tmp); } CopySkipUnprintableChars(text, text, text_size-1); ModernDBFreeVariant(&dbv); } } else if (use_name_and_message_for_xstatus && xstatus_has_priority) { DBVARIANT dbv={0}; // Try to get XStatusName if (!ModernGetSettingTString(pdnce->m_cache_hContact, pdnce->m_cache_cszProto, "XStatusName", &dbv)) { if (dbv.pszVal != NULL && dbv.pszVal[0] != 0) mir_sntprintf(text, text_size, TEXT("%s"), dbv.pszVal); CopySkipUnprintableChars(text, text, text_size-1); ModernDBFreeVariant(&dbv); } } if (text[0] == '\0') { if (show_listening_if_no_away) { Cache_GetLineText(pdnce, TEXT_LISTENING_TO, text, text_size, variable_text, xstatus_has_priority, 0, 0, use_name_and_message_for_xstatus, pdnce_time_show_only_if_different); if (text[0] != '\0') return TEXT_LISTENING_TO; } if (show_status_if_no_away) { //re-request status if no away return Cache_GetLineText(pdnce, TEXT_STATUS, text, text_size, variable_text, xstatus_has_priority, 0, 0, use_name_and_message_for_xstatus, pdnce_time_show_only_if_different); } } return TEXT_STATUS_MESSAGE; } case TEXT_LISTENING_TO: { GetListeningTo(text, text_size, pdnce); return TEXT_LISTENING_TO; } case TEXT_TEXT: { TCHAR *tmp = variables_parsedup(variable_text, pdnce->m_cache_tcsName, pdnce->m_cache_hContact); lstrcpyn(text, tmp, text_size); if (tmp) free(tmp); CopySkipUnprintableChars(text, text, text_size-1); return TEXT_TEXT; } case TEXT_CONTACT_TIME: { if (pdnce->hTimeZone) { // Get pdnce time text[0] = 0; tmi.printDateTime( pdnce->hTimeZone, _T("t"), text, text_size, 0); } return TEXT_CONTACT_TIME; } } return TEXT_EMPTY; }