windows-nt/Source/XPSP1/NT/base/cluster/utils/cluslog/capplicationwindow.h
2020-09-26 16:20:57 +08:00

143 lines
4.4 KiB
C++

//
// CApplicationWindow.H
//
// Application Window Class
//
#ifndef _CAPPLICATIONWINDOW_H_
#define _CAPPLICATIONWINDOW_H_
#define MAX_OPEN_FILES 10
typedef enum _WARNLEVEL {
WarnLevelUnknown,
WarnLevelInfo,
WarnLevelWarn,
WarnLevelError
} WARNLEVEL;
//
// Structures
//
typedef struct _LINEPOINTER {
struct _LINEPOINTER *pNext; // next line
struct _LINEPOINTER *pPrev; // previous line
LPTSTR psLine; // pointer to beggining of line
ULONG uSequenceNumber; // sequence number affliation
FILETIME Time; // adjusted time
ULONG nFile; // file that this line came from
ULONG nLine; // orginal files line number
ULONG nFilterId; // which filter can filter this line
WARNLEVEL WarnLevel; // line warning level
BOOL fSyncPoint:1; // this line being used to synchronize
BOOL fFiltered:1; // TRUE if the line shouldn't be shown
} LINEPOINTER, * LPLINEPOINTER;
//
// CApplicationWindow
//
class
CApplicationWindow
{
private: // data
HWND _hWnd; // our window handle
HMENU _hMenu; // Filter menu handle
TCHAR _szOpenFileNameFilter[ MAX_PATH ];
TEXTMETRIC _tm; // text metrics of text font
LONG _xSpace; // size of a space
LONG _xWindow; // window max X
LONG _yWindow; // window max Y
LONG _xMargin; // margin size
BOOL _fVertSBVisible:1; // is the vertical scroll bar visible?
ULONG _nFiles; // number of files open
LPTSTR _pFiles[ MAX_OPEN_FILES ];
LINEPOINTER * _pNodes[ MAX_OPEN_FILES ];
LPTSTR _pszFilenames[ MAX_OPEN_FILES ];
LINEPOINTER * _pLines;
ULONG _cTotalLineCount;
LINEPOINTER _LineFinder;
ULONG _uFinderLength;
ULONG _uPointer; // current line
ULONG _uStartSelection; // used to highlite and copy text.
ULONG _uEndSelection;
BOOL _fSelection:1; // if we are in selection mode
private: // methods
~CApplicationWindow( );
HRESULT
Cleanup( BOOL fInitializing = FALSE );
LRESULT
_OnVerticalScroll( WPARAM wParam, LPARAM lParam );
LRESULT
_OnHorizontalScroll( WPARAM wParam, LPARAM lParam );
LRESULT
_OnCommand( WPARAM wParam, LPARAM lParam );
HRESULT
_PaintLine( PAINTSTRUCT * pps, LINEPOINTER *pCurrent, LONG wxStart,
LONG wy, COLORREF crText, COLORREF crDark,
COLORREF crNormal, COLORREF crHightlite );
LRESULT
_OnPaint( WPARAM wParam, LPARAM lParam );
LRESULT
_OnDestroyWindow( );
LRESULT
_OnCreate( );
static LRESULT CALLBACK
About( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
HRESULT
_SaveAllFiles( );
static BOOL CALLBACK
_EnumSaveAllFiles( HWND hWnd, LPARAM lParam );
HRESULT
_LoadFile( LPTSTR pszFilename );
BOOL
_FindSequencePoint( LPTSTR * ppszSequence, ULONG * pnSequence );
HRESULT
_CalculateOffset( FILETIME * pftOper1, FILETIME * pftOper2,
INT * pnDir, FILETIME * pftOffset );
HRESULT
_RetrieveTimeDate( LPTSTR pszCurrent, SYSTEMTIME * pst, OUT LPTSTR * ppszFinal );
BOOL
_OnKeyDown( WPARAM wParam, LPARAM lParam );
HRESULT
_UpdateTitle( );
LRESULT
_OnCloseWindow( );
LRESULT
_OnCreate( HWND hwnd, LPCREATESTRUCT pcs );
LRESULT
_OnSize( LPARAM lParam );
LRESULT
_OnMouseWheel( SHORT iDelta );
LRESULT
_FindNext( WPARAM wParam, LPARAM lParam );
LRESULT
_MarkAll( WPARAM wParam, LPARAM lParam );
HRESULT
_FillClipboard( );
HRESULT
_GetFilename( LPTSTR pszFilename, LPTSTR pszFilenameOut, LONG * pcch );
HRESULT
_CombineFiles( );
static LRESULT CALLBACK
_StatusWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
HRESULT
_ApplyFilters( );
LRESULT
_OnLeftButtonDown( WPARAM wParam, LPARAM lParam );
public:
CApplicationWindow( );
static LRESULT CALLBACK
WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
};
typedef CApplicationWindow CAPPLICATIONWINDOW;
typedef CApplicationWindow * PCAPPLICATIONWINDOW, *LPCAPPLICATIONWINDOW;
#endif // _CAPPLICATIONWINDOW_H_