bool CServerListCtrl::AddServermetToList(const CString& strFile) { SetRedraw(false); bool flag=server_list->AddServermetToList(strFile); RemoveAllDeadServers(); ShowServerCount(); SetRedraw(true); return flag; }
bool CServerListCtrl::AddServerMetToList(const CString& strFile) { SetRedraw(FALSE); bool bResult = theApp.serverlist->AddServerMetToList(strFile, true); RemoveAllDeadServers(); ShowServerCount(); SetRedraw(TRUE); 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; }
void CServerListCtrl::RemoveServer(const CServer* pServer) { LVFINDINFO find; find.flags = LVFI_PARAM; find.lParam = (LPARAM)pServer; int iItem = FindItem(&find); if (iItem != -1) { theApp.serverlist->RemoveServer(pServer); DeleteItem(iItem); ShowServerCount(); } }
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; }
void CServerListCtrl::RemoveServer(CServer* todel) { LVFINDINFO find; find.flags = LVFI_PARAM; find.lParam = (LPARAM)todel; sint32 result = FindItem(&find); if (result != (-1) ){ server_list->RemoveServer((CServer*)GetItemData(result)); DeleteItem(result); ShowServerCount(); } return; }
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; }
void CServerListCtrl::DeleteSelectedServers() { //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(); }
bool CServerListCtrl::Init() { SetName(_T("ServerListCtrl")); ModifyStyle(0,LVS_SINGLESEL|LVS_REPORT); ModifyStyle(LVS_SINGLESEL|LVS_LIST|LVS_ICON|LVS_SMALLICON,LVS_REPORT); //here the CListCtrl is set to report-style SetExtendedStyle(GetExtendedStyle() | LVS_EX_INFOTIP); CToolTipCtrl* tooltip = GetToolTips(); if (tooltip) { m_tooltip->SubclassWindow(*tooltip); tooltip->ModifyStyle(0, TTS_NOPREFIX); tooltip->SetDelayTime(TTDT_AUTOPOP, 20000); tooltip->SetDelayTime(TTDT_INITIAL, thePrefs.GetToolTipDelay()*1000); } InsertColumn(0, GetResString(IDS_SL_SERVERNAME),LVCFMT_LEFT, 150); InsertColumn(1, GetResString(IDS_IP), LVCFMT_LEFT, 140); InsertColumn(2, GetResString(IDS_DESCRIPTION), LVCFMT_LEFT, 150); InsertColumn(3, GetResString(IDS_PING), LVCFMT_RIGHT, 50); InsertColumn(4, GetResString(IDS_UUSERS), LVCFMT_RIGHT, 50); InsertColumn(5, GetResString(IDS_MAXCLIENT), LVCFMT_RIGHT, 50); InsertColumn(6, GetResString(IDS_PW_FILES) , LVCFMT_RIGHT, 50); InsertColumn(7, GetResString(IDS_PREFERENCE), LVCFMT_LEFT, 60); InsertColumn(8, GetResString(IDS_UFAILED), LVCFMT_RIGHT, 50); InsertColumn(9, GetResString(IDS_STATICSERVER), LVCFMT_LEFT, 50); InsertColumn(10,GetResString(IDS_SOFTFILES), LVCFMT_RIGHT, 50); InsertColumn(11,GetResString(IDS_HARDFILES), LVCFMT_RIGHT, 50); InsertColumn(12,GetResString(IDS_VERSION), LVCFMT_LEFT, 50); InsertColumn(13,GetResString(IDS_IDLOW), LVCFMT_RIGHT, 50); InsertColumn(14,GetResString(IDS_OBFUSCATION) ,LVCFMT_RIGHT, 50); SetAllIcons(); Localize(); LoadSettings(); // Barry - Use preferred sort order from preferences SetSortArrow(); SortItems(SortProc, MAKELONG(GetSortItem(), (GetSortAscending()? 0 : 0x0001))); ShowServerCount(); return true; }
bool CServerListCtrl::Init(CServerList* in_list) { server_list = in_list; ModifyStyle(0,LVS_SINGLESEL|LVS_REPORT); ModifyStyle(LVS_SINGLESEL|LVS_LIST|LVS_ICON|LVS_SMALLICON,LVS_REPORT); //here the CListCtrl is set to report-style SetExtendedStyle(GetExtendedStyle() | LVS_EX_INFOTIP); InsertColumn(0, GetResString(IDS_SL_SERVERNAME),LVCFMT_LEFT, 150); InsertColumn(1, GetResString(IDS_IP), LVCFMT_LEFT, 140); InsertColumn(2, GetResString(IDS_DESCRIPTION), LVCFMT_LEFT, 150); InsertColumn(3, GetResString(IDS_PING), LVCFMT_RIGHT, 50); InsertColumn(4, GetResString(IDS_UUSERS), LVCFMT_RIGHT, 50); InsertColumn(5, GetResString(IDS_MAXCLIENT), LVCFMT_RIGHT, 50); InsertColumn(6, GetResString(IDS_PW_FILES) , LVCFMT_RIGHT, 50); InsertColumn(7, GetResString(IDS_PREFERENCE), LVCFMT_LEFT, 60); InsertColumn(8, GetResString(IDS_UFAILED), LVCFMT_RIGHT, 50); //==> simplify Serverwindow [shadow2004] #if defined(SRVWND1) InsertColumn(9, GetResString(IDS_STATICSERVER), LVCFMT_LEFT, 50); InsertColumn(10,GetResString(IDS_SOFTFILES), LVCFMT_RIGHT, 50); InsertColumn(11,GetResString(IDS_HARDFILES), LVCFMT_RIGHT, 50); InsertColumn(12,GetResString(IDS_VERSION), LVCFMT_LEFT, 50); InsertColumn(13,GetResString(IDS_IDLOW), LVCFMT_RIGHT, 50); #else //SRVWND1 InsertColumn(9,GetResString(IDS_IDLOW), LVCFMT_RIGHT, 50); #endif //SRVWND1 //<== simplify Serverwindow [shadow2004] SetAllIcons(); Localize(); LoadSettings(CPreferences::tableServer); // Barry - Use preferred sort order from preferences int iSortItem = thePrefs.GetColumnSortItem(CPreferences::tableServer); bool bSortAscending = thePrefs.GetColumnSortAscending(CPreferences::tableServer); SetSortArrow(iSortItem, bSortAscending); SortItems(SortProc, MAKELONG(iSortItem, (bSortAscending ? 0 : 0x0001))); ShowServerCount(); return true; }
BOOL CServerListCtrl::OnCommand(WPARAM wParam, LPARAM lParam) { if (wParam == MP_REMOVEALL) { if (AfxMessageBox(_T("Do you really want to remove all servers?"), 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); server_list->RemoveAllServers(); DeleteAllItems(); ShowWindow(SW_SHOW); ShowServerCount(); return TRUE; } else if (wParam == MP_FIND) { OnFindStart(); return TRUE; } else if (wParam == MP_PASTE) { if (theApp.IsEd2kServerLinkInClipboard()) theApp.emuledlg->serverwnd->PasteServerFromClipboard(); return TRUE; } int item = GetNextItem(-1, LVIS_SELECTED | LVIS_FOCUSED); if (item != -1) { if (((CServer*)GetItemData(item)) != NULL) { switch (wParam){ case MP_CONNECTTO: { if (GetSelectedCount() > 1) { CServer* aServer; theApp.serverconnect->Disconnect(); POSITION pos=GetFirstSelectedItemPosition(); while (pos != NULL) { item = GetNextSelectedItem(pos); if (item > -1) { aServer=(CServer*)GetItemData(item); theApp.serverlist->MoveServerDown(aServer); } } theApp.serverconnect->ConnectToAnyServer(theApp.serverlist->GetServerCount() - this->GetSelectedCount(), false, false); } else{ theApp.serverconnect->ConnectToServer((CServer*)GetItemData(item)); } theApp.emuledlg->ShowConnectionState(); return TRUE; } case MPG_DELETE: case MP_REMOVE: { ShowWindow(SW_HIDE); POSITION pos; while (GetFirstSelectedItemPosition() != NULL) { pos = GetFirstSelectedItemPosition(); item = GetNextSelectedItem(pos); server_list->RemoveServer((CServer*)GetItemData(item)); DeleteItem(item); } ShowServerCount(); ShowWindow(SW_SHOW); SetFocus(); return TRUE; } case MP_ADDTOSTATIC: { POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL){ CServer* change = (CServer*)GetItemData(GetNextSelectedItem(pos)); if (!StaticServerFileAppend(change)) return FALSE; change->SetIsStaticMember(true); theApp.emuledlg->serverwnd->serverlistctrl.RefreshServer(change); } return TRUE; } case MP_REMOVEFROMSTATIC: { POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL){ CServer* change = (CServer*)GetItemData(GetNextSelectedItem(pos)); if (!StaticServerFileRemove(change)) return FALSE; change->SetIsStaticMember(false); theApp.emuledlg->serverwnd->serverlistctrl.RefreshServer(change); } return TRUE; } case MP_PRIOLOW: { POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL){ CServer* change = (CServer*)GetItemData(GetNextSelectedItem(pos)); change->SetPreference(SRV_PR_LOW); theApp.emuledlg->serverwnd->serverlistctrl.RefreshServer(change); } return TRUE; } case MP_PRIONORMAL: { POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL){ CServer* change = (CServer*)GetItemData(GetNextSelectedItem(pos)); change->SetPreference(SRV_PR_NORMAL); theApp.emuledlg->serverwnd->serverlistctrl.RefreshServer(change); } return TRUE; } case MP_PRIOHIGH: { POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL){ CServer* change = (CServer*)GetItemData(GetNextSelectedItem(pos)); change->SetPreference(SRV_PR_HIGH); theApp.emuledlg->serverwnd->serverlistctrl.RefreshServer(change); } return TRUE; } case MP_COPYSELECTED: case MP_GETED2KLINK: { POSITION pos = GetFirstSelectedItemPosition(); CString buffer, link; while (pos != NULL){ const CServer* change = (CServer*)GetItemData(GetNextSelectedItem(pos)); buffer.Format(_T("ed2k://|server|%s|%d|/"), change->GetFullIP(), change->GetPort()); if (link.GetLength() > 0) buffer = _T("\r\n") + buffer; link += buffer; } theApp.CopyTextToClipboard(link); return TRUE; } //==> remove IRC [shadow2004] #if defined(IRC) case Irc_SetSendLink: { POSITION pos = GetFirstSelectedItemPosition(); CString buffer, link; while (pos != NULL){ const CServer* change = (CServer*)GetItemData(GetNextSelectedItem(pos)); buffer.Format(_T("ed2k://|server|%s|%d|/"), change->GetFullIP(), change->GetPort()); if (link.GetLength() > 0) buffer = _T("\r\n") + buffer; link += buffer; } theApp.emuledlg->ircwnd->SetSendFileString(link); return TRUE; } #endif //IRC //<== remove IRC [shadow2004] } } } return FALSE; }
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; theApp.emuledlg->serverwnd->serverlistctrl.RefreshServer(pServer); } return TRUE; } case MP_REMOVEFROMSTATIC: { POSITION pos = GetFirstSelectedItemPosition(); while (pos != NULL) { CServer* pServer = (CServer*)GetItemData(GetNextSelectedItem(pos)); if (!StaticServerFileRemove(pServer)) return FALSE; theApp.emuledlg->serverwnd->serverlistctrl.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; }