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