cd766d427db5625e687a8cb01dca39bcef6a313e
[reactos.git] / rosapps / sysutils / regexpl / Console.h
1 // Console.h: interface for the CConsole class.
2 //
3 //////////////////////////////////////////////////////////////////////
4
5 #if !defined(CONSOLE_H__FEF419EC_6EB6_11D3_907D_204C4F4F5020__INCLUDED_)
6 #define CONSOLE_H__FEF419EC_6EB6_11D3_907D_204C4F4F5020__INCLUDED_
7
8 #include "TextHistory.h"
9
10 typedef const TCHAR * (*ReplaceCompletionCallback)(unsigned __int64& rnIndex, const BOOL *pblnForward,
11 const TCHAR *pchContext, const TCHAR *pchBegin);
12
13 class CConsole
14 {
15 public:
16 void EnableWrite();
17 void DisableWrite();
18 void SetReplaceCompletionCallback(ReplaceCompletionCallback pfCallback);
19 BOOL SetInsertMode(BOOL blnInsetMode);
20 void BeginScrollingOperation();
21 TCHAR * Init(DWORD dwBufferSize, DWORD dwMaxHistoryLines = 0);
22 BOOL ReadLine();
23 BOOL FlushInputBuffer();
24 // BOOL SetOutputMode(DWORD dwMode);
25 // BOOL SetInputMode(DWORD dwMode);
26 BOOL SetTextAttribute(WORD wAttributes);
27 BOOL GetTextAttribute(WORD& rwAttributes);
28 BOOL SetTitle(TCHAR *p);
29 BOOL Write(const TCHAR *p, DWORD dwChars = 0);
30 CConsole();
31 virtual ~CConsole();
32 private:
33 HANDLE m_hStdOut;
34 HANDLE m_hStdIn;
35 HANDLE m_hStdError;
36 COORD m_CursorPosition;
37 COORD m_BufferSize;
38 WORD m_wAttributes;
39 SHORT m_Lines;
40 BOOL WriteString(TCHAR *pchString, COORD Position);
41 BOOL WriteChar(TCHAR ch);
42 BOOL m_blnInsetMode; // TRUE - insert, FALSE - overwrite
43 DWORD m_dwInsertModeCursorHeight;
44 DWORD m_dwOverwriteModeCursorHeight;
45 TCHAR *m_pchBuffer;
46 TCHAR *m_pchBuffer1;
47 TCHAR *m_pchBuffer2;
48 DWORD m_dwBufferSize;
49 ReplaceCompletionCallback m_pfReplaceCompletionCallback;
50 SHORT m_LinesScrolled;
51 BOOL m_blnMoreMode;
52 CTextHistory m_History;
53 BOOL m_blnDisableWrite;
54 DWORD m_dwOldOutputMode;
55 DWORD m_dwOldInputMode;
56 BOOL m_blnOldInputModeSaved;
57 BOOL m_blnOldOutputModeSaved;
58 };
59
60 #endif // !defined(CONSOLE_H__FEF419EC_6EB6_11D3_907D_204C4F4F5020__INCLUDED_)