Skip to content

Commit 2b9d4e7

Browse files
committed
新增程序后记住剪贴板历史记录的功能;图标更新
1 parent d6a4d0c commit 2b9d4e7

13 files changed

Lines changed: 58 additions & 22 deletions

SimpleNotePad/CommonData.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ void SettingsData::unmarshal(const SimpleUnpack& su)
8484

8585
void EditSettingData::marshal(SimplePack& sp) const
8686
{
87-
sp << 1
87+
sp << 2
8888
<< current_line_highlight
8989
<< static_cast<uint32_t>(current_line_highlight_color)
9090
<< static_cast<uint32_t>(background_color)
@@ -102,6 +102,7 @@ void EditSettingData::marshal(SimplePack& sp) const
102102
<< std::wstring(font_name_hex.GetString())
103103
<< font_size_hex
104104
<< show_invisible_characters_hex
105+
<< remember_clipboard_history
105106
;
106107
}
107108

@@ -136,5 +137,6 @@ void EditSettingData::unmarshal(const SimpleUnpack& su)
136137
font_name_hex = _font_name_hex.c_str();
137138
su >> font_size_hex;
138139
su >> show_invisible_characters_hex;
139-
140+
if (version >= 0)
141+
su >> remember_clipboard_history;
140142
}

SimpleNotePad/CommonData.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ struct EditSettingData : public Marshallable
9191
int font_size{ 9 }; //字体大小
9292
int tab_width{ 4 }; //制表符宽度
9393
bool show_indentation_guides{};
94+
bool remember_clipboard_history{}; //在程序退出后记住剪贴板历史记录
95+
9496
bool show_auto_comp_list{}; //显示自动完成列表
9597
bool mark_same_words; //标记相同的单词
9698
bool mark_matched_brackets{}; //标记匹配的括号

SimpleNotePad/EditSettingsDlg.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ BOOL CEditSettingsDlg::OnInitDialog()
6666
m_tab_width_edit.SetRange(1, 16);
6767
m_tab_width_edit.SetValue(m_data.tab_width);
6868

69+
CheckDlgButton(IDC_REMEMBER_CLIPBOARD_HISTORY_CHECK, m_data.remember_clipboard_history);
70+
6971
CheckDlgButton(IDC_SHOW_INDENTATION_GUIDE_CHECK, m_data.show_indentation_guides);
7072
CheckDlgButton(IDC_MARK_SAME_WORD_CHECK, m_data.mark_same_words);
7173
CheckDlgButton(IDC_MARK_MATCHED_BRACKETS_CHECK, m_data.mark_matched_brackets);
@@ -89,6 +91,7 @@ void CEditSettingsDlg::OnOK()
8991
GetDlgItemText(IDC_FONE_NAME_EDIT, m_data.font_name);
9092
m_data.font_size = m_font_size_edit.GetValue();
9193
m_data.tab_width = m_tab_width_edit.GetValue();
94+
m_data.remember_clipboard_history = (IsDlgButtonChecked(IDC_REMEMBER_CLIPBOARD_HISTORY_CHECK) != 0);
9295
m_data.show_indentation_guides = (IsDlgButtonChecked(IDC_SHOW_INDENTATION_GUIDE_CHECK) != 0);
9396
m_data.mark_same_words = (IsDlgButtonChecked(IDC_MARK_SAME_WORD_CHECK) != 0);
9497
m_data.mark_matched_brackets = (IsDlgButtonChecked(IDC_MARK_MATCHED_BRACKETS_CHECK) != 0);

SimpleNotePad/SimpleNotePad.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,7 @@ void CSimpleNotePadApp::LoadConfig()
353353
m_edit_settings_data.mark_matched_html_mark = (GetProfileInt(_T("config"), _T("mark_matched_html_mark"), 1) != 0);
354354
m_edit_settings_data.brackets_auto_comp = (GetProfileInt(_T("config"), _T("brackets_auto_comp"), 1) != 0);
355355
m_edit_settings_data.html_mark_auto_comp = (GetProfileInt(_T("config"), _T("html_mark_auto_comp"), 1) != 0);
356+
m_edit_settings_data.remember_clipboard_history = (GetProfileInt(_T("config"), _T("remember_clipboard_history"), 0) != 0);
356357

357358
//十六进制查看器
358359
m_edit_settings_data.font_name_hex = GetProfileString(_T("hex_editor"), _T("font_name"), _T("Consolas"));
@@ -396,6 +397,7 @@ void CSimpleNotePadApp::SaveConfig()
396397
WriteProfileInt(_T("config"), _T("mark_matched_html_mark"), m_edit_settings_data.mark_matched_html_mark);
397398
WriteProfileInt(_T("config"), _T("brackets_auto_comp"), m_edit_settings_data.brackets_auto_comp);
398399
WriteProfileInt(_T("config"), _T("html_mark_auto_comp"), m_edit_settings_data.html_mark_auto_comp);
400+
WriteProfileInt(_T("config"), _T("remember_clipboard_history"), m_edit_settings_data.remember_clipboard_history);
399401

