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.
88 lines
2.7 KiB
C++
88 lines
2.7 KiB
C++
2 years ago
|
// XTPChartDiagram2DSeriesView.cpp
|
||
|
//
|
||
|
// 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
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
|
||
|
|
||
|
#include "../../Types/XTPChartTypes.h"
|
||
|
#include "../../XTPChartDefines.h"
|
||
|
#include "../../XTPChartElement.h"
|
||
|
#include <Chart/XTPChartLegendItem.h>
|
||
|
#include "../../XTPChartElementView.h"
|
||
|
#include "../../XTPChartPanel.h"
|
||
|
#include <Chart/XTPChartSeriesPointView.h>
|
||
|
#include "../../XTPChartSeriesView.h"
|
||
|
#include "../../XTPChartSeries.h"
|
||
|
#include "../../XTPChartSeriesPoint.h"
|
||
|
#include "../../XTPChartDiagram.h"
|
||
|
#include "../../XTPChartDiagramView.h"
|
||
|
|
||
|
#include "XTPChartDiagram2DView.h"
|
||
|
#include "XTPChartDiagram2DPane.h"
|
||
|
|
||
|
#include "XTPChartDiagram2DSeriesView.h"
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
// CXTPChartDiagram2DSeriesView
|
||
|
|
||
|
CXTPChartDiagram2DSeriesView::CXTPChartDiagram2DSeriesView(CXTPChartSeries* pSeries, CXTPChartDiagramView* pDiagramView, BOOL bSortPoints)
|
||
|
: CXTPChartSeriesView(pSeries, pDiagramView)
|
||
|
{
|
||
|
m_bSortPoints = bSortPoints;
|
||
|
m_pAxisViewX = m_pAxisViewY = NULL;
|
||
|
}
|
||
|
|
||
|
CXTPChartPointF CXTPChartDiagram2DSeriesView::GetScreenPoint(double x, double y) const
|
||
|
{
|
||
|
CXTPChartDiagram2DView* pDiagramView = (CXTPChartDiagram2DView*)GetDiagramView();
|
||
|
|
||
|
CXTPChartDiagram2DPaneView* pPaneView = pDiagramView->GetPaneView();
|
||
|
|
||
|
return pPaneView->GetScreenPoint(this, x, y);
|
||
|
}
|
||
|
|
||
|
int _cdecl CXTPChartDiagram2DSeriesView::ComparePoints(const CXTPChartSeriesPointView** ppPoint1, const CXTPChartSeriesPointView** ppPoint2)
|
||
|
{
|
||
|
double d = (*ppPoint1)->GetPoint()->GetInternalArgumentValue() - (*ppPoint2)->GetPoint()->GetInternalArgumentValue();
|
||
|
|
||
|
if (d > 0)
|
||
|
return 1;
|
||
|
if (d < 0)
|
||
|
return -1;
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
void CXTPChartDiagram2DSeriesView::BeforeUpdateRange(CXTPChartDeviceContext* /*pDC*/)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
void CXTPChartDiagram2DSeriesView::AfterUpdateRange(CXTPChartDeviceContext* /*pDC*/)
|
||
|
{
|
||
|
if (m_bSortPoints)
|
||
|
{
|
||
|
typedef int (_cdecl *GENERICCOMPAREFUNC)(const void *, const void*);
|
||
|
|
||
|
CXTPChartElementView** pChildren = m_pPointsView->GetChildren();
|
||
|
|
||
|
qsort(pChildren, (size_t) m_pPointsView->GetCount(), sizeof(CXTPChartSeriesPointView*), (GENERICCOMPAREFUNC)ComparePoints);
|
||
|
}
|
||
|
}
|