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

对话框与窗口

开发平台:

Visual C++

  1. // XTPSyntaxEditDoc.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 SYNTAX EDIT 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(__XTPSYNTAXEDITSYNTAXEDITDOC_H__)
  22. #define __XTPSYNTAXEDITSYNTAXEDITDOC_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. class CXTPSyntaxEditBufferManager;
  28. //===========================================================================
  29. // Summary: This class represents a Document portion of the Edit control. It
  30. //          extends functionality provided by CDocument class from MFC's
  31. //          document-view model implementation. CXTPSyntaxEditDoc class works
  32. //          together with CXTPSyntaxEditView and provides storage facilities for
  33. //          it.
  34. // See Also: CXTPSyntaxEditView
  35. //===========================================================================
  36. class _XTP_EXT_CLASS CXTPSyntaxEditDoc : public CDocument
  37. {
  38. protected:
  39. //-----------------------------------------------------------------------
  40. // Summary:
  41. //      Protected object constructor. Used by dynamic creation
  42. //-----------------------------------------------------------------------
  43. CXTPSyntaxEditDoc();
  44. //-----------------------------------------------------------------------
  45. // Summary:
  46. //      Destroys a CXTPSyntaxEditDoc object, handles cleanup and
  47. //      de-allocation.
  48. //-----------------------------------------------------------------------
  49. virtual ~CXTPSyntaxEditDoc();
  50. //{{AFX_CODEJOCK_PRIVATE
  51. DECLARE_DYNCREATE(CXTPSyntaxEditDoc)
  52. //}}AFX_CODEJOCK_PRIVATE
  53. // Attributes
  54. public:
  55. // Operations
  56. public:
  57. // Overrides
  58. //{{AFX_CODEJOCK_PRIVATE
  59. //{{AFX_VIRTUAL(CXTPSyntaxEditDoc)
  60. public:
  61. virtual void Serialize(CArchive& ar);   // overridden for document i/o
  62. virtual void OnChangedViewList();
  63. virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
  64. virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
  65. virtual void OnCloseDocument();
  66. protected:
  67. virtual BOOL OnNewDocument();
  68. //}}AFX_VIRTUAL
  69. //}}AFX_CODEJOCK_PRIVATE
  70. // Implementation
  71. public:
  72. //-----------------------------------------------------------------------
  73. // Summary:
  74. //      ReOpens already opened file
  75. // Returns:
  76. //      TRUE if reopened successfully, FALSE otherwise
  77. //-----------------------------------------------------------------------
  78. BOOL ReOpen();
  79. //-----------------------------------------------------------------------
  80. // Summary:
  81. //      Set the buffer manager pointer.
  82. // Parameters:
  83. //      pBuffer : [in] The buffer manager pointer to set.
  84. // See also:
  85. //      class CXTPSyntaxEditBufferManager
  86. //-----------------------------------------------------------------------
  87. void SetDataManager(CXTPSyntaxEditBufferManager *pBuffer);
  88. //-----------------------------------------------------------------------
  89. // Summary:
  90. //      Returns the edit buffer manager pointer.
  91. // Returns:
  92. //      Buffer manager pointer.
  93. // See also:
  94. //      class CXTPSyntaxEditBufferManager
  95. //-----------------------------------------------------------------------
  96. CXTPSyntaxEditBufferManager * GetDataManager();
  97. //-----------------------------------------------------------------------
  98. // Summary:
  99. //      Set the INI file path and load the configuration.
  100. // Parameters:
  101. //      szPath : [in] A valid path for searching the .ini files.
  102. // Remarks:
  103. //      Configuration will be reloaded.
  104. // Returns:
  105. //      TRUE if path is found, FALSE otherwise
  106. // See also:
  107. //      CXTPSyntaxEditCtrl::GetConfigFile().
  108. //-----------------------------------------------------------------------
  109. void SetConfigFile(LPCTSTR szPath);
  110. //-----------------------------------------------------------------------
  111. // Summary:
  112. //      Determines if auto reload of external files has been enabled.
  113. // Returns:
  114. //      TRUE if auto reload is enabled, FALSE otherwise.
  115. //-----------------------------------------------------------------------
  116. BOOL GetAutoReload() const;
  117. //-----------------------------------------------------------------------
  118. // Summary:
  119. //      Enables or disables automatic reloading of external files.
  120. // Parameters:
  121. //      bAutoReload : [in] TRUE to enable automatic reload of external
  122. //                             files, FALSE otherwise.
  123. //      bUpdateReg  : [in] Set this parameter as TRUE to update this setting
  124. //                         in the registry. It is FALSE by default.
  125. // Returns:
  126. //      TRUE if succeeded, FALSE otherwise.
  127. //-----------------------------------------------------------------------
  128. BOOL SetAutoReload(BOOL bAutoReload, BOOL bUpdateReg = FALSE);
  129. //-----------------------------------------------------------------------
  130. // Summary:
  131. //      This method checks if current file externally modified and prompt
  132. //      user to reload it. Works only when AutoReload option enabled.
  133. // Parameters:
  134. //      lpszPathName - A full file name.
  135. // Returns:
  136. //      TRUE if file modified and reloaded, FALSE otherwise.
  137. // See Also:
  138. //      GetAutoReload, SetAutoReload
  139. //-----------------------------------------------------------------------
  140. BOOL CheckFileModified(LPCTSTR lpszPathName);
  141. //-----------------------------------------------------------------------
  142. // Summary:
  143. //      Is current file read only.
  144. // Returns:
  145. //      TRUE if current file read only, FALSE otherwise.
  146. //-----------------------------------------------------------------------
  147. BOOL IsReadonly();
  148. //-----------------------------------------------------------------------
  149. // Summary:
  150. //     Use this function to get a first view for thye document object.
  151. // Returns:
  152. //     A pinter to CXTPSyntaxEditView object.
  153. // See Also:
  154. //     CDocument::GetFirstViewPosition, CDocument::GetNextView
  155. //-----------------------------------------------------------------------
  156. CXTPSyntaxEditView* GetFirstView();
  157. #ifdef _DEBUG
  158. //{{AFX_CODEJOCK_PRIVATE
  159. virtual void AssertValid() const;
  160. virtual void Dump(CDumpContext& dc) const;
  161. //}}AFX_CODEJOCK_PRIVATE
  162. #endif
  163. // Generated message map functions
  164. protected:
  165. virtual BOOL SaveFileData(LPCTSTR lpszPathName);
  166. //{{AFX_CODEJOCK_PRIVATE
  167. //{{AFX_MSG(CXTPSyntaxEditDoc)
  168. // NOTE - the ClassWizard will add and remove member functions here.
  169. //}}AFX_MSG
  170. DECLARE_MESSAGE_MAP()
  171. //}}AFX_CODEJOCK_PRIVATE
  172. private:
  173. CXTPSyntaxEditBufferManagerPtr m_ptrDataMan;    // The data manager pointer
  174. BOOL m_bAutoReload;         // TRUE if auto-reload of externally modified files is to be enabled.
  175. BOOL m_bOpened;             // TRUE if opened, FALSE otherwise
  176. BOOL m_bNewFile;            // TRUE if a new file is created or a file is opened
  177. BOOL m_bDocCreated;         // TRUE if document is created
  178. BOOL m_bReloading;          // TRUE if we are in progress of reloading document
  179. int m_iTopRow;              // Identifier of top row.
  180. int m_iHScrollPos;          // Scrolling position.
  181. WIN32_FIND_DATA m_curFileData;
  182. };
  183. //---------------------------------------------------------------------------
  184. // Summary:
  185. //      View update action. Defines in which way the view should be updated.
  186. //---------------------------------------------------------------------------
  187. enum XTPSyntaxEditUpdateViewHint
  188. {
  189. xtpEditHintUnknown,         // Updating action is unknown.
  190. xtpEditHintRefreshView,     // The view should be refreshed.
  191. xtpEditHintInitView,        // The view should be initialized.
  192. xtpEditHintSetFont,         // The view should update the display font.
  193. xtpEditHintSetLineNum,      // The view should update line number display.
  194. xtpEditHintSetSelMargin,    // The view should update the selection margin display.
  195. xtpEditHintSetAutoIndent,   // The view should update the auto-indent setting.
  196. xtpEditHintSetSyntaxColor,  // The view should update the syntax color setting.
  197. xtpEditHintUpdateScrollPos, // The view should update scrollbars positions.
  198. xtpEditHintLast,            // The last update code.
  199. };
  200. /////////////////////////////////////////////////////////////////////////////
  201. //{{AFX_INSERT_LOCATION}}
  202. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  203. #endif // !defined(__XTPSYNTAXEDITSYNTAXEDITDOC_H__)