void CQListCtrl::OnSelectionChange(NMHDR* pNMHDR, LRESULT* pResult) { NMLISTVIEW *pnmv = (NMLISTVIEW *) pNMHDR; if((pnmv->uNewState == 3) || (pnmv->uNewState == 1)) { if(g_Opt.m_bAllwaysShowDescription) { KillTimer(TIMER_SHOW_PROPERTIES); SetTimer(TIMER_SHOW_PROPERTIES, 300, NULL); } if(GetSelectedCount() > 0 ) theApp.SetStatus(NULL, FALSE); } if(GetSelectedCount() == this->GetItemCount()) { if(m_allSelected == false) { Log(StrF(_T("List box Select All"))); GetParent()->SendMessage(NM_ALL_SELECTED, 0, 0); m_allSelected = true; } } else if(m_allSelected == true) { Log(StrF(_T("List box REMOVED Select All"))); m_allSelected = false; } }
void CDownloads_History::OnRClick() { CMenu menu; menu.LoadMenu (IDM_HISTORYITEMS); ApplyLanguageToMenu (&menu); CMenu *pPopup = menu.GetSubMenu (0); if (GetSelectedCount () != 1) { pPopup->EnableMenuItem (ID_LAUNCH, MF_BYCOMMAND | MF_GRAYED); pPopup->EnableMenuItem (ID_OPENFOLDER, MF_BYCOMMAND | MF_GRAYED); pPopup->EnableMenuItem (ID_URLTOCLIPBOARD, MF_BYCOMMAND | MF_GRAYED); } if (GetSelectedCount () == 0) pPopup->EnableMenuItem (ID_HSTITEM_DELETE, MF_BYCOMMAND | MF_GRAYED); m_odmenu.Attach (&menu, FALSE); CPoint pt (0,0); GetCursorPos (&pt); pPopup->TrackPopupMenu (TPM_RIGHTBUTTON | TPM_TOPALIGN | TPM_LEFTALIGN, pt.x, pt.y, this); m_odmenu.Detach (); menu.DestroyMenu (); }
void CSourceDirListCtrl::OnContextMenu(CWnd* pWnd, CPoint point) { CMenu srcDirMenu; srcDirMenu.CreatePopupMenu(); srcDirMenu.AppendMenu(MF_STRING, IDM_SOURCE_DIR_REMOVE, _T("Remove")); srcDirMenu.AppendMenu(MF_STRING, IDM_SOURCE_DIR_REMOVE_ALL, _T("Remove All")); srcDirMenu.AppendMenu(MF_SEPARATOR); srcDirMenu.AppendMenu(MF_STRING, IDM_SOURCE_DIR_SELECT_ALL, _T("Select All\tCtrl+A")); srcDirMenu.AppendMenu(MF_SEPARATOR); srcDirMenu.AppendMenu(MF_STRING, IDM_SOURCE_DIR_CHECK, _T("Check")); srcDirMenu.AppendMenu(MF_STRING, IDM_SOURCE_DIR_UNCHECK, _T("Uncheck")); srcDirMenu.AppendMenu(MF_SEPARATOR); srcDirMenu.AppendMenu(MF_STRING, IDM_SOURCE_DIR_OPEN_DIR, _T("Open Folder")); //Set menu enable status int nCount = GetSelectedCount(); if(nCount <= 0) { srcDirMenu.EnableMenuItem(IDM_SOURCE_DIR_REMOVE, MF_BYCOMMAND | MF_GRAYED); srcDirMenu.EnableMenuItem(IDM_SOURCE_DIR_CHECK, MF_BYCOMMAND | MF_GRAYED); srcDirMenu.EnableMenuItem(IDM_SOURCE_DIR_UNCHECK, MF_BYCOMMAND | MF_GRAYED); } if(nCount != 1) { srcDirMenu.EnableMenuItem(IDM_SOURCE_DIR_OPEN_DIR, MF_BYCOMMAND | MF_GRAYED); } srcDirMenu.TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, point.x, point.y, this); }
void CLibraryFileView::OnLibraryRefreshMetadata() { const DWORD nTotal = GetSelectedCount(); if ( nTotal == 1 ) { CQuickLock pLock( Library.m_pSection ); LibraryBuilder.RefreshMetadata( GetSelectedFile()->GetPath() ); return; } CProgressDialog dlgProgress( LoadString( ID_LIBRARY_REFRESH_METADATA ) + _T("...") ); CQuickLock pLock( Library.m_pSection ); DWORD nCompleted = 0; POSITION posSel = StartSelectedFileLoop(); while ( CLibraryFile* pFile = GetNextSelectedFile( posSel ) ) { CString strPath = pFile->GetPath(); dlgProgress.Progress( strPath, nCompleted++, nTotal ); LibraryBuilder.RefreshMetadata( strPath ); } }
// -------------------------------------------------------------------------------- // void guPLSoListBox::CreateContextMenu( wxMenu * Menu ) const { wxMenuItem * MenuItem; int SelCount = GetSelectedCount(); if( SelCount ) { guSoListBox::CreateContextMenu( Menu ); int InsertPosition = 12; if( !m_DisableSorting && ( m_TracksOrder == wxNOT_FOUND ) ) { MenuItem = new wxMenuItem( Menu, ID_TRACKS_RANDOMIZE, wxString( _( "Randomize Playlist" ) ) + guAccelGetCommandKeyCodeString( ID_PLAYER_PLAYLIST_RANDOMPLAY ), _( "Randomize the songs in the playlist" ) ); Menu->Insert( 9, MenuItem ); InsertPosition = 13; } if( ( m_PLTypes.Count() == 1 ) && ( m_PLTypes[ 0 ] == guPLAYLIST_TYPE_STATIC ) ) { MenuItem = new wxMenuItem( Menu, ID_TRACKS_DELETE, _( "Remove from Playlist" ), _( "Delete the current selected tracks" ) ); MenuItem->SetBitmap( guImage( guIMAGE_INDEX_tiny_del ) ); Menu->Insert( InsertPosition, MenuItem ); } } }
bool CListCtrlEx::IsItemSelected() { if (GetSelectedCount() > 0) return true; else return false; }
void CDrivesList::OnLButtonDown(UINT /*nFlags*/, CPoint /*point*/) { if (GetFocus() == this || GetSelectedCount() == 0) { // We simulate Ctrl-Key-Down here, so that the dialog // can be driven with one hand (mouse) only. const MSG *msg= GetCurrentMessage(); DefWindowProc(msg->message, msg->wParam | MK_CONTROL, msg->lParam); } else { SetFocus(); // Send a LVN_ITEMCHANGED to the parent, so that it can // update the radio button. NMLISTVIEW lv; ZeroMemory(&lv, sizeof(lv)); lv.hdr.hwndFrom= m_hWnd; lv.hdr.idFrom= GetDlgCtrlID(); lv.hdr.code= LVN_ITEMCHANGED; GetParent()->SendMessage(WM_NOTIFY, GetDlgCtrlID(), (LPARAM)&lv); // no further action } }
void CTorrents_Tasks::UpdateMenu(CMenu *pPopup) { if (GetSelectedCount () == 0) { pPopup->EnableMenuItem (ID_BTDLD_START, MF_BYCOMMAND | MF_GRAYED); pPopup->EnableMenuItem (ID_BTDLD_STOP, MF_BYCOMMAND | MF_GRAYED); pPopup->EnableMenuItem (ID_BTDLD_AUTOSTART, MF_BYCOMMAND | MF_GRAYED); pPopup->EnableMenuItem (ID_BTDLD_DELETE, MF_BYCOMMAND | MF_GRAYED); pPopup->EnableMenuItem (ID_BTDLD_LAUNCH, MF_BYCOMMAND | MF_GRAYED); pPopup->EnableMenuItem (ID_BTDLD_OPENFOLDER, MF_BYCOMMAND | MF_GRAYED); pPopup->EnableMenuItem (ID_BTDLD_PASSTODLDS, MF_BYCOMMAND | MF_GRAYED); pPopup->EnableMenuItem (ID_BTDLD_PROPERTIES, MF_BYCOMMAND | MF_GRAYED); } else { DLDS_LIST v; GetSelectedDownloads (v); BOOL bRunning, bStopped, bCompleted, bAuto, bNotAuto; vmsDownloadsListHelper::GetStat (v, &bRunning, &bStopped, &bCompleted, &bAuto, &bNotAuto); if (bRunning == FALSE && bAuto == FALSE) pPopup->EnableMenuItem (ID_BTDLD_STOP, MF_BYCOMMAND | MF_GRAYED); if (bStopped == FALSE) pPopup->EnableMenuItem (ID_BTDLD_START, MF_BYCOMMAND | MF_GRAYED); if (v [0]->pMgr->IsDone () == FALSE) pPopup->EnableMenuItem (ID_BTDLD_LAUNCH, MF_BYCOMMAND | MF_GRAYED); if (bNotAuto == FALSE) pPopup->CheckMenuItem (ID_BTDLD_AUTOSTART, MF_CHECKED | MF_BYCOMMAND); } }
void CSitesWnd::UpdateMenu(CMenu *pMenu) { int cSelected = GetSelectedCount (); if (cSelected == 0) { pMenu->EnableMenuItem (ID_SITES_DELETE, MF_BYCOMMAND | MF_GRAYED); pMenu->EnableMenuItem (ID_SITES_TEMPRORARY, MF_BYCOMMAND | MF_GRAYED); } else { POSITION pos = GetFirstSelectedItemPosition (); m_bSelectedIsTemp = TRUE; while (pos) { int iItem = GetNextSelectedItem (pos); fsSiteInfo *pSite = (fsSiteInfo*) GetItemData (iItem); if (pSite->bTemp == FALSE) { m_bSelectedIsTemp = FALSE; break; } } if (m_bSelectedIsTemp) pMenu->CheckMenuItem (ID_SITES_TEMPRORARY, MF_BYCOMMAND | MF_CHECKED); } if (cSelected != 1) pMenu->EnableMenuItem (ID_SITES_PROPERTIES, MF_BYCOMMAND | MF_GRAYED); pMenu->SetDefaultItem (ID_SITES_PROPERTIES); }
void CHistTracksListCtrl::InitMainMenu(BCMenu& menu) { int a = GetSelectedCount(); menu.EnableMenuItem(ACMD_OpenFolder, a == 1 ? MF_ENABLED : MF_GRAYED); menu.EnableMenuItem(ACMD_History, a == 1 ? MF_ENABLED : MF_GRAYED); }
Item* BrowseTileListBox::GetSelectedItem() { if(GetItemCount() == 0 || GetSelectedCount() == 0) return nullptr; return edit_tile->getTopSelectedItem(); }
void CLibraryFileView::OnLibraryCreateTorrent() { if ( GetSelectedCount() == 1 && Settings.BitTorrent.DefaultTracker.GetLength() > 10 ) { CSingleLock pLock( &Library.m_pSection, TRUE ); if ( CLibraryFile* pFile = GetSelectedFile() ) { CString strPath = pFile->GetPath(); pLock.Unlock(); if ( ! strPath.IsEmpty() ) { CString strCommandLine = _T(" -sourcefile \"") + strPath + _T("\" -destination \"") + Settings.Downloads.TorrentPath + _T("\" -tracker \"") + Settings.BitTorrent.DefaultTracker + _T("\""); ShellExecute( GetSafeHwnd(), _T("open"), Settings.BitTorrent.TorrentCreatorPath, strCommandLine, NULL, SW_SHOWNORMAL ); return; } } } ShellExecute( GetSafeHwnd(), _T("open"), Settings.BitTorrent.TorrentCreatorPath, NULL, NULL, SW_SHOWNORMAL ); }
void CLibraryFileView::OnLibraryURL() { CSingleLock pLock( &Library.m_pSection, TRUE ); if ( GetSelectedCount() == 1 ) { CLibraryFile* pFile = GetSelectedFile(); if ( ! pFile ) return; CURLCopyDlg dlg; dlg.Add( pFile ); pLock.Unlock(); dlg.DoModal(); } else { CURLExportDlg dlg; POSITION posSel = StartSelectedFileLoop(); while ( CLibraryFile* pFile = GetNextSelectedFile( posSel ) ) { dlg.Add( pFile ); } pLock.Unlock(); dlg.DoModal(); } }
void CTDCTaskListCtrl::OnListSelectionChange(NMLISTVIEW* /*pNMLV*/) { // only called for the list that currently has the focus // notify parent of selection change // Unless: // 1. The up/down cursor key is still pressed // OR // 2. The mouse button is down, over an item, // the selection is empty, and the CTRL // key is not pressed. ie. the user is in // the middle of selecting a new item if (Misc::IsCursorKeyPressed(MKC_UPDOWN)) { // don't notify } else if (Misc::IsKeyPressed(VK_LBUTTON) && HitTestTask(GetMessagePos()) && !Misc::IsKeyPressed(VK_CONTROL) && !GetSelectedCount()) { // don't notify } else if (!IsBoundSelecting() || (m_lcColumns.GetSelectedCount() <= 2)) { NotifyParentSelChange(); } }
void CLibraryFileView::OnUpdateMusicBrainzLookup(CCmdUI* pCmdUI) { if ( m_bGhostFolder || GetSelectedCount() != 1 || m_bRequestingService ) { pCmdUI->Enable( FALSE ); return; } CSingleLock pLock( &Library.m_pSection ); if ( ! pLock.Lock( 200 ) ) return; CLibraryFile* pFile = GetSelectedFile(); if ( ! pFile->IsSchemaURI( CSchema::uriAudio ) || pFile->m_pMetadata == NULL ) { pCmdUI->Enable( FALSE ); return; } CMetaList* pMetaList = new CMetaList(); pMetaList->Setup( pFile->m_pSchema, FALSE ); pMetaList->Combine( pFile->m_pMetadata ); pLock.Unlock(); pCmdUI->Enable( pMetaList->IsMusicBrainz() ); delete pMetaList; }
void CLibraryFileView::OnUpdateLibraryShared(CCmdUI* pCmdUI) { if ( GetSelectedCount() < 1 ) { pCmdUI->Enable( FALSE ); pCmdUI->SetCheck( FALSE ); return; } TRISTATE bShared = TRI_UNKNOWN; CSingleLock pLock( &Library.m_pSection ); if ( pLock.Lock( 100 ) ) { POSITION posSel = StartSelectedFileLoop(); while ( CLibraryFile* pFile = GetNextSelectedFile( posSel ) ) { if ( bShared == TRI_UNKNOWN ) { bShared = pFile->IsShared() ? TRI_TRUE : TRI_FALSE; } else if ( ( bShared == TRI_TRUE ) != pFile->IsShared() ) { pCmdUI->Enable( FALSE ); return; } } pLock.Unlock(); } pCmdUI->Enable( TRUE ); pCmdUI->SetCheck( bShared == TRI_TRUE ); }
void CFeedIcoItemListCtrl::UpdateMenuState(CTitleMenu & menuRSS) { if( !CGlobalVariable::IsRunning() ) { return; } //设置菜单状态 int iSelectedItems = GetSelectedCount(); if(iSelectedItems && iSelectedItems == 1) { int nIndex = GetCurrSelectIndex(); if ( nIndex >= 0 ) { if ( CRssFeed* pFeed = GetFeed(nIndex) ) { //删除不用的menu项 menuRSS.DeleteMenu(MP_OPEN,MF_STRING); menuRSS.DeleteMenu(MP_RESUME,MF_STRING); //下载所有||暂停 if (pFeed->ExistDownloadingItem()) { menuRSS.EnableMenuItem(MP_PAUSE, MF_ENABLED); } if (pFeed->ExistUnloadItem()) { menuRSS.EnableMenuItem(MP_DOWNLOAD_ALL, MF_ENABLED); } menuRSS.EnableMenuItem(MP_CANCEL, MF_ENABLED); menuRSS.EnableMenuItem(MP_REFRESH, MF_ENABLED); menuRSS.EnableMenuItem(MP_OPTIONS, MF_ENABLED); menuRSS.EnableMenuItem(MP_OPENFOLDER, MF_ENABLED); } } } else//空白处右键 { menuRSS.DeleteMenu(MP_OPEN,MF_STRING); menuRSS.DeleteMenu(MP_OPENFOLDER,MF_STRING); menuRSS.DeleteMenu(MP_DOWNLOAD_ALL,MF_STRING); menuRSS.DeleteMenu(MP_RESUME,MF_STRING); menuRSS.DeleteMenu(MP_PAUSE,MF_STRING); menuRSS.DeleteMenu(MP_CANCEL,MF_STRING); menuRSS.DeleteMenu(MP_OPTIONS,MF_STRING); //menuRSS.DeleteMenu(MF_SEPARATOR,MF_STRING); if ( this->GetItemCount() > 0 ) { menuRSS.EnableMenuItem(MP_REFRESH, MF_ENABLED); } else { menuRSS.DeleteMenu(MP_REFRESH,MF_STRING); } } }
void CFileBrowserListCtrl::GetSelection(CDWordArray& SelIdx) const { int selcnt = GetSelectedCount(); SelIdx.SetSize(selcnt); POSITION pos = GetFirstSelectedItemPosition(); for (int i = 0; i < selcnt; i++) SelIdx[i] = GetNextSelectedItem(pos); }
void CFileBrowserListCtrl::GetSelectedItems(CStringArray& Path) const { int selcnt = GetSelectedCount(); Path.SetSize(selcnt); POSITION pos = GetFirstSelectedItemPosition(); for (int i = 0; i < selcnt; i++) Path[i] = GetItemPath(GetNextSelectedItem(pos)); }
void CFileBrowserListCtrl::GetSelectedItems(CDirItemArray& DirItem) const { int selcnt = GetSelectedCount(); DirItem.SetSize(selcnt); POSITION pos = GetFirstSelectedItemPosition(); for (int i = 0; i < selcnt; i++) DirItem[i] = GetDirItem(GetNextSelectedItem(pos)); }
void CFVDownloads_Tasks::UpdateActiveDownload(int adjSelected) { try { POSITION pos = GetFirstSelectedItemPosition (); vmsDownloadSmartPtr dld; if (pos && GetSelectedCount () == 1) { int iItem = GetNextSelectedItem (pos); iItem += adjSelected; if (iItem < 0) iItem = 0; else if (iItem >= GetItemCount ()) iItem = GetItemCount () - 1; dld = m_vDlds [iItem]; } else { int iItem = GetSelectionMark (); if (iItem == -1) dld = NULL; else { iItem += adjSelected; if (iItem < 0) iItem = 0; else if (iItem >= GetItemCount ()) iItem = GetItemCount () - 1; dld = m_vDlds [iItem]; } } if (dld != m_pActiveDownload) { m_pActiveDownload = dld; _pwndFVDownloads->SetActiveDownload (m_pActiveDownload); } } catch (const std::exception& ex) { ASSERT (FALSE); vmsLogger::WriteLog("CFVDownloads_Tasks::UpdateActiveDownload " + std::string(ex.what())); } catch (...) { ASSERT (FALSE); vmsLogger::WriteLog("CFVDownloads_Tasks::UpdateActiveDownload unknown exception"); } }
BOOL CDragVirtualListCtrl::OnBegindrag(NMHDR* pNMHDR, LRESULT* pResult) { // NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; m_Dragging = TRUE; SetCapture(); int ResID = GetSelectedCount() > 1 ? IDC_DRAG_MULTI : IDC_DRAG_SINGLE; SetCursor(AfxGetApp()->LoadCursor(ResID)); *pResult = 0; return(FALSE); // let parent handle notification too }
void CLibraryFileView::OnUpdateLibraryUnlink(CCmdUI* pCmdUI) { if ( m_bGhostFolder ) { pCmdUI->Enable( FALSE ); return; } CLibraryTreeItem* pItem = GetFolderSelection(); pCmdUI->Enable( GetSelectedCount() > 0 && pItem && pItem->m_pVirtual && pItem->m_pSelNext == NULL ); }
void CTreeCtrlEx::OnRButtonDown( UINT nFlags, CPoint point ) { UINT nHitFlags = 0; HTREEITEM hClickedItem = HitTest( point, &nHitFlags ); if( nHitFlags&TVHT_ONITEM ) if ( GetSelectedCount()<2 ) SelectItem( hClickedItem ); CTreeCtrl::OnRButtonDown( nFlags, point ); }
// Called when the selection changes void CLibraryFileView::CheckDynamicBar() { bool bIsMusicBrainz = false; ClearServicePages(); CLibraryFrame* pFrame = GetFrame(); if ( _tcscmp( pFrame->GetDynamicBarName(), L"WebServices.MusicBrainz" ) == 0 ) bIsMusicBrainz = true; if ( GetSelectedCount() != 1 ) { if ( bIsMusicBrainz ) { pFrame->SetDynamicBar( NULL ); m_bRequestingService = FALSE; // ToDo: Abort operation } return; } CSingleLock pLock( &Library.m_pSection, TRUE ); CLibraryFile* pFile = GetSelectedFile(); if ( pFile == NULL ) // Ghost file { pFrame->SetDynamicBar( NULL ); m_bRequestingService = FALSE; return; } if ( ! pFile->IsSchemaURI( CSchema::uriAudio ) || pFile->m_pMetadata == NULL ) { if ( bIsMusicBrainz ) pFrame->SetDynamicBar( NULL ); m_bRequestingService = FALSE; // ToDo: Abort operation return; } CMetaList* pMetaList = new CMetaList(); pMetaList->Setup( pFile->m_pSchema, FALSE ); pMetaList->Combine( pFile->m_pMetadata ); pLock.Unlock(); if ( ! pMetaList->IsMusicBrainz() && bIsMusicBrainz ) pFrame->SetDynamicBar( NULL ); else pFrame->HideDynamicBar(); m_bRequestingService = FALSE; // ToDo: Abort operation delete pMetaList; }
void CReportCtrl::SortRows() { if (m_SortWaitCursor) CCmdTarget::BeginWaitCursor(); if (m_SortCallback != NULL) // is there a sort callback? SortItems(m_SortCallback, (DWORD)m_SortCallbackData); // y, use it else SortItems(TextSort, (DWORD)this); // n, use text sort if (m_SortWaitCursor) CCmdTarget::EndWaitCursor(); // if there's a selection, keep it visible, otherwise go to top EnsureVisible(GetSelectedCount() ? GetSelectionMark() : 0, FALSE); }
BOOL CTDCTaskListCtrl::SelectItem(int nItem) { m_lcTasks.SetSelectionMark(nItem); m_lcColumns.SetSelectionMark(nItem); // avoid unnecessary selections if ((GetSelectedCount() == 1) && (GetSelectedItem() == nItem)) return TRUE; CDWordArray aTaskIDs; aTaskIDs.Add(GetTaskID(nItem)); return SelectTasks(aTaskIDs); }
CPathDescriptor* CFileListCtrl::getFirstSelectedItem(int *pnItem) { if(GetSelectedCount() == 0) return NULL; POSITION pos = GetFirstSelectedItemPosition(); int nItem = GetNextSelectedItem(pos); if(pnItem) *pnItem = nItem; CPathDescriptor* pD = (CPathDescriptor* )GetItemData(nItem); ASSERT(pD->IsKindOf(RUNTIME_CLASS(CPathDescriptor))); return pD; }
void CTorrents_Tasks::UpdateActiveDownload(int adjSelected) { try { POSITION pos = GetFirstSelectedItemPosition (); vmsDownloadSmartPtr dld; if (pos && GetSelectedCount () == 1) { int iItem = GetNextSelectedItem (pos); iItem += adjSelected; if (iItem < 0) iItem = 0; else if (iItem >= GetItemCount ()) iItem = GetItemCount () - 1; dld = m_vDlds [iItem]; } else { int iItem = GetSelectionMark (); if (iItem == -1) dld = NULL; else { iItem += adjSelected; if (iItem < 0) iItem = 0; else if (iItem >= GetItemCount ()) iItem = GetItemCount () - 1; dld = m_vDlds [iItem]; } } if (dld != m_pActiveDownload) { m_pActiveDownload = dld; _pwndTorrents->SetActiveDownload (m_pActiveDownload); } } catch (...) {} }
void CMultiSelTreeCtrl::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; if (pNMTreeView->action == TVC_BYKEYBOARD) { HTREEITEM currentItem = CTreeCtrl::GetSelectedItem(); if ((currentItem != NULL) && !IsSelected(currentItem)) { UnselectAll(); SetSelectState(currentItem, TRUE); ASSERT(GetSelectedCount()); } } *pResult = 0; }