XTPSyntaxEditFindReplaceDlg.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:7k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPSyntaxEditFindReplaceDlg.h : header file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPSYNTAXEDITFINDREPLACEDLG_H__)
  22. #define __XTPSYNTAXEDITFINDREPLACEDLG_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. class CXTPSyntaxEditView;
  28. //===========================================================================
  29. // Summary:
  30. //      This class implements a Find and Replace dialogs for a SyntaxEdit
  31. //      control.
  32. //===========================================================================
  33. class _XTP_EXT_CLASS CXTPSyntaxEditFindReplaceDlg : public CDialog
  34. {
  35. //{{AFX_CODEJOCK_PRIVATE
  36. DECLARE_DYNAMIC(CXTPSyntaxEditFindReplaceDlg)
  37. //}}AFX_CODEJOCK_PRIVATE
  38. public:
  39. //-----------------------------------------------------------------------
  40. // Summary:
  41. //      Default object constructor.
  42. // Parameters:
  43. //      pParentWnd - pointer to a parent window.
  44. //-----------------------------------------------------------------------
  45. CXTPSyntaxEditFindReplaceDlg(CWnd* pParentWnd = NULL);
  46. int m_nSearchDirection;  // Store Search Direction: 0-up, 1-down.
  47. BOOL m_bMatchWholeWord;  // Store Match Whole Words option.
  48. BOOL m_bMatchCase;       // Store Match Case option.
  49. CString m_csFindText;    // Store text to find.
  50. CString m_csReplaceText; // Store text to replace.
  51. //{{AFX_CODEJOCK_PRIVATE
  52. enum { IDD = XTP_IDD_EDIT_SEARCH_REPLACE };
  53. CButton m_btnFindNext;
  54. CButton m_btnRadioUp;
  55. CButton m_btnRadioDown;
  56. CButton m_btnReplace;
  57. CButton m_btnReplaceAll;
  58. CComboBox m_wndFindCombo;
  59. CComboBox m_wndReplaceCombo;
  60. //}}AFX_CODEJOCK_PRIVATE
  61. //-----------------------------------------------------------------------
  62. // Summary:
  63. //      This method used to show find or replace dialog. If window is not
  64. //      created this method loads a dialog template from resources and
  65. //      created modeless dialog.
  66. // Parameters:
  67. //      pEditView   - A pointer to CXTPSyntaxEditView.
  68. //      bReplaceDlg - Set TRUE to create replace dialog or FALSE to create
  69. //                    find dialog.
  70. // Returns:
  71. //      TRUE if successful, FALSE otherwise.
  72. // See Also: ShowWindow
  73. //-----------------------------------------------------------------------
  74. BOOL ShowDialog(CXTPSyntaxEditCtrl* pEditCtrl, BOOL bReplaceDlg=FALSE);
  75. //-----------------------------------------------------------------------
  76. // Summary:
  77. //      This method used to get attached edit control.
  78. // Returns:
  79. //      Pointer to CXTPSyntaxEditCtrl.
  80. // See Also: ShowDialog
  81. //-----------------------------------------------------------------------
  82. CXTPSyntaxEditCtrl* GetEdirControl();
  83. //-----------------------------------------------------------------------
  84. // Summary:
  85. //      This method used to determine is 'Find and Replace' or only 'Find'
  86. //      dialog was created.
  87. // Returns:
  88. //      TRUE for 'Find and Replace' dialog, FALSE for 'Find' dialog.
  89. // See Also: ShowDialog
  90. //-----------------------------------------------------------------------
  91. BOOL IsReplaceDialog();
  92. protected:
  93. //-----------------------------------------------------------------------
  94. // Summary:
  95. //      This function used to move or add string at the top of history
  96. //      items (item 0).
  97. // Parameters:
  98. //      csText    - Text to move or add.
  99. //      arHistory - History array.
  100. //      wndCombo  - History combobox.
  101. // See Also:
  102. //-----------------------------------------------------------------------
  103. void UpdateHistoryCombo(const CString& csText, CStringArray& arHistory);
  104. void UpdateHistoryCombo(const CString& csText, CStringArray& arHistory, CComboBox& wndCombo); //<COMBINE CXTPSyntaxEditFindReplaceDlg::UpdateHistoryCombo@const CString&@CStringArray&>
  105. //-----------------------------------------------------------------------
  106. // Summary:
  107. //      Use this method to initialize combobox from strings array.
  108. // Parameters:
  109. //      arHistory - Array of strings.
  110. //      wndCombo  - A combobox control to add strings from array.
  111. // See Also: LoadHistory
  112. //-----------------------------------------------------------------------
  113. void InitHistoryCombo(CStringArray& arHistory, CComboBox& wndCombo);
  114. //-----------------------------------------------------------------------
  115. // Summary:
  116. //      Use this method to load from application profile history for
  117. //      find and replace comboboxes and state for other dialog controls.
  118. // Returns:
  119. //      TRUE if successful, FALSE otherwise.
  120. // See Also: SaveHistory
  121. //-----------------------------------------------------------------------
  122. BOOL LoadHistory();
  123. //-----------------------------------------------------------------------
  124. // Summary:
  125. //      Use this method to save to application profile history for
  126. //      find and replace comboboxes and state for other dialog controls.
  127. // Returns:
  128. //      TRUE if successful, FALSE otherwise.
  129. // See Also: LoadHistory
  130. //-----------------------------------------------------------------------
  131. BOOL SaveHistory();
  132. //-----------------------------------------------------------------------
  133. // Summary:
  134. //      This method update controls state (enable or disable) for buttons:
  135. //      Find, Replace and ReplaceAll.
  136. //-----------------------------------------------------------------------
  137. void EnableControls();
  138. //{{AFX_CODEJOCK_PRIVATE
  139. protected:
  140. virtual void DoDataExchange(CDataExchange* pDX);
  141. virtual BOOL OnInitDialog();
  142. virtual void OnCancel();
  143. afx_msg void OnEditChangeComboFind();
  144. afx_msg void OnSelendOkComboFind();
  145. afx_msg void OnChkMatchWholeWord();
  146. afx_msg void OnChkMatchCase();
  147. afx_msg void OnRadioUp();
  148. afx_msg void OnRadioDown();
  149. afx_msg void OnBtnFindNext();
  150. afx_msg void OnBtnReplace();
  151. afx_msg void OnBtnReplaceAll();
  152. afx_msg void OnEditChangeComboReplace();
  153. afx_msg void OnSelendOkComboReplace();
  154. DECLARE_MESSAGE_MAP()
  155. //}}AFX_CODEJOCK_PRIVATE
  156. protected:
  157. BOOL                m_bReplaceDlg;      // Stored dialog type.
  158. CPoint              m_ptWndPos;         // Stored window position.
  159. CXTPSyntaxEditCtrl* m_pEditCtrl;        // Stored attached view.
  160. };
  161. //////////////////////////////////////////////////////////////////////////
  162. AFX_INLINE CXTPSyntaxEditCtrl* CXTPSyntaxEditFindReplaceDlg::GetEdirControl() {
  163. return m_pEditCtrl;
  164. }
  165. AFX_INLINE BOOL CXTPSyntaxEditFindReplaceDlg::IsReplaceDialog() {
  166. return m_bReplaceDlg;
  167. }
  168. #endif // !defined(__XTPSYNTAXEDITFINDREPLACEDLG_H__)