OptionsQuickPaste.cpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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. //{{AFX_DATA_INIT(COptionsQuickPaste)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. memset(&m_LogFont, 0, sizeof(LOGFONT));
  20. }
  21. COptionsQuickPaste::~COptionsQuickPaste()
  22. {
  23. m_Font.DeleteObject();
  24. }
  25. void COptionsQuickPaste::DoDataExchange(CDataExchange* pDX)
  26. {
  27. CPropertyPage::DoDataExchange(pDX);
  28. //{{AFX_DATA_MAP(COptionsQuickPaste)
  29. DDX_Control(pDX, IDC_BUTTON_DEFAULT_FAULT, m_btDefaultButton);
  30. DDX_Control(pDX, IDC_BUTTON_FONT, m_btFont);
  31. DDX_Control(pDX, IDC_SHOW_TEXT_FOR_FIRST_TEN_HOT_KEYS, m_btShowText);
  32. DDX_Control(pDX, IDC_LINES_ROW, m_eLinesPerRow);
  33. DDX_Control(pDX, IDC_TRANS_PERC, m_eTransparencyPercent);
  34. DDX_Control(pDX, IDC_TRANSPARENCY, m_btEnableTransparency);
  35. DDX_Control(pDX, IDC_CTRL_CLICK, m_btUseCtrlNum);
  36. DDX_Control(pDX, IDC_HISTORY_START_TOP, m_btHistoryStartTop);
  37. DDX_Control(pDX, IDC_DESC_SHOW_LEADING_WHITESPACE, m_btDescShowLeadingWhiteSpace);
  38. //}}AFX_DATA_MAP
  39. }
  40. BEGIN_MESSAGE_MAP(COptionsQuickPaste, CPropertyPage)
  41. //{{AFX_MSG_MAP(COptionsQuickPaste)
  42. ON_BN_CLICKED(IDC_BUTTON_FONT, OnButtonFont)
  43. ON_BN_CLICKED(IDC_BUTTON_DEFAULT_FAULT, OnButtonDefaultFault)
  44. //}}AFX_MSG_MAP
  45. END_MESSAGE_MAP()
  46. /////////////////////////////////////////////////////////////////////////////
  47. // COptionsQuickPaste message handlers
  48. BOOL COptionsQuickPaste::OnInitDialog()
  49. {
  50. CPropertyPage::OnInitDialog();
  51. m_pParent = (COptionsSheet *)GetParent();
  52. m_btEnableTransparency.SetCheck(CGetSetOptions::GetEnableTransparency());
  53. m_eTransparencyPercent.SetNumber(CGetSetOptions::GetTransparencyPercent());
  54. m_eLinesPerRow.SetNumber(CGetSetOptions::GetLinesPerRow());
  55. if(CGetSetOptions::GetQuickPastePosition() == POS_AT_CARET)
  56. CheckDlgButton(IDC_AT_CARET, BST_CHECKED);
  57. else if(CGetSetOptions::GetQuickPastePosition() == POS_AT_CURSOR)
  58. CheckDlgButton(IDC_AT_CURSOR, BST_CHECKED);
  59. else if(CGetSetOptions::GetQuickPastePosition() == POS_AT_PREVIOUS)
  60. CheckDlgButton(IDC_AT_PREVIOUS, BST_CHECKED);
  61. m_btDescShowLeadingWhiteSpace.SetCheck(g_Opt.m_bDescShowLeadingWhiteSpace);
  62. m_btHistoryStartTop.SetCheck(g_Opt.m_bHistoryStartTop);
  63. m_btUseCtrlNum.SetCheck(CGetSetOptions::GetUseCtrlNumForFirstTenHotKeys());
  64. m_btShowText.SetCheck(CGetSetOptions::GetShowTextForFirstTenHotKeys());
  65. if(CGetSetOptions::GetFont(m_LogFont))
  66. {
  67. m_Font.CreateFontIndirect(&m_LogFont);
  68. m_btFont.SetFont(&m_Font);
  69. }
  70. else
  71. {
  72. CFont *ft = m_btFont.GetFont();
  73. ft->GetLogFont(&m_LogFont);
  74. }
  75. CString cs;
  76. cs.Format("Font - %s", m_LogFont.lfFaceName);
  77. m_btFont.SetWindowText(cs);
  78. return FALSE;
  79. }
  80. BOOL COptionsQuickPaste::OnApply()
  81. {
  82. CGetSetOptions::SetEnableTransparency(m_btEnableTransparency.GetCheck());
  83. CGetSetOptions::SetTransparencyPercent(m_eTransparencyPercent.GetNumber());
  84. CGetSetOptions::SetLinesPerRow(m_eLinesPerRow.GetNumber());
  85. if(IsDlgButtonChecked(IDC_AT_CARET))
  86. CGetSetOptions::SetQuickPastePosition(POS_AT_CARET);
  87. else if(IsDlgButtonChecked(IDC_AT_CURSOR))
  88. CGetSetOptions::SetQuickPastePosition(POS_AT_CURSOR);
  89. else if(IsDlgButtonChecked(IDC_AT_PREVIOUS))
  90. CGetSetOptions::SetQuickPastePosition(POS_AT_PREVIOUS);
  91. g_Opt.SetDescShowLeadingWhiteSpace( m_btDescShowLeadingWhiteSpace.GetCheck() );
  92. g_Opt.SetHistoryStartTop( m_btHistoryStartTop.GetCheck() );
  93. CGetSetOptions::SetUseCtrlNumForFirstTenHotKeys(m_btUseCtrlNum.GetCheck());
  94. CGetSetOptions::SetShowTextForFirstTenHotKeys(m_btShowText.GetCheck());
  95. if(m_LogFont.lfWeight != 0)
  96. {
  97. CGetSetOptions::SetFont(m_LogFont);
  98. }
  99. return CPropertyPage::OnApply();
  100. }
  101. void COptionsQuickPaste::OnButtonFont()
  102. {
  103. CFontDialog dlg(&m_LogFont);
  104. if(dlg.DoModal() == IDOK)
  105. {
  106. m_Font.DeleteObject();
  107. memcpy(&m_LogFont, dlg.m_cf.lpLogFont, sizeof(LOGFONT));
  108. m_Font.CreateFontIndirect(&m_LogFont);
  109. m_btFont.SetFont(&m_Font);
  110. CString cs;
  111. cs.Format("Font - %s", m_LogFont.lfFaceName);
  112. m_btFont.SetWindowText(cs);
  113. }
  114. }
  115. void COptionsQuickPaste::OnButtonDefaultFault()
  116. {
  117. CFont *ft = m_btDefaultButton.GetFont();
  118. ft->GetLogFont(&m_LogFont);
  119. memset(&m_LogFont, 0, sizeof(m_LogFont));
  120. m_LogFont.lfHeight = -11;
  121. m_LogFont.lfWeight = 400;
  122. m_LogFont.lfCharSet = 1;
  123. strcpy(m_LogFont.lfFaceName, "Tahoma");
  124. m_Font.DeleteObject();
  125. m_Font.CreateFontIndirect(&m_LogFont);
  126. m_btFont.SetFont(&m_Font);
  127. CString cs;
  128. cs.Format("Font - %s", m_LogFont.lfFaceName);
  129. m_btFont.SetWindowText(cs);
  130. }