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.

123 lines
4.2 KiB
C++

// XTPChartPieDeviceCommand.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(__XTPCHARTPIEDEVICECOMMAND_H__)
#define __XTPCHARTPIEDEVICECOMMAND_H__
//}}AFX_CODEJOCK_PRIVATE
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
namespace Gdiplus
{
class GpPath;
class GpBrush;
};
//===========================================================================
// Summary:
// This class represents a chart pie device command,which is a kind of
// CXTPChartDeviceCommand.It specifically handles the rendering of a pie
// in a chart.
// Remarks:
//===========================================================================
class _XTP_EXT_CLASS CXTPChartPieDeviceCommand : public CXTPChartDeviceCommand
{
public:
//-----------------------------------------------------------------------
// Summary:
// Constructs a CXTPChartPieDeviceCommand object.
// Parameters:
// ptCenter - The center point of the pie.
// dMajorSemiAxis - The the major semi axis, of the ellipse, which comes
// into picture when a 3D pie diagram is drawn.
// dMinorSemiAxis - The the minor semi axis, of the ellipse, which comes
// into picture when a 3D pie diagram is drawn.
// dStartAngle - The start angle of the pie.
// nMode - The linear gradient mode, it can be horizontal, vertical,
// forward diagonal or backward diagonal.
// Remarks:
//-----------------------------------------------------------------------
CXTPChartPieDeviceCommand(const CXTPPoint3d& ptCenter, double dMajorSemiAxis, double dMinorSemiAxis, double dStartAngle, double dSweepAngle,
double dDepth, double nHolePercent);
protected:
Gdiplus::GpPath* CreatePieGraphicsPath(const CXTPPoint3d& center, double majorSemiaxis, double minorSemiaxis, double holePercent, double startAngle, double sweepAngle) const;
void CalculateStartFinishPoints(const CXTPPoint3d& center, double majorSemiaxis, double minorSemiaxis, double startAngle, double sweepAngle, CXTPChartPointF& startPoint, CXTPChartPointF& finishPoint) const;
virtual CXTPChartElement* HitTest(CPoint point, CXTPChartElement* pParent) const;
protected:
CXTPPoint3d m_ptCenter;
double m_dMajorSemiAxis;
double m_dMinorSemiAxis;
double m_dStartAngle;
double m_dSweepAngle;
double m_dDepth;
double m_dHolePercent;
double m_dInnerMajorSemiAxis;
double m_dInnerMinorSemiAxis;
double m_dFacetSize;
double m_dRadius;
double m_dCorrectedDepth;
double m_dInnerRadius;
BOOL m_bDoughnut;
};
class _XTP_EXT_CLASS CXTPChartGradientPieDeviceCommand : public CXTPChartPieDeviceCommand
{
public:
CXTPChartGradientPieDeviceCommand(const CXTPPoint3d& center, double majorSemiAxis, double minorSemiAxis, double startAngle, double sweepAngle,
double depth, double holePercent, const CXTPChartRectF& gradientBounds, const CXTPChartColor& color, const CXTPChartColor& color2);
protected:
void ExecuteOverride(CXTPChartDeviceContext* pDC);
Gdiplus::GpBrush* CreateBrush();
protected:
CXTPChartRectF m_rcGradientBounds;
CXTPChartColor m_color;
CXTPChartColor m_color2;
};
class _XTP_EXT_CLASS CXTPChartBoundedPieDeviceCommand : public CXTPChartPieDeviceCommand
{
public:
CXTPChartBoundedPieDeviceCommand(const CXTPPoint3d& center, double majorSemiAxis, double minorSemiAxis, double startAngle, double sweepAngle,
double depth, int holePercent, const CXTPChartColor& color, int nThickness);
protected:
void ExecuteOverride(CXTPChartDeviceContext* pDC);
protected:
CXTPChartColor m_color;
int m_nThickness;
};
#endif //#if !defined(__XTPCHARTPIEDEVICECOMMAND_H__)