400402
//十六进制查看器
401403
WriteProfileString(_T("hex_editor"), _T("font_name"), m_edit_settings_data.font_name_hex);

SimpleNotePad/SimpleNotePad.rc

1.1 KB
Binary file not shown.

SimpleNotePad/SimpleNotePad.vcxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,9 +317,11 @@
317317
<Image Include="res\clipboard.ico" />
318318
<Image Include="res\code.ico" />
319319
<Image Include="res\code_batch.ico" />
320+
<Image Include="res\comment.ico" />
320321
<Image Include="res\compare.ico" />
321322
<Image Include="res\copy.ico" />
322323
<Image Include="res\cut.ico" />
324+
<Image Include="res\date_time.ico" />
323325
<Image Include="res\donate.bmp" />
324326
<Image Include="res\donate_wechat.bmp" />
325327
<Image Include="res\exit.ico" />
@@ -331,6 +333,7 @@
331333
<Image Include="res\hex_view.ico" />
332334
<Image Include="res\language.ico" />
333335
<Image Include="res\lower_case.ico" />
336+
<Image Include="res\mark.ico" />
334337
<Image Include="res\new.ico" />
335338
<Image Include="res\new_window.ico" />
336339
<Image Include="res\next.ico" />

SimpleNotePad/SimpleNotePad.vcxproj.filters

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,15 @@
553553
<Image Include="res\help.ico">
554554
<Filter>资源文件\icon</Filter>
555555
</Image>
556+
<Image Include="res\mark.ico">
557+
<Filter>资源文件\icon</Filter>
558+
</Image>
559+
<Image Include="res\comment.ico">
560+
<Filter>资源文件\icon</Filter>
561+
</Image>
562+
<Image Include="res\date_time.ico">
563+
<Filter>资源文件\icon</Filter>
564+
</Image>
556565
</ItemGroup>
557566
<ItemGroup>
558567
<Xml Include="lang.xml" />

SimpleNotePad/SimpleNotePadDlg.cpp

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -371,20 +371,32 @@ void CSimpleNotePadDlg::SaveConfig() const
371371
{
372372
CBaseDialog::SaveConfig();
373373
theApp.WriteProfileInt(L"config", L"always_on_top", m_always_on_top);
374-
SimplePack pack;
375-
pack << m_clipboard_items;
376-
theApp.WriteProfileBinary(L"config", L"clipboard_items", (LPBYTE)pack.data(), pack.size());
374+
375+
if (theApp.GetEditSettings().remember_clipboard_history)
376+
{
377+
SimplePack pack;
378+
pack << m_clipboard_items;
379+
theApp.WriteProfileBinary(L"config", L"clipboard_items", (LPBYTE)pack.data(), pack.size());
380+
}
381+
else
382+
{
383+
theApp.WriteProfileBinary(L"config", L"clipboard_items", nullptr, 0);
384+
}
377385
}
378386

379387
void CSimpleNotePadDlg::LoadConfig()
380388
{
381389
CBaseDialog::LoadConfig();
382390
m_always_on_top = (theApp.GetProfileInt(_T("config"), _T("always_on_top"), 0) != 0);
383-
std::string clipboard_items = theApp.GetBinary(L"config", L"clipboard_items");
384-
if (!clipboard_items.empty())
391+
392+
if (theApp.GetEditSettings().remember_clipboard_history)
385393
{
386-
SimpleUnpack unpack(clipboard_items.c_str(), clipboard_items.size());
387-
unpack >> m_clipboard_items;
394+
std::string clipboard_items = theApp.GetBinary(L"config", L"clipboard_items");
395+
if (!clipboard_items.empty())
396+
{
397+
SimpleUnpack unpack(clipboard_items.c_str(), clipboard_items.size());
398+
unpack >> m_clipboard_items;
399+
}
388400
}
389401
}
390402

