You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
428 lines
14 KiB
C++
428 lines
14 KiB
C++
// XTPChartSeriesPoint.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(__XTPCHARTSERIESPOINT_H__)
|
|
#define __XTPCHARTSERIESPOINT_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
class CXTPChartSeries;
|
|
class CXTPChartSeriesView;
|
|
class CXTPChartSeriesPointCollection;
|
|
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTPChartSeriesPoint is a kind of CXTPChartElement, this class
|
|
// represents the a chart series point.
|
|
// Remarks:
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPChartSeriesPoint : public CXTPChartElement
|
|
{
|
|
DECLARE_DYNAMIC(CXTPChartSeriesPoint);
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default constructor, makes a CXTPChartSeriesPoint object.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartSeriesPoint();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Overloaded constructor makes a CXTPChartSeriesPoint object.
|
|
// Parameters:
|
|
// strArgument - CXTPChartString denoting the argument.
|
|
// dValue -A double value for the point.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartSeriesPoint(const CXTPChartString& strArgument, double dValue);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructor makes a CXTPChartSeriesPoint object from the parameters.
|
|
// Parameters:
|
|
// dArgument - A double value denoting the argument.
|
|
// dValue - A double value for the point.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartSeriesPoint(double dArgument, double dValue);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructor overload which makes a CXTPChartSeriesPoint object from
|
|
// an argument and pair of values.
|
|
// Parameters:
|
|
// dArgument - Double value denoting the argument.
|
|
// dValue1 - First value for the point.
|
|
// dValue2 - Second value for the point.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartSeriesPoint(double dArgument, double dValue1, double dValue2);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructor overload which makes a CXTPChartSeriesPoint object from
|
|
// an argument and pair of values.
|
|
// Parameters:
|
|
// strArgumentt - CXTPChartString denoting the argument.
|
|
// dValue1 - First value for the point.
|
|
// dValue2 - Second value for the point.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartSeriesPoint(const CXTPChartString& strArgument, double dValue1, double dValue2);
|
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructor overload which makes a CXTPChartSeriesPoint object from
|
|
// an argument and four values.
|
|
// Parameters:
|
|
// strArgument - String value denoting the argument.
|
|
// dValue1 - Double value for the point.
|
|
// dValue2 - Second value for the point.
|
|
// dValue3 - Third value for the point.
|
|
// dValue4 - Fourth value for the point.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartSeriesPoint(const CXTPChartString& strArgument, double dValue1, double dValue2, double dValue3, double dValue4);
|
|
CXTPChartSeriesPoint(double dArgument, double dValue1, double dValue2, double dValue3, double dValue4);
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Destroys a CXTPChartSeriesPoint object, handles cleanup
|
|
//-------------------------------------------------------------------------
|
|
virtual ~CXTPChartSeriesPoint();
|
|
|
|
public:
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function returns the value at a particular index.
|
|
// Parameters:
|
|
// nIndex - Zero based index in which points are kept internally.
|
|
// Returns:
|
|
// A double value at the, nIndex position.
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
double GetValue(int nIndex) const;
|
|
void SetValue(int nIndex, double dValue);
|
|
|
|
CXTPChartColor GetColor() const;
|
|
void SetColor(const CXTPChartColor& clr);
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function returns the string argument of a point.
|
|
// Returns:
|
|
// A CXTPChartString value argument of the point.
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
CXTPChartString GetArgument() const;
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function returns the double value of the argument of a point.
|
|
// Returns:
|
|
// A double value argument of the point.
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
double GetArgumentValue() const;
|
|
|
|
void SetArgumentValue(double dArgument);
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function returns the double value of the string argument of a point.
|
|
// Returns:
|
|
// A double value corresponding to the string argument of the point.
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
double GetInternalArgumentValue() const;
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function returns the palette index used.
|
|
// Returns:
|
|
// An int value corresponding to the chosen palette index.
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
int GetPaletteIndex() const;
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function returns the previous point in the series.
|
|
// Returns:
|
|
// A CXTPChartSeriesPoint pointer corresponding to the previous point .
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
CXTPChartSeriesPoint* GetPreviousPoint() const;
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function returns the next point in the series.
|
|
// Returns:
|
|
// A CXTPChartSeriesPoint pointer corresponding to the next point.
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
CXTPChartSeriesPoint* GetNextPoint() const;
|
|
|
|
|
|
void SetLegentText(LPCTSTR lpszLegendText);
|
|
|
|
CXTPChartString GetLegendText() const;
|
|
|
|
int GetValueLength() const;
|
|
|
|
CXTPChartSeries* GetSeries() const;
|
|
|
|
void SetInternalArgument(double dInternalArgument);
|
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to set the tooltip of the action.
|
|
// Parameters:
|
|
// lpszTooltip - Tooltip to be set.
|
|
// See Also: SetCaption, SetDescription, SetPrompt
|
|
//-----------------------------------------------------------------------
|
|
void SetTooltipText(LPCTSTR lpszTooltip);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to get the action's tooltip.
|
|
// Returns:
|
|
// Tooltip of the control.
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartString GetTooltipText() const;
|
|
|
|
void SetLabelText(LPCTSTR lpszLegendText);
|
|
CXTPChartString GetLabelText() const;
|
|
|
|
public:
|
|
virtual void DoPropExchange(CXTPPropExchange* pPX);
|
|
|
|
protected:
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function handles so internal, argument type conversions.
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
void CommonConstruct();
|
|
|
|
protected:
|
|
CXTPChartString m_strArgument; //String argument.
|
|
double m_dArgument; //Double value of argument.
|
|
double m_dValues[4]; //The array of values.
|
|
int m_nLength; //The size of the array, m_dValues.
|
|
double m_dInternalArgument; //The double value of the string argument.
|
|
int m_nPaletteIndex; //The chosen palette index.
|
|
int m_nIndex; //Number of elements present in the array m_dValues.
|
|
|
|
CXTPChartString m_strLegentText; // Text to show in legend
|
|
|
|
CXTPChartString m_strTooltipText;
|
|
|
|
CXTPChartString m_strLabelText;
|
|
|
|
CXTPChartColor m_clrPoint;
|
|
|
|
public:
|
|
BOOL m_bSpecial;
|
|
|
|
|
|
protected:
|
|
friend class CXTPChartSeriesPointCollection;
|
|
friend class CXTPChartContent;
|
|
friend class CXTPChartSeriesVirtualPointCollection;
|
|
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTPChartSeriesPointCollection class represents a collection of chart
|
|
// series points.
|
|
// Remarks:
|
|
//
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPChartSeriesPointCollection : public CXTPChartElementCollection
|
|
{
|
|
DECLARE_DYNAMIC(CXTPChartSeriesPointCollection)
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs CXTPChartSeriesPointCollection object.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartSeriesPointCollection();
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Destroys a CXTPChartSeriesPointCollection object, handles cleanup
|
|
//-------------------------------------------------------------------------
|
|
virtual ~CXTPChartSeriesPointCollection();
|
|
|
|
public:
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function add a point represented by the class CXTPChartSeriesPoint
|
|
// to the internal array of points.
|
|
// Parameters:
|
|
// pPoint - The pointer to a CXTPChartSeriesPoint object.
|
|
// Returns:
|
|
// The pointer to CXTPChartSeriesPoint object, which is added to the object array.
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
CXTPChartSeriesPoint* Add(CXTPChartSeriesPoint* pPoint);
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to get the pointer to the CXTPChartSeriesPoint object
|
|
// at a particular index.
|
|
// Parameters:
|
|
// nIndex - The zero based index.
|
|
// Returns:
|
|
// The pointer to CXTPChartSeriesPoint object, which stays at the index nIndex.
|
|
// Remarks:
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
virtual CXTPChartSeriesPoint* GetAt(int nIndex) const;
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this method to add batch of points.
|
|
// Parameters:
|
|
// nCount - Number of points to add
|
|
// Remarks:
|
|
// Its optimized way to add big number of points - Memory will be allocated once for all of them.
|
|
// See Also:
|
|
//-------------------------------------------------------------------------
|
|
void AddPoints(int nCount);
|
|
|
|
public:
|
|
virtual void DoPropExchange(CXTPPropExchange* pPX);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
friend class CXTPChartSeries;
|
|
};
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// CXTPChartSeriesVirtualPointCollection
|
|
|
|
class _XTP_EXT_CLASS CXTPChartSeriesVirtualPointCollection : public CXTPChartSeriesPointCollection
|
|
{
|
|
typedef double (*GETPOINTVALUEPTR)(CXTPChartSeries* pSeries, double x);
|
|
|
|
public:
|
|
CXTPChartSeriesVirtualPointCollection(double dMinRange, double dMaxRange, double dStep, GETPOINTVALUEPTR pCallbackPtr);
|
|
~CXTPChartSeriesVirtualPointCollection();
|
|
|
|
public:
|
|
virtual CXTPChartSeriesPoint* GetAt(int nIndex) const;
|
|
|
|
int GetCount() const;
|
|
|
|
protected:
|
|
double m_dMinRange;
|
|
double m_dMaxRange;
|
|
double m_dStep;
|
|
int m_nCount;
|
|
CXTPChartSeriesPoint* m_pVirtualPoint;
|
|
GETPOINTVALUEPTR m_pCallbackPtr;
|
|
};
|
|
|
|
|
|
AFX_INLINE CXTPChartSeriesPoint* CXTPChartSeriesPointCollection::GetAt(int nIndex) const {
|
|
return nIndex >= 0 && nIndex < m_arrElements.GetSize() ? (CXTPChartSeriesPoint*)m_arrElements.GetAt(nIndex) : NULL;
|
|
}
|
|
|
|
AFX_INLINE CXTPChartString CXTPChartSeriesPoint::GetArgument() const {
|
|
return m_strArgument;
|
|
}
|
|
AFX_INLINE double CXTPChartSeriesPoint::GetArgumentValue() const {
|
|
return m_dArgument;
|
|
}
|
|
AFX_INLINE double CXTPChartSeriesPoint::GetInternalArgumentValue() const {
|
|
return m_dInternalArgument;
|
|
}
|
|
AFX_INLINE int CXTPChartSeriesPoint::GetPaletteIndex() const {
|
|
return m_nPaletteIndex;
|
|
}
|
|
AFX_INLINE void CXTPChartSeriesPoint::SetLegentText(LPCTSTR lpszLegendText) {
|
|
m_strLegentText = lpszLegendText;
|
|
OnChartChanged();
|
|
}
|
|
AFX_INLINE CXTPChartString CXTPChartSeriesPoint::GetLegendText() const {
|
|
return m_strLegentText;
|
|
}
|
|
|
|
AFX_INLINE int CXTPChartSeriesPoint::GetValueLength() const {
|
|
return m_nLength;
|
|
}
|
|
AFX_INLINE CXTPChartColor CXTPChartSeriesPoint::GetColor() const {
|
|
return m_clrPoint;
|
|
}
|
|
AFX_INLINE void CXTPChartSeriesPoint::SetColor(const CXTPChartColor& clr) {
|
|
m_clrPoint = clr;
|
|
OnChartChanged();
|
|
}
|
|
AFX_INLINE CXTPChartString CXTPChartSeriesPoint::GetTooltipText() const {
|
|
return m_strTooltipText;
|
|
}
|
|
AFX_INLINE void CXTPChartSeriesPoint::SetTooltipText(LPCTSTR lpszTooltip) {
|
|
m_strTooltipText = lpszTooltip;
|
|
}
|
|
AFX_INLINE CXTPChartString CXTPChartSeriesPoint::GetLabelText() const {
|
|
return m_strLabelText;
|
|
}
|
|
AFX_INLINE void CXTPChartSeriesPoint::SetLabelText(LPCTSTR lpszLabelText) {
|
|
m_strLabelText = lpszLabelText;
|
|
OnChartChanged();
|
|
}
|
|
AFX_INLINE void CXTPChartSeriesPoint::SetArgumentValue(double dArgument) {
|
|
m_dArgument = dArgument;
|
|
OnChartChanged();
|
|
}
|
|
|
|
|
|
#endif //#if !defined(__XTPCHARTSERIESPOINT_H__)
|