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.

188 lines
6.6 KiB
C++

// XTPChartSeriesStyle.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(__XTPCHARTSERIESSTYLE_H__)
#define __XTPCHARTSERIESSTYLE_H__
//}}AFX_CODEJOCK_PRIVATE
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
class CXTPChartDiagram;
class CXTPChartSeriesLabel;
class CXTPChartSeriesView;
class CXTPChartSeries;
class CXTPChartDiagramView;
class CXTPChartAxis;
class CXTPChartSeriesStyleAppearance;
//===========================================================================
// Summary:
// CXTPChartSeriesStyle is CXTPChartElement derived class, represents base class for all Styles for the Chart.
// Remarks:
//===========================================================================
class _XTP_EXT_CLASS CXTPChartSeriesStyle : public CXTPChartElement
{
DECLARE_DYNAMIC(CXTPChartSeriesStyle)
public:
//-----------------------------------------------------------------------
// Summary:
// Constructs a CXTPChartSeriesStyle object.
// Remarks:
//-----------------------------------------------------------------------
CXTPChartSeriesStyle();
//-------------------------------------------------------------------------
// Summary:
// Destroys a CXTPChartSeriesStyle object, handle cleanup.
//-------------------------------------------------------------------------
virtual ~CXTPChartSeriesStyle();
public:
//-------------------------------------------------------------------------
// Summary:
// Call this method to get properties for series label.
// Returns:
// Pointer to CXTPChartSeriesLabel that contains properties for label
//-------------------------------------------------------------------------
CXTPChartSeriesLabel* GetLabel() const;
CXTPChartSeriesLabel* SetLabel(CXTPChartSeriesLabel* pLabel);
public:
//-------------------------------------------------------------------------
// Summary:
// This method is called to allow style create diagram object
// Returns:
// New diagram object that will contain series.
//-------------------------------------------------------------------------
virtual CXTPChartDiagram* CreateDiagram();
//-------------------------------------------------------------------------
// Summary:
// This method is called to ask style if series can be inserted in existing diagram
// Parameters:
// pDiagram - Diagram to check
// Returns:
// TRUE if Series can be inserted to Diagram
//-------------------------------------------------------------------------
virtual BOOL IsStyleDiagram(CXTPChartDiagram* pDiagram) const;
//-------------------------------------------------------------------------
// Summary:
// Call this method to get color assigned to this series
// Returns:
// Color that was assigned to this style of CXTPChartColor::Empty if appearance color should be used
//-------------------------------------------------------------------------
CXTPChartColor GetColor() const;
//-------------------------------------------------------------------------
// Summary:
// Call this method to set color of the series
// Parameters:
// clr - New Color to be set. It can be CXTPChartColor::Empty to use default appearance color.
//-------------------------------------------------------------------------
void SetColor(CXTPChartColor clr);
//-------------------------------------------------------------------------
// Summary:
// Call this method to set individual color for each point of series
// Parameters:
// bColorEach - TRUE if individual color should be used for each point of series
//-------------------------------------------------------------------------
void SetColorEach(BOOL bColorEach);
//-------------------------------------------------------------------------
// Summary:
// This method is called to determine if individual color should be used for each point of series
//-------------------------------------------------------------------------
BOOL IsColorEach() const;
virtual void CorrectAxisSideMargins(CXTPChartAxis* pAxis, double nMinValue, double nMaxValue, double& nCorrection);
virtual CXTPChartSeriesStyleAppearance* GetStyleAppearance() const;
public:
virtual int GetSeriesPointValueIndex() const;
public:
//-----------------------------------------------------------------------
// Summary:
// Reads or writes this object from or to an archive.
// Parameters:
// pPX - A CXTPPropExchange object to serialize to or from.
//----------------------------------------------------------------------
virtual void DoPropExchange(CXTPPropExchange* pPX);
public:
//-----------------------------------------------------------------------
// Summary:
// This virtual method is called to create new view associated with current style.
// Parameters:
// pSeries - Series associated with style
// pDiagramView - Parent diagram view
// Returns:
// Pointer to new CXTPChartSeriesView object.
//----------------------------------------------------------------------
virtual CXTPChartSeriesView* CreateView(CXTPChartSeries* pSeries, CXTPChartDiagramView* pDiagramView) = 0;
protected:
protected:
friend class CXTPChartSeries;
CXTPChartSeriesLabel* m_pLabel; // Label object
CXTPChartColor m_clrColor; // Custom color of series
BOOL m_bColorEach; // TRUE to color each point.
};
AFX_INLINE CXTPChartDiagram* CXTPChartSeriesStyle::CreateDiagram() {
return NULL;
}
AFX_INLINE CXTPChartSeriesLabel* CXTPChartSeriesStyle::GetLabel() const {
return m_pLabel;
}
AFX_INLINE CXTPChartColor CXTPChartSeriesStyle::GetColor() const {
return m_clrColor;
}
AFX_INLINE void CXTPChartSeriesStyle::SetColor(CXTPChartColor clr) {
m_clrColor = clr;
OnChartChanged();
}
AFX_INLINE BOOL CXTPChartSeriesStyle::IsColorEach() const {
return m_bColorEach;
}
AFX_INLINE void CXTPChartSeriesStyle::SetColorEach(BOOL bColorEach) {
m_bColorEach = bColorEach;
OnChartChanged();
}
AFX_INLINE int CXTPChartSeriesStyle::GetSeriesPointValueIndex() const {
return 0;
}
#endif //#if !defined(__XTPCHARTSERIESSTYLE_H__)