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

113 lines
3.1 KiB
C++

/*
*
* ChartAxisLabel.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.
*
*
*/
#if !defined(AFX_CHARTAXISLABEL_H__0E5519C8_A2F4_4CED_9681_32A56B25D0C5__INCLUDED_)
#define AFX_CHARTAXISLABEL_H__0E5519C8_A2F4_4CED_9681_32A56B25D0C5__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ChartString.h"
#include "ChartFont.h"
class CChartCtrl;
class CChartAxis;
//! Draws the label of an axis
/**
The label axis is displayed under or next to the tick values.
The label is retrieved by calling CChartAxis::GetAxisLabel.
**/
class CChartAxisLabel
{
friend CChartAxis;
public:
//! Sets the text of the axis label.
void SetText(const TChartString& NewText);
//! Retrieves the text of the axis label.
TChartString GetText() const { return m_strLabelText; }
//! 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);
//! Shows/hides the title.
void SetVisible(bool bVisible);
//! Returns true if the title is visible.
bool IsVisible() const { return m_bIsVisible; }
//! Retrieves the text color.
COLORREF GetColor() const { return m_TextColor; }
//! Sets the text color.
void SetColor(COLORREF NewColor);
private:
//! Constructor
CChartAxisLabel();
//! Destructor
virtual ~CChartAxisLabel();
//! Sets in horizontal or vertical mode.
void SetHorizontal(bool bHorizontal);
//! Sets the position of the label.
void SetPosition(int LeftBorder, int TopBorder, CDC *pDC);
//! Draws the label.
void Draw(CDC* pDC);
//! Retrieves the size of the label.
CSize GetSize(CDC* pDC) const;
//! The parent charting control.
CChartCtrl* m_pParentCtrl;
//! Specifies if the label is visible or not.
bool m_bIsVisible;
//! The rectangle in which the label is displayed.
CRect m_TextRect;
//! The text color.
COLORREF m_TextColor;
//! Specifies if the axis is horizontal or not.
bool m_bIsHorizontal;
//! The font used for the text label.
CChartFont m_Font;
//! The string to display for the label.
TChartString m_strLabelText;
};
#endif // !defined(AFX_CHARTAXISLABEL_H__0E5519C8_A2F4_4CED_9681_32A56B25D0C5__INCLUDED_)