/* * * ChartLogarithmicAxis.h * * Written by Cé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 _CHARTLOGARITHMICAXIS_H_ #define _CHARTLOGARITHMICAXIS_H_ #include "ChartAxis.h" //! Specialization of a CChartAxis to display a logarithmic scale. /** Currently this class only allows to have a logarithmic axis with a base of 10. **/ class CChartLogarithmicAxis : public CChartAxis { friend CChartCtrl; private: //! Constructor CChartLogarithmicAxis(); //! Destructor ~CChartLogarithmicAxis(); double ScreenToValue(long ScreenVal) const; void PanAxis(long PanStart, long PanEnd); double GetFirstTickValue() const; bool GetNextTickValue(double dCurrentTick, double& dNextTick) const; TChartString GetTickLabel(double TickValue) const; long ValueToScreenStandard(double Value) const; long ValueToScreenDiscrete(double Value) const; long GetTickPos(double TickVal) const; void RefreshTickIncrement(); void RefreshFirstTick(); void GetScrollbarSteps(int& iTotalSteps, int& iCurrentStep); void SetAxisToScrollStep(int iPreviousStep, int iCurrentStep, bool bScrollInverted); //! Caches the value of the first tick. double m_dFirstTickValue; }; #endif // _CHARTLOGARITHMICAXIS_H_