// XTPChartAxisRange.h // // This file is a part of the XTREME TOOLKIT PRO MFC class library. // (c)1998-2012 Codejock Software, All Rights Reserved. // // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN // CONSENT OF CODEJOCK SOFTWARE. // // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A // SINGLE COMPUTER. // // CONTACT INFORMATION: // support@codejock.com // http://www.codejock.com // ///////////////////////////////////////////////////////////////////////////// //{{AFX_CODEJOCK_PRIVATE #if !defined(__XTPCHARTAXISRANGE_H__) #define __XTPCHARTAXISRANGE_H__ //}}AFX_CODEJOCK_PRIVATE #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 class CXTPChartAxis; class CXTPChartAxisView; //=========================================================================== // Summary // This class represents the value range of the axis. // Remarks:This class is associated with a chart axis class. // //=========================================================================== class _XTP_EXT_CLASS CXTPChartAxisRange : public CXTPChartElement { DECLARE_DYNAMIC(CXTPChartAxisRange) public: //----------------------------------------------------------------------- // Summary: // Constructs a CXTPChartAxisRange object. // Parameters: // pAxis - Pointer to the associated chart axis object. // Remarks: //----------------------------------------------------------------------- CXTPChartAxisRange(CXTPChartAxis* pAxis); //------------------------------------------------------------------------- // Summary: // Destroys a CXTPChartAxisLabel object, handles cleanup //------------------------------------------------------------------------- virtual ~CXTPChartAxisRange(); public: //------------------------------------------------------------------------- // Summary: // This function updates the axis, with respect to the series values. // Remarks:Call this function whenever there is a change in series values. // See Also: //------------------------------------------------------------------------- void UpdateRange(CXTPChartAxisView* pView); //------------------------------------------------------------------------- // Summary: // Call this function to get the maximum value of axis. // Returns: // A double value which denotes the maximum value. // See Also: //------------------------------------------------------------------------- double GetMaxValue() const; //------------------------------------------------------------------------- // Summary: // Call this function to get the minimum value of axis. // Returns: // A double value which denotes the minimum value. // See Also: //------------------------------------------------------------------------- double GetMinValue() const; //------------------------------------------------------------------------- // Summary: // Call this function to set the maximum value of axis. // Parameters: // dMaxValue - A double value which denotes the maximum value. // See Also: //------------------------------------------------------------------------- void SetMaxValue(double dMaxValue); //------------------------------------------------------------------------- // Summary: // Call this function to set the minimum value of axis. // Parameters: // dMinValue - A double value which denotes the minimum value. // See Also: //------------------------------------------------------------------------- void SetMinValue(double dMinValue); // Summary: // Call this function to manually set min and max value for range // Parameters: // bAutoRange - TRUE to allow manually set range - FALSE to calculate automatically // See Also: //------------------------------------------------------------------------- void SetAutoRange(BOOL bAutoRange); BOOL IsAutoRange() const; ////////////////////////////////////////////////////////////////////////// // View //------------------------------------------------------------------------- // Summary: // Call this function to get the maximum value of axis. // Returns: // A double value which denotes the maximum value. // See Also: //------------------------------------------------------------------------- double GetViewMaxValue() const; //------------------------------------------------------------------------- // Summary: // Call this function to get the minimum value of axis. // Returns: // A double value which denotes the minimum value. // See Also: //------------------------------------------------------------------------- double GetViewMinValue() const; //------------------------------------------------------------------------- // Summary: // Call this function to set the maximum value of axis. // Parameters: // dMaxValue - A double value which denotes the maximum value. // See Also: //------------------------------------------------------------------------- void SetViewMaxValue(double dMaxValue); //------------------------------------------------------------------------- // Summary: // Call this function to set the minimum value of axis. // Parameters: // dMinValue - A double value which denotes the minimum value. // See Also: //------------------------------------------------------------------------- void SetViewMinValue(double dMinValue); // Summary: // Call this function to manually set min and max value for range // Parameters: // bAutoRange - TRUE to allow manually set range - FALSE to calculate automatically // See Also: //------------------------------------------------------------------------- void SetViewAutoRange(BOOL bAutoRange); BOOL IsViewAutoRange() const; public: //------------------------------------------------------------------------- // Summary: // Call this function to enable the side margins. // Parameters: // bSideMargins - BOOL value of TRUE to enable the side maargins and FALSE // remove the side margins. // See Also: //------------------------------------------------------------------------- void SetSideMargins(BOOL bSideMargins); //------------------------------------------------------------------------- // Summary: // Call this function to know whether the side margins are present or not. // Returns: // BOOL value of TRUE if the side maargins are present and FALSE if the // side margins are absent. // See Also: //------------------------------------------------------------------------- BOOL GetSideMargins() const; //------------------------------------------------------------------------- // Summary: // Call this function to to show the zero level on the axis. // Parameters: // bShowZeroLevel - BOOL value of TRUE to enable the zero level and FALSE // disable the zero level. // See Also: //------------------------------------------------------------------------- void SetShowZeroLevel(BOOL bShowZeroLevel); //------------------------------------------------------------------------- // Summary: // Call this function to know whether the zero level is shown on the axis or not. // Returns: // BOOL value of TRUE if the zero level is visible and FALSE if the // zero level is invisible. // See Also: //------------------------------------------------------------------------- BOOL GetShowZeroLevel() const; public: double GetZoomLimit() const; void SetZoomLimit(double dZoomLimit); public: void DoPropExchange(CXTPPropExchange* pPX); protected: //------------------------------------------------------------------------- // Summary: // This function updates range based on the various parameters affecting // the axis range, like size margins, shwoing zero level etc. // See Also: //------------------------------------------------------------------------- void Correct(CXTPChartAxisView* pView); protected: CXTPChartAxis* m_pAxis; //Pointer to chart axis object. double m_nMinValue; //The minimum value of the range. double m_nMaxValue; //The maximum value of the range. BOOL m_bSideMargins; //TRUE if the side margins are present and FASLE if not. BOOL m_bShowZeroLevel; //TRUE if the zero level is shown on the axis and FASLE if not. BOOL m_bAutoRange; double m_nViewMinValue; double m_nViewMaxValue; BOOL m_bViewAutoRange; double m_dZoomLimit; #ifdef _XTP_ACTIVEX public: //{{AFX_CODEJOCK_PRIVATE DECLARE_DISPATCH_MAP() DECLARE_INTERFACE_MAP() DECLARE_OLETYPELIB_EX(CXTPChartAxisRange); afx_msg BOOL OleGetShowZeroLevel(); afx_msg void OleSetShowZeroLevel(BOOL bSet); afx_msg BOOL OleGetSideMargins(); afx_msg void OleSetSideMargins(BOOL bSet); afx_msg BOOL OleGetAutoRange(); afx_msg void OleSetAutoRange(BOOL bSet); afx_msg double OleGetMinValue(); afx_msg void OleSetMinValue(double bSet); afx_msg double OleGetMaxValue(); afx_msg void OleSetMaxValue(double bSet); //}}AFX_CODEJOCK_PRIVATE #endif friend class CXTPChartAxis; }; AFX_INLINE double CXTPChartAxisRange::GetMaxValue() const { return m_nMaxValue; } AFX_INLINE double CXTPChartAxisRange::GetMinValue() const { return m_nMinValue; } AFX_INLINE BOOL CXTPChartAxisRange::GetSideMargins() const { return m_bSideMargins; } AFX_INLINE BOOL CXTPChartAxisRange::GetShowZeroLevel() const { return m_bShowZeroLevel; } AFX_INLINE BOOL CXTPChartAxisRange::IsAutoRange() const { return m_bAutoRange; } AFX_INLINE double CXTPChartAxisRange::GetViewMaxValue() const { return m_nViewMaxValue; } AFX_INLINE double CXTPChartAxisRange::GetViewMinValue() const { return m_nViewMinValue; } AFX_INLINE BOOL CXTPChartAxisRange::IsViewAutoRange() const { return m_bViewAutoRange; } AFX_INLINE double CXTPChartAxisRange::GetZoomLimit() const { return m_dZoomLimit; } AFX_INLINE void CXTPChartAxisRange::SetZoomLimit(double dZoomLimit) { m_dZoomLimit = dZoomLimit; } #endif //#if !defined(__XTPCHARTAXISRANGE_H__)