logview.h
上传用户:surprise9
上传日期:2007-01-04
资源大小:426k
文件大小:4k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // logview.h : header file
  2. //
  3. enum // Log view log types
  4. {
  5. // default
  6. LV_DEFAULT,
  7. // Display styles for clients
  8. LV_COMMAND,
  9. LV_GET,
  10. LV_PUT,
  11. LV_ERROR,
  12. LV_QUOTE,
  13. LV_INFORM,
  14. LV_FILEACC,
  15. LV_CONNECT,
  16. LV_SYSTEM,
  17. // Standard log styles
  18. LV_LOGF_DEBUG,
  19. LV_LOGF_ERROR,
  20. LV_LOGF_FILEACC,
  21. LV_LOGF_INOUT,
  22. LV_LOGF_SECURITY,
  23. LV_LOGF_WARNINGS,
  24. LV_LOGF_SYSTEM,
  25. LV_LOGF_WINSOCK,
  26. // Other fonts - used internally *ONLY*
  27. LV_INTF_CMDLINE,
  28. LV_INVALID
  29. };
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CLogView view
  32. class DLL_WAR_CLIENT_ CLogBuffer;
  33. class CLoggedLine : public CObject
  34. {
  35. public:
  36. CLoggedLine(CLogBuffer *pBuf, int Mode, LPCSTR Text, int Len);
  37. ~CLoggedLine();
  38. CLogBuffer *m_Origin;
  39. CString m_Text;
  40. int m_Mode;
  41. };
  42. class DLL_WAR_CLIENT_ CLogBuffer : public CObject
  43. {
  44. public:
  45. int m_MaxLines;
  46. int m_NumLines;
  47. CObArray m_Lines;
  48. int m_ScrollLines;
  49. public:
  50. CLogBuffer();
  51. ~CLogBuffer();
  52. void ClearAll();
  53. BOOL AddLine(int Mode, LPCSTR Text, int Len);
  54. CLoggedLine *GetLine(int LineNo)
  55. {
  56. ASSERT(LineNo >= 0);
  57. ASSERT(LineNo < m_NumLines);
  58. ASSERT(LineNo < m_MaxLines);
  59. CLoggedLine *pLB = (CLoggedLine *)m_Lines[LineNo];
  60. ASSERT(pLB != NULL);
  61. ASSERT(AfxIsValidAddress(pLB, sizeof(CLoggedLine)));
  62. return pLB;
  63. }
  64. };
  65. class CLogBuffer;
  66. class DLL_WAR_CLIENT_ CLogView : public CScrollView
  67. {
  68. protected:
  69. CLogView();           // protected constructor used by dynamic creation
  70. DECLARE_DYNCREATE(CLogView)
  71. // Attributes
  72. public:
  73. int IsInitialized;
  74. CRect m_CurrentSizeDP; // Last size saved
  75. CRect m_RealSizeDP; // Current size, after adding new lines
  76. CSize m_ConfirmedLineWidth; // The max linewidth that si actually used
  77. CSize m_LineLP; // Line hignt and character width in LP
  78. CSize m_LineDP; // Line defaults in DP
  79. CLogBuffer m_Buf;
  80. CSize m_CmdLineHightDP;
  81. CSize m_CmdLineHightLP;
  82. CFont *m_Font[LV_INVALID];
  83. COLORREF m_Color[LV_INVALID];
  84. CWnd *m_pCommandWin; // Window to send commands to...
  85. BOOL m_ShowCommandLine;
  86. CString m_CmdBuf;
  87. int m_CursorPos;
  88. HCURSOR m_EditCursor;
  89. CRect m_CmdRectSave;
  90. CPoint m_CaretPos;
  91. CStringArray m_PrevCommands;
  92. int m_CurrentCommandIndex;
  93. // Operations
  94. public:
  95. void Initialize();
  96. void InitializeFonts(CDC *pDC);
  97. void AddLogLine(LPCSTR Text);
  98. void _AddLogLine(int Mode, LPCSTR Text, int Len);
  99. void LogMultilineBuffer(int Type, LPCSTR Buffer);
  100. CRect RecalculateClientRectDP(CDC *pDC);
  101. int GetLineHightLP() {return m_LineLP.cy; }
  102. int GetLineHightDP() {return m_LineDP.cy; }
  103. int GetCharWidthLP() {return m_LineLP.cx; }
  104. int GetCharWidthDP() {return m_LineDP.cx; }
  105. CRect GetCmdLineRectDP();
  106. CSize GetCmdLineSizeDP();
  107. CRect GetViewSize();
  108. void DrawCmdLine(CDC *pDC);
  109. void EnableCommandWindow(BOOL Enable);
  110. // Overrides
  111. // ClassWizard generated virtual function overrides
  112. //{{AFX_VIRTUAL(CLogView)
  113. public:
  114. virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
  115. virtual BOOL OnScroll(UINT nScrollCode, UINT nPos, BOOL bDoScroll = TRUE);
  116. virtual void Serialize(CArchive& ar);
  117. protected:
  118. virtual void OnDraw(CDC* pDC);      // overridden to draw this view
  119. virtual void OnInitialUpdate();     // first time after construct
  120. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  121. virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
  122. virtual BOOL OnScrollBy(CSize sizeScroll, BOOL bDoScroll = TRUE);
  123. virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
  124. virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
  125. //}}AFX_VIRTUAL
  126. // Implementation
  127. protected:
  128. virtual ~CLogView();
  129. #ifdef _DEBUG
  130. virtual void AssertValid() const;
  131. virtual void Dump(CDumpContext& dc) const;
  132. #endif
  133. // Generated message map functions
  134. //{{AFX_MSG(CLogView)
  135. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  136. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  137. afx_msg void OnKillFocus(CWnd* pNewWnd);
  138. afx_msg void OnSetFocus(CWnd* pOldWnd);
  139. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  140. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  141. afx_msg void OnSize(UINT nType, int cx, int cy);
  142. afx_msg void OnPaint();
  143. afx_msg void OnClearLog();
  144. //}}AFX_MSG
  145. DECLARE_MESSAGE_MAP()
  146. };
  147. /////////////////////////////////////////////////////////////////////////////