00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _CHARTPOINTLABEL_H_
00023 #define _CHARTPOINTLABEL_H_
00024
00025 #include "ChartSerie.h"
00026
00027 class CChartLabelProvider
00028 {
00029 public:
00030 CChartLabelProvider() { }
00031 virtual ~CChartLabelProvider() { }
00032
00033 virtual TChartString GetText(CChartSerie* pSerie, unsigned uPtIndex) = 0;
00034 };
00035
00036 class CChartPointLabel
00037 {
00038 friend CChartSerie;
00039
00040 public:
00041 void SetLabelText(const TChartString& strText);
00042 void SetFont(int nPointSize, const TChartString& strFaceName);
00043
00044 void SetBackgroundColor(COLORREF colBackground);
00045 COLORREF GetBackgroundColor() const { return m_colBackground; }
00046 void SetArrowColor(COLORREF colArrow);
00047 COLORREF GetArrowColor() const { return m_colArrow; }
00048 void SetBorderColor(COLORREF colBorder);
00049 COLORREF GetBorderColor() const { return m_colBorder; }
00050
00051 void SetRoundedRect(bool bRounded);
00052 bool GetRoundedRect() const { return m_bRoundedRect; }
00053
00054 void SetLabelProvider(CChartLabelProvider* pProvider)
00055 {
00056 m_pLabelProvider = pProvider;
00057 }
00058
00059 protected:
00060 CChartPointLabel(CChartCtrl* pParentCtrl, CChartSerie* pParentSeries);
00061 ~CChartPointLabel();
00062
00063 void Draw(CDC* pDC, unsigned uPointIndex);
00064
00065 int m_iFontSize;
00066 TChartString m_strFontName;
00067
00068 TChartString m_strLabelText;
00069 CChartLabelProvider* m_pLabelProvider;
00070
00071 CChartCtrl* m_pParentCtrl;
00072 CChartSerie* m_pParentSeries;
00073
00074 COLORREF m_colArrow;
00075 COLORREF m_colBackground;
00076 COLORREF m_colBorder;
00077
00079 bool m_bRoundedRect;
00080 };
00081
00082 #endif // _CHARTPOINTLABEL_H_