114 lines
3.3 KiB
C++
114 lines
3.3 KiB
C++
/*
|
|
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 LONG 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_DrawPoint(TGraphCtrl* this);
|
|
void GraphCtrl_InvalidateCtrl(TGraphCtrl* this);
|
|
void GraphCtrl_Paint(TGraphCtrl* this, HWND hWnd, HDC dc);
|
|
void GraphCtrl_Reset(TGraphCtrl* this);
|
|
void GraphCtrl_Resize(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);
|
|
|
|
LRESULT CALLBACK GraphCtrl_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __GRAPH_CTRL_H__ */
|