OptionsQuickPaste.cpp 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. // OptionsQuickPaste.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "CP_Main.h"
  5. #include "OptionsQuickPaste.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // COptionsQuickPaste property page
  13. IMPLEMENT_DYNCREATE(COptionsQuickPaste, CPropertyPage)
  14. COptionsQuickPaste::COptionsQuickPaste() : CPropertyPage(COptionsQuickPaste::IDD)
  15. {
  16. m_csTitle = theApp.m_Language.GetString("QuickPasteTitle", "Quick Paste");
  17. m_psp.pszTitle = m_csTitle;
  18. m_psp.dwFlags |= PSP_USETITLE;
  19. //{{AFX_DATA_INIT(COptionsQuickPaste)
  20. // NOTE: the ClassWizard will add member initialization here
  21. //}}AFX_DATA_INIT
  22. memset(&m_LogFont, 0, sizeof(LOGFONT));
  23. }
  24. COptionsQuickPaste::~COptionsQuickPaste()
  25. {
  26. m_Font.DeleteObject();
  27. }
  28. void COptionsQuickPaste::DoDataExchange(CDataExchange* pDX)
  29. {
  30. CPropertyPage::DoDataExchange(pDX);
  31. //{{AFX_DATA_MAP(COptionsQuickPaste)
  32. DDX_Control(pDX, IDC_CHECK_ENTIRE_WINDOW_IS_VISIBLE, m_EnsureEntireWindowVisible);
  33. DDX_Control(pDX, IDC_CHECK_SHOW_ALL_IN_MAIN_LIST, m_ShowAllInMainList);
  34. DDX_Control(pDX, IDC_CHECK_FIND_AS_YOU_TYPE, m_FindAsYouType);
  35. DDX_Control(pDX, IDC_DRAW_RTF, m_btDrawRTF);
  36. DDX_Control(pDX, IDC_SHOW_THUMBNAILS, m_btShowThumbnails);
  37. DDX_Control(pDX, IDC_BUTTON_DEFAULT_FAULT, m_btDefaultButton);
  38. DDX_Control(pDX, IDC_BUTTON_FONT, m_btFont);
  39. DDX_Control(pDX, IDC_SHOW_TEXT_FOR_FIRST_TEN_HOT_KEYS, m_btShowText);
  40. DDX_Control(pDX, IDC_LINES_ROW, m_eLinesPerRow);
  41. DDX_Control(pDX, IDC_TRANS_PERC, m_eTransparencyPercent);
  42. DDX_Control(pDX, IDC_TRANSPARENCY, m_btEnableTransparency);
  43. DDX_Control(pDX, IDC_CTRL_CLICK, m_btUseCtrlNum);
  44. DDX_Control(pDX, IDC_HISTORY_START_TOP, m_btHistoryStartTop);
  45. DDX_Control(pDX, IDC_DESC_SHOW_LEADING_WHITESPACE, m_btDescShowLeadingWhiteSpace);
  46. //}}AFX_DATA_MAP
  47. DDX_Control(pDX, IDC_CHECK_PROMPT_DELETE_CLIP, m_PromptForDelete);
  48. }
  49. BEGIN_MESSAGE_MAP(COptionsQuickPaste, CPropertyPage)
  50. //{{AFX_MSG_MAP(COptionsQuickPaste)
  51. ON_BN_CLICKED(IDC_BUTTON_FONT, OnButtonFont)
  52. ON_BN_CLICKED(IDC_BUTTON_DEFAULT_FAULT, OnButtonDefaultFault)
  53. //}}AFX_MSG_MAP
  54. END_MESSAGE_MAP()
  55. /////////////////////////////////////////////////////////////////////////////
  56. // COptionsQuickPaste message handlers
  57. BOOL COptionsQuickPaste::OnInitDialog()
  58. {
  59. CPropertyPage::OnInitDialog();
  60. m_pParent = (COptionsSheet *)GetParent();
  61. m_btEnableTransparency.SetCheck(CGetSetOptions::GetEnableTransparency());
  62. m_eTransparencyPercent.SetNumber(CGetSetOptions::GetTransparencyPercent());
  63. m_eLinesPerRow.SetNumber(CGetSetOptions::GetLinesPerRow());
  64. m_btShowThumbnails.SetCheck(g_Opt.m_bDrawThumbnail);
  65. m_btDrawRTF.SetCheck(g_Opt.m_bDrawRTF);
  66. m_EnsureEntireWindowVisible.SetCheck(g_Opt.m_bEnsureEntireWindowCanBeSeen);
  67. m_ShowAllInMainList.SetCheck(g_Opt.m_bShowAllClipsInMainList);
  68. m_FindAsYouType.SetCheck(g_Opt.m_bFindAsYouType);
  69. if(CGetSetOptions::GetQuickPastePosition() == POS_AT_CARET)
  70. CheckDlgButton(IDC_AT_CARET, BST_CHECKED);
  71. else if(CGetSetOptions::GetQuickPastePosition() == POS_AT_CURSOR)
  72. CheckDlgButton(IDC_AT_CURSOR, BST_CHECKED);
  73. else if(CGetSetOptions::GetQuickPastePosition() == POS_AT_PREVIOUS)
  74. CheckDlgButton(IDC_AT_PREVIOUS, BST_CHECKED);
  75. m_btDescShowLeadingWhiteSpace.SetCheck(g_Opt.m_bDescShowLeadingWhiteSpace);
  76. m_btHistoryStartTop.SetCheck(g_Opt.m_bHistoryStartTop);
  77. m_btUseCtrlNum.SetCheck(CGetSetOptions::GetUseCtrlNumForFirstTenHotKeys());
  78. m_btShowText.SetCheck(CGetSetOptions::GetShowTextForFirstTenHotKeys());
  79. m_PromptForDelete.SetCheck(CGetSetOptions::GetPromptWhenDeletingClips());
  80. if(CGetSetOptions::GetFont(m_LogFont))
  81. {
  82. m_Font.CreateFontIndirect(&m_LogFont);
  83. m_btFont.SetFont(&m_Font);
  84. }
  85. else
  86. {
  87. CFont *ft = m_btFont.GetFont();
  88. ft->GetLogFont(&m_LogFont);
  89. }
  90. CString cs;
  91. cs.Format(_T("Font - %s"), m_LogFont.lfFaceName);
  92. m_btFont.SetWindowText(cs);
  93. theApp.m_Language.UpdateOptionQuickPaste(this);
  94. return FALSE;
  95. }
  96. BOOL COptionsQuickPaste::OnApply()
  97. {
  98. CGetSetOptions::SetEnableTransparency(m_btEnableTransparency.GetCheck());
  99. CGetSetOptions::SetTransparencyPercent(m_eTransparencyPercent.GetNumber());
  100. CGetSetOptions::SetLinesPerRow(m_eLinesPerRow.GetNumber());
  101. if(IsDlgButtonChecked(IDC_AT_CARET))
  102. CGetSetOptions::SetQuickPastePosition(POS_AT_CARET);
  103. else if(IsDlgButtonChecked(IDC_AT_CURSOR))
  104. CGetSetOptions::SetQuickPastePosition(POS_AT_CURSOR);
  105. else if(IsDlgButtonChecked(IDC_AT_PREVIOUS))
  106. CGetSetOptions::SetQuickPastePosition(POS_AT_PREVIOUS);
  107. g_Opt.SetDescShowLeadingWhiteSpace( m_btDescShowLeadingWhiteSpace.GetCheck() );
  108. g_Opt.SetHistoryStartTop( m_btHistoryStartTop.GetCheck() );
  109. CGetSetOptions::SetUseCtrlNumForFirstTenHotKeys(m_btUseCtrlNum.GetCheck());
  110. CGetSetOptions::SetShowTextForFirstTenHotKeys(m_btShowText.GetCheck());
  111. CGetSetOptions::SetDrawThumbnail(m_btShowThumbnails.GetCheck());
  112. CGetSetOptions::SetDrawRTF(m_btDrawRTF.GetCheck());
  113. CGetSetOptions::SetEnsureEntireWindowCanBeSeen(m_EnsureEntireWindowVisible.GetCheck());
  114. CGetSetOptions::SetShowAllClipsInMainList(m_ShowAllInMainList.GetCheck());
  115. CGetSetOptions::SetFindAsYouType(m_FindAsYouType.GetCheck());
  116. CGetSetOptions::SetPromptWhenDeletingClips(m_PromptForDelete.GetCheck());
  117. if(m_LogFont.lfWeight != 0)
  118. {
  119. CGetSetOptions::SetFont(m_LogFont);
  120. }
  121. return CPropertyPage::OnApply();
  122. }
  123. void COptionsQuickPaste::OnButtonFont()
  124. {
  125. CFontDialog dlg(&m_LogFont);
  126. if(dlg.DoModal() == IDOK)
  127. {
  128. m_Font.DeleteObject();
  129. memcpy(&m_LogFont, dlg.m_cf.lpLogFont, sizeof(LOGFONT));
  130. m_Font.CreateFontIndirect(&m_LogFont);
  131. m_btFont.SetFont(&m_Font);
  132. CString cs;
  133. cs.Format(_T("Font - %s"), m_LogFont.lfFaceName);
  134. m_btFont.SetWindowText(cs);
  135. }
  136. }
  137. void COptionsQuickPaste::OnButtonDefaultFault()
  138. {
  139. CFont *ft = m_btDefaultButton.GetFont();
  140. ft->GetLogFont(&m_LogFont);
  141. memset(&m_LogFont, 0, sizeof(m_LogFont));
  142. m_LogFont.lfHeight = -11;
  143. m_LogFont.lfWeight = 400;
  144. m_LogFont.lfCharSet = 1;
  145. STRCPY(m_LogFont.lfFaceName, _T("@Arial Unicode MS"));
  146. m_Font.DeleteObject();
  147. m_Font.CreateFontIndirect(&m_LogFont);
  148. m_btFont.SetFont(&m_Font);
  149. CString cs;
  150. cs.Format(_T("Font - %s"), m_LogFont.lfFaceName);
  151. m_btFont.SetWindowText(cs);
  152. }