93 lines
2.6 KiB
C++
93 lines
2.6 KiB
C++
/*++
|
|
|
|
Copyright (C) 1996-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
grphdsp.h
|
|
|
|
Abstract:
|
|
|
|
Header file for the sysmon.ocx graph display.
|
|
|
|
--*/
|
|
|
|
#ifndef _GRPHDSP_H_
|
|
#define _GRPHDSP_H_
|
|
|
|
|
|
class CSysmonControl;
|
|
|
|
class CGraphDisp
|
|
{
|
|
//friend LRESULT APIENTRY GraphDispWndProc (HWND hWnd,
|
|
// UINT uiMsg,
|
|
// WPARAM wParam,
|
|
// LPARAM lParam);
|
|
|
|
public:
|
|
void ChangeFont ( HDC );
|
|
static BOOL RegisterWndClass (HINSTANCE hInst) ;
|
|
CGraphDisp ( void );
|
|
~CGraphDisp ( void);
|
|
BOOL Init ( CSysmonControl *pCtrl, PGRAPHDATA pGraph ) ;
|
|
|
|
void Update ( HDC );
|
|
void Draw ( HDC, HDC hAttribDC, BOOL fMetafile, BOOL fEntire, PRECT prcUpdate);
|
|
void HiliteItem ( PCGraphItem pItem );
|
|
void SizeComponents ( HDC hDC, PRECT pRect );
|
|
void GetPlotRect ( PRECT pRect ) { *pRect = m_rectPlot; }
|
|
|
|
void SetBarConfigChanged ( BOOL bChanged = TRUE ) { m_bBarConfigChanged = bChanged; };
|
|
|
|
PCGraphItem GetItem ( INT xPos, INT yPos );
|
|
|
|
private:
|
|
|
|
enum eGraphDisplayConstant {
|
|
eHitRegion = 4
|
|
};
|
|
|
|
void DrawTimeLine ( HDC hDC, INT x);
|
|
void DrawStartStopLine ( HDC hDC, INT x);
|
|
void StartUpdate ( HDC hDC, BOOL fMetafile, BOOL fEntire, INT xLeft, INT xRight, BOOL bFill = TRUE );
|
|
void FinishUpdate ( HDC hDC, BOOL fMetafile );
|
|
void DrawGrid ( HDC hDC, INT iLeft, INT iRight);
|
|
void PlotBarGraph ( HDC hDC , BOOL fUpdate);
|
|
void PlotData ( HDC hDC, INT iHistIndx, INT nSteps, CStepper *pStepper );
|
|
void UpdateTimeBar ( HDC, BOOL bPlotData = TRUE );
|
|
|
|
PCGraphItem GetItemInLineGraph ( SHORT xPos, SHORT yPos );
|
|
PCGraphItem GetItemInBarGraph ( SHORT xPos, SHORT yPos );
|
|
|
|
INT RGBToLightness ( COLORREF );
|
|
BOOL CalcYPosition ( PCGraphItem pItem, INT iHistIndex, BOOL bLog, INT y[3] );
|
|
|
|
|
|
PGRAPHDATA m_pGraph;
|
|
CSysmonControl *m_pCtrl;
|
|
RECT m_rect;
|
|
RECT m_rectPlot;
|
|
CStepper m_GridStepper;
|
|
HFONT m_hFontVertical;
|
|
PCGraphItem m_pHiliteItem;
|
|
HRGN m_rgnClipSave;
|
|
BOOL m_bBarConfigChanged;
|
|
|
|
// Min, Max and PixelScale are used for plot, hit test.
|
|
double m_dMin;
|
|
double m_dMax;
|
|
double m_dPixelScale;
|
|
|
|
|
|
COLORREF m_clrCurrentTimeBar;
|
|
COLORREF m_clrCurrentGrid;
|
|
HPEN m_hPenTimeBar;
|
|
HPEN m_hPenGrid;
|
|
|
|
};
|
|
|
|
typedef CGraphDisp *PGRAPHDISP;
|
|
|
|
#endif
|