xref: /MusicPlayer2/MusicPlayer2/LyricSettingsDlg.cpp (revision 5e51eafc70388951abad5b8e19633d2171c986eb)
1 // PlaySettingsDlg.cpp : 实现文件
2 //
3 
4 #include "stdafx.h"
5 #include "MusicPlayer2.h"
6 #include "LyricSettingsDlg.h"
7 #include "CortanaLyric.h"
8 #include "MusicPlayerDlg.h"
9 #include "WinVersionHelper.h"
10 #include "FontDialogEx.h"
11 
12 // CLyricSettingsDlg 对话框
13 
IMPLEMENT_DYNAMIC(CLyricSettingsDlg,CTabDlg)14 IMPLEMENT_DYNAMIC(CLyricSettingsDlg, CTabDlg)
15 
16 CLyricSettingsDlg::CLyricSettingsDlg(CWnd* pParent /*=NULL*/)
17     : CTabDlg(IDD_LYRIC_SETTING_DIALOG, pParent)
18 {
19 
20 }
21 
~CLyricSettingsDlg()22 CLyricSettingsDlg::~CLyricSettingsDlg()
23 {
24 }
25 
InitializeControls()26 bool CLyricSettingsDlg::InitializeControls()
27 {
28     wstring temp;
29     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_OPT");
30     SetDlgItemTextW(IDC_TXT_OPT_LRC_OPT_STATIC, temp.c_str());
31     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_USE_INNER_FIRST");
32     SetDlgItemTextW(IDC_USE_INNER_LYRIC_CHECK, temp.c_str());
33     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_FUZZY_MATCH");
34     SetDlgItemTextW(IDC_LYRIC_FUZZY_MATCH, temp.c_str());
35     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SHOW_TRANSLATION");
36     SetDlgItemTextW(IDC_SHOW_LYRIC_TRANSLATE_CHECK, temp.c_str());
37     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SONG_INFO_IF_NO_LRC");
38     SetDlgItemTextW(IDC_SHOW_SONG_INFO_IF_LYRIC_NOT_EXIST_CHECK, temp.c_str());
39     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_LRC_FOLDER");
40     SetDlgItemTextW(IDC_TXT_OPT_LRC_LRC_FOLDER_STATIC, temp.c_str());
41     // IDC_LYRIC_PATH_EDIT
42     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SAVE_POLICY_SEL");
43     SetDlgItemTextW(IDC_TXT_OPT_LRC_SAVE_POLICY_SEL_STATIC, temp.c_str());
44     // IDC_LYRIC_SAVE_COMBO
45     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_KARAOKE_DISP");
46     SetDlgItemTextW(IDC_KARAOKE_DISP, temp.c_str());
47     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_USE_MUSIC_SYMBOL");
48     SetDlgItemTextW(IDC_LYRIC_HIDE_BLANK_LINE_CHECK, temp.c_str());
49 
50     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_WINDOW_LRC");
51     SetDlgItemTextW(IDC_TXT_OPT_LRC_WINDOW_LRC_STATIC, temp.c_str());
52     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_WINDOW_LRC_LINE_SPACING");
53     SetDlgItemTextW(IDC_TXT_OPT_LRC_WINDOW_LRC_LINE_SPACING_STATIC, temp.c_str());
54     // IDC_FONT_SIZE_EDIT2
55     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_SEL");
56     SetDlgItemTextW(IDC_TXT_OPT_LRC_WINDOW_LRC_ALIGN_SEL_STATIC, temp.c_str());
57     // IDC_ALIGNMENT_COMBO2
58     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_FONT_SEL");
59     SetDlgItemTextW(IDC_SET_FONT_BUTTON, temp.c_str());
60 
61     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC");
62     SetDlgItemTextW(IDC_TXT_OPT_LRC_DESKTOP_LRC_STATIC, temp.c_str());
63     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_ENABLE");
64     SetDlgItemTextW(IDC_SHOW_DESKTOP_LYRIC, temp.c_str());
65     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_BG_PENETRATE");
66     SetDlgItemTextW(IDC_HIDE_LYRIC_WITHOUT_LYRIC_CHECK3, temp.c_str());
67     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_HIDE_NO_LRC");
68     SetDlgItemTextW(IDC_HIDE_LYRIC_WITHOUT_LYRIC_CHECK, temp.c_str());
69     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_HIDE_PAUSE");
70     SetDlgItemTextW(IDC_HIDE_LYRIC_PAUSE_CHECK, temp.c_str());
71     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_LOCK");
72     SetDlgItemTextW(IDC_LOCK_DESKTOP_LYRIC_CHECK, temp.c_str());
73     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_SHOW_UNLOCK_WHEN_LOCK");
74     SetDlgItemTextW(IDC_SHOW_UNLOCK_WHEN_LOCKED, temp.c_str());
75     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DOUBLE_LINE");
76     SetDlgItemTextW(IDC_LYRIC_DOUBLE_LINE_CHECK2, temp.c_str());
77     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_COLOR_TEXT");
78     SetDlgItemTextW(IDC_TXT_OPT_LRC_DESKTOP_LRC_COLOR_TEXT_STATIC, temp.c_str());
79     // IDC_TEXT_COLOR1_STATIC
80     // IDC_TEXT_COLOR2_STATIC
81     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_COLOR_HIGHLIGHT");
82     SetDlgItemTextW(IDC_TXT_OPT_LRC_DESKTOP_LRC_COLOR_HIGHLIGHT_STATIC, temp.c_str());
83     // IDC_HIGHLIGHT_COLOR1_STATIC
84     // IDC_HIGHLIGHT_COLOR2_STATIC
85     // IDC_TEXT_GRADIENT_COMBO
86     // IDC_HIGHLIGHT_GRADIENT_COMBO
87     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_DEFAULT_STYLE");
88     SetDlgItemTextW(IDC_DEFAULT_STYLE, temp.c_str());
89     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_TRANSPARENCY");
90     SetDlgItemTextW(IDC_TXT_OPT_LRC_DESKTOP_LRC_TRANSPARENCY_STATIC, temp.c_str());
91     // IDC_LYRIC_OPACITY_SLIDER
92     // IDC_LYRIC_OPACITY_STATIC
93     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_SEL");
94     SetDlgItemTextW(IDC_TXT_OPT_LRC_DESKTOP_LRC_ALIGN_SEL_STATIC, temp.c_str());
95     // IDC_DESKTOP_LYRIC_ALIGNMENT_COMBO
96     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_FONT_SEL");
97     SetDlgItemTextW(IDC_SET_FONT2, temp.c_str());
98 
99     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_FUNCTION");
100     SetDlgItemTextW(IDC_TXT_OPT_LRC_SEARCH_BOX_FUNCTION_STATIC, temp.c_str());
101     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_FUNCTION_ENABLE");
102     SetDlgItemTextW(IDC_SHOW_LYRIC_IN_CORTANA, temp.c_str());
103     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_COMPATIBLE_MODE");
104     SetDlgItemTextW(IDC_LYRIC_COMPATIBLE_MODE, temp.c_str());
105     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_SHOW_WHEN_PAUSE");
106     SetDlgItemTextW(IDC_KEEP_DISPLAY_CHECK, temp.c_str());
107     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_BG_COLOR_SEL");
108     SetDlgItemTextW(IDC_TXT_OPT_LRC_SEARCH_BOX_BG_COLOR_SEL_STATIC, temp.c_str());
109     // IDC_CORTANA_COLOR_COMBO
110     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_BG_TRANSPARENCY_IN_WHITE_MODE");
111     SetDlgItemTextW(IDC_SEARCH_BOX_TRANSPARENT_IN_WHITE_MODE, temp.c_str());
112     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_SHOW_COVER");
113     SetDlgItemTextW(IDC_SHOW_ALBUM_COVER_IN_CORTANA, temp.c_str());
114     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_NO_COVER_SHOW_DEFAULT_COVER");
115     SetDlgItemTextW(IDC_SHOW_DEFAULT_ALBUM_ICON_CHK, temp.c_str());
116     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_NO_COVER_BEATS_CORTANA_ICON");
117     SetDlgItemTextW(IDC_CORTANA_ICON_DEAT_CHECK, temp.c_str());
118     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_SHOW_SPECTRUM");
119     SetDlgItemTextW(IDC_SHOW_SPECTRUM_IN_CORTANA, temp.c_str());
120     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_SHOW_LRC");
121     SetDlgItemTextW(IDC_SHOW_LYRIC_IN_CORTANA2, temp.c_str());
122     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DOUBLE_LINE");
123     SetDlgItemTextW(IDC_LYRIC_DOUBLE_LINE_CHECK, temp.c_str());
124     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_SEL");
125     SetDlgItemTextW(IDC_TXT_OPT_LRC_SEARCH_BOX_ALIGN_SEL_STATIC, temp.c_str());
126     // IDC_ALIGNMENT_COMBO
127     temp = theApp.m_str_table.LoadText(L"TXT_OPT_LRC_FONT_SEL");
128     SetDlgItemTextW(IDC_SET_FONT, temp.c_str());
129 
130     return false;
131 }
132 
DoDataExchange(CDataExchange * pDX)133 void CLyricSettingsDlg::DoDataExchange(CDataExchange* pDX)
134 {
135     CTabDlg::DoDataExchange(pDX);
136     DDX_Control(pDX, IDC_KARAOKE_DISP, m_karaoke_disp_check);
137     DDX_Control(pDX, IDC_LYRIC_FUZZY_MATCH, m_lyric_fuzzy_match_check);
138     DDX_Control(pDX, IDC_SHOW_LYRIC_IN_CORTANA, m_cortana_info_enable_check);
139     DDX_Control(pDX, IDC_LYRIC_DOUBLE_LINE_CHECK, m_lyric_double_line_chk);
140     DDX_Control(pDX, IDC_SHOW_ALBUM_COVER_IN_CORTANA, m_show_album_cover_in_cortana_check);
141     DDX_Control(pDX, IDC_CORTANA_ICON_DEAT_CHECK, m_cortana_icon_beat_check);
142     DDX_Control(pDX, IDC_CORTANA_COLOR_COMBO, m_cortana_color_combo);
143     DDX_Control(pDX, IDC_LYRIC_COMPATIBLE_MODE, m_lyric_compatible_mode_chk);
144     DDX_Control(pDX, IDC_KEEP_DISPLAY_CHECK, m_keep_display_chk);
145     DDX_Control(pDX, IDC_SHOW_SPECTRUM_IN_CORTANA, m_show_spectrum_chk);
146     DDX_Control(pDX, IDC_SHOW_LYRIC_IN_CORTANA2, m_show_lyric_in_cortana_chk);
147     DDX_Control(pDX, IDC_SHOW_DESKTOP_LYRIC, m_show_desktop_lyric_chk);
148     DDX_Control(pDX, IDC_LYRIC_DOUBLE_LINE_CHECK2, m_desktop_lyric_double_line_chk);
149     DDX_Control(pDX, IDC_TEXT_COLOR1_STATIC, m_text_color1_static);
150     DDX_Control(pDX, IDC_TEXT_COLOR2_STATIC, m_text_color2_static);
151     DDX_Control(pDX, IDC_TEXT_GRADIENT_COMBO, m_text_gradient_combo);
152     DDX_Control(pDX, IDC_HIGHLIGHT_COLOR1_STATIC, m_highlight_color1_static);
153     DDX_Control(pDX, IDC_HIGHLIGHT_COLOR2_STATIC, m_highlight_color2_static);
154     DDX_Control(pDX, IDC_HIGHLIGHT_GRADIENT_COMBO, m_highlight_gradient_combo);
155     DDX_Control(pDX, IDC_LYRIC_OPACITY_SLIDER, m_desktop_lyric_opacity_sld);
156     DDX_Control(pDX, IDC_LOCK_DESKTOP_LYRIC_CHECK, m_lock_desktop_lyric_chk);
157     DDX_Control(pDX, IDC_HIDE_LYRIC_WITHOUT_LYRIC_CHECK, m_hide_lyric_without_lyric_chk);
158     DDX_Control(pDX, IDC_HIDE_LYRIC_PAUSE_CHECK, m_hide_lyric_paused_chk);
159     DDX_Control(pDX, IDC_HIDE_LYRIC_WITHOUT_LYRIC_CHECK3, m_lyric_background_penetrate_chk);
160     DDX_Control(pDX, IDC_LYRIC_PATH_EDIT, m_lyric_dir_edit);
161     DDX_Control(pDX, IDC_ALIGNMENT_COMBO, m_alignment_combo);
162     DDX_Control(pDX, IDC_LYRIC_SAVE_COMBO, m_lyric_save_policy_combo);
163     DDX_Control(pDX, IDC_USE_INNER_LYRIC_CHECK, m_use_inner_lyric_chk);
164     DDX_Control(pDX, IDC_SHOW_UNLOCK_WHEN_LOCKED, m_show_unlock_when_locked_chk);
165     DDX_Control(pDX, IDC_SHOW_DEFAULT_ALBUM_ICON_CHK, m_show_default_album_icon_chk);
166     DDX_Control(pDX, IDC_FONT_SIZE_EDIT2, m_lyric_line_space_edit);
167     DDX_Control(pDX, IDC_ALIGNMENT_COMBO2, m_lyric_alignment_combo);
168     DDX_Control(pDX, IDC_DESKTOP_LYRIC_ALIGNMENT_COMBO, m_desktop_lyric_alignment_combo);
169 }
170 
171 
BEGIN_MESSAGE_MAP(CLyricSettingsDlg,CTabDlg)172 BEGIN_MESSAGE_MAP(CLyricSettingsDlg, CTabDlg)
173     ON_BN_CLICKED(IDC_KARAOKE_DISP, &CLyricSettingsDlg::OnBnClickedKaraokeDisp)
174     ON_BN_CLICKED(IDC_LYRIC_FUZZY_MATCH, &CLyricSettingsDlg::OnBnClickedLyricFuzzyMatch)
175     ON_BN_CLICKED(IDC_SHOW_LYRIC_IN_CORTANA, &CLyricSettingsDlg::OnBnClickedShowLyricInCortana)
176     ON_BN_CLICKED(IDC_LYRIC_DOUBLE_LINE_CHECK, &CLyricSettingsDlg::OnBnClickedLyricDoubleLineCheck)
177     ON_CBN_SELCHANGE(IDC_CORTANA_COLOR_COMBO, &CLyricSettingsDlg::OnCbnSelchangeCortanaColorCombo)
178     ON_BN_CLICKED(IDC_SHOW_ALBUM_COVER_IN_CORTANA, &CLyricSettingsDlg::OnBnClickedShowAlbumCoverInCortana)
179     ON_BN_CLICKED(IDC_CORTANA_ICON_DEAT_CHECK, &CLyricSettingsDlg::OnBnClickedCortanaIconDeatCheck)
180     ON_BN_CLICKED(IDC_LYRIC_COMPATIBLE_MODE, &CLyricSettingsDlg::OnBnClickedLyricCompatibleMode)
181     ON_BN_CLICKED(IDC_SET_FONT, &CLyricSettingsDlg::OnBnClickedSetFont)
182     ON_BN_CLICKED(IDC_KEEP_DISPLAY_CHECK, &CLyricSettingsDlg::OnBnClickedKeepDisplayCheck)
183     ON_BN_CLICKED(IDC_SHOW_SPECTRUM_IN_CORTANA, &CLyricSettingsDlg::OnBnClickedShowSpectrumInCortana)
184     ON_BN_CLICKED(IDC_SHOW_LYRIC_IN_CORTANA2, &CLyricSettingsDlg::OnBnClickedShowLyricInCortana2)
185     ON_BN_CLICKED(IDC_SHOW_DESKTOP_LYRIC, &CLyricSettingsDlg::OnBnClickedShowDesktopLyric)
186     ON_BN_CLICKED(IDC_SET_FONT2, &CLyricSettingsDlg::OnBnClickedSetFont2)
187     ON_CBN_SELCHANGE(IDC_TEXT_GRADIENT_COMBO, &CLyricSettingsDlg::OnCbnSelchangeTextGradientCombo)
188     ON_CBN_SELCHANGE(IDC_HIGHLIGHT_GRADIENT_COMBO, &CLyricSettingsDlg::OnCbnSelchangeHighlightGradientCombo)
189     ON_BN_CLICKED(IDC_LOCK_DESKTOP_LYRIC_CHECK, &CLyricSettingsDlg::OnBnClickedLockDesktopLyricCheck)
190     ON_WM_HSCROLL()
191     ON_BN_CLICKED(IDC_HIDE_LYRIC_WITHOUT_LYRIC_CHECK, &CLyricSettingsDlg::OnBnClickedHideLyricWithoutLyricCheck)
192     ON_BN_CLICKED(IDC_HIDE_LYRIC_PAUSE_CHECK, &CLyricSettingsDlg::OnBnClickedHideLyricPauseCheck)
193     ON_BN_CLICKED(IDC_LYRIC_DOUBLE_LINE_CHECK2, &CLyricSettingsDlg::OnBnClickedLyricDoubleLineCheck2)
194     ON_BN_CLICKED(IDC_DEFAULT_STYLE, &CLyricSettingsDlg::OnBnClickedDefaultStyle)
195     ON_COMMAND(ID_LYRIC_DEFAULT_STYLE1, &CLyricSettingsDlg::OnLyricDefaultStyle1)
196     ON_COMMAND(ID_LYRIC_DEFAULT_STYLE2, &CLyricSettingsDlg::OnLyricDefaultStyle2)
197     ON_COMMAND(ID_LYRIC_DEFAULT_STYLE3, &CLyricSettingsDlg::OnLyricDefaultStyle3)
198     ON_BN_CLICKED(IDC_HIDE_LYRIC_WITHOUT_LYRIC_CHECK3, &CLyricSettingsDlg::OnBnClickedHideLyricWithoutLyricCheck3)
199     ON_MESSAGE(WM_COLOR_SELECTED, &CLyricSettingsDlg::OnColorSelected)
200     ON_COMMAND(ID_LYRIC_DEFAULT_STYLE1_MODIFY, &CLyricSettingsDlg::OnLyricDefaultStyle1Modify)
201     ON_COMMAND(ID_LYRIC_DEFAULT_STYLE2_MODIFY, &CLyricSettingsDlg::OnLyricDefaultStyle2Modify)
202     ON_COMMAND(ID_LYRIC_DEFAULT_STYLE3_MODIFY, &CLyricSettingsDlg::OnLyricDefaultStyle3Modify)
203     ON_COMMAND(ID_RESTORE_DEFAULT_STYLE, &CLyricSettingsDlg::OnRestoreDefaultStyle)
204     //ON_EN_CHANGE(IDC_LYRIC_PATH_EDIT, &CLyricSettingsDlg::OnEnChangeLyricPathEdit)
205     ON_MESSAGE(WM_EDIT_BROWSE_CHANGED, &CLyricSettingsDlg::OnEditBrowseChanged)
206     ON_CBN_SELCHANGE(IDC_ALIGNMENT_COMBO, &CLyricSettingsDlg::OnCbnSelchangeAlignmentCombo)
207     ON_CBN_SELCHANGE(IDC_LYRIC_SAVE_COMBO, &CLyricSettingsDlg::OnCbnSelchangeLyricSaveCombo)
208     ON_BN_CLICKED(IDC_USE_INNER_LYRIC_CHECK, &CLyricSettingsDlg::OnBnClickedUseInnerLyricCheck)
209     ON_BN_CLICKED(IDC_SHOW_UNLOCK_WHEN_LOCKED, &CLyricSettingsDlg::OnBnClickedShowUnlockWhenLocked)
210     ON_BN_CLICKED(IDC_SHOW_DEFAULT_ALBUM_ICON_CHK, &CLyricSettingsDlg::OnBnClickedShowDefaultAlbumIconChk)
211     ON_BN_CLICKED(IDC_SEARCH_BOX_TRANSPARENT_IN_WHITE_MODE, &CLyricSettingsDlg::OnBnClickedSearchBoxTransparentInWhiteMode)
212     ON_BN_CLICKED(IDC_SET_FONT_BUTTON, &CLyricSettingsDlg::OnBnClickedSetFontButton)
213     ON_CBN_SELCHANGE(IDC_ALIGNMENT_COMBO2, &CLyricSettingsDlg::OnCbnSelchangeAlignmentCombo2)
214     ON_CBN_SELCHANGE(IDC_DESKTOP_LYRIC_ALIGNMENT_COMBO, &CLyricSettingsDlg::OnCbnSelchangeDesktopLyricAlignmentCombo)
215     ON_BN_CLICKED(IDC_SHOW_LYRIC_TRANSLATE_CHECK, &CLyricSettingsDlg::OnBnClickedShowLyricTranslateCheck)
216     ON_BN_CLICKED(IDC_LYRIC_HIDE_BLANK_LINE_CHECK, &CLyricSettingsDlg::OnBnClickedLyricHideBlankLineCheck)
217     ON_BN_CLICKED(IDC_SHOW_SONG_INFO_IF_LYRIC_NOT_EXIST_CHECK, &CLyricSettingsDlg::OnBnClickedShowSongInfoIfLyricNotExistCheck)
218 END_MESSAGE_MAP()
219 
220 
221 // CLyricSettingsDlg 消息处理程序
222 
223 
224 BOOL CLyricSettingsDlg::OnInitDialog()
225 {
226     CTabDlg::OnInitDialog();
227     // TODO:  在此添加额外的初始化
228 
229     //初始化各控件的状态
230     m_karaoke_disp_check.SetCheck(m_data.lyric_karaoke_disp);
231     m_lyric_fuzzy_match_check.SetCheck(m_data.lyric_fuzzy_match);
232     m_use_inner_lyric_chk.SetCheck(m_data.use_inner_lyric_first);
233     m_lyric_save_policy_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SAVE_POLICY_DO_NOT_SAVE").c_str());
234     m_lyric_save_policy_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SAVE_POLICY_AUTO_SAVE").c_str());
235     m_lyric_save_policy_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SAVE_POLICY_INQUIRY").c_str());
236     m_lyric_save_policy_combo.SetCurSel(static_cast<int>(m_data.lyric_save_policy));
237     CheckDlgButton(IDC_SHOW_LYRIC_TRANSLATE_CHECK, m_data.show_translate);
238     CheckDlgButton(IDC_LYRIC_HIDE_BLANK_LINE_CHECK, m_data.donot_show_blank_lines);
239     CheckDlgButton(IDC_SHOW_SONG_INFO_IF_LYRIC_NOT_EXIST_CHECK, m_data.show_song_info_if_lyric_not_exist);
240 
241     m_lyric_line_space_edit.SetRange(MIM_LINE_SPACE, MAX_LINE_SPACE);
242     m_lyric_line_space_edit.SetValue(m_data.lyric_line_space);
243 
244     m_lyric_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_LEFT").c_str());
245     m_lyric_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_RIGHT").c_str());
246     m_lyric_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_AUTO").c_str());
247     m_lyric_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_CENTER").c_str());
248     m_lyric_alignment_combo.SetCurSel(static_cast<int>(m_data.lyric_align));
249 
250     m_lyric_double_line_chk.SetCheck(m_data.cortana_lyric_double_line);
251     m_show_album_cover_in_cortana_check.SetCheck(m_data.cortana_show_album_cover);
252     m_cortana_icon_beat_check.SetCheck(m_data.cortana_icon_beat);
253     m_lyric_compatible_mode_chk.SetCheck(m_data.cortana_lyric_compatible_mode);
254     m_keep_display_chk.SetCheck(m_data.cortana_lyric_keep_display);
255     m_show_spectrum_chk.SetCheck(m_data.cortana_show_spectrum);
256     m_show_lyric_in_cortana_chk.SetCheck(m_data.cortana_show_lyric);
257     //m_search_box_opaque_chk.SetCheck(m_data.cortana_opaque);
258     //m_search_box_opaque_chk.ShowWindow(SW_HIDE);		//此选项已经没有作用,把它隐藏起来
259     m_show_default_album_icon_chk.SetCheck(m_data.show_default_album_icon_in_search_box);
260     CheckDlgButton(IDC_SEARCH_BOX_TRANSPARENT_IN_WHITE_MODE, IsSearchBoxTransparentInWhiteTheme());
261 
262     m_show_desktop_lyric_chk.SetCheck(m_data.show_desktop_lyric);
263     m_text_color1_static.SetFillColor(m_data.desktop_lyric_data.text_color1);
264     m_text_color2_static.SetFillColor(m_data.desktop_lyric_data.text_color2);
265     m_highlight_color1_static.SetFillColor(m_data.desktop_lyric_data.highlight_color1);
266     m_highlight_color2_static.SetFillColor(m_data.desktop_lyric_data.highlight_color2);
267     m_desktop_lyric_double_line_chk.SetCheck(m_data.desktop_lyric_data.lyric_double_line);
268     m_lock_desktop_lyric_chk.SetCheck(m_data.desktop_lyric_data.lock_desktop_lyric);
269     m_hide_lyric_without_lyric_chk.SetCheck(m_data.desktop_lyric_data.hide_lyric_window_without_lyric);
270     m_hide_lyric_paused_chk.SetCheck(m_data.desktop_lyric_data.hide_lyric_window_when_paused);
271     m_lyric_background_penetrate_chk.SetCheck(m_data.desktop_lyric_data.lyric_background_penetrate);
272     m_show_unlock_when_locked_chk.SetCheck(m_data.desktop_lyric_data.show_unlock_when_locked);
273 
274     m_text_gradient_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_COLOR_GRADIENT_NONE").c_str());
275     m_text_gradient_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_COLOR_GRADIENT_TWO").c_str());
276     m_text_gradient_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_COLOR_GRADIENT_THREE").c_str());
277     m_text_gradient_combo.SetCurSel(m_data.desktop_lyric_data.text_gradient);
278     m_highlight_gradient_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_COLOR_GRADIENT_NONE").c_str());
279     m_highlight_gradient_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_COLOR_GRADIENT_TWO").c_str());
280     m_highlight_gradient_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_DESKTOP_LRC_COLOR_GRADIENT_THREE").c_str());
281     m_highlight_gradient_combo.SetCurSel(m_data.desktop_lyric_data.highlight_gradient);
282 
283     m_desktop_lyric_opacity_sld.SetRange(20, 100);
284     m_desktop_lyric_opacity_sld.SetPos(m_data.desktop_lyric_data.opacity);
285 
286     m_desktop_lyric_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_LEFT").c_str());
287     m_desktop_lyric_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_RIGHT").c_str());
288     m_desktop_lyric_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_AUTO").c_str());
289     m_desktop_lyric_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_CENTER").c_str());
290     m_desktop_lyric_alignment_combo.SetCurSel(static_cast<int>(m_data.desktop_lyric_data.lyric_align));
291 
292     CString str;
293     str.Format(_T("%d%%"), m_data.desktop_lyric_data.opacity);
294     SetDlgItemText(IDC_LYRIC_OPACITY_STATIC, str);
295 
296     if (CWinVersionHelper::IsWindows10OrLater() && CMusicPlayerDlg::GetInstance()->GetCortanaLyric().IsSearchBoxAvailable())    //搜索框显示播放信息只有Windows10可用
297     {
298         m_cortana_info_enable_check.SetCheck(m_data.cortana_info_enable);
299     }
300     else
301     {
302         m_cortana_info_enable_check.EnableWindow(FALSE);		//Win10以下或Win11系统禁用此复选按钮
303         m_data.cortana_info_enable = false;
304     }
305 
306     EnableControl();
307     EnableControlForDesktopLyric();
308 
309     m_lyric_dir_edit.SetWindowText(m_data.lyric_path.c_str());
310     m_lyric_dir_edit.EnableFolderBrowseButton();
311 
312     wstring tip_str;
313     m_tool_tip.Create(this);
314     m_tool_tip.SetMaxTipWidth(300);
315     m_tool_tip.AddTool(&m_lyric_fuzzy_match_check, theApp.m_str_table.LoadText(L"TIP_OPT_LRC_FUZZY_MATCH").c_str());
316     m_tool_tip.AddTool(&m_lyric_dir_edit, theApp.m_str_table.LoadText(L"TIP_OPT_LRC_LRC_FOLDER_PATH").c_str());
317     m_tool_tip.AddTool(GetDlgItem(IDC_SHOW_LYRIC_IN_CORTANA), theApp.m_str_table.LoadText(L"TIP_OPT_LRC_SEARCH_BOX_FUNCTION_ENABLE").c_str());
318     tip_str = theApp.m_str_table.LoadTextFormat(L"TIP_OPT_LRC_USE_MUSIC_SYMBOL", {
319         theApp.m_str_table.LoadText(L"UI_LYRIC_EMPTY_LINE"),
320         theApp.m_str_table.LoadText(L"UI_LYRIC_EMPTY_LINE_2"),
321         theApp.m_str_table.LoadText(L"UI_LYRIC_MUSIC_SYMBOL")
322     });
323     m_tool_tip.AddTool(GetDlgItem(IDC_LYRIC_HIDE_BLANK_LINE_CHECK), tip_str.c_str());
324     m_tool_tip.AddTool(GetDlgItem(IDC_SET_FONT_BUTTON), GetFontInfoString(m_data.lyric_font).c_str());
325     m_tool_tip.AddTool(GetDlgItem(IDC_SET_FONT2), GetFontInfoString(m_data.desktop_lyric_data.lyric_font).c_str());
326     m_tool_tip.AddTool(GetDlgItem(IDC_SET_FONT), GetFontInfoString(m_data.cortana_font).c_str());
327     tip_str = theApp.m_str_table.LoadTextFormat(L"TIP_OPT_LRC_SONG_INFO_IF_NO_LRC",
328         { theApp.m_str_table.LoadText(L"UI_LYRIC_NONE") });
329     m_tool_tip.AddTool(GetDlgItem(IDC_SHOW_SONG_INFO_IF_LYRIC_NOT_EXIST_CHECK), tip_str.c_str());
330 
331     m_tool_tip.SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
332 
333     m_cortana_color_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_BG_COLOR_FOLLOWING_SYSTEM").c_str());
334     m_cortana_color_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_BG_COLOR_DARK").c_str());
335     m_cortana_color_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_SEARCH_BOX_BG_COLOR_LIGHT").c_str());
336     m_cortana_color_combo.SetCurSel(m_data.cortana_color);
337 
338     m_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_LEFT").c_str());
339     m_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_RIGHT").c_str());
340     m_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_AUTO").c_str());
341     m_alignment_combo.AddString(theApp.m_str_table.LoadText(L"TXT_OPT_LRC_ALIGN_CENTER").c_str());
342     m_alignment_combo.SetCurSel(static_cast<int>(m_data.cortana_lyric_align));
343 
344     //设置控件不响应鼠标滚轮消息
345     m_cortana_color_combo.SetMouseWheelEnable(false);
346     m_lyric_save_policy_combo.SetMouseWheelEnable(false);
347     m_text_gradient_combo.SetMouseWheelEnable(false);
348     m_highlight_gradient_combo.SetMouseWheelEnable(false);
349     m_alignment_combo.SetMouseWheelEnable(false);
350     m_desktop_lyric_opacity_sld.SetMouseWheelEnable(false);
351     m_lyric_alignment_combo.SetMouseWheelEnable(false);
352     m_lyric_line_space_edit.SetMouseWheelEnable(false);
353     m_desktop_lyric_alignment_combo.SetMouseWheelEnable(false);
354 
355     return TRUE;  // return TRUE unless you set the focus to a control
356                   // 异常: OCX 属性页应返回 FALSE
357 }
358 
EnableControl()359 void CLyricSettingsDlg::EnableControl()
360 {
361     bool enable = m_data.cortana_info_enable && !m_data.cortana_lyric_compatible_mode;
362     m_lyric_double_line_chk.EnableWindow(enable && m_data.cortana_show_lyric);
363     m_show_lyric_in_cortana_chk.EnableWindow(enable);
364     m_show_album_cover_in_cortana_check.EnableWindow(enable);
365     m_cortana_color_combo.EnableWindow(enable);
366     GetDlgItem(IDC_SET_FONT)->EnableWindow(enable);
367     m_keep_display_chk.EnableWindow(enable);
368     m_show_spectrum_chk.EnableWindow(enable);
369     m_lyric_compatible_mode_chk.EnableWindow(m_data.cortana_info_enable);
370     //m_search_box_opaque_chk.EnableWindow(m_data.cortana_info_enable);
371     m_alignment_combo.EnableWindow(enable && m_data.cortana_show_lyric/* && !m_data.cortana_lyric_double_line*/);
372 
373     m_cortana_icon_beat_check.EnableWindow(enable && !m_data.show_default_album_icon_in_search_box);
374     m_show_default_album_icon_chk.EnableWindow(enable);
375 
376     EnableDlgCtrl(IDC_SEARCH_BOX_TRANSPARENT_IN_WHITE_MODE, enable);
377     // EnableDlgCtrl(IDC_LYRIC_HIDE_BLANK_LINE_CHECK, m_data.lyric_karaoke_disp);
378 }
379 
EnableControlForDesktopLyric()380 void CLyricSettingsDlg::EnableControlForDesktopLyric()
381 {
382     bool desktop_lyric_enable = m_data.show_desktop_lyric;
383     m_desktop_lyric_double_line_chk.EnableWindow(desktop_lyric_enable);
384     m_text_color1_static.EnableWindow(desktop_lyric_enable);
385     m_text_color1_static.Invalidate();
386     m_text_color2_static.EnableWindow(desktop_lyric_enable);
387     m_text_color2_static.Invalidate();
388     m_text_gradient_combo.EnableWindow(desktop_lyric_enable);
389     m_highlight_color1_static.EnableWindow(desktop_lyric_enable);
390     m_highlight_color1_static.Invalidate();
391     m_highlight_color2_static.EnableWindow(desktop_lyric_enable);
392     m_highlight_color2_static.Invalidate();
393     m_highlight_gradient_combo.EnableWindow(desktop_lyric_enable);
394     m_desktop_lyric_opacity_sld.EnableWindow(desktop_lyric_enable);
395     m_lock_desktop_lyric_chk.EnableWindow(desktop_lyric_enable);
396     m_hide_lyric_without_lyric_chk.EnableWindow(desktop_lyric_enable);
397     m_hide_lyric_paused_chk.EnableWindow(desktop_lyric_enable);
398     m_lyric_background_penetrate_chk.EnableWindow(desktop_lyric_enable);
399     GetDlgItem(IDC_SET_FONT2)->EnableWindow(desktop_lyric_enable);
400     GetDlgItem(IDC_DEFAULT_STYLE)->EnableWindow(desktop_lyric_enable);
401     m_show_unlock_when_locked_chk.EnableWindow(desktop_lyric_enable);
402     m_desktop_lyric_alignment_combo.EnableWindow(desktop_lyric_enable);
403 }
404 
405 
ApplyDefaultLyricStyle(const LyricStyleDefaultData & style)406 void CLyricSettingsDlg::ApplyDefaultLyricStyle(const LyricStyleDefaultData& style)
407 {
408     CDesktopLyric::LyricStyleDefaultDataToLyricSettingData(style, m_data.desktop_lyric_data);
409 
410     m_text_color1_static.SetFillColor(style.normal_style.color1);
411     m_text_color2_static.SetFillColor(style.normal_style.color2);
412     m_text_gradient_combo.SetCurSel(m_data.desktop_lyric_data.text_gradient);
413     m_highlight_color1_static.SetFillColor(style.highlight_style.color1);
414     m_highlight_color2_static.SetFillColor(style.highlight_style.color2);
415     m_highlight_gradient_combo.SetCurSel(m_data.desktop_lyric_data.highlight_gradient);
416 }
417 
SetSearchBoxTransparentInWhiteTheme(bool transparent)418 void CLyricSettingsDlg::SetSearchBoxTransparentInWhiteTheme(bool transparent)
419 {
420     if (transparent)
421         m_data.cortana_transparent_color = LIGHT_MODE_SEARCH_BOX_BACKGROUND_COLOR;      //要设置成透明,则将透明色设置成和背景色相同
422     else
423         m_data.cortana_transparent_color = SEARCH_BOX_DEFAULT_TRANSPARENT_COLOR;      //要设置成不透明,则将透明色设置成和背景色不同
424 }
425 
IsSearchBoxTransparentInWhiteTheme() const426 bool CLyricSettingsDlg::IsSearchBoxTransparentInWhiteTheme() const
427 {
428     return (m_data.cortana_transparent_color == LIGHT_MODE_SEARCH_BOX_BACKGROUND_COLOR);
429 }
430 
GetFontInfoString(const FontInfo & font_info)431 wstring CLyricSettingsDlg::GetFontInfoString(const FontInfo& font_info)
432 {
433     wstring str = font_info.name + L", " + std::to_wstring(font_info.size) + L"pt";
434     wstring font_style;
435     if (font_info.style.bold || font_info.style.italic)
436         str.push_back(L',');
437     if (font_info.style.bold)
438         str += L' ' + theApp.m_str_table.LoadText(L"TIP_OPT_LRC_FONT_INFO_BOLD");
439     if (font_info.style.italic)
440         str += L' ' + theApp.m_str_table.LoadText(L"TIP_OPT_LRC_FONT_INFO_ITALIC");
441 
442     return str;
443 }
444 
GetDataFromUi()445 void CLyricSettingsDlg::GetDataFromUi()
446 {
447     m_data.lyric_line_space = m_lyric_line_space_edit.GetValue();
448 }
449 
OnBnClickedKaraokeDisp()450 void CLyricSettingsDlg::OnBnClickedKaraokeDisp()
451 {
452     // TODO: 在此添加控件通知处理程序代码
453     m_data.lyric_karaoke_disp = (m_karaoke_disp_check.GetCheck() != 0);
454     // EnableControl();
455 }
456 
457 
OnCancel()458 void CLyricSettingsDlg::OnCancel()
459 {
460     // TODO: 在此添加专用代码和/或调用基类
461 
462     //CTabDlg::OnCancel();
463 }
464 
465 
OnOK()466 void CLyricSettingsDlg::OnOK()
467 {
468     // TODO: 在此添加专用代码和/或调用基类
469     //m_data.desktop_lyric_data.text_color1 = m_text_color1_static.GetFillColor();
470     //m_data.desktop_lyric_data.text_color2 = m_text_color2_static.GetFillColor();
471     //m_data.desktop_lyric_data.highlight_color1 = m_highlight_color1_static.GetFillColor();
472     //m_data.desktop_lyric_data.highlight_color2 = m_highlight_color2_static.GetFillColor();
473 
474     //CTabDlg::OnOK();
475 }
476 
477 
OnBnClickedLyricFuzzyMatch()478 void CLyricSettingsDlg::OnBnClickedLyricFuzzyMatch()
479 {
480     // TODO: 在此添加控件通知处理程序代码
481     m_data.lyric_fuzzy_match = (m_lyric_fuzzy_match_check.GetCheck() != 0);
482 }
483 
484 
PreTranslateMessage(MSG * pMsg)485 BOOL CLyricSettingsDlg::PreTranslateMessage(MSG* pMsg)
486 {
487     // TODO: 在此添加专用代码和/或调用基类
488     if (pMsg->message == WM_MOUSEMOVE)
489         m_tool_tip.RelayEvent(pMsg);
490 
491     return CTabDlg::PreTranslateMessage(pMsg);
492 }
493 
494 
OnBnClickedShowLyricInCortana()495 void CLyricSettingsDlg::OnBnClickedShowLyricInCortana()
496 {
497     // TODO: 在此添加控件通知处理程序代码
498     m_data.cortana_info_enable = (m_cortana_info_enable_check.GetCheck() != 0);
499     EnableControl();
500 }
501 
502 
OnBnClickedLyricDoubleLineCheck()503 void CLyricSettingsDlg::OnBnClickedLyricDoubleLineCheck()
504 {
505     // TODO: 在此添加控件通知处理程序代码
506     m_data.cortana_lyric_double_line = (m_lyric_double_line_chk.GetCheck() != 0);
507 }
508 
509 
OnCbnSelchangeCortanaColorCombo()510 void CLyricSettingsDlg::OnCbnSelchangeCortanaColorCombo()
511 {
512     // TODO: 在此添加控件通知处理程序代码
513     m_data.cortana_color = m_cortana_color_combo.GetCurSel();
514 }
515 
516 
OnBnClickedShowAlbumCoverInCortana()517 void CLyricSettingsDlg::OnBnClickedShowAlbumCoverInCortana()
518 {
519     // TODO: 在此添加控件通知处理程序代码
520     m_data.cortana_show_album_cover = (m_show_album_cover_in_cortana_check.GetCheck() != 0);
521     EnableControl();
522 }
523 
524 
OnBnClickedCortanaIconDeatCheck()525 void CLyricSettingsDlg::OnBnClickedCortanaIconDeatCheck()
526 {
527     // TODO: 在此添加控件通知处理程序代码
528     m_data.cortana_icon_beat = (m_cortana_icon_beat_check.GetCheck() != 0);
529 }
530 
531 
OnBnClickedLyricCompatibleMode()532 void CLyricSettingsDlg::OnBnClickedLyricCompatibleMode()
533 {
534     // TODO: 在此添加控件通知处理程序代码
535     m_data.cortana_lyric_compatible_mode = (m_lyric_compatible_mode_chk.GetCheck() != 0);
536     EnableControl();
537 }
538 
539 
OnBnClickedSetFont()540 void CLyricSettingsDlg::OnBnClickedSetFont()
541 {
542     // TODO: 在此添加控件通知处理程序代码
543     LOGFONT lf{};
544     theApp.m_font_set.cortana.GetFont().GetLogFont(&lf);
545     CCommon::NormalizeFont(lf);
546     CFontDialogEx fontDlg(&lf, false);	//构造字体对话框,初始选择字体为之前字体
547     fontDlg.m_cf.Flags |= CF_NOVERTFONTS;   //仅列出水平方向的字体
548     if (IDOK == fontDlg.DoModal())     // 显示字体对话框
549     {
550         //获取字体信息
551         m_data.cortana_font.name = fontDlg.GetFaceName();
552         m_data.cortana_font.size = fontDlg.GetSize() / 10;
553         m_data.cortana_font.style.bold = (fontDlg.IsBold() != FALSE);
554         m_data.cortana_font.style.italic = (fontDlg.IsItalic() != FALSE);
555         m_data.cortana_font.style.underline = (fontDlg.IsUnderline() != FALSE);
556         m_data.cortana_font.style.strike_out = (fontDlg.IsStrikeOut() != FALSE);
557         m_search_box_font_changed = true;
558         m_tool_tip.UpdateTipText(GetFontInfoString(m_data.cortana_font).c_str(), GetDlgItem(IDC_SET_FONT));
559     }
560 }
561 
562 
OnBnClickedKeepDisplayCheck()563 void CLyricSettingsDlg::OnBnClickedKeepDisplayCheck()
564 {
565     // TODO: 在此添加控件通知处理程序代码
566     m_data.cortana_lyric_keep_display = (m_keep_display_chk.GetCheck() != 0);
567 }
568 
569 
OnBnClickedShowSpectrumInCortana()570 void CLyricSettingsDlg::OnBnClickedShowSpectrumInCortana()
571 {
572     // TODO: 在此添加控件通知处理程序代码
573     m_data.cortana_show_spectrum = (m_show_spectrum_chk.GetCheck() != 0);
574 }
575 
576 
OnBnClickedShowLyricInCortana2()577 void CLyricSettingsDlg::OnBnClickedShowLyricInCortana2()
578 {
579     // TODO: 在此添加控件通知处理程序代码
580     m_data.cortana_show_lyric = (m_show_lyric_in_cortana_chk.GetCheck() != 0);
581     EnableControl();
582 }
583 
584 
585 //void CLyricSettingsDlg::OnBnClickedSearchBoxOpaqueCheck()
586 //{
587 //    // TODO: 在此添加控件通知处理程序代码
588 //    m_data.cortana_opaque = (m_search_box_opaque_chk.GetCheck() != 0);
589 //}
590 
591 
OnBnClickedShowDesktopLyric()592 void CLyricSettingsDlg::OnBnClickedShowDesktopLyric()
593 {
594     // TODO: 在此添加控件通知处理程序代码
595     m_data.show_desktop_lyric = (m_show_desktop_lyric_chk.GetCheck() != 0);
596     EnableControlForDesktopLyric();
597 }
598 
599 
OnBnClickedSetFont2()600 void CLyricSettingsDlg::OnBnClickedSetFont2()
601 {
602     // TODO: 在此添加控件通知处理程序代码
603     LOGFONT lf{};
604     CFont font;
605     UIFont::CreateFontSimple(font, m_data.desktop_lyric_data.lyric_font.size, m_data.desktop_lyric_data.lyric_font.name.c_str(), m_data.desktop_lyric_data.lyric_font.style);
606     font.GetLogFont(&lf);
607     CCommon::NormalizeFont(lf);
608     CFontDialogEx fontDlg(&lf, false);	//构造字体对话框,初始选择字体为之前字体
609     fontDlg.m_cf.Flags |= CF_NOVERTFONTS;   //仅列出水平方向的字体
610     if (IDOK == fontDlg.DoModal())     // 显示字体对话框
611     {
612         //获取字体信息
613         m_data.desktop_lyric_data.lyric_font.name = fontDlg.GetFaceName();
614         m_data.desktop_lyric_data.lyric_font.size = fontDlg.GetSize() / 10;
615         m_data.desktop_lyric_data.lyric_font.style.bold = (fontDlg.IsBold() != FALSE);
616         m_data.desktop_lyric_data.lyric_font.style.italic = (fontDlg.IsItalic() != FALSE);
617         m_data.desktop_lyric_data.lyric_font.style.underline = (fontDlg.IsUnderline() != FALSE);
618         m_data.desktop_lyric_data.lyric_font.style.strike_out = (fontDlg.IsStrikeOut() != FALSE);
619         m_tool_tip.UpdateTipText(GetFontInfoString(m_data.desktop_lyric_data.lyric_font).c_str(), GetDlgItem(IDC_SET_FONT2));
620     }
621 }
622 
623 
OnCbnSelchangeTextGradientCombo()624 void CLyricSettingsDlg::OnCbnSelchangeTextGradientCombo()
625 {
626     // TODO: 在此添加控件通知处理程序代码
627     m_data.desktop_lyric_data.text_gradient = m_text_gradient_combo.GetCurSel();
628 }
629 
630 
OnCbnSelchangeHighlightGradientCombo()631 void CLyricSettingsDlg::OnCbnSelchangeHighlightGradientCombo()
632 {
633     // TODO: 在此添加控件通知处理程序代码
634     m_data.desktop_lyric_data.highlight_gradient = m_highlight_gradient_combo.GetCurSel();
635 }
636 
637 
OnBnClickedLockDesktopLyricCheck()638 void CLyricSettingsDlg::OnBnClickedLockDesktopLyricCheck()
639 {
640     // TODO: 在此添加控件通知处理程序代码
641     m_data.desktop_lyric_data.lock_desktop_lyric = (m_lock_desktop_lyric_chk.GetCheck() != 0);
642 }
643 
644 
OnHScroll(UINT nSBCode,UINT nPos,CScrollBar * pScrollBar)645 void CLyricSettingsDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
646 {
647     // TODO: 在此添加消息处理程序代码和/或调用默认值
648     if ((pScrollBar->GetDlgCtrlID() == IDC_LYRIC_OPACITY_SLIDER))
649     {
650         m_data.desktop_lyric_data.opacity = m_desktop_lyric_opacity_sld.GetPos();
651         CString str;
652         str.Format(_T("%d%%"), m_data.desktop_lyric_data.opacity);
653         SetDlgItemText(IDC_LYRIC_OPACITY_STATIC, str);
654 
655         //实时设置窗口不透明度
656         if (m_pDesktopLyric != nullptr)
657             m_pDesktopLyric->SetLyricOpacity(m_data.desktop_lyric_data.opacity);
658     }
659 
660     CTabDlg::OnHScroll(nSBCode, nPos, pScrollBar);
661 }
662 
663 
OnBnClickedHideLyricWithoutLyricCheck()664 void CLyricSettingsDlg::OnBnClickedHideLyricWithoutLyricCheck()
665 {
666     // TODO: 在此添加控件通知处理程序代码
667     m_data.desktop_lyric_data.hide_lyric_window_without_lyric = (m_hide_lyric_without_lyric_chk.GetCheck() != 0);
668 }
669 
670 
OnBnClickedHideLyricPauseCheck()671 void CLyricSettingsDlg::OnBnClickedHideLyricPauseCheck()
672 {
673     // TODO: 在此添加控件通知处理程序代码
674     m_data.desktop_lyric_data.hide_lyric_window_when_paused = (m_hide_lyric_paused_chk.GetCheck() != 0);
675 }
676 
677 
OnBnClickedLyricDoubleLineCheck2()678 void CLyricSettingsDlg::OnBnClickedLyricDoubleLineCheck2()
679 {
680     // TODO: 在此添加控件通知处理程序代码
681     m_data.desktop_lyric_data.lyric_double_line = (m_desktop_lyric_double_line_chk.GetCheck() != 0);
682 }
683 
684 
OnBnClickedDefaultStyle()685 void CLyricSettingsDlg::OnBnClickedDefaultStyle()
686 {
687     // TODO: 在此添加控件通知处理程序代码
688     CWnd* pBtn = GetDlgItem(IDC_DEFAULT_STYLE);
689     CPoint point;
690     if (pBtn != nullptr)
691     {
692         CRect rect;
693         pBtn->GetWindowRect(rect);
694         point.x = rect.left;
695         point.y = rect.bottom;
696         CMenu* pMenu = theApp.m_menu_mgr.GetMenu(MenuMgr::OptDlrcDefStyleMenu);
697         if (pMenu != NULL)
698             pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
699     }
700 }
701 
702 
OnLyricDefaultStyle1()703 void CLyricSettingsDlg::OnLyricDefaultStyle1()
704 {
705     // TODO: 在此添加命令处理程序代码
706     if (m_pDesktopLyric != nullptr)
707     {
708         auto style = m_pDesktopLyric->GetDefaultStyle(0);
709         ApplyDefaultLyricStyle(style);
710     }
711 }
712 
713 
OnLyricDefaultStyle2()714 void CLyricSettingsDlg::OnLyricDefaultStyle2()
715 {
716     // TODO: 在此添加命令处理程序代码
717     if (m_pDesktopLyric != nullptr)
718     {
719         auto style = m_pDesktopLyric->GetDefaultStyle(1);
720         ApplyDefaultLyricStyle(style);
721     }
722 }
723 
724 
OnLyricDefaultStyle3()725 void CLyricSettingsDlg::OnLyricDefaultStyle3()
726 {
727     // TODO: 在此添加命令处理程序代码
728     if (m_pDesktopLyric != nullptr)
729     {
730         auto style = m_pDesktopLyric->GetDefaultStyle(2);
731         ApplyDefaultLyricStyle(style);
732     }
733 }
734 
735 
OnBnClickedHideLyricWithoutLyricCheck3()736 void CLyricSettingsDlg::OnBnClickedHideLyricWithoutLyricCheck3()
737 {
738     // TODO: 在此添加控件通知处理程序代码
739     m_data.desktop_lyric_data.lyric_background_penetrate = !m_data.desktop_lyric_data.lyric_background_penetrate;
740 }
741 
742 
OnColorSelected(WPARAM wParam,LPARAM lParam)743 afx_msg LRESULT CLyricSettingsDlg::OnColorSelected(WPARAM wParam, LPARAM lParam)
744 {
745     CWnd* pControl = (CWnd*)wParam;
746     if (pControl == &m_text_color1_static)
747         m_data.desktop_lyric_data.text_color1 = m_text_color1_static.GetFillColor();
748     else if (pControl == &m_text_color2_static)
749         m_data.desktop_lyric_data.text_color2 = m_text_color2_static.GetFillColor();
750     else if (pControl == &m_highlight_color1_static)
751         m_data.desktop_lyric_data.highlight_color1 = m_highlight_color1_static.GetFillColor();
752     else if (pControl == &m_highlight_color2_static)
753         m_data.desktop_lyric_data.highlight_color2 = m_highlight_color2_static.GetFillColor();
754     return 0;
755 }
756 
757 
OnLyricDefaultStyle1Modify()758 void CLyricSettingsDlg::OnLyricDefaultStyle1Modify()
759 {
760     // TODO: 在此添加命令处理程序代码
761     wstring info = theApp.m_str_table.LoadTextFormat(L"MSG_OPT_LRC_DESKTOP_LRC_DEFAULT_STYLE_MODIFY_WARNING", { 1 });
762     if (MessageBox(info.c_str(), NULL, MB_ICONWARNING | MB_YESNO) == IDYES)
763     {
764         LyricStyleDefaultData style_data;
765         CDesktopLyric::LyricSettingDatatOLyricStyleDefaultData(m_data.desktop_lyric_data, style_data);
766         m_pDesktopLyric->SetDefaultStyle(style_data, 0);
767     }
768 }
769 
770 
OnLyricDefaultStyle2Modify()771 void CLyricSettingsDlg::OnLyricDefaultStyle2Modify()
772 {
773     // TODO: 在此添加命令处理程序代码
774     wstring info = theApp.m_str_table.LoadTextFormat(L"MSG_OPT_LRC_DESKTOP_LRC_DEFAULT_STYLE_MODIFY_WARNING", { 2 });
775     if (MessageBox(info.c_str(), NULL, MB_ICONWARNING | MB_YESNO) == IDYES)
776     {
777         LyricStyleDefaultData style_data;
778         CDesktopLyric::LyricSettingDatatOLyricStyleDefaultData(m_data.desktop_lyric_data, style_data);
779         m_pDesktopLyric->SetDefaultStyle(style_data, 1);
780     }
781 }
782 
783 
OnLyricDefaultStyle3Modify()784 void CLyricSettingsDlg::OnLyricDefaultStyle3Modify()
785 {
786     // TODO: 在此添加命令处理程序代码
787     wstring info = theApp.m_str_table.LoadTextFormat(L"MSG_OPT_LRC_DESKTOP_LRC_DEFAULT_STYLE_MODIFY_WARNING", { 3 });
788     if (MessageBox(info.c_str(), NULL, MB_ICONWARNING | MB_YESNO) == IDYES)
789     {
790         LyricStyleDefaultData style_data;
791         CDesktopLyric::LyricSettingDatatOLyricStyleDefaultData(m_data.desktop_lyric_data, style_data);
792         m_pDesktopLyric->SetDefaultStyle(style_data, 2);
793     }
794 }
795 
796 
OnRestoreDefaultStyle()797 void CLyricSettingsDlg::OnRestoreDefaultStyle()
798 {
799     // TODO: 在此添加命令处理程序代码
800     const wstring& info = theApp.m_str_table.LoadText(L"MSG_OPT_LRC_DESKTOP_LRC_DEFAULT_STYLE_RESTORE_WARNING");
801     if (MessageBox(info.c_str(), NULL, MB_ICONWARNING | MB_YESNO) == IDYES)
802     {
803         m_pDesktopLyric->RestoreDefaultStyle();
804     }
805 }
806 
807 
OnEditBrowseChanged(WPARAM wParam,LPARAM lParam)808 afx_msg LRESULT CLyricSettingsDlg::OnEditBrowseChanged(WPARAM wParam, LPARAM lParam)
809 {
810     CString str;
811     GetDlgItemText(IDC_LYRIC_PATH_EDIT, str);
812     m_data.lyric_path = str.GetString();
813     return 0;
814 }
815 
816 
OnCbnSelchangeAlignmentCombo()817 void CLyricSettingsDlg::OnCbnSelchangeAlignmentCombo()
818 {
819     // TODO: 在此添加控件通知处理程序代码
820     m_data.cortana_lyric_align = static_cast<Alignment>(m_alignment_combo.GetCurSel());
821 }
822 
823 
OnCbnSelchangeLyricSaveCombo()824 void CLyricSettingsDlg::OnCbnSelchangeLyricSaveCombo()
825 {
826     // TODO: 在此添加控件通知处理程序代码
827     m_data.lyric_save_policy = static_cast<LyricSettingData::LyricSavePolicy>(m_lyric_save_policy_combo.GetCurSel());
828 }
829 
830 
OnBnClickedUseInnerLyricCheck()831 void CLyricSettingsDlg::OnBnClickedUseInnerLyricCheck()
832 {
833     // TODO: 在此添加控件通知处理程序代码
834     m_data.use_inner_lyric_first = (m_use_inner_lyric_chk.GetCheck() != 0);
835 }
836 
837 
OnBnClickedShowUnlockWhenLocked()838 void CLyricSettingsDlg::OnBnClickedShowUnlockWhenLocked()
839 {
840     // TODO: 在此添加控件通知处理程序代码
841     m_data.desktop_lyric_data.show_unlock_when_locked = (m_show_unlock_when_locked_chk.GetCheck() != 0);
842 }
843 
844 
OnBnClickedShowDefaultAlbumIconChk()845 void CLyricSettingsDlg::OnBnClickedShowDefaultAlbumIconChk()
846 {
847     // TODO: 在此添加控件通知处理程序代码
848     m_data.show_default_album_icon_in_search_box = (m_show_default_album_icon_chk.GetCheck() != 0);
849     EnableControl();
850 }
851 
852 
OnBnClickedSearchBoxTransparentInWhiteMode()853 void CLyricSettingsDlg::OnBnClickedSearchBoxTransparentInWhiteMode()
854 {
855     // TODO: 在此添加控件通知处理程序代码
856     bool checked = (IsDlgButtonChecked(IDC_SEARCH_BOX_TRANSPARENT_IN_WHITE_MODE) != 0);
857     SetSearchBoxTransparentInWhiteTheme(checked);
858 }
859 
860 
OnBnClickedSetFontButton()861 void CLyricSettingsDlg::OnBnClickedSetFontButton()
862 {
863     // TODO: 在此添加控件通知处理程序代码
864     LOGFONT lf{};             //LOGFONT变量
865     theApp.m_font_set.lyric.GetFont().GetLogFont(&lf);
866     CCommon::NormalizeFont(lf);
867     CFontDialogEx fontDlg(&lf, false);	//构造字体对话框,初始选择字体为之前字体
868     fontDlg.m_cf.Flags |= CF_NOVERTFONTS;   //仅列出水平方向的字体
869     if (IDOK == fontDlg.DoModal())     // 显示字体对话框
870     {
871         //获取字体信息
872         m_data.lyric_font.name = fontDlg.GetFaceName();
873         m_data.lyric_font.size = fontDlg.GetSize() / 10;
874         m_data.lyric_font.style.bold = (fontDlg.IsBold() != FALSE);
875         m_data.lyric_font.style.italic = (fontDlg.IsItalic() != FALSE);
876         m_data.lyric_font.style.underline = (fontDlg.IsUnderline() != FALSE);
877         m_data.lyric_font.style.strike_out = (fontDlg.IsStrikeOut() != FALSE);
878         //将字体已更改flag置为true
879         m_font_changed = true;
880         m_tool_tip.UpdateTipText(GetFontInfoString(m_data.lyric_font).c_str(), GetDlgItem(IDC_SET_FONT_BUTTON));
881     }
882 }
883 
884 
OnCbnSelchangeAlignmentCombo2()885 void CLyricSettingsDlg::OnCbnSelchangeAlignmentCombo2()
886 {
887     // TODO: 在此添加控件通知处理程序代码
888     m_data.lyric_align = static_cast<Alignment>(m_lyric_alignment_combo.GetCurSel());
889 }
890 
891 
OnCbnSelchangeDesktopLyricAlignmentCombo()892 void CLyricSettingsDlg::OnCbnSelchangeDesktopLyricAlignmentCombo()
893 {
894     // TODO: 在此添加控件通知处理程序代码
895     m_data.desktop_lyric_data.lyric_align = static_cast<Alignment>(m_desktop_lyric_alignment_combo.GetCurSel());
896 }
897 
898 
OnBnClickedShowLyricTranslateCheck()899 void CLyricSettingsDlg::OnBnClickedShowLyricTranslateCheck()
900 {
901     // TODO: 在此添加控件通知处理程序代码
902     m_data.show_translate = (IsDlgButtonChecked(IDC_SHOW_LYRIC_TRANSLATE_CHECK) != 0);
903 }
904 
905 
OnBnClickedLyricHideBlankLineCheck()906 void CLyricSettingsDlg::OnBnClickedLyricHideBlankLineCheck()
907 {
908     m_data.donot_show_blank_lines = (IsDlgButtonChecked(IDC_LYRIC_HIDE_BLANK_LINE_CHECK) != 0);
909 }
910 
911 
OnBnClickedShowSongInfoIfLyricNotExistCheck()912 void CLyricSettingsDlg::OnBnClickedShowSongInfoIfLyricNotExistCheck()
913 {
914     m_data.show_song_info_if_lyric_not_exist = (IsDlgButtonChecked(IDC_SHOW_SONG_INFO_IF_LYRIC_NOT_EXIST_CHECK) != 0);
915 }
916