/*++ Copyright (C) 1996-1999 Microsoft Corporation Module Name: statbar.h Abstract: --*/ #ifndef _STATBAR_H_ #define _STATBAR_H_ #define SZ_HRTIME_FORMAT TEXT("%1d%s%02d%s%02d") #define SZ_MINTIME_FORMAT TEXT("%1d%s%02d") #define SZ_DAYTIME_FORMAT TEXT("%1dD %1d%s%02d") #define E_MEDIUM_VALUE 999999.999 #define E_LARGE_VALUE 9999999999.0 #define E_TOO_LARGE_VALUE 1.0E+20 #define SZ_VALUE_TOO_HIGH TEXT("+ + + +") #define SZ_VALUE_TOO_LOW TEXT("- - - -") #define LABEL_MARGIN 12 #define VALUE_MARGIN 4 #define RECT_BORDER 1 #define LINE_SPACING (2 * RECT_BORDER + 4) #define STAT_LAST 0 #define STAT_AVG 1 #define STAT_MIN 2 #define STAT_MAX 3 #define STAT_TIME 4 #define STAT_ITEM_CNT 5 // Structure for one item typedef struct _STAT_ITEM { INT xPos ; INT yPos ; INT xLabelWidth; double dNewValue; double dValue ; INT iInitialized ; DWORD dwCounterType; } STAT_ITEM, *PSTAT_ITEM ; class CSysmonControl; class CGraphItem; class CStatsBar { private: enum eStatFormat { eMinimumWidth = 10, eSmallPrecision = 3, eMediumPrecision = 0, eLargePrecision = 4, eIntegerPrecision = 0 }; void DrawValues (HDC hDC, BOOL bForce); CSysmonControl *m_pCtrl; STAT_ITEM m_StatItem[STAT_ITEM_CNT]; RECT m_Rect; INT m_iFontHeight; INT m_iValueWidth; PCGraphItem m_pGraphItemToInit; public: CStatsBar (void); ~CStatsBar (void); BOOL Init (CSysmonControl *pCtrl, HWND hWnd); void SizeComponents(LPRECT pRect); void SetTimeSpan(double dSeconds); INT Height (INT iMaxHeight, INT iMaxWidth); void ChangeFont(HDC hDC); void Draw (HDC hDC, HDC hAttribDC, PRECT prcUpdate); void Update(HDC hDC, CGraphItem* pGraphItem); void Clear( void ); void GetUpdateRect( PRECT pRect ) { *pRect = m_Rect; } }; typedef CStatsBar *PSTATSBAR; #endif // _STATBAR_H_