High-speed-Charting-Control/ChartDemo/ChartCtrl/ChartStandardAxis.h

76 lines
2.2 KiB
C
Raw Normal View History

2020-06-10 10:11:21 +00:00
/*
*
* ChartStandardAxis.h
*
* Written by C<EFBFBD>dric Moonen (cedric_moonen@hotmail.com)
*
*
*
* This code may be used for any non-commercial and commercial purposes in a compiled form.
* The code may be redistributed as long as it remains unmodified and providing that the
* author name and this disclaimer remain intact. The sources can be modified WITH the author
* consent only.
*
* This code is provided without any garanties. I cannot be held responsible for the damage or
* the loss of time it causes. Use it at your own risks
*
* An e-mail to notify me that you are using this code is appreciated also.
*
*
*/
#ifndef _CHARTSTANDARDAXIS_H_
#define _CHARTSTANDARDAXIS_H_
#include "ChartAxis.h"
//! Specialization of a CChartAxis class to display standard values.
class CChartStandardAxis : public CChartAxis
{
friend CChartCtrl;
public:
//! Sets the tick increment.
/**
The tick increment is the value between two adjacents
ticks on the axis.
@param bAuto
Specifies if the tick increment is automatically calculated.
@param newIncrement
The tick increment to use in manual mode.
**/
void SetTickIncrement(bool bAuto, double newIncrement);
//! Gets the tick increment.
/**
The tick increment is the value between two adjacents
ticks on the axis.
**/
double GetTickIncrement() const { return m_dTickIncrement; }
private:
//! Default constructor
CChartStandardAxis();
//! Default destructor
~CChartStandardAxis();
double GetFirstTickValue() const;
bool GetNextTickValue(double dCurrentTick, double& dNextTick) const;
TChartString GetTickLabel(double TickValue) const;
long ValueToScreenDiscrete(double Value) const;
long GetTickPos(double TickVal) const;
void RefreshTickIncrement();
void RefreshFirstTick();
//! Sets the number of decimals points.
void SetDecimals(unsigned uDecimals) { m_uDecCount = uDecimals; }
//! Caches the value of the first tick.
double m_dFirstTickValue;
//! Indicates the space between ticks (in axis value).
double m_dTickIncrement;
//! Number of decimals to display for tick labels.
unsigned int m_uDecCount;
};
#endif // _CHARTSTANDARDAXIS_H_