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.
152 lines
5.4 KiB
C++
152 lines
5.4 KiB
C++
// XTPChartElementView.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(__XTPCHARTELEMENTVIEW_H__)
|
|
#define __XTPCHARTELEMENTVIEW_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
class CXTPChartDeviceCommand;
|
|
class CXTPChartDeviceContext;
|
|
class CXTPChartContainer;
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class represents the view of a chart element.All views have a
|
|
// parent view and one or more child views.
|
|
// Remarks:
|
|
// This a base class for the views of various chart elements like axis,
|
|
// legend, diagram, tick marks etc.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPChartElementView
|
|
{
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTPChartElementView object.
|
|
// Parameters:
|
|
// pParentView - A pointer to the parent view.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartElementView(CXTPChartElementView* pParentView);
|
|
CXTPChartElementView(CXTPChartContainer* pContainer);
|
|
|
|
protected:
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Destroys a CXTPChartElementView object, handles cleanup
|
|
//-------------------------------------------------------------------------
|
|
virtual ~CXTPChartElementView();
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to get the number of child views associated
|
|
// with this view.
|
|
// Returns:
|
|
// In integer specifying the number of children.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
int GetCount() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to get a child view at a particular index.
|
|
// Returns:
|
|
// A pointer to a chart element view object.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartElementView* GetAt(int nIndex) const;
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function create a CXTPChartDeviceCommand object, this object
|
|
// represents the rendering of the chart element.
|
|
// Parameters:
|
|
// pDC - Pointer to a CXTPChartDeviceContext object.
|
|
// Returns:
|
|
// Returns CXTPChartDeviceCommand object, this object handles
|
|
// the rendering of an element in the chart.The derived class objects
|
|
// will return more specific device command objects according to their
|
|
// type.
|
|
// Remarks:
|
|
// This is a virtual function, hence the sub-classes can override this
|
|
// function and can give specific implementation according to their type.
|
|
//-------------------------------------------------------------------------
|
|
virtual CXTPChartDeviceCommand* CreateDeviceCommand(CXTPChartDeviceContext* pDC);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to get the parent view.
|
|
// Returns:
|
|
// A pointer to a chart element view object.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartElementView* GetParentView() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to add a child view to the current view.
|
|
// Parameters:
|
|
// pChildView - A pointer to a chart element view object.
|
|
// Remarks:
|
|
//-----------------------------------------------------------------------
|
|
CXTPChartElementView* AddChildView(CXTPChartElementView* pChildView);
|
|
|
|
CXTPChartElementView** GetChildren();
|
|
|
|
public:
|
|
virtual void OnMouseMove(UINT nFlags, CPoint point);
|
|
virtual void OnLButtonDown(UINT nFlags, CPoint point);
|
|
virtual BOOL OnSetCursor(CPoint point);
|
|
|
|
|
|
public:
|
|
void Release();
|
|
|
|
protected:
|
|
CArray<CXTPChartElementView*, CXTPChartElementView*> m_arrChildren; //The child view collection.
|
|
CXTPChartElementView* m_pParentView; //The parent view.
|
|
CXTPChartContainer* m_pContainer;
|
|
protected:
|
|
|
|
};
|
|
|
|
|
|
AFX_INLINE int CXTPChartElementView::GetCount() const {
|
|
return (int)m_arrChildren.GetSize();
|
|
}
|
|
AFX_INLINE CXTPChartElementView* CXTPChartElementView::GetAt(int nIndex) const {
|
|
return nIndex >= 0 && nIndex < m_arrChildren.GetSize() ? m_arrChildren.GetAt(nIndex) : NULL;
|
|
}
|
|
AFX_INLINE CXTPChartElementView* CXTPChartElementView::GetParentView() const {
|
|
return m_pParentView;
|
|
}
|
|
AFX_INLINE CXTPChartElementView** CXTPChartElementView::GetChildren() {
|
|
return m_arrChildren.GetData();
|
|
}
|
|
|
|
#endif //#if !defined(__XTPCHARTELEMENTVIEW_H__)
|