High-speed-Charting-Control/ChartDemo/ChartCtrl/ChartBalloonLabel.h

102 lines
3.1 KiB
C++

/*
*
* ChartBalloonLabel.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 _CHARTBALLOONLABEL_H_
#define _CHARTBALLOONLABEL_H_
#include "ChartLabel.h"
#include "ChartFont.h"
//! Specialization of the CChartLabel to display a balloon label.
/**
A balloon label is a label with a rounded rectangle area in which the
text is displayed and which is connected with a line to the point to
which it is attached.
**/
template <class PointType>
class CChartBalloonLabel : public CChartLabel<PointType>
{
friend CChartSerieBase<PointType>;
public:
//! Sets the background color of the text area.
void SetBackgroundColor(COLORREF colBackground);
//! Retrieves the background color of the text area.
COLORREF GetBackgroundColor() const { return m_colBackground; }
//! Sets the color of the line connecting the point to the text area.
void SetLineColor(COLORREF colArrow);
//! Retrieves the color of the line connecting the point to the text area.
COLORREF GetLineColor() const { return m_colLine; }
//! Sets the color of border's text area.
void SetBorderColor(COLORREF colBorder);
//! Retrieves the color of border's text area.
COLORREF GetBorderColor() const { return m_colBorder; }
//! Specifies if the text area is rounded or not.
void SetRoundedRect(bool bRounded);
//! Returns true if the text area is rounded.
bool GetRoundedRect() const { return m_bRoundedRect; }
//! Sets the font of the text.
/**
@param nPointSize
The font point size.
@param strFaceName
The font face name ("Times New Roman", "Arial", ...)
**/
void SetFont(int nPointSize, const TChartString& strFaceName);
//! Sets the font of the text.
/**
This function allows to set extended font style by passing
a CChartFont object.
@param newFont
The new font.
**/
void SetFont(const CChartFont& newFont);
//! Constructor
CChartBalloonLabel(CChartCtrl* pParentCtrl, CChartSerieBase<PointType>* pParentSeries);
//! Destructor
~CChartBalloonLabel();
protected:
//! Draw the label.
void Draw(CDC* pDC, unsigned uPointIndex);
private:
//! Color of the liune connecting the point to the text area.
COLORREF m_colLine;
//! Color of the text area's background.
COLORREF m_colBackground;
//! Color of border's text area.
COLORREF m_colBorder;
//! The font used for the text label.
CChartFont m_Font;
//! Specifies if the rectangle is rounded or not.
bool m_bRoundedRect;
};
#include "ChartBalloonLabel.inl"
#endif // _CHARTBALLOONLABEL_H_