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

对话框与窗口

开发平台:

Visual C++

  1. // XTPSyntaxEditView.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(__XTPSYNTAXEDITSYNTAXEDITVIEW_H__)
  22. #define __XTPSYNTAXEDITSYNTAXEDITVIEW_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "Common/XTPDrawHelpers.h"
  28. class CXTPSyntaxEditFindReplaceDlg;
  29. //===========================================================================
  30. // Summary:
  31. //     Describes printing options for the Calendar Control.
  32. // Remarks:
  33. //     Use this class when you want to programmatically customize printing
  34. //     options for the Calendar control.
  35. //
  36. //     See each property description to examine which customization options
  37. //     are available.
  38. // See Also:
  39. //     CXTPPrintOptions
  40. //===========================================================================
  41. class _XTP_EXT_CLASS CXTPSyntaxEditViewPrintOptions : public CXTPPrintOptions
  42. {
  43. //{{AFX_CODEJOCK_PRIVATE
  44. DECLARE_DYNAMIC(CXTPSyntaxEditViewPrintOptions)
  45. //}}AFX_CODEJOCK_PRIVATE
  46. public:
  47. //-----------------------------------------------------------------------
  48. // Summary:
  49. //     Default constructor.
  50. //-----------------------------------------------------------------------
  51. CXTPSyntaxEditViewPrintOptions();
  52. protected:
  53. };
  54. //===========================================================================
  55. // Summary: This class represents a View portion of the Edit Control. It
  56. //          extends functionality provided by CView class from MFC's document-view
  57. //          model implementation. CXTPSyntaxEditView class works together with
  58. //          CXTPSyntaxEditDoc and provides facilities for it to be displayed on
  59. //          a screen or printed on a printer.
  60. // See Also: CXTPSyntaxEditDoc
  61. //===========================================================================
  62. class _XTP_EXT_CLASS CXTPSyntaxEditView : public CView
  63. {
  64. //{{AFX_CODEJOCK_PRIVATE
  65. friend class CXTPSyntaxEditDoc;
  66. DECLARE_DYNCREATE(CXTPSyntaxEditView)
  67. //}}AFX_CODEJOCK_PRIVATE
  68. protected:
  69. //-----------------------------------------------------------------------
  70. // Summary:
  71. //      Protected object constructor. Used by dynamic creation.
  72. //-----------------------------------------------------------------------
  73. CXTPSyntaxEditView();
  74. //-----------------------------------------------------------------------
  75. // Summary:
  76. //      Destroys a CXTPSyntaxEditView() object, handles cleanup and
  77. //          de-allocation.
  78. //-----------------------------------------------------------------------
  79. virtual ~CXTPSyntaxEditView();
  80. public:
  81. //-----------------------------------------------------------------------
  82. // Summary:
  83. //      Set the font of the edit control pointer.
  84. // Parameters:
  85. //      pLogfont   - [in] The LOGFONT pointer to be set.
  86. //      bUpdateReg - [in] Set TRUE to save font in registry.
  87. //-----------------------------------------------------------------------
  88. void SetFontIndirect(LOGFONT *pLogFont, BOOL bUpdateReg=FALSE);
  89. //-----------------------------------------------------------------------
  90. // Summary:
  91. //      Enable/Disable the line numbering.
  92. // Parameters:
  93. //      bEnable : [in] The LOGFONT pointer to be set.
  94. //-----------------------------------------------------------------------
  95. void SetLineNumbers(BOOL bEnable);
  96. //-----------------------------------------------------------------------
  97. // Summary:
  98. //      Returns the if horizontal scrollbar is enabled.
  99. // Returns:
  100. //      TRUE if horizontal scrollbar is enabled, FALSE otherwise.
  101. //-----------------------------------------------------------------------
  102. BOOL GetHorzScrollBar();
  103. //-----------------------------------------------------------------------
  104. // Summary:
  105. //      Returns the if vertical scrollbar is enabled.
  106. // Returns:
  107. //      TRUE if vertical scrollbar is enabled, FALSE otherwise.
  108. //-----------------------------------------------------------------------
  109. BOOL GetVertScrollBar();
  110. //-----------------------------------------------------------------------
  111. // Summary:
  112. //      Enable/disable scroll bar.
  113. // Parameters:
  114. //      bHorz         - [in] TRUE if horizontal scroll bar need to be enabled/disabled.
  115. //      bVert         - [in] TRUE if vertical scroll bar need to be enabled/disabled.
  116. //      bUpdateReg    - [in] Set TRUE to save these options in registry.
  117. //      bRecalcLayout - [in] Set TRUE to recalculate layout.
  118. // Returns:
  119. //      TRUE if scrollbars were updated, FALSE otherwise.
  120. //-----------------------------------------------------------------------
  121. BOOL SetScrollBars(BOOL bHorz, BOOL bVert, BOOL bUpdateReg=FALSE, BOOL bRecalcLayout=TRUE);
  122. //-----------------------------------------------------------------------
  123. // Summary:
  124. //      Enable/disables gutter.
  125. // Parameters:
  126. //      bEnable : [in] Pass TRUE/FALSE if gutter is to be enabled/disbaled.
  127. //-----------------------------------------------------------------------
  128. void SetSelMargin(BOOL bEnable);
  129. //-----------------------------------------------------------------------
  130. // Summary:
  131. //      Enable/disables auto indent.
  132. // Parameters:
  133. //      bEnable : [in] Pass TRUE/FALSE if auto indent is to be enabled/disbaled.
  134. //-----------------------------------------------------------------------
  135. void SetAutoIndent(BOOL bEnable);
  136. //-----------------------------------------------------------------------
  137. // Summary:
  138. //      Enable/disables syntax colorization.
  139. // Parameters:
  140. //      bEnable : [in] Pass TRUE/FALSE if syntax color is to be enabled/disbaled.
  141. //-----------------------------------------------------------------------
  142. void SetSyntaxColor(BOOL bEnable);
  143. //-----------------------------------------------------------------------
  144. // Summary:
  145. //      Updates all active sibling views.
  146. //-----------------------------------------------------------------------
  147. void UpdateAllViews();
  148. //-----------------------------------------------------------------------
  149. // Summary:
  150. //      Set the view ready for redraw.
  151. //-----------------------------------------------------------------------
  152. void SetDirty();
  153. //-----------------------------------------------------------------------
  154. // Summary:
  155. //      Returns the smart edit control pointer for this editor.
  156. // Returns:
  157. //      Edit control pointer.
  158. //-----------------------------------------------------------------------
  159. virtual CXTPSyntaxEditCtrl& GetEditCtrl();
  160. //-----------------------------------------------------------------------
  161. // Summary:
  162. //      Set external smart edit control for the view.
  163. // Parameters:
  164. //      pControl - A pointer to smart edit control object.
  165. // Remarks:
  166. //      Default edit control window is destroyed.
  167. //      InternalRelease will be called for external control object in the
  168. //      view object destructor.
  169. // See Also:
  170. //      GetEditCtrl
  171. //-----------------------------------------------------------------------
  172. virtual void SetEditCtrl(CXTPSyntaxEditCtrl* pControl);
  173. //-----------------------------------------------------------------------
  174. // Summary:
  175. //      Returns a buffer manager which maintains a buffer of a smart edit
  176. //      control.
  177. // Returns:
  178. //      Pointer to the CXTPSyntaxEditBufferManager object.
  179. //-----------------------------------------------------------------------
  180. CXTPSyntaxEditBufferManager* GetEditBuffer();
  181. //-----------------------------------------------------------------------
  182. // Summary:
  183. //      Use this function to get associated configuration manager.
  184. // Returns:
  185. //      Pointer to the associated configuration manager.
  186. //-----------------------------------------------------------------------
  187. CXTPSyntaxEditConfigurationManager* GetLexConfigurationManager();
  188. //-----------------------------------------------------------------------
  189. // Summary:
  190. //      Refreshes the whole document, recalculates the scrollbar.
  191. //-----------------------------------------------------------------------
  192. void Refresh();
  193. //-----------------------------------------------------------------------
  194. // Summary:
  195. //      Set the current top row.
  196. // Parameters:
  197. //      iRow : [in] Row to set as top row.
  198. // Returns:
  199. //      TRUE if successful, FALSE otherwise.
  200. //-----------------------------------------------------------------------
  201. BOOL SetTopRow(int iRow);
  202. //-----------------------------------------------------------------------
  203. // Summary:
  204. //      Return the topmost row.
  205. // Returns:
  206. //      The top row integer identifier.
  207. //-----------------------------------------------------------------------
  208. int GetTopRow();
  209. //-----------------------------------------------------------------------
  210. // Summary:
  211. //      Updates the sibling views while in split mode.
  212. // Parameters:
  213. //      dwUpdate : [in] Specifies the view update flags.
  214. //      pSender  : [in] Pointer to a sender object (or NULL).
  215. //-----------------------------------------------------------------------
  216. void UpdateScrollPos(CView* pSender, DWORD dwUpdate = XTP_EDIT_UPDATE_ALL);
  217. //-----------------------------------------------------------------------
  218. // Summary:
  219. //      Returns Document.
  220. // Returns:
  221. //      Pointer to CXTPSyntaxEditDoc.
  222. //-----------------------------------------------------------------------
  223. CXTPSyntaxEditDoc* GetDocument();
  224. //-----------------------------------------------------------------------
  225. // Summary:
  226. //      Returns the edit buffer manager pointer.
  227. // Returns:
  228. //      Buffer manager pointer.
  229. // See also:
  230. //      class CXTPSyntaxEditBufferManager
  231. //-----------------------------------------------------------------------
  232. CXTPSyntaxEditBufferManager * GetDataManager();
  233. //-----------------------------------------------------------------------
  234. // Summary:
  235. //      Returns pointer to the associated lexical parser.
  236. // Returns:
  237. //      Pointer to a XTPSyntaxEditLexAnalyser::CXTPSyntaxEditLexParser object.
  238. //-----------------------------------------------------------------------
  239. XTPSyntaxEditLexAnalyser::CXTPSyntaxEditLexParser* GetLexParser();
  240. //-----------------------------------------------------------------------
  241. // Summary:
  242. //      Determines is initial update was made.
  243. // Returns:
  244. //      TRUE if initial update was made; FALSE otherwise.
  245. //-----------------------------------------------------------------------
  246. BOOL IsInitialUpdateWasCalled();
  247. //-----------------------------------------------------------------------
  248. // Summary:
  249. //      Returns pointer to the attached Find/Replace dialog object.
  250. // Returns:
  251. //      Pointer to a CXTPSyntaxEditFindReplaceDlg object.
  252. //-----------------------------------------------------------------------
  253. virtual CXTPSyntaxEditFindReplaceDlg* GetFindReplaceDlg();
  254. //-----------------------------------------------------------------------
  255. // Summary:
  256. //      Used to get document title when printing.
  257. // Returns:
  258. //      Returns document title string.
  259. //-----------------------------------------------------------------------
  260. virtual CString GetPageTitle();
  261. //-----------------------------------------------------------------------
  262. // Summary:
  263. //     Call this method to access print options for this view.
  264. // Returns:
  265. //     Pointer to an object describing print options of this view.
  266. //-----------------------------------------------------------------------
  267. CXTPSyntaxEditViewPrintOptions* GetPrintOptions();
  268. //{{AFX_CODEJOCK_PRIVATE
  269. public:
  270. virtual void OnInitialUpdate();
  271. virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
  272. virtual DROPEFFECT OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
  273. virtual void OnDragLeave();
  274. virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
  275. virtual BOOL OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point);
  276. protected:
  277. afx_msg void OnPaint();
  278. virtual void OnDraw(CDC* pDC);      // overridden to draw this view
  279. virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
  280. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  281. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  282. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  283. virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
  284. virtual BOOL PaginateTo(CDC* pDC, CPrintInfo* pInfo);
  285. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  286. virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
  287. virtual void OnDropFiles(HDROP hDropInfo);
  288. virtual void OnUpdate(CView* pSender, LPARAM lHint=0L, CObject* pHint=NULL);
  289. //}}AFX_CODEJOCK_PRIVATE
  290. protected:
  291. //-----------------------------------------------------------------------
  292. // Summary:
  293. //      This function is a default handler for XTP_EDIT_NM_EDITCHANGING
  294. //      message which sent before editing applied.
  295. // Parameters:
  296. //      pNMHDR  - [in] Pointer to NMHDR structure.
  297. //      pResult - [out] Pointer to a LRESULT value. Set as TRUE to cancel editing
  298. //                or FALSE to allow editing.
  299. // Returns:
  300. //      TRUE is message handled, FALSE otherwise.
  301. // See Also: OnEditChanged, XTP_EDIT_NM_EDITCHANGING, XTP_EDIT_NM_EDITCHANGED
  302. //-----------------------------------------------------------------------
  303. virtual BOOL OnEditChanging(NMHDR* pNMHDR, LRESULT* pResult);
  304. //-----------------------------------------------------------------------
  305. // Summary:
  306. //      This function is a default handler for XTP_EDIT_NM_EDITCHANGED
  307. //       message which sent when editing applied.
  308. // Parameters:
  309. //      pNMHDR  - [in] Pointer to XTP_EDIT_NMHDR_EDITCHANGED structure.
  310. //      pResult - unused for this handler.
  311. // Returns:
  312. //      TRUE is message handled, FALSE otherwise.
  313. // See Also: XTP_EDIT_NM_EDITCHANGING, XTP_EDIT_NM_EDITCHANGED,
  314. //           XTP_EDIT_NMHDR_EDITCHANGED
  315. //-----------------------------------------------------------------------
  316. virtual BOOL OnEditChanged(NMHDR* pNMHDR, LRESULT* pResult);
  317. //-----------------------------------------------------------------------
  318. // Summary:
  319. //      This function is a default handler for XTP_EDIT_NM_SETDOCMODIFIED
  320. //      message which sent when document (edit control) modified state changed.
  321. // Parameters:
  322. //      pNMHDR  - [in] Pointer to XTP_EDIT_NMHDR_DOCMODIFIED structure.
  323. //      pResult - unused for this handler.
  324. // Returns:
  325. //      TRUE is message handled, FALSE otherwise.
  326. // See Also: XTP_EDIT_NM_SETDOCMODIFIED, XTP_EDIT_NMHDR_DOCMODIFIED
  327. //-----------------------------------------------------------------------
  328. virtual BOOL OnSetDocModified(NMHDR* pNMHDR, LRESULT* pResult);
  329. //-----------------------------------------------------------------------
  330. // Summary:
  331. //      This function is a default handler for XTP_EDIT_NM_DRAWBOOKMARK
  332. //      message which sent before draw bookmark.
  333. // Parameters:
  334. //      pNMHDR  - [in] Pointer to XTP_EDIT_SENMBOOKMARK structure.
  335. //      pResult - [out] Pointer to a LRESULT value. Set as TRUE to cancel
  336. //                default processing (bookmark drawing),
  337. //                or FALSE to allow default processing.
  338. // Returns:
  339. //      TRUE is message handled, FALSE otherwise.
  340. // See Also: XTP_EDIT_NM_DRAWBOOKMARK, XTP_EDIT_SENMBOOKMARK
  341. //-----------------------------------------------------------------------
  342. virtual BOOL OnDrawBookmark(NMHDR* pNMHDR, LRESULT* pResult);
  343. //-----------------------------------------------------------------------
  344. // Summary:
  345. //      This function is a default handler for XTP_EDIT_NM_ROWCOLCHANGED
  346. //      message which sent current row or col changed.
  347. // Parameters:
  348. //      pNMHDR  - [in] Pointer to XTP_EDIT_NMHDR_ROWCOLCHANGED  structure.
  349. //      pResult - unused for this handler.
  350. // Returns:
  351. //      TRUE is message handled, FALSE otherwise.
  352. // See Also: XTP_EDIT_NM_ROWCOLCHANGED, XTP_EDIT_NMHDR_ROWCOLCHANGED
  353. //-----------------------------------------------------------------------
  354. virtual BOOL OnRowColChanged(NMHDR* pNMHDR, LRESULT* pResult);
  355. //-----------------------------------------------------------------------
  356. // Summary:
  357. //      This function is a default handler for XTP_EDIT_NM_UPDATESCROLLPOS
  358. //      message which sent scroll bar position changed.
  359. // Parameters:
  360. //      pNMHDR  - [in] Pointer to XTP_EDIT_NM_UPDATESCROLLPOS structure.
  361. //      pResult - unused for this handler.
  362. // Returns:
  363. //      TRUE is message handled, FALSE otherwise.
  364. // See Also: XTP_EDIT_NM_UPDATESCROLLPOS
  365. //-----------------------------------------------------------------------
  366. virtual BOOL OnUpdateScrollPos(NMHDR* pNMHDR, LRESULT* pResult);
  367. //-----------------------------------------------------------------------
  368. // Summary:
  369. //      This function is a default handler for XTP_EDIT_NM_ENABLESCROLLBAR
  370. //      message which sent scroll bar state changed.
  371. // Parameters:
  372. //      pNMHDR  - [in] Pointer to XTP_EDIT_NMHDR_ENABLESCROLLBAR structure.
  373. //      pResult - unused for this handler.
  374. // Returns:
  375. //      TRUE is message handled, FALSE otherwise.
  376. // See Also: XTP_EDIT_NM_ENABLESCROLLBAR
  377. //-----------------------------------------------------------------------
  378. virtual BOOL OnEnableScrollBar(NMHDR* pNMHDR, LRESULT* pResult);
  379. //-----------------------------------------------------------------------
  380. // Summary:
  381. //      This function is a default handler for XTP_EDIT_NM_INSERTKEY
  382. //      message which sent when 'Ins' (VK_INSERT) key down (insert mode changed).
  383. // Parameters:
  384. //      pNMHDR  - [in] Pointer to NMHDR structure.
  385. //      pResult - unused for this handler.
  386. // Returns:
  387. //      TRUE is message handled, FALSE otherwise.
  388. // See Also: XTP_EDIT_NM_INSERTKEY
  389. //-----------------------------------------------------------------------
  390. virtual BOOL OnInsertKey(NMHDR* pNMHDR, LRESULT* pResult);
  391. //-----------------------------------------------------------------------
  392. // Summary:
  393. //      This function is a default handler for XTP_EDIT_NM_SELINIT
  394. //      message which sent when selection reseted.
  395. // Parameters:
  396. //      pNMHDR  - [in] Pointer to NMHDR structure.
  397. //      pResult - unused for this handler.
  398. // Returns:
  399. //      TRUE is message handled, FALSE otherwise.
  400. // See Also: XTP_EDIT_NM_SELINIT
  401. //-----------------------------------------------------------------------
  402. virtual BOOL OnSelInit(NMHDR* pNMHDR, LRESULT* pResult);
  403. //-----------------------------------------------------------------------
  404. // Summary:
  405. //      This function is a default handler for XTP_EDIT_NM_STARTOLEDRAG
  406. //      message which sent when OLE dragging started.
  407. // Parameters:
  408. //      pNMHDR  - [in] Pointer to NMHDR structure.
  409. //      pResult - unused for this handler.
  410. // Returns:
  411. //      TRUE is message handled, FALSE otherwise.
  412. // See Also: XTP_EDIT_NM_STARTOLEDRAG
  413. //-----------------------------------------------------------------------
  414. virtual BOOL OnStartOleDrag(NMHDR* pNMHDR, LRESULT* pResult);
  415. //-----------------------------------------------------------------------
  416. // Summary:
  417. //      This function is a default handler for XTP_EDIT_NM_MARGINCLICKED
  418. //      message which sent when left mouse button clicked on bookmarks area.
  419. // Parameters:
  420. //      pNMHDR  - [in] Pointer to XTP_EDIT_NMHDR_MARGINCLICKED structure.
  421. //      pResult - [out] Pointer to a LRESULT value. Set as TRUE to cancel
  422. //                default processing (breakpoint set/reset),
  423. //                or FALSE to allow default processing.
  424. // Returns:
  425. //      TRUE is message handled, FALSE otherwise.
  426. // See Also: XTP_EDIT_NM_MARGINCLICKED, XTP_EDIT_NMHDR_MARGINCLICKED
  427. //-----------------------------------------------------------------------
  428. virtual BOOL OnMarginClicked(NMHDR* pNMHDR, LRESULT* pResult);
  429. //-----------------------------------------------------------------------
  430. // Summary:
  431. //      This function is a default handler for XTP_EDIT_NM_PARSEEVENT
  432. //      message which reflect parser event.
  433. // Parameters:
  434. //      pNMHDR  - [in] Pointer to XTP_EDIT_NMHDR_PARSEEVENT structure.
  435. //      pResult - unused for this handler.
  436. // Returns:
  437. //      TRUE is message handled, FALSE otherwise.
  438. // See Also: XTP_EDIT_NM_PARSEEVENT, XTP_EDIT_NMHDR_PARSEEVENT
  439. //-----------------------------------------------------------------------
  440. virtual BOOL OnParseEvent(NMHDR* pNMHDR, LRESULT* pResult);
  441. protected:
  442. #ifdef _DEBUG
  443. virtual void AssertValid() const;
  444. virtual void Dump(CDumpContext& dc) const;
  445. #endif
  446. //-----------------------------------------------------------------------
  447. // Summary: Overwrite this method to customize the read-only file handling
  448. // Returns: TRUE if read-only file can be changed, FALSE otherwise
  449. //-----------------------------------------------------------------------
  450. virtual BOOL CanChangeReadonlyFile();
  451. //{{AFX_CODEJOCK_PRIVATE
  452. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  453. afx_msg void OnSize(UINT nType, int cx, int cy);
  454. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  455. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  456. afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  457. afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  458. afx_msg void OnSetFocus(CWnd* pOldWnd);
  459. afx_msg void OnEditUndo();
  460. afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);
  461. afx_msg void OnEditRedo();
  462. afx_msg void OnUpdateEditRedo(CCmdUI* pCmdUI);
  463. afx_msg void OnEditCut();
  464. afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI);
  465. afx_msg void OnEditCopy();
  466. afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);
  467. afx_msg void OnEditPaste();
  468. afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
  469. afx_msg void OnEditDelete();
  470. afx_msg void OnUpdateEditDelete(CCmdUI* pCmdUI);
  471. afx_msg void OnEditSelectAll();
  472. afx_msg void OnUpdateEditSelectAll(CCmdUI* pCmdUI);
  473. afx_msg void OnEditFind();
  474. afx_msg void OnUpdateEditFind(CCmdUI* pCmdUI);
  475. afx_msg void OnEditReplace();
  476. afx_msg void OnUpdateEditReplace(CCmdUI* pCmdUI);
  477. afx_msg void OnEditRepeat();
  478. afx_msg void OnUpdateEditRepeat(CCmdUI* pCmdUI);
  479. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  480. afx_msg void OnFilePageSetup();
  481. virtual void _EditFindReplace(BOOL bReplaceDlg);
  482. DECLARE_MESSAGE_MAP()
  483. //}}AFX_CODEJOCK_PRIVATE
  484. protected:
  485. //-----------------------------------------------------------------------
  486. // Summary:
  487. //      Performs specific update for all sibling views.
  488. // Parameters:
  489. //      pNMHDR_EC :     [in] Pointer to the parameters header.
  490. //      bTextChanged:   [in] This parameters is TRUE if document text was changed,
  491. //                           FALSE otherwise.
  492. // Remarks:
  493. //      This method process events from parser, updates the editing results
  494. //      or selection for all sibling views. It is called when an user edits
  495. //      text or switches between views or parser is running.
  496. //-----------------------------------------------------------------------
  497. void UpdateSiblings(XTP_EDIT_NMHDR_EDITCHANGED* pNMHDR_EC = NULL, BOOL bTextChanged = TRUE);
  498. //-----------------------------------------------------------------------
  499. // Summary:
  500. //      Called when a sibling view is needed to be updated.
  501. // Parameters:
  502. //      pSender : [in] The source to be updated from
  503. //      dwUpdate      : [in] Type of update. Allowed values are:
  504. //                      XTP_EDIT_UPDATE_HORZ, XTP_EDIT_UPDATE_VERT, XTP_EDIT_UPDATE_DIAG.
  505. // See also
  506. //  class CXTPSyntaxEditView
  507. //-----------------------------------------------------------------------
  508. void UpdateSiblingScrollPos(CXTPSyntaxEditView* pSender, DWORD dwUpdate);
  509. //-----------------------------------------------------------------------
  510. // Summary:
  511. //      Returns the view pointer of a certain pane of the splitter
  512. // Parameters:
  513. //      nRow : [in] Row of the splitter frame.
  514. //      nCol : [in] Column of the splitter frame.
  515. // Returns:
  516. //      Pointer to CXTPSyntaxEditView.
  517. // See also:
  518. //      class CXTPSyntaxEditView
  519. //-----------------------------------------------------------------------
  520. CXTPSyntaxEditView* GetSplitterView(int nRow, int nCol);
  521. //-----------------------------------------------------------------------
  522. // Summary:
  523. //      Starts OLE drag
  524. //-----------------------------------------------------------------------
  525. void StartOleDrag();
  526. LOGFONT m_lfPrevFont; // Temporarily stores editor font
  527. int m_nPrevTopRow;  // Temporarily stores previous top row
  528. protected:
  529. int m_nParserThreadPriority_WhenActive;     // Parser priority (active state).
  530. int m_nParserThreadPriority_WhenInactive;   // Parser priority (inactive state).
  531. BOOL m_bDraggingOver;           // TRUE if dragover is going on, FALSE otherwise
  532. BOOL m_bDraggingStartedHere;    // TRUE if dragging is started in this view, FALSE otherwise
  533. BOOL m_bScrollBars; // Whether to create control with own scrollbars, or
  534.                     // let to manage scrolling for parent window
  535. //-----------------------------------------------------------------------
  536. static CXTPSyntaxEditView *ms_pTargetView;  // Target view pointer to be filled in by drag-drop routine
  537. static BOOL ms_bDroppedHere;        // TRUE if text is dropped in this view, FALSE otherwise
  538. static POINT ms_ptDropPos;          // Stores drop mouse position.
  539. static DWORD_PTR ms_dwSignature;    // A signature used during drag-drop operation
  540. BOOL m_bOleDragging;                // TRUE if OLE dragging is enabled, FALSE otherwise
  541. BOOL m_bFilesDragging;              // TRUE when dragging files, FALSE otherwise.
  542. COleDropTarget m_dropTarget;        // OLE drop target
  543. CSize m_szPage;                     // Page size for printing or preview
  544. int m_iTopRow;                      // Top row for display
  545. CWnd* m_pParentWnd;
  546. CXTPSyntaxEditCtrl  m_wndEditCtrl;  // Default Edit control instance
  547. CXTPSyntaxEditCtrl* m_pEditCtrl;    // Edit control instance
  548. static CXTPSyntaxEditFindReplaceDlg* m_pFindReplaceDlg; // Pointer to find or replace dialog.
  549. BOOL m_bInitialUpdateWasCalled; // Indicate that OnInitialUpdate was called.
  550. BOOL m_bOnSizeRunning;          // Indicate that OnSize message handler is in progress.
  551. CXTPSyntaxEditViewPrintOptions* m_pPrintOptions; // Printing options.
  552. CUIntArray m_aPageStart;            // Stores Printed page start row indexes.
  553. public:
  554. BOOL    m_bPrintDirect;             // if TRUE - the Print Dialog is bypassed. FALSE by default.
  555. BOOL    m_bResizeControlWithView;   // if FALSE - attached Calendar control will not be resized with view. TRUE by default.
  556. };
  557. /////////////////////////////////////////////////////////////////////////////
  558. AFX_INLINE CXTPSyntaxEditBufferManager* CXTPSyntaxEditView::GetEditBuffer() {
  559. return GetEditCtrl().GetEditBuffer();
  560. }
  561. AFX_INLINE CXTPSyntaxEditConfigurationManager* CXTPSyntaxEditView::GetLexConfigurationManager() {
  562. return GetEditCtrl().GetLexConfigurationManager();
  563. }
  564. AFX_INLINE CXTPSyntaxEditViewPrintOptions* CXTPSyntaxEditView::GetPrintOptions() {
  565. return m_pPrintOptions;
  566. }
  567. //{{AFX_INSERT_LOCATION}}
  568. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  569. #endif // !defined(__XTPSYNTAXEDITSYNTAXEDITVIEW_H__)