void CFileDetailDialog::UpdateData() { wxString bufferS; CastChild(IDC_FNAME,wxStaticText)->SetLabel(MakeStringEscaped( TruncateFilename(m_file->GetFileName(),60))); CastChild(IDC_METFILE,wxStaticText)->SetLabel(MakeStringEscaped( TruncateFilename(m_file->GetFullName(),60,true))); wxString tmp = CastChild(IDC_FILENAME, wxTextCtrl)->GetValue(); if (tmp.Length() < 3) { resetValueForFilenameTextEdit(); } CastChild(IDC_FHASH,wxStaticText)->SetLabel(m_file->GetFileHash().Encode()); bufferS = wxString::Format(wxT("%llu bytes ("), m_file->GetFileSize()) + CastItoXBytes(m_file->GetFileSize()) + wxT(")"); CastChild(IDC_FSIZE,wxControl)->SetLabel(bufferS); CastChild(IDC_PFSTATUS,wxControl)->SetLabel(m_file->getPartfileStatus()); bufferS = wxString::Format(wxT("%i (%i)"),m_file->GetPartCount(),m_file->GetHashCount()); CastChild(IDC_PARTCOUNT,wxControl)->SetLabel(bufferS); CastChild(IDC_TRANSFERRED,wxControl)->SetLabel(CastItoXBytes(m_file->GetTransferred())); CastChild(IDC_FD_STATS1,wxControl)->SetLabel(CastItoXBytes(m_file->GetLostDueToCorruption())); CastChild(IDC_FD_STATS2,wxControl)->SetLabel(CastItoXBytes(m_file->GetGainDueToCompression())); CastChild(IDC_FD_STATS3,wxControl)->SetLabel(CastItoIShort(m_file->TotalPacketsSavedDueToICH())); CastChild(IDC_COMPLSIZE,wxControl)->SetLabel(CastItoXBytes(m_file->GetCompletedSize())); bufferS = wxString::Format(_("%.2f%% done"),m_file->GetPercentCompleted()); CastChild(IDC_PROCCOMPL,wxControl)->SetLabel(bufferS); bufferS = wxString::Format(_("%.2f kB/s"),(float)m_file->GetKBpsDown()); CastChild(IDC_DATARATE,wxControl)->SetLabel(bufferS); bufferS = wxString::Format(wxT("%i"),m_file->GetSourceCount()); CastChild(IDC_SOURCECOUNT,wxControl)->SetLabel(bufferS); bufferS = wxString::Format(wxT("%i"),m_file->GetTransferingSrcCount()); CastChild(IDC_SOURCECOUNT2,wxControl)->SetLabel(bufferS); bufferS = wxString::Format(wxT("%i (%.1f%%)"), m_file->GetAvailablePartCount(), ((m_file->GetAvailablePartCount() * 100.0f)/ m_file->GetPartCount())); CastChild(IDC_PARTAVAILABLE,wxControl)->SetLabel(bufferS); bufferS = CastSecondsToHM(m_file->GetDlActiveTime()); CastChild(IDC_DLACTIVETIME, wxControl)->SetLabel(bufferS); if (m_file->lastseencomplete==0) { bufferS = wxString(_("Unknown")).MakeLower(); } else { wxDateTime last_seen(m_file->lastseencomplete); bufferS = last_seen.FormatISODate() + wxT(" ") + last_seen.FormatISOTime(); } CastChild(IDC_LASTSEENCOMPL,wxControl)->SetLabel(bufferS); setEnableForApplyButton(); // disable "Show all comments" button if there are no comments FileRatingList list; m_file->GetRatingAndComments(list); CastChild(IDC_CMTBT, wxControl)->Enable(!list.empty()); FillSourcenameList(); Layout(); }
void FormatValue(CFormat& format, const CECTag* tag) { wxASSERT(tag->GetTagName() == EC_TAG_STAT_NODE_VALUE); wxString extra; const CECTag *tmp_tag = tag->GetTagByName(EC_TAG_STAT_NODE_VALUE); if (tmp_tag) { wxString tmp_fmt; const CECTag* tmp_vt = tmp_tag->GetTagByName(EC_TAG_STAT_VALUE_TYPE); EC_STATTREE_NODE_VALUE_TYPE tmp_valueType = tmp_vt != NULL ? (EC_STATTREE_NODE_VALUE_TYPE)tmp_vt->GetInt() : EC_VALUE_INTEGER; switch (tmp_valueType) { case EC_VALUE_INTEGER: tmp_fmt = wxT("%llu"); break; case EC_VALUE_DOUBLE: tmp_fmt = wxT("%.2f%%"); // it's used for percentages break; default: tmp_fmt = wxT("%s"); } CFormat tmp_format(wxT(" (") + tmp_fmt + wxT(")")); FormatValue(tmp_format, tmp_tag); extra = tmp_format.GetString(); } const CECTag* vt = tag->GetTagByName(EC_TAG_STAT_VALUE_TYPE); EC_STATTREE_NODE_VALUE_TYPE valueType = vt != NULL ? (EC_STATTREE_NODE_VALUE_TYPE)vt->GetInt() : EC_VALUE_INTEGER; switch (valueType) { case EC_VALUE_INTEGER: format = format % tag->GetInt(); break; case EC_VALUE_ISTRING: format = format % (CFormat(wxT("%u")) % tag->GetInt() + extra); break; case EC_VALUE_BYTES: format = format % (CastItoXBytes(tag->GetInt()) + extra); break; case EC_VALUE_ISHORT: format = format % (CastItoIShort(tag->GetInt()) + extra); break; case EC_VALUE_TIME: format = format % (CastSecondsToHM(tag->GetInt()) + extra); break; case EC_VALUE_SPEED: format = format % (CastItoSpeed(tag->GetInt()) + extra); break; case EC_VALUE_STRING: format = format % (wxGetTranslation(tag->GetStringData()) + extra); break; case EC_VALUE_DOUBLE: format = format % tag->GetDoubleData(); break; default: wxFAIL; } }
void CMiniMule::UpdateContent(UINT uUpDatarate, UINT uDownDatarate) { ASSERT( GetCurrentThreadId() == _uMainThreadId ); if (m_bResolveImages) { static const LPCTSTR _apszConnectedImgs[] = { _T("CONNECTEDNOTNOT.GIF"), _T("CONNECTEDNOTLOW.GIF"), _T("CONNECTEDNOTHIGH.GIF"), _T("CONNECTEDLOWNOT.GIF"), _T("CONNECTEDLOWLOW.GIF"), _T("CONNECTEDLOWHIGH.GIF"), _T("CONNECTEDHIGHNOT.GIF"), _T("CONNECTEDHIGHLOW.GIF"), _T("CONNECTEDHIGHHIGH.GIF") }; UINT uIconIdx = theApp.emuledlg->GetConnectionStateIconIndex(); if (uIconIdx >= ARRSIZE(_apszConnectedImgs)) { ASSERT(0); uIconIdx = 0; } TCHAR szModulePath[_MAX_PATH]; if (GetModuleFileName(AfxGetResourceHandle(), szModulePath, ARRSIZE(szModulePath))) { CString strFilePathUrl(CreateFilePathUrl(szModulePath, INTERNET_SCHEME_RES)); CComPtr<IHTMLImgElement> elm; GetElementInterface(_T("connectedImg"), &elm); if (elm) { CString strResourceURL; strResourceURL.Format(_T("%s/%s"), strFilePathUrl, _apszConnectedImgs[uIconIdx]); elm->put_src(CComBSTR(strResourceURL)); } } } SetElementHtml(_T("connected"), CComBSTR(theApp.IsConnected() ? GetResString(IDS_YES) : GetResString(IDS_NO))); SetElementHtml(_T("upRate"), CComBSTR(theApp.emuledlg->GetUpDatarateString(uUpDatarate))); SetElementHtml(_T("downRate"), CComBSTR(theApp.emuledlg->GetDownDatarateString(uDownDatarate))); UINT uCompleted = 0; if (thePrefs.GetRemoveFinishedDownloads()) uCompleted = thePrefs.GetDownSessionCompletedFiles(); else if (theApp.emuledlg && theApp.emuledlg->transferwnd && theApp.emuledlg->transferwnd->downloadlistctrl.m_hWnd) { int iTotal; uCompleted = theApp.emuledlg->transferwnd->downloadlistctrl.GetCompleteDownloads(-1, iTotal); // [Ded]: -1 to get the count of all completed files in all categories } SetElementHtml(_T("completed"), CComBSTR(CastItoIShort(uCompleted, false, 0))); SetElementHtml(_T("freeSpace"), CComBSTR(CastItoXBytes(GetFreeTempSpace(-1), false, false))); }
wxString CStatTreeItemPacketTotals::GetDisplayString() const { uint32_t tmp_packets = m_packets; uint64_t tmp_bytes = m_bytes; for (std::vector<CStatTreeItemPackets*>::const_iterator it = m_counters.begin(); it != m_counters.end(); ++it) { tmp_packets += (*it)->m_packets; tmp_bytes += (*it)->m_bytes; } return CFormat(wxGetTranslation(m_label)) % a_brackets_b(CastItoXBytes(tmp_bytes), CastItoIShort(tmp_packets)); }
wxString CStatTreeItemPackets::GetDisplayString() const { return CFormat(wxGetTranslation(m_label)) % a_brackets_b(CastItoXBytes(m_bytes), CastItoIShort(m_packets)); }
void CServerListCtrl::OnLvnGetInfoTip(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLVGETINFOTIP pGetInfoTip = reinterpret_cast<LPNMLVGETINFOTIP>(pNMHDR); if (pGetInfoTip->iSubItem == 0) { LVHITTESTINFO hti = {0}; ::GetCursorPos(&hti.pt); ScreenToClient(&hti.pt); bool bOverMainItem = (SubItemHitTest(&hti) != -1 && hti.iItem == pGetInfoTip->iItem && hti.iSubItem == 0); // those tooltips are very nice for debugging/testing but pretty annoying for general usage // enable tooltips only if Shift+Ctrl is currently pressed bool bShowInfoTip = GetSelectedCount() > 1 || ((GetKeyState(VK_SHIFT) & 0x8000) && (GetKeyState(VK_CONTROL) & 0x8000)); if (!bShowInfoTip){ if (!bOverMainItem){ // don' show the default label tip for the main item, if the mouse is not over the main item if ((pGetInfoTip->dwFlags & LVGIT_UNFOLDED) == 0 && pGetInfoTip->cchTextMax > 0 && pGetInfoTip->pszText[0] != '\0') pGetInfoTip->pszText[0] = '\0'; } return; } if (GetSelectedCount() == 1) { ; } else { int iSelected = 0; ULONGLONG ulTotalUsers = 0; ULONGLONG ulTotalLowIdUsers = 0; ULONGLONG ulTotalFiles = 0; POSITION pos = GetFirstSelectedItemPosition(); while (pos) { const CServer* pServer = (CServer*)GetItemData(GetNextSelectedItem(pos)); if (pServer) { iSelected++; ulTotalUsers += pServer->GetUsers(); ulTotalFiles += pServer->GetFiles(); ulTotalLowIdUsers += pServer->GetLowIDUsers(); } } if (iSelected > 0) { CString strInfo; strInfo.Format(_T("%s: %u\r\n%s: %s\r\n%s: %s\r\n%s: %s"), GetResString(IDS_FSTAT_SERVERS), iSelected, GetResString(IDS_UUSERS), CastItoIShort(ulTotalUsers), GetResString(IDS_IDLOW), CastItoIShort(ulTotalLowIdUsers), GetResString(IDS_PW_FILES), CastItoIShort(ulTotalFiles)); _tcsncpy(pGetInfoTip->pszText, strInfo, pGetInfoTip->cchTextMax); pGetInfoTip->pszText[pGetInfoTip->cchTextMax-1] = _T('\0'); } } } *pResult = 0; }
void CServerListCtrl::RefreshServer(const CServer* server) { if (!server || !theApp.emuledlg->IsRunning()) return; LVFINDINFO find; find.flags = LVFI_PARAM; find.lParam = (LPARAM)server; int itemnr = FindItem(&find); if (itemnr == -1) return; const CServer* cur_srv; if (theApp.serverconnect->IsConnected() && (cur_srv = theApp.serverconnect->GetCurrentServer()) != NULL && cur_srv->GetPort() == server->GetPort() && _tcsicmp(cur_srv->GetAddress(), server->GetAddress()) == 0) SetItemState(itemnr,LVIS_GLOW,LVIS_GLOW); else SetItemState(itemnr, 0, LVIS_GLOW); CString temp; temp.Format(_T("%s : %i"), server->GetAddress(), server->GetPort()); SetItemText(itemnr, 1, temp); SetItemText(itemnr,0,server->GetListName()); SetItemText(itemnr,2,server->GetDescription()); // Ping if(server->GetPing()){ temp.Format(_T("%i"), server->GetPing()); SetItemText(itemnr, 3, temp); } else SetItemText(itemnr,3,_T("")); // Users if (server->GetUsers()) SetItemText(itemnr, 4, CastItoIShort(server->GetUsers())); else SetItemText(itemnr,4,_T("")); // Max Users if (server->GetMaxUsers()) SetItemText(itemnr, 5, CastItoIShort(server->GetMaxUsers())); else SetItemText(itemnr,5,_T("")); // Files if (server->GetFiles()) SetItemText(itemnr, 6, CastItoIShort(server->GetFiles())); else SetItemText(itemnr,6,_T("")); switch(server->GetPreferences()){ case SRV_PR_LOW: SetItemText(itemnr, 7, GetResString(IDS_PRIOLOW)); break; case SRV_PR_NORMAL: SetItemText(itemnr, 7, GetResString(IDS_PRIONORMAL)); break; case SRV_PR_HIGH: SetItemText(itemnr, 7, GetResString(IDS_PRIOHIGH)); break; default: SetItemText(itemnr, 7, GetResString(IDS_PRIONOPREF)); } // Failed Count temp.Format(_T("%i"), server->GetFailedCount()); SetItemText(itemnr, 8, temp); //==> simplify Serverwindow [shadow2004] #if defined(SRVWND1) // Static server if (server->IsStaticMember()) SetItemText(itemnr,9,GetResString(IDS_YES)); else SetItemText(itemnr,9,GetResString(IDS_NO)); // Soft Files if (server->GetSoftFiles()) SetItemText(itemnr, 10, CastItoIShort(server->GetSoftFiles())); else SetItemText(itemnr,10,_T("")); // Hard Files if (server->GetHardFiles()) SetItemText(itemnr, 11, CastItoIShort(server->GetHardFiles())); else SetItemText(itemnr,11,_T("")); temp = server->GetVersion(); if (thePrefs.GetDebugServerUDPLevel() > 0){ if (server->GetUDPFlags() != 0){ if (!temp.IsEmpty()) temp += _T("; "); temp.AppendFormat(_T("ExtUDP=%x"), server->GetUDPFlags()); } } if (thePrefs.GetDebugServerTCPLevel() > 0){ if (server->GetTCPFlags() != 0){ if (!temp.IsEmpty()) temp += _T("; "); temp.AppendFormat(_T("ExtTCP=%x"), server->GetTCPFlags()); } } SetItemText(itemnr,12,temp); // LowID Users if (server->GetLowIDUsers()) SetItemText(itemnr, 13, CastItoIShort(server->GetLowIDUsers())); else SetItemText(itemnr, 13,_T("")); #else //SRVWND1 // LowID Users if (server->GetLowIDUsers()) SetItemText(itemnr, 9, CastItoIShort(server->GetLowIDUsers())); else SetItemText(itemnr, 9,_T("")); #endif //SRVWND1 //<== simplify Serverwindow [shadow2004] }
void CServerListCtrl::RefreshServer(const CServer* server) { if (!server || !theApp.emuledlg->IsRunning()) return; LVFINDINFO find; find.flags = LVFI_PARAM; find.lParam = (LPARAM)server; int itemnr = FindItem(&find); if (itemnr == -1) return; CString temp; temp.Format(_T("%s : %i"), server->GetAddress(), server->GetPort()); SetItemText(itemnr, 1, temp); SetItemText(itemnr, 0, server->GetListName()); SetItemText(itemnr, 2, server->GetDescription()); // Ping if (server->GetPing()) { temp.Format(_T("%i"), server->GetPing()); SetItemText(itemnr, 3, temp); } else SetItemText(itemnr, 3, _T("")); // Users if (server->GetUsers()) SetItemText(itemnr, 4, CastItoIShort(server->GetUsers())); else SetItemText(itemnr, 4, _T("")); // Max Users if (server->GetMaxUsers()) SetItemText(itemnr, 5, CastItoIShort(server->GetMaxUsers())); else SetItemText(itemnr, 5, _T("")); // Files if (server->GetFiles()) SetItemText(itemnr, 6, CastItoIShort(server->GetFiles())); else SetItemText(itemnr, 6, _T("")); switch (server->GetPreference()) { case SRV_PR_LOW: SetItemText(itemnr, 7, GetResString(IDS_PRIOLOW)); break; case SRV_PR_NORMAL: SetItemText(itemnr, 7, GetResString(IDS_PRIONORMAL)); break; case SRV_PR_HIGH: SetItemText(itemnr, 7, GetResString(IDS_PRIOHIGH)); break; default: SetItemText(itemnr, 7, GetResString(IDS_PRIONOPREF)); } // Failed Count temp.Format(_T("%i"), server->GetFailedCount()); SetItemText(itemnr, 8, temp); // Static server if (server->IsStaticMember()) SetItemText(itemnr, 9, GetResString(IDS_YES)); else SetItemText(itemnr, 9, GetResString(IDS_NO)); // Soft Files if (server->GetSoftFiles()) SetItemText(itemnr, 10, CastItoIShort(server->GetSoftFiles())); else SetItemText(itemnr, 10, _T("")); // Hard Files if (server->GetHardFiles()) SetItemText(itemnr, 11, CastItoIShort(server->GetHardFiles())); else SetItemText(itemnr, 11, _T("")); temp = server->GetVersion(); if (thePrefs.GetDebugServerUDPLevel() > 0) { if (server->GetUDPFlags() != 0) { if (!temp.IsEmpty()) temp += _T("; "); temp.AppendFormat(_T("ExtUDP=%x"), server->GetUDPFlags()); } } if (thePrefs.GetDebugServerTCPLevel() > 0) { if (server->GetTCPFlags() != 0) { if (!temp.IsEmpty()) temp += _T("; "); temp.AppendFormat(_T("ExtTCP=%x"), server->GetTCPFlags()); } } SetItemText(itemnr, 12, temp); // LowID Users if (server->GetLowIDUsers()) SetItemText(itemnr, 13, CastItoIShort(server->GetLowIDUsers())); else SetItemText(itemnr, 13, _T("")); // Obfuscation if (server->SupportsObfuscationTCP() && server->GetObfuscationPortTCP() != 0) SetItemText(itemnr, 14, GetResString(IDS_YES)); else SetItemText(itemnr, 14, GetResString(IDS_NO)); }
void CServerWnd::UpdateKadInfo() { wxListCtrl* KadInfoList = CastChild( ID_KADINFO, wxListCtrl ); int next_row = 0; KadInfoList->DeleteAllItems(); KadInfoList->InsertItem(next_row, _("Kademlia Status:")); if (theApp->IsKadRunning()) { KadInfoList->SetItem(next_row++, 1, (theApp->IsKadRunningInLanMode() ? _("Running in LAN mode") : _("Running"))); // Connection data KadInfoList->InsertItem(next_row, _("Status:")); KadInfoList->SetItem(next_row++, 1, theApp->IsConnectedKad() ? _("Connected"): _("Disconnected")); if (theApp->IsConnectedKad()) { KadInfoList->InsertItem(next_row, _("Connection State:")); KadInfoList->SetItem(next_row++, 1, theApp->IsFirewalledKad() ? wxString(CFormat(_("Firewalled - open TCP port %d in your router or firewall")) % thePrefs::GetPort()) : wxString(_("OK"))); KadInfoList->InsertItem(next_row, _("UDP Connection State:")); bool UDPFirewalled = theApp->IsFirewalledKadUDP(); KadInfoList->SetItem(next_row++, 1, UDPFirewalled ? wxString(CFormat(_("Firewalled - open UDP port %d in your router or firewall")) % thePrefs::GetUDPPort()) : wxString(_("OK"))); if (theApp->IsFirewalledKad() || UDPFirewalled) { KadInfoList->InsertItem(next_row, _("Firewalled state: ")); wxString BuddyState; switch ( theApp->GetBuddyStatus() ) { case Disconnected: if (!theApp->IsFirewalledKad()) { BuddyState = _("No buddy required - TCP port open"); } else if (!UDPFirewalled) { BuddyState = _("No buddy required - UDP port open"); } else { BuddyState = _("No buddy"); } break; case Connecting: BuddyState = _("Connecting to buddy"); break; case Connected: BuddyState = CFormat(_("Connected to buddy at %s")) % Uint32_16toStringIP_Port(theApp->GetBuddyIP(), theApp->GetBuddyPort()); break; } KadInfoList->SetItem(next_row++, 1, BuddyState); } KadInfoList->InsertItem(next_row, _("IP address:")); KadInfoList->SetItem(next_row++, 1, Uint32toStringIP(theApp->GetKadIPAdress())); // Index info KadInfoList->InsertItem(next_row, _("Indexed sources:")); KadInfoList->SetItem(next_row++, 1, CFormat(wxT("%d")) % theApp->GetKadIndexedSources()); KadInfoList->InsertItem(next_row, _("Indexed keywords:")); KadInfoList->SetItem(next_row++, 1, CFormat(wxT("%d")) % theApp->GetKadIndexedKeywords()); KadInfoList->InsertItem(next_row, _("Indexed notes:")); KadInfoList->SetItem(next_row++, 1, CFormat(wxT("%d")) % theApp->GetKadIndexedNotes()); KadInfoList->InsertItem(next_row, _("Indexed load:")); KadInfoList->SetItem(next_row++, 1, CFormat(wxT("%d")) % theApp->GetKadIndexedLoad()); KadInfoList->InsertItem(next_row, _("Average Users:")); KadInfoList->SetItem(next_row, 1, CastItoIShort(theApp->GetKadUsers())); ++next_row; KadInfoList->InsertItem(next_row, _("Average Files:")); KadInfoList->SetItem(next_row, 1, CastItoIShort(theApp->GetKadFiles())); } } else { // No data KadInfoList->SetItem(next_row, 1, _("Not running")); } // Fit the width of the columns KadInfoList->SetColumnWidth(0, -1); KadInfoList->SetColumnWidth(1, -1); }