1f5eefe2fSzhongyang219 #pragma once 2f5eefe2fSzhongyang219 #include "afxcmn.h" 3f5eefe2fSzhongyang219 #include "AudioCommon.h" 4f5eefe2fSzhongyang219 #include "afxwin.h" 52a4f25ddSzhongyang219 #include "ListCtrlEx.h" 6f5eefe2fSzhongyang219 #include "Common.h" 7f5eefe2fSzhongyang219 8f5eefe2fSzhongyang219 9f5eefe2fSzhongyang219 // CFindDlg �Ի��� 10f5eefe2fSzhongyang219 111a0bed10Szhongyang219 class CFindDlg : public CDialog 12f5eefe2fSzhongyang219 { 13f5eefe2fSzhongyang219 DECLARE_DYNAMIC(CFindDlg) 14f5eefe2fSzhongyang219 15f5eefe2fSzhongyang219 public: 161a0bed10Szhongyang219 CFindDlg(const vector<SongInfo>& playlist, CWnd* pParent = NULL); // �����캯�� 17f5eefe2fSzhongyang219 virtual ~CFindDlg(); 18f5eefe2fSzhongyang219 19f5eefe2fSzhongyang219 //wstring m_config_path; 20f5eefe2fSzhongyang219 21f5eefe2fSzhongyang219 int GetSelectedTrack() const; 221a0bed10Szhongyang219 bool GetFindCurrentPlaylist() const; 23*3b6b1eeaSZhong Yang void GetSelectedSongPath(vector<wstring>& files) const; 24*3b6b1eeaSZhong Yang void GetSongsSelected(vector<SongInfo>& files) const; 25f5eefe2fSzhongyang219 void SaveConfig(); 26f5eefe2fSzhongyang219 void LoadConfig(); 27f5eefe2fSzhongyang219 28f5eefe2fSzhongyang219 // �Ի������� 29f5eefe2fSzhongyang219 #ifdef AFX_DESIGN_TIME 30f5eefe2fSzhongyang219 enum { IDD = IDD_FIND_DIALOG }; 31f5eefe2fSzhongyang219 #endif 32f5eefe2fSzhongyang219 33f5eefe2fSzhongyang219 protected: 34*3b6b1eeaSZhong Yang enum ColumeIndex 35*3b6b1eeaSZhong Yang { 36*3b6b1eeaSZhong Yang COL_INDEX = 0, 37*3b6b1eeaSZhong Yang COL_FILE_NAME, 38*3b6b1eeaSZhong Yang COL_TITLE, 39*3b6b1eeaSZhong Yang COL_ARTIST, 40*3b6b1eeaSZhong Yang COL_ALBUM, 41*3b6b1eeaSZhong Yang COL_PATH, 42*3b6b1eeaSZhong Yang }; 43f5eefe2fSzhongyang219 44f5eefe2fSzhongyang219 const vector<SongInfo>& m_playlist; //�����б� 451a0bed10Szhongyang219 vector<int> m_find_result; //���浱ǰ�����б�IJ��ҽ������Ŀ��ţ� 46f5eefe2fSzhongyang219 wstring m_key_word; //���ҵ��ַ��� 471a0bed10Szhongyang219 vector<wstring> m_all_find_result; //�������в����б�IJ��ҽ�����ļ�����·���� 48f5eefe2fSzhongyang219 492a4f25ddSzhongyang219 CListCtrlEx m_find_result_list; //���ҽ���ؼ� 50f5eefe2fSzhongyang219 int m_item_selected{ -1 }; //���ѡ�е���Ŀ��� 51*3b6b1eeaSZhong Yang vector<int> m_items_selected; 5232c6db59Szhongyang //CMenu m_menu; 53f5eefe2fSzhongyang219 54f5eefe2fSzhongyang219 //int m_dpi; 55f5eefe2fSzhongyang219 56f5eefe2fSzhongyang219 CButton m_find_file_check; 57f5eefe2fSzhongyang219 CButton m_find_title_check; 58f5eefe2fSzhongyang219 CButton m_find_artist_check; 59f5eefe2fSzhongyang219 CButton m_find_album_check; 60f5eefe2fSzhongyang219 611a0bed10Szhongyang219 bool m_find_current_playlist{ true }; //������ҷ�ΧΪ��ǰ�����б���Ϊtrue����������в����б���Ϊfalse 62f5eefe2fSzhongyang219 bool m_find_file{ true }; 63f5eefe2fSzhongyang219 bool m_find_title{ true }; 64f5eefe2fSzhongyang219 bool m_find_artist{ true }; 65f5eefe2fSzhongyang219 bool m_find_album{ true }; 66f5eefe2fSzhongyang219 67f5eefe2fSzhongyang219 int m_find_option_data{}; //�������ѡ������ݣ���ÿһ��bitλ��ʾÿ������ѡ���Ƿ�ѡ�� 68f5eefe2fSzhongyang219 691a0bed10Szhongyang219 int m_min_width{}; 701a0bed10Szhongyang219 int m_min_height{}; 711a0bed10Szhongyang219 721a0bed10Szhongyang219 CString m_selected_string; 731a0bed10Szhongyang219 74f5eefe2fSzhongyang219 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧�� 75f5eefe2fSzhongyang219 void ShowFindResult(); 761a0bed10Szhongyang219 void ShowFindInfo(); 77*3b6b1eeaSZhong Yang bool _OnAddToNewPlaylist(std::wstring& playlist_path); //ִ����ӵ��½������б�����ɹ�����true��playlist_path���ڽ����²����б��·�� 78*3b6b1eeaSZhong Yang static UINT ViewOnlineThreadFunc(LPVOID lpParam); //ִ�����߲鿴���̺߳��� 79*3b6b1eeaSZhong Yang void GetCurrentSongList(std::vector<SongInfo>& song_list); 80*3b6b1eeaSZhong Yang 811a0bed10Szhongyang219 public: 821a0bed10Szhongyang219 void ClearFindResult(); 83f5eefe2fSzhongyang219 84f5eefe2fSzhongyang219 DECLARE_MESSAGE_MAP() 85f5eefe2fSzhongyang219 86f5eefe2fSzhongyang219 afx_msg void OnEnChangeFindEdit(); 87f5eefe2fSzhongyang219 afx_msg void OnNMClickFindList(NMHDR *pNMHDR, LRESULT *pResult); 88f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindButton(); 89f5eefe2fSzhongyang219 virtual BOOL OnInitDialog(); 90f5eefe2fSzhongyang219 afx_msg void OnNMDblclkFindList(NMHDR *pNMHDR, LRESULT *pResult); 91f5eefe2fSzhongyang219 virtual BOOL PreTranslateMessage(MSG* pMsg); 92f5eefe2fSzhongyang219 public: 93f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindFileCheck(); 94f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindTitleCheck(); 95f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindArtistCheck(); 96f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindAlbumCheck(); 971a0bed10Szhongyang219 afx_msg void OnBnClickedFindCurrentPlaylistRadio(); 981a0bed10Szhongyang219 afx_msg void OnBnClickedFindAllPlaylistRadio(); 991a0bed10Szhongyang219 afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI); 1001a0bed10Szhongyang219 afx_msg void OnSize(UINT nType, int cx, int cy); 10132c6db59Szhongyang afx_msg void OnPlayItem(); 10232c6db59Szhongyang afx_msg void OnExploreTrack(); 1031a0bed10Szhongyang219 afx_msg void OnNMRClickFindList(NMHDR *pNMHDR, LRESULT *pResult); 10432c6db59Szhongyang afx_msg void OnCopyText(); 10532c6db59Szhongyang afx_msg void OnPlayItemInFolderMode(); 10632c6db59Szhongyang afx_msg void OnAddToNewPlaylist(); 10732c6db59Szhongyang afx_msg void OnExploreOnline(); 10832c6db59Szhongyang afx_msg void OnFormatConvert(); 10932c6db59Szhongyang afx_msg void OnItemProperty(); 110*3b6b1eeaSZhong Yang virtual void OnOK(); 111*3b6b1eeaSZhong Yang afx_msg void OnAddToNewPalylistAndPlay(); 112*3b6b1eeaSZhong Yang private: 113f5eefe2fSzhongyang219 }; 114