mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
4.4 KiB
142 lines
4.4 KiB
//
|
|
// 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_
|