/* * 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__ */