BOOL CUploadListCtrl::OnCommand(WPARAM wParam, LPARAM /*lParam*/) { wParam = LOWORD(wParam); switch (wParam) { case MP_FIND: OnFindStart(); return TRUE; } int iSel = GetNextItem(-1, LVIS_SELECTED | LVIS_FOCUSED); if (iSel != -1) { CUpDownClient* client = (CUpDownClient*)GetItemData(iSel); switch (wParam) { case MP_SHOWLIST: client->RequestSharedFileList(); break; #if _ENABLE_NOUSE case MP_MESSAGE: theApp.emuledlg->chatwnd->StartSession(client); break; case MP_ADDFRIEND: if (theApp.friendlist->AddFriend(client)) Update(iSel); break; #endif case MP_DETAIL: case MPG_ALTENTER: case IDA_ENTER: { CClientDetailDialog dialog(client, this); dialog.DoModal(); break; } #ifdef _ENABLE_NOUSE case MP_BOOT: if (client->GetKadPort()) Kademlia::CKademlia::Bootstrap(ntohl(client->GetIP()), client->GetKadPort(), (client->GetKadVersion() > 1)); break; #endif case MP_REMOVECLIENT: CGlobalVariable::uploadqueue->RemoveFromUploadQueue(client, _T("remove client active for debug test")); break; } } if( wParam==MP_SHOWUPQUEUE ) { theApp.emuledlg->transferwnd->uploadlistctrl.Hide(); theApp.emuledlg->transferwnd->queuelistctrl.Visable(); theApp.emuledlg->m_mainTabWnd.m_dlgDownload.ShowUpingOrQueue(IDC_QUEUELIST); theApp.emuledlg->m_mainTabWnd.m_dlgDownload.DoResize(1); } return true; }
BOOL CClientListCtrl::OnCommand(WPARAM wParam, LPARAM /*lParam*/) { wParam = LOWORD(wParam); switch (wParam) { case MP_FIND: OnFindStart(); return TRUE; } int iSel = GetNextItem(-1, LVIS_SELECTED | LVIS_FOCUSED); if (iSel != -1){ CUpDownClient* client = (CUpDownClient*)GetItemData(iSel); switch (wParam){ case MP_SHOWLIST: client->RequestSharedFileList(); break; #if _ENABLE_NOUSE case MP_MESSAGE: theApp.emuledlg->chatwnd->StartSession(client); break; case MP_ADDFRIEND: if (theApp.friendlist->AddFriend(client)) Update(iSel); break; #endif case MP_UNBAN: if (client->IsBanned()){ client->UnBan(); Update(iSel); } break; case MP_DETAIL: case MPG_ALTENTER: case IDA_ENTER: { CClientDetailDialog dialog(client, this); dialog.DoModal(); break; } case MP_BOOT: if (client->GetKadPort()) Kademlia::CKademlia::Bootstrap(ntohl(client->GetIP()), client->GetKadPort(), (client->GetKadVersion() > 1)); break; } } return true; }
BOOL CQueueListCtrl::OnCommand(WPARAM wParam, LPARAM /*lParam*/) { wParam = LOWORD(wParam); switch (wParam) { case MP_FIND: OnFindStart(); return TRUE; } int iSel = GetNextItem(-1, LVIS_SELECTED | LVIS_FOCUSED); if (iSel != -1){ CUpDownClient* client = (CUpDownClient*)GetItemData(iSel); switch (wParam){ case MP_SHOWLIST: client->RequestSharedFileList(); break; case MP_MESSAGE: theApp.emuledlg->chatwnd->StartSession(client); break; case MP_ADDFRIEND: if (theApp.friendlist->AddFriend(client)) Update(iSel); break; //Xman friendhandling case MP_REMOVEFRIEND: if (client && client->IsFriend()) { theApp.friendlist->RemoveFriend(client->m_Friend); Update(iSel); } break; case MP_FRIENDSLOT: if (client) { bool IsAlready; IsAlready = client->GetFriendSlot(); // ==> Multiple friendslots [ZZ] - Mephisto /* theApp.friendlist->RemoveAllFriendSlots(); */ // <== Multiple friendslots [ZZ] - Mephisto if( !IsAlready ) client->SetFriendSlot(true); // ==> Multiple friendslots [ZZ] - Mephisto else client->SetFriendSlot(false); // <== Multiple friendslots [ZZ] - Mephisto Update(iSel); } break; //Xman end case MP_UNBAN: if (client->IsBanned()){ client->UnBan(); Update(iSel); } break; case MP_DETAIL: case MPG_ALTENTER: case IDA_ENTER: { CClientDetailDialog dialog(client, this); dialog.DoModal(); break; } case MP_BOOT: if (client->GetKadPort() && client->GetKadVersion() > 1) Kademlia::CKademlia::Bootstrap(ntohl(client->GetIP()), client->GetKadPort()); break; // - show requested files (sivka/Xman) case MP_LIST_REQUESTED_FILES: { if (client != NULL) { client->ShowRequestedFiles(); } break; } //Xman end } } 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; }
BOOL CFriendListCtrl::OnCommand(WPARAM wParam, LPARAM /*lParam*/) { wParam = LOWORD(wParam); CFriend* cur_friend = NULL; int iSel = GetNextItem(-1, LVIS_SELECTED | LVIS_FOCUSED); if (iSel != -1) cur_friend = (CFriend*)GetItemData(iSel); switch (wParam) { case MP_MESSAGE: if (cur_friend) { theApp.emuledlg->chatwnd->StartSession(cur_friend->GetClientForChatSession()); } break; case MP_REMOVEFRIEND: if (cur_friend) { theApp.friendlist->RemoveFriend(cur_friend); // auto select next item after deleted one. if (iSel < GetItemCount()) { SetSelectionMark(iSel); SetItemState(iSel, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); } theApp.emuledlg->chatwnd->UpdateSelectedFriendMsgDetails(); } break; case MP_ADDFRIEND:{ CAddFriend dialog2; dialog2.DoModal(); break; } case MP_DETAIL: case MPG_ALTENTER: case IDA_ENTER: if (cur_friend) ShowFriendDetails(cur_friend); break; case MP_SHOWLIST: if (cur_friend) { if (cur_friend->GetLinkedClient(true)) cur_friend->GetLinkedClient()->RequestSharedFileList(); else { CUpDownClient* newclient = new CUpDownClient(0, cur_friend->m_nLastUsedPort, cur_friend->m_dwLastUsedIP, 0, 0, true); newclient->SetUserName(cur_friend->m_strName); //Xman Code Improvement don't search new generated clients in lists /* theApp.clientlist->AddClient(newclient); */ theApp.clientlist->AddClient(newclient,true); //Xman end newclient->RequestSharedFileList(); } } break; case MP_FRIENDSLOT: if (cur_friend) { bool bIsAlready = cur_friend->GetFriendSlot(); theApp.friendlist->RemoveAllFriendSlots(); if (!bIsAlready) { //Xman cur_friend->SetFriendSlot(true); //Xman friend visualization UpdateFriend(iSel,cur_friend); //Xman end } //Xman } break; // - show requested files (sivka/Xman) case MP_LIST_REQUESTED_FILES: { if (cur_friend && cur_friend->GetLinkedClient()) { cur_friend->GetLinkedClient()->ShowRequestedFiles(); } break; } //Xman end // MORPH START - Added by Commander, Friendlinks [emulEspaa] - added by zz_fly case MP_PASTE: { CString link = theApp.CopyTextFromClipboard(); link.Trim(); if ( link.IsEmpty() ) break; try{ CED2KLink* pLink = CED2KLink::CreateLinkFromUrl(link); if (pLink && pLink->GetKind() == CED2KLink::kFriend ) { // Better with dynamic_cast, but no RTTI enabled in the project CED2KFriendLink* pFriendLink = static_cast<CED2KFriendLink*>(pLink); uchar userHash[16]; pFriendLink->GetUserHash(userHash); if ( ! theApp.friendlist->IsAlreadyFriend(userHash) ) theApp.friendlist->AddFriend(userHash, 0U, 0U, 0U, 0U, pFriendLink->GetUserName(), 1U); else { CString msg; msg.Format(GetResString(IDS_USER_ALREADY_FRIEND), pFriendLink->GetUserName()); AddLogLine(true, msg); } } if(pLink) delete pLink; //zz_fly :: memleak :: thanks DolphinX } catch(CString strError){ AfxMessageBox(strError); } } break; case MP_GETFRIENDED2KLINK: { CString sCompleteLink; if ( cur_friend && cur_friend->HasUserhash() ) { CString sLink; CED2KFriendLink friendLink(cur_friend->m_strName, cur_friend->m_abyUserhash); friendLink.GetLink(sLink); if ( !sCompleteLink.IsEmpty() ) sCompleteLink.Append(_T("\r\n")); sCompleteLink.Append(sLink); } if ( !sCompleteLink.IsEmpty() ) theApp.CopyTextToClipboard(sCompleteLink); } break; case MP_GETHTMLFRIENDED2KLINK: { CString sCompleteLink; if ( cur_friend && cur_friend->HasUserhash() ) { CString sLink; CED2KFriendLink friendLink(cur_friend->m_strName, cur_friend->m_abyUserhash); friendLink.GetLink(sLink); sLink = _T("<a href=\"") + sLink + _T("\">") + StripInvalidFilenameChars(cur_friend->m_strName) + _T("</a>"); if ( !sCompleteLink.IsEmpty() ) sCompleteLink.Append(_T("\r\n")); sCompleteLink.Append(sLink); } if ( !sCompleteLink.IsEmpty() ) theApp.CopyTextToClipboard(sCompleteLink); } break; // MORPH END - Added by Commander, Friendlinks [emulEspaa] case MP_FIND: OnFindStart(); break; } return true; }