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
123 lines
4.2 KiB
C
2 years ago
|
// 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__)
|