xref: /MusicPlayer2/MusicPlayer2/MediaLibSettingDlg.h (revision bb6d36c5352ca0ba5283db59c72980d95ba15864)
1 #pragma once
2 #include "TabDlg.h"
3 #include "CListBoxEnhanced.h"
4 #include "MyComboBox.h"
5 #include "SpinEdit.h"
6 #include "BrowseEdit.h"
7 
8 // CMediaLibSettingDlg 对话框
9 
10 class CMediaLibSettingDlg : public CTabDlg
11 {
12     DECLARE_DYNAMIC(CMediaLibSettingDlg)
13 
14 public:
15     CMediaLibSettingDlg(CWnd* pParent = nullptr);   // 标准构造函数
16     virtual ~CMediaLibSettingDlg();
17 
18 // 对话框数据
19 #ifdef AFX_DESIGN_TIME
20     enum { IDD = IDD_MEDIA_LIB_SETTING_DIALOG };
21 #endif
22 
23     MediaLibSettingData m_data;
24 
25 private:
26     CListBoxEnhanced m_dir_list_ctrl;
27     CMyComboBox m_playlist_display_mode_combo;
28     CMyComboBox m_recent_played_range_combo;
29     CSpinEdit m_file_too_short_sec_edit;
30     CMyComboBox m_id3v2_type_combo;
31     CButton m_enable_lastfm;
32     CSpinEdit m_playlist_item_height_edit;
33 
34     CToolTipCtrl m_toolTip;
35     size_t m_data_size{};                   // 数据文件的大小
36     CStatic m_lastfm_status;
37     CButton m_lastfm_login;
38     CSpinEdit m_lastfm_least_perdur;
39     CSpinEdit m_lastfm_least_dur;
40     CButton m_lastfm_auto_scrobble;
41     CSpinEdit m_lastfm_auto_scrobble_min;
42     CStatic m_lastfm_cache_status;
43     CButton m_lastfm_upload_cache;
44     CButton m_lastfm_enable_https;
45     CButton m_lastfm_enable_nowplaying;
46     CBrowseEdit m_artist_split_ext_edit;
47 
48 protected:
49     void ShowDataSizeInfo();
50 
51     virtual bool InitializeControls() override;
52     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
53     // 在点击选项设置对话框的“应用”或“确定”时CMusicPlayerDlg::ApplySettings()将所有m_data写入theApp前被调用
54     // 这里是设置应用前最后的更新ui到m_data的机会,不需要实时更新到m_data的ui也可以只在这里获取
55     virtual void GetDataFromUi() override;
56     // 在点击选项设置对话框的“应用”时,时CMusicPlayerDlg::ApplySettings()将所有m_data写入theApp后被调用
57     // 进行一些只有在CMusicPlayerDlg::ApplySettings()后才能做的ui更新
58     // virtual void ApplyDataToUi() override;
59     void UpdateLastFMStatus();
60     void UpdateLastFMCacheStatus();
61     afx_msg void OnTimer(UINT_PTR nIDEvent);
62 
63     DECLARE_MESSAGE_MAP()
64 public:
65     virtual BOOL OnInitDialog();
66     afx_msg void OnBnClickedAddButton();
67     afx_msg void OnBnClickedDeleteButton();
68     afx_msg void OnBnClickedCleanDataFileButton();
69     virtual BOOL PreTranslateMessage(MSG* pMsg);
70     afx_msg void OnBnClickedClearRecentPlayedListBtn();
71     virtual void OnOK();
72     afx_msg void OnBnClickedRefreshMediaLibButton();
73     afx_msg void OnBnClickedEnableLastfm();
74     afx_msg void OnBnClickedLastfmLogin();
75     afx_msg void OnBnClickedLastfmAutoScrobble();
76     afx_msg void OnBnClickedLastfmUploadCache();
77     afx_msg void OnBnClickedLastfmEnableHttps();
78     afx_msg void OnBnClickedLastfmEnableNowplaying();
79 protected:
80     afx_msg LRESULT OnEditBrowseChanged(WPARAM wParam, LPARAM lParam);
81 };
82