Source code of Windows XP (NT5)
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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995
//
// File: statusdialog.h
//
// Contents: Contains the CStatusDialog class
//
//----------------------------------------------------------------------------
#ifndef STATUSDIALOG_H
#define STATUSDIALOG_H
#include "Resizer.h"
#define MAX_STATUS_MESSAGES 300
class CMTScript;
class CCustomListBox { public: DECLARE_MEMCLEAR_NEW_DELETE(); CCustomListBox(); ~CCustomListBox();
void Refresh() const { if (_hwnd) InvalidateRect(_hwnd, 0, 0); } // Add another string
void AppendString(const TCHAR *sz);
// Change or add a string at a given position.
void SetString(int nItem, const TCHAR *sz);
// Shorten the list of strings.
void SetEnd(int nItems);
// Clear the contents of the listbox
void ResetContent();
// Handle windows messages for this control.
void Init(HWND dlg, UINT idCtrl); void Destroy() { _hwnd = 0; } void DrawItem(DRAWITEMSTRUCT *pdis) ; void MeasureItem(MEASUREITEMSTRUCT *pmis); const TCHAR *GetString(int nItem); LRESULT SendMessage(UINT Msg, WPARAM wParam, LPARAM lParam) { return ::SendMessage(_hwnd, Msg, wParam, lParam); } private: HWND _hwnd; // The handle to this list
CPtrAry<TCHAR *> _Messages; int _nAllocatedMessageLength; int _nExtent; // the width of the listbox
};
class CStatusDialog { public: DECLARE_MEMCLEAR_NEW_DELETE();
CStatusDialog(HWND parent, CMTScript *pMTScript); ~CStatusDialog(); bool Show();
BOOL IsDialogMessage(MSG *msg); void OUTPUTDEBUGSTRING(LPWSTR pszMsg); void Refresh(); void Pause(); void Restart();
private:
HWND _parent; // Parent window
HWND _hwnd; // me
WINDOWPLACEMENT _WindowPlacement; // my current size & position
BOOL _fMaximized; RECT _rect; // my current size & position
BOOL _fStatusOpen; // Used for registry IO
BOOL _fLogToFile; // if logging to a file is enabled
CStr _cstrLogFileName; // The name of the log file
BOOL _fPaused; // Used by Pause/Restart
CMTScript *_pMTScript; // Used to retrieve status info
TCHAR _achLogFileName[MAX_PATH]; bool _fCreatedLogFileName; // Have we created the filename for the logfile yet?
bool _fAddedHeaderToFile; // Have we put a timestamp line into the logfile yet?
CCustomListBox _CScriptListBox; CCustomListBox _CProcessListBox; CCustomListBox _CSignalListBox; CCustomListBox _COutputListBox;
POINT _InitialSize; CResizer _Resizer;
// message handlers
void InitDialog(); void Destroy(); void Resize(int width, int height); void GetMinMaxInfo(MINMAXINFO *mmi); CCustomListBox *CtrlIDToListBox(UINT CtrlID); HRESULT UpdateOptionSettings(BOOL fSave);
static BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
void PopulateScripts(); void PopulateSignals(); void PopulateProcesses(); void ClearOutput();
void ToggleSignal(); void UpdateLogging(); };
#endif
|