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); | ||
|  | 	} | ||
|  | } |