@@ -755,10 +767,14 @@ void CSimpleNotePadDlg::InitMenuIcon()
755767
CMenuIcon::AddIconToMenuItem(menu, ID_EDIT_REPLACE, FALSE, theApp.GetMenuIcon(IDI_REPLACE));
756768
CMenuIcon::AddIconToMenuItem(menu, ID_FIND_PRIVIOUS, FALSE, theApp.GetMenuIcon(IDI_PREVIOUS));
757769
CMenuIcon::AddIconToMenuItem(menu, ID_FIND_NEXT, FALSE, theApp.GetMenuIcon(IDI_NEXT));
770+
CMenuIcon::AddIconToMenuItem(menu, ID_MARK_ALL, FALSE, theApp.GetMenuIcon(IDI_MARK));
758771
CMenuIcon::AddIconToMenuItem(menu, ID_EDIT_SELECT_ALL, FALSE, theApp.GetMenuIcon(IDI_SELECT_ALL));
772+
CMenuIcon::AddIconToMenuItem(menu, ID_EDIT_TIME_DATE, FALSE, theApp.GetMenuIcon(IDI_DATE_TIME));
773+
CMenuIcon::AddIconToMenuItem(GetMenu()->GetSubMenu(1)->GetSafeHmenu(), 17, TRUE, theApp.GetMenuIcon(IDI_CAPITAL));
759774
CMenuIcon::AddIconToMenuItem(menu, ID_CONVERT_TO_CAPITAL, FALSE, theApp.GetMenuIcon(IDI_FONT));
760775
CMenuIcon::AddIconToMenuItem(menu, ID_CONVERT_TO_LOWER_CASE, FALSE, theApp.GetMenuIcon(IDI_LOWER_CASE));
761776
CMenuIcon::AddIconToMenuItem(menu, ID_CONVERT_TO_TITLE_CASE, FALSE, theApp.GetMenuIcon(IDI_CAPITAL));
777+
CMenuIcon::AddIconToMenuItem(menu, ID_ADD_DELETE_COMMENT, FALSE, theApp.GetMenuIcon(IDI_COMMENT));
762778
CMenuIcon::AddIconToMenuItem(menu, ID_FORMAT_FONT, FALSE, theApp.GetMenuIcon(IDI_FONT));
763779
CMenuIcon::AddIconToMenuItem(GetMenu()->GetSubMenu(3)->GetSafeHmenu(), 7, TRUE, theApp.GetMenuIcon(IDI_LANGUAGE));
764780
if (!CWinVersionHelper::IsWindows7OrLater())
@@ -781,9 +797,11 @@ void CSimpleNotePadDlg::InitMenuIcon()
781797
CMenuIcon::AddIconToMenuItem(m_context_menu.GetSafeHmenu(), ID_EDIT_PASTE, FALSE, theApp.GetMenuIcon(IDI_PASTE));
782798
CMenuIcon::AddIconToMenuItem(m_context_menu.GetSubMenu(0)->GetSafeHmenu(), 6, TRUE, theApp.GetMenuIcon(IDI_CLIPBOARD));
783799
CMenuIcon::AddIconToMenuItem(m_context_menu.GetSafeHmenu(), ID_EDIT_SELECT_ALL, FALSE, theApp.GetMenuIcon(IDI_SELECT_ALL));
800+
CMenuIcon::AddIconToMenuItem(m_context_menu.GetSubMenu(0)->GetSafeHmenu(), 9, TRUE, theApp.GetMenuIcon(IDI_CAPITAL));
784801
CMenuIcon::AddIconToMenuItem(m_context_menu.GetSafeHmenu(), ID_CONVERT_TO_CAPITAL, FALSE, theApp.GetMenuIcon(IDI_FONT));
785802
CMenuIcon::AddIconToMenuItem(m_context_menu.GetSafeHmenu(), ID_CONVERT_TO_LOWER_CASE, FALSE, theApp.GetMenuIcon(IDI_LOWER_CASE));
786803
CMenuIcon::AddIconToMenuItem(m_context_menu.GetSafeHmenu(), ID_CONVERT_TO_TITLE_CASE, FALSE, theApp.GetMenuIcon(IDI_CAPITAL));
804+
CMenuIcon::AddIconToMenuItem(m_context_menu.GetSafeHmenu(), ID_ADD_DELETE_COMMENT, FALSE, theApp.GetMenuIcon(IDI_COMMENT));
787805
}
788806

789807
void CSimpleNotePadDlg::AddItemToClipboardHistory(const std::wstring& str)
@@ -1379,20 +1397,13 @@ void CSimpleNotePadDlg::OnFileSaveAs()
13791397
void CSimpleNotePadDlg::OnFormatFont()
13801398
{
13811399
// TODO: 在此添加命令处理程序代码
1382-
LOGFONT lf{ 0 }; //LOGFONT变量
1383-
//m_font.GetLogFont(&lf);
1384-
_tcscpy_s(lf.lfFaceName, LF_FACESIZE, theApp.GetEditSettings().font_name.GetString()); //将lf中的元素字体名设为“微软雅黑”
1400+
LOGFONT lf{ 0 };
1401+
_tcscpy_s(lf.lfFaceName, LF_FACESIZE, theApp.GetEditSettings().font_name.GetString()); //设置字体名称
13851402
lf.lfHeight = CCommon::FontSizeToLfHeight(theApp.GetEditSettings().font_size);
13861403
CFontDialog fontDlg(&lf); //构造字体对话框,初始选择字体为之前字体
1404+
fontDlg.m_cf.Flags &= ~CF_EFFECTS; //不显示删除线、下划线和文本颜色选项的控件
13871405
if (IDOK == fontDlg.DoModal()) // 显示字体对话框
13881406
{
1389-
////如果m_font已经关联了一个字体资源对象,则释放它
1390-
//if (m_font.m_hObject)
1391-
//{
1392-
// m_font.DeleteObject();
1393-
//}
1394-
//使用选定字体的LOGFONT创建新的字体
1395-
//m_font.CreateFontIndirect(fontDlg.m_cf.lpLogFont);
13961407
//获取字体信息
13971408
auto edit_settings = theApp.GetEditSettings();
13981409
edit_settings.font_name = fontDlg.m_cf.lpLogFont->lfFaceName;

SimpleNotePad/res/comment.ico

9.4 KB
Binary file not shown.

SimpleNotePad/res/copy.ico

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)