WindowsXP-SP1/admin/controls/smonctrl/grphdsp.h
2020-09-30 16:53:49 +02:00

93 lines
2.7 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