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