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.

157 lines
5.3 KiB
C++

// XTPFlowGraphSelectedElements.h: interface for the CXTPFlowGraphSelectedElements class.
//
// 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(__XTPFLOWGRAPHSELECTEDELEMENTS_H__)
#define __XTPFLOWGRAPHSELECTEDELEMENTS_H__
//}}AFX_CODEJOCK_PRIVATE
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CXTPFlowGraphControl;
class CXTPFlowGraphPage;
// ----------------------------------------------------------------------
//
// Summary:
// Collection of selected elements in the Flow Graph.
//
// Remarks:
// Selected elements will include Nodes, Connections and Connection
// Points. This collection can be used to add or remove elements
// to\\from the selection. Elements can be selected with the mouse or
// using methods in code.
// ----------------------------------------------------------------------
class _XTP_EXT_CLASS CXTPFlowGraphSelectedElements : public CXTPCmdTarget
{
public:
// ------------------------------------------------------
// Summary:
// Constructs a CXTPFlowGraphSelectedElements object.
// ------------------------------------------------------
CXTPFlowGraphSelectedElements(CXTPFlowGraphPage* pPage);
// --------------------------------------------------------------------
// Summary:
// Destroys a CXTPFlowGraphSelectedElements object, handles cleanup
// and deallocation.
// --------------------------------------------------------------------
virtual ~CXTPFlowGraphSelectedElements();
public:
// ---------------------------------------------------------
//
// Summary:
// Removes all elements from the current selection.
//
// ---------------------------------------------------------
void Clear();
// ---------------------------------------------------------------------
//
// Summary:
// Adds an element to the current selection.
//
//
// Parameters:
// pElement : The element to add to the selection, can be any valid
// flow graph element (connection, node).
// ---------------------------------------------------------------------
void SetSelection(CXTPFlowGraphElement* pElement);
// ---------------------------------------------------------------------
//
// Summary:
// Adds an element to the current selection.
//
// Parameters:
// pElement : The element to add to the selection, can be any valid
// flow graph element (connection, node).
// ---------------------------------------------------------------------
void AddSelection(CXTPFlowGraphElement* pElement);
// --------------------------------------------------------------------
//
// Summary:
// Removes an element from the current selection.
//
//
// Parameters:
// pElement : The element to remove from the selection, can be any
// valid flow graph element (connection, node).
// --------------------------------------------------------------------
void Remove(CXTPFlowGraphElement* pElement);
// ------------------------------------------------------------------------
//
// Summary:
// Removes an element from the current selection.
//
//
// Parameters:
// nIndex : Index of the element to remove from the current selection.
// ------------------------------------------------------------------------
void RemoveAt(int nIndex);
// -----------------------------------------------------
//
// Summary:
// Number of elements in the current selection.
//
//
// Returns:
// Number of elements in the current selection.
//
//
// -----------------------------------------------------
int GetCount() const;
// -----------------------------------------------------------------------
//
// Summary:
// \Returns an element from the selection at the specified index.
//
//
// Parameters:
// nIndex : Index of a FlowGraphElement within the collection of
// elements.
//
// Remarks:
// Elements are added using the SetSelection method and removed using
// the RemoveAt method.
//
//
// -----------------------------------------------------------------------
CXTPFlowGraphElement* GetAt(int nIndex) const;
protected:
CArray<CXTPFlowGraphElement*, CXTPFlowGraphElement*> m_arrSelectedElements; // Collection of selected elements.
CXTPFlowGraphPage* m_pPage; // Pointer to the page the selected elements are dispalyed on.
};
AFX_INLINE int CXTPFlowGraphSelectedElements::GetCount() const {
return (int)m_arrSelectedElements.GetSize();
}
AFX_INLINE CXTPFlowGraphElement* CXTPFlowGraphSelectedElements::GetAt(int nIndex) const {
return nIndex >= 0 && nIndex < m_arrSelectedElements.GetSize() ? m_arrSelectedElements[nIndex] : NULL;
}
#endif //#if !defined(__XTPFLOWGRAPHSELECTEDELEMENTS_H__)