//EastShare Start - added by AndCycle, IP to Country void CServerListCtrl::RefreshAllServer() { for (POSITION pos = theApp.serverlist->list.GetHeadPosition(); pos != NULL; ) { RefreshServer(theApp.serverlist->list.GetNext(pos)); } }
bool CServerListCtrl::StaticServerFileAppend(CServer *server) { bool bResult; AddLogLine(false, _T("'%s:%i,%s' %s"), server->GetAddress(), server->GetPort(), server->GetListName(), GetResString(IDS_ADDED2SSF)); server->SetIsStaticMember(true); bResult = theApp.serverlist->SaveStaticServers(); RefreshServer(server); return bResult; }
bool CServerListCtrl::AddServer(const CServer* pServer, bool bAddToList) { if (!theApp.serverlist->AddServer(pServer)) return false; if (bAddToList) { InsertItem(LVIF_TEXT | LVIF_PARAM, GetItemCount(), pServer->GetListName(), 0, 0, 1, (LPARAM)pServer); RefreshServer(pServer); } ShowServerCount(); return true; }
bool CServerListCtrl::AddServer(CServer* toadd, bool bAddToList) { if (!server_list->AddServer(toadd)) return false; if (bAddToList) { uint32 itemnr = GetItemCount(); InsertItem(LVIF_TEXT|LVIF_PARAM,itemnr,toadd->GetListName(),0,0,1,(LPARAM)toadd); RefreshServer( toadd ); } ShowServerCount(); return true; }
bool CServerListCtrl::AddServer(const CServer* pServer, bool bAddToList, bool bRandom) { bool bAddTail = !bRandom || ((GetRandomUInt16() % (1 + theApp.serverlist->GetServerCount())) != 0); if (!theApp.serverlist->AddServer(pServer, bAddTail)) return false; if (bAddToList) { InsertItem(LVIF_TEXT | LVIF_PARAM, bAddTail ? GetItemCount() : 0, pServer->GetListName(), 0, 0, 0, (LPARAM)pServer); RefreshServer(pServer); } ShowServerCount(); return true; }
//----------------------------------------------------------------------------- // Purpose: Runs a frame of networking //----------------------------------------------------------------------------- void CServerList::RunFrame() { // check networking messages IReceiveMessage *recv; while ((recv = g_pTrackerNET->GetIncomingData()) != NULL) { // handle message ReceivedData(recv); // free the message g_pTrackerNET->ReleaseMessage(recv); } g_pTrackerNET->RunFrame(); // check for timeouts for (int i = 0; i < m_Servers.Size(); i++) { server_t &server = m_Servers[i]; CheckOnServer(server); } // check to see if we need to do any refreshes double time = g_pThreads->GetTime(); if (time > m_flRebroadcastTime) { BroadcastForServers(); // force the database info to update m_bHasDBInfo = false; // only do one request per frame return; } // look to see if any servers need to be updated for (i = 0; i < m_Servers.Size(); i++) { server_t &server = m_Servers[i]; if (time > server.refreshTime) { RefreshServer(server); // only do one request per frame break; } } }
void CServerListCtrl::SetSelectedServersPriority(UINT uPriority) { bool bUpdateStaticServersFile = false; POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL) { CServer* pServer = (CServer*)GetItemData(GetNextSelectedItem(pos)); if (pServer->GetPreference() != uPriority) { pServer->SetPreference(uPriority); if (pServer->IsStaticMember()) bUpdateStaticServersFile = true; RefreshServer(pServer); } } if (bUpdateStaticServersFile) theApp.serverlist->SaveStaticServers(); }
void CServerListCtrl::Localize() { CHeaderCtrl* pHeaderCtrl = GetHeaderCtrl(); HDITEM hdi; hdi.mask = HDI_TEXT; CString strRes; strRes = GetResString(IDS_SL_SERVERNAME); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(0, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_IP); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(1, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_DESCRIPTION); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(2, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_PING); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(3, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_UUSERS); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(4, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_MAXCLIENT); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(5, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_PW_FILES); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(6, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_PREFERENCE); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(7, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_UFAILED); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(8, &hdi); strRes.ReleaseBuffer(); //==> simplify Serverwindow [shadow2004] #if defined(SRVWND1) strRes = GetResString(IDS_STATICSERVER); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(9, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_SOFTFILES); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(10, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_HARDFILES); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(11, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_VERSION); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(12, &hdi); strRes.ReleaseBuffer(); strRes = GetResString(IDS_IDLOW); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(13, &hdi); strRes.ReleaseBuffer(); #else //SRVWND1 strRes = GetResString(IDS_IDLOW); hdi.pszText = strRes.GetBuffer(); pHeaderCtrl->SetItem(9, &hdi); strRes.ReleaseBuffer(); #endif //SRVWND1 //<== simplify Serverwindow [shadow2004] int iItems = GetItemCount(); for (int i = 0; i < iItems; i++) RefreshServer((CServer*)GetItemData(i)); }
void CServerListCtrl::Localize() { CHeaderCtrl* pHeaderCtrl = GetHeaderCtrl(); HDITEM hdi; hdi.mask = HDI_TEXT; CString strRes; strRes = GetResString(IDS_SL_SERVERNAME); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(0, &hdi); strRes = GetResString(IDS_IP); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(1, &hdi); strRes = GetResString(IDS_DESCRIPTION); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(2, &hdi); strRes = GetResString(IDS_PING); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(3, &hdi); strRes = GetResString(IDS_UUSERS); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(4, &hdi); strRes = GetResString(IDS_MAXCLIENT); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(5, &hdi); strRes = GetResString(IDS_PW_FILES); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(6, &hdi); strRes = GetResString(IDS_PREFERENCE); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(7, &hdi); strRes = GetResString(IDS_UFAILED); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(8, &hdi); strRes = GetResString(IDS_STATICSERVER); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(9, &hdi); strRes = GetResString(IDS_SOFTFILES); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(10, &hdi); strRes = GetResString(IDS_HARDFILES); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(11, &hdi); strRes = GetResString(IDS_VERSION); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(12, &hdi); strRes = GetResString(IDS_IDLOW); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(13, &hdi); strRes = GetResString(IDS_OBFUSCATION); hdi.pszText = const_cast<LPTSTR>((LPCTSTR)strRes); pHeaderCtrl->SetItem(14, &hdi); int iItems = GetItemCount(); for (int i = 0; i < iItems; i++) RefreshServer((CServer*)GetItemData(i)); }
BOOL CServerListCtrl::OnCommand(WPARAM wParam, LPARAM /*lParam*/) { wParam = LOWORD(wParam); switch (wParam) { case MP_CONNECTTO: case IDA_ENTER: if (GetSelectedCount() > 1) { theApp.serverconnect->Disconnect(); POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL) { int iItem = GetNextSelectedItem(pos); if (iItem > -1) { const CServer* pServer = (CServer*)GetItemData(iItem); theApp.serverlist->MoveServerDown(pServer); } } theApp.serverconnect->ConnectToAnyServer(theApp.serverlist->GetServerCount() - GetSelectedCount(), false, false); } else { int iItem = GetNextItem(-1, LVIS_SELECTED | LVIS_FOCUSED); if (iItem > -1) theApp.serverconnect->ConnectToServer((CServer*)GetItemData(iItem)); } theApp.emuledlg->ShowConnectionState(); return TRUE; case MP_CUT: { CString strURLs = CreateSelectedServersURLs(); if (!strURLs.IsEmpty()) theApp.CopyTextToClipboard(strURLs); DeleteSelectedServers(); return TRUE; } case MP_COPYSELECTED: case MP_GETED2KLINK: case Irc_SetSendLink: { CString strURLs = CreateSelectedServersURLs(); if (!strURLs.IsEmpty()) { if (wParam == Irc_SetSendLink) theApp.emuledlg->ircwnd->SetSendFileString(strURLs); else theApp.CopyTextToClipboard(strURLs); } return TRUE; } case MP_PASTE: if (theApp.IsEd2kServerLinkInClipboard()) theApp.emuledlg->serverwnd->PasteServerFromClipboard(); return TRUE; case MP_REMOVE: case MPG_DELETE: { SetRedraw(FALSE); while (GetFirstSelectedItemPosition() != NULL) { POSITION pos = GetFirstSelectedItemPosition(); int iItem = GetNextSelectedItem(pos); theApp.serverlist->RemoveServer((CServer*)GetItemData(iItem)); DeleteItem(iItem); } ShowServerCount(); SetRedraw(TRUE); SetFocus(); AutoSelectItem(); return TRUE; } case MP_REMOVEALL: if (AfxMessageBox(GetResString(IDS_REMOVEALLSERVERS), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2) != IDYES) return TRUE; if (theApp.serverconnect->IsConnecting()) { theApp.downloadqueue->StopUDPRequests(); theApp.serverconnect->StopConnectionTry(); theApp.serverconnect->Disconnect(); theApp.emuledlg->ShowConnectionState(); } ShowWindow(SW_HIDE); theApp.serverlist->RemoveAllServers(); DeleteAllItems(); ShowWindow(SW_SHOW); ShowServerCount(); return TRUE; case MP_FIND: OnFindStart(); return TRUE; case MP_ADDTOSTATIC: { POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL) { CServer* pServer = (CServer*)GetItemData(GetNextSelectedItem(pos)); if (!StaticServerFileAppend(pServer)) return FALSE; RefreshServer(pServer); } return TRUE; } case MP_REMOVEFROMSTATIC: { POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL) { CServer* pServer = (CServer*)GetItemData(GetNextSelectedItem(pos)); if (!StaticServerFileRemove(pServer)) return FALSE; RefreshServer(pServer); } return TRUE; } case MP_PRIOLOW: SetSelectedServersPriority(SRV_PR_LOW); return TRUE; case MP_PRIONORMAL: SetSelectedServersPriority(SRV_PR_NORMAL); return TRUE; case MP_PRIOHIGH: SetSelectedServersPriority(SRV_PR_HIGH); return TRUE; } return FALSE; }