|  | /* | 
|  | *  ReactOS Task Manager | 
|  | * | 
|  | *  graphctl.h | 
|  | * | 
|  | *  Copyright (C) 2002  Robert Dickenson <robd@reactos.org> | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | #ifndef __GRAPH_CTRL_H__ | 
|  | #define __GRAPH_CTRL_H__ | 
|  |  | 
|  | #define MAX_PLOTS 4 | 
|  | #define MAX_CTRLS 4 | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #if 0 | 
|  |  | 
|  | /* Attributes */ | 
|  | public: | 
|  | void SetXUnits(const char* string); | 
|  | void SetYUnits(const char* string); | 
|  |  | 
|  | /* Operations */ | 
|  | public: | 
|  | BOOL Create(DWORD dwStyle, const RECT& rect, HWND hParentWnd, UINT nID=NULL); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | typedef struct | 
|  | { | 
|  | int m_nShiftPixels;          /* amount to shift with each new point */ | 
|  | int m_nYDecimals; | 
|  |  | 
|  | char m_strXUnitsString[50]; | 
|  | char m_strYUnitsString[50]; | 
|  |  | 
|  | COLORREF m_crBackColor;                 /* background color */ | 
|  | COLORREF m_crGridColor;                 /* grid color */ | 
|  | COLORREF m_crPlotColor[MAX_PLOTS];      /* data color   */ | 
|  |  | 
|  | double m_dCurrentPosition[MAX_PLOTS];   /* current position */ | 
|  | double m_dPreviousPosition[MAX_PLOTS];  /* previous position */ | 
|  |  | 
|  | /* those were protected fields */ | 
|  | int m_nHalfShiftPixels; | 
|  | int m_nPlotShiftPixels; | 
|  | int m_nClientHeight; | 
|  | int m_nClientWidth; | 
|  | int m_nPlotHeight; | 
|  | int m_nPlotWidth; | 
|  |  | 
|  | double m_dLowerLimit;        /* lower bounds */ | 
|  | double m_dUpperLimit;        /* upper bounds */ | 
|  | double m_dRange; | 
|  | double m_dVerticalFactor; | 
|  |  | 
|  | HWND     m_hWnd; | 
|  | HWND     m_hParentWnd; | 
|  | HDC      m_dcGrid; | 
|  | HDC      m_dcPlot; | 
|  | HBITMAP  m_bitmapOldGrid; | 
|  | HBITMAP  m_bitmapOldPlot; | 
|  | HBITMAP  m_bitmapGrid; | 
|  | HBITMAP  m_bitmapPlot; | 
|  | HBRUSH   m_brushBack; | 
|  | HPEN     m_penPlot[MAX_PLOTS]; | 
|  | RECT     m_rectClient; | 
|  | RECT     m_rectPlot; | 
|  | } TGraphCtrl; | 
|  |  | 
|  | extern WNDPROC OldGraphCtrlWndProc; | 
|  | double  GraphCtrl_AppendPoint(TGraphCtrl* this, | 
|  | double dNewPoint0, double dNewPoint1, | 
|  | double dNewPoint2, double dNewPoint3); | 
|  | BOOL    GraphCtrl_Create(TGraphCtrl* this, HWND hWnd, HWND hParentWnd, | 
|  | UINT nID); | 
|  | void    GraphCtrl_Reset(TGraphCtrl* this); | 
|  | void    GraphCtrl_SetBackgroundColor(TGraphCtrl* this, COLORREF | 
|  | color); | 
|  | void    GraphCtrl_SetGridColor(TGraphCtrl* this, COLORREF color); | 
|  | void    GraphCtrl_SetPlotColor(TGraphCtrl* this, int plot, COLORREF | 
|  | color); | 
|  | void    GraphCtrl_SetRange(TGraphCtrl* this, double dLower, double | 
|  | dUpper, int nDecimalPlaces); | 
|  |  | 
|  | INT_PTR CALLBACK GraphCtrl_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* __GRAPH_CTRL_H__ */ |