windows-nt/Source/XPSP1/NT/base/headless/watcher/watcherview.h
2020-09-26 16:20:57 +08:00

104 lines
2.8 KiB
C++

// watcherView.h : interface of the CWatcherView class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_WATCHERVIEW_H__3A351A40_9441_4451_AA2B_C5D4C392CB1B__INCLUDED_)
#define AFX_WATCHERVIEW_H__3A351A40_9441_4451_AA2B_C5D4C392CB1B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ParameterDialog.h"
#include "watcherDoc.h"
#ifndef _WATCHER_SOCKET
#define _WATCHER_SOCKET
#include "WatcherSocket.h"
#endif
#define MAX_BELL_SIZE MAX_BUFFER_SIZE*8
class CWatcherView : public CView
{
protected: // create from serialization only
CWatcherView();
DECLARE_DYNCREATE(CWatcherView)
// Attributes
public:
CWatcherDoc* GetDocument();
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CWatcherView)
virtual void OnInitialUpdate();
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
//}}AFX_VIRTUAL
// Implementation
public:
void ProcessByte(BYTE byte);
virtual ~CWatcherView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
void ProcessBellSequence(CHAR *Buffer, int len);
LCID Locale;
int xpos;
int ypos;
int CharsInLine;
int height;
int width;
int position;
int index;
#ifdef _UNICODE
int dbcsIndex;
#endif
BOOL InEscape;
WatcherSocket *Socket;
CClientDC *cdc;
COLORREF background;
COLORREF foreground;
UINT CodePage;
int indexBell;
BOOL BellStarted;
BOOL InBell;
int ScrollTop;
int ScrollBottom;
BOOL seenM;
#ifdef _UNICODE
BYTE DBCSArray[2];
#endif
BYTE BellBuffer[MAX_BELL_SIZE];
BYTE EscapeBuffer[MAX_BUFFER_SIZE];
CRITICAL_SECTION mutex;
int GetTextWidth(TCHAR *Data, int number);
BOOL IsPrintable(TCHAR Char);
BOOL FinalCharacter(CHAR c);
BOOL IsLeadByte(BYTE byte);
void ProcessTextAttributes(PCHAR Buffer,int length);
void ProcessEscapeSequence(PCHAR Buffer, int length);
void PrintCharacter(BYTE byte);
//{{AFX_MSG(CWatcherView)
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnDestroy();
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG // debug version in watcherView.cpp
inline CWatcherDoc* CWatcherView::GetDocument()
{ return (CWatcherDoc*)m_pDocument; }
#endif
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WATCHERVIEW_H__3A351A40_9441_4451_AA2B_C5D4C392CB1B__INCLUDED_)