xref: /MusicPlayer2/MusicPlayer2/FindDlg.h (revision 3b6b1eea93136ae06b5a475601cd9e1c5dade4fb)
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