Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
4.0 KiB

4 years ago
  1. /************************************************************************
  2. * *
  3. * PAGEOPTI.CPP *
  4. * *
  5. * Copyright (C) Microsoft Corporation 1995 *
  6. * All Rights reserved. *
  7. * *
  8. ************************************************************************/
  9. #include "stdafx.h"
  10. #include "resource.h"
  11. #include "pageopti.h"
  12. #ifdef _DEBUG
  13. #undef THIS_FILE
  14. static char BASED_CODE THIS_FILE[] = __FILE__;
  15. #endif
  16. CPageOptions::CPageOptions(COptions* pcoption) :
  17. COptionsPage(CPageOptions::IDD)
  18. {
  19. pcopt = pcoption;
  20. //{{AFX_DATA_INIT(CPageOptions)
  21. //}}AFX_DATA_INIT
  22. m_fNotes = !pcopt->fSupressNotes;
  23. m_fVer3Help = pcopt->fVersion3;
  24. m_fReport = pcopt->fReport;
  25. m_cstrContents = (pcopt->pszContents) ?
  26. pcopt->pszContents : txtZeroLength;
  27. m_cstrCopyRight = (pcopt->pszCopyRight) ?
  28. pcopt->pszCopyRight : txtZeroLength;
  29. m_cstrTitle = (pcopt->pszTitle) ?
  30. pcopt->pszTitle : txtZeroLength;
  31. m_cstrCitation = (pcopt->pszCitation) ?
  32. pcopt->pszCitation : txtZeroLength;
  33. }
  34. void CPageOptions::DoDataExchange(CDataExchange* pDX)
  35. {
  36. CPropertyPage::DoDataExchange(pDX);
  37. //{{AFX_DATA_MAP(CPageOptions)
  38. DDX_Text(pDX, IDC_CONTENTS, m_cstrContents);
  39. DDX_Text(pDX, IDC_COPYRIGHT, m_cstrCopyRight);
  40. DDV_MaxChars(pDX, m_cstrCopyRight, CBMAXCOPYRIGHT);
  41. DDX_Text(pDX, IDC_TITLE, m_cstrTitle);
  42. DDV_MaxChars(pDX, m_cstrTitle, CBMAXTITLE);
  43. DDX_Text(pDX, IDC_CITATION, m_cstrCitation);
  44. // DDX_Check(pDX, IDC_VERSION_3, m_fVer3Help);
  45. DDX_Check(pDX, IDC_NOTES, m_fNotes);
  46. DDX_Check(pDX, IDC_CHECK_REPORT, m_fReport);
  47. //}}AFX_DATA_MAP
  48. if (!pDX->m_bSaveAndValidate) { // initialization
  49. ((CEdit*) GetDlgItem(IDC_TITLE))->
  50. LimitText(CBMAXTITLE);
  51. ((CEdit*) GetDlgItem(IDC_COPYRIGHT))->
  52. LimitText(CBMAXCOPYRIGHT);
  53. }
  54. else { // move the values back into document
  55. pcopt->fSupressNotes = !m_fNotes;
  56. pcopt->fVersion3 = m_fVer3Help;
  57. pcopt->fReport = m_fReport;
  58. if (pcopt->pszCopyRight)
  59. lcFree(pcopt->pszCopyRight);
  60. if (m_cstrCopyRight.IsEmpty())
  61. pcopt->pszCopyRight = NULL;
  62. else
  63. pcopt->pszCopyRight = lcStrDup(m_cstrCopyRight);
  64. if (pcopt->pszTitle)
  65. lcFree(pcopt->pszTitle);
  66. if (m_cstrTitle.IsEmpty())
  67. pcopt->pszTitle = NULL;
  68. else
  69. pcopt->pszTitle = lcStrDup(m_cstrTitle);
  70. if (pcopt->pszCitation)
  71. lcFree(pcopt->pszCitation);
  72. if (m_cstrCitation.IsEmpty())
  73. pcopt->pszCitation = NULL;
  74. else
  75. pcopt->pszCitation = lcStrDup(m_cstrCitation);
  76. if (pcopt->pszContents)
  77. lcFree(pcopt->pszContents);
  78. if (m_cstrContents.IsEmpty())
  79. pcopt->pszContents = NULL;
  80. else
  81. pcopt->pszContents = lcStrDup(m_cstrContents);
  82. }
  83. }
  84. BOOL CPageOptions::OnInitDialog()
  85. {
  86. SetChicagoDialogStyles(m_hWnd, FALSE);
  87. CPropertyPage::OnInitDialog();
  88. return TRUE; // return TRUE unless you set the focus to a control
  89. }
  90. BEGIN_MESSAGE_MAP(CPageOptions, CPropertyPage)
  91. //{{AFX_MSG_MAP(CPageOptions)
  92. // NOTE: the ClassWizard will add message map macros here
  93. //}}AFX_MSG_MAP
  94. ON_MESSAGE(WM_CONTEXTMENU, OnContextMenu)
  95. ON_MESSAGE(WM_HELP, OnHelp)
  96. END_MESSAGE_MAP()
  97. /////////////////////////////////////////////////////////////////////////////
  98. // CPageOptions message handlers
  99. static DWORD aHelpIDs[] = {
  100. IDC_CONTENTS, IDH_DEFAULT_TOPIC, // Default Topic edit control
  101. IDC_TITLE, IDH_HELP_TITLE, // Help Title edit control
  102. IDC_NOTES, IDH_NO_NOTES, // Display notes check box
  103. IDC_CHECK_REPORT, IDH_REPORT_ON_PROGRESS, // Report progress check box
  104. IDC_COPYRIGHT, IDH_HELP_COPYRIGHT, // About box
  105. IDC_CITATION, IDH_HELP_CITATION, // Copy/Print
  106. IDC_GROUP, (DWORD) -1L,
  107. IDC_GROUP2, (DWORD) -1L,
  108. 0, 0
  109. };
  110. LRESULT CPageOptions::OnContextMenu(WPARAM wParam, LPARAM lParam)
  111. {
  112. ::WinHelp((HWND) wParam,
  113. AfxGetApp()->m_pszHelpFilePath,
  114. HELP_CONTEXTMENU, (DWORD) (LPVOID) aHelpIDs);
  115. return 0;
  116. }
  117. LRESULT CPageOptions::OnHelp(WPARAM wParam, LPARAM lParam)
  118. {
  119. ::WinHelp((HWND) ((LPHELPINFO) lParam)->hItemHandle,
  120. AfxGetApp()->m_pszHelpFilePath,
  121. HELP_WM_HELP, (DWORD) (LPVOID) aHelpIDs);
  122. return 0;
  123. }