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.
180 lines
7.4 KiB
C
180 lines
7.4 KiB
C
2 years ago
|
// XTPDockingPaneBaseContainer.h : interface for the CXTPDockingPaneBaseContainer class.
|
||
|
//
|
||
|
// This file is a part of the XTREME DOCKINGPANE 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(__XTPDOCKINGPANEBASECONTAINER_H__)
|
||
|
#define __XTPDOCKINGPANEBASECONTAINER_H__
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
#if _MSC_VER >= 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER >= 1000
|
||
|
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// CXTPDockingPaneBaseContainer is a CXTPDockingPaneBase derived class. It represents the parent
|
||
|
// class for a all virtual containers.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPDockingPaneBaseContainer : public CXTPDockingPaneBase
|
||
|
{
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Protected constructor. You cannot create this class.
|
||
|
// Parameters:
|
||
|
// type - Docking Pane type. Can be any of the values listed in the Remarks section.
|
||
|
// pLayout - Points to a CXTPDockingPaneLayout object.
|
||
|
// Remarks:
|
||
|
// Docking Pane type can be one of the following:
|
||
|
// * <b>xtpPaneTypeDockingPane</b> Indicates the pane's style is a docking pane.
|
||
|
// * <b>xtpPaneTypeTabbedContainer</b> Indicates the pane's style is a tabbed container for pane.
|
||
|
// * <b>xtpPaneTypeSplitterContainer</b> Indicates the pane's style is a splitter container.
|
||
|
// * <b>xtpPaneTypeMiniWnd</b> Indicates the pane's style is a floating window container.
|
||
|
// * <b>xtpPaneTypeClient</b> Indicates the pane's style is a container for client area.
|
||
|
// * <b>xtpPaneTypeAutoHidePanel</b> Indicates the pane's style is an auto-hide panel container.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPDockingPaneBaseContainer(XTPDockingPaneType type, CXTPDockingPaneLayout* pLayout);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Destroys a CXTPDockingPaneBase object, handles cleanup and
|
||
|
// deallocation.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual ~CXTPDockingPaneBaseContainer();
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to determine if one pane is contained in the
|
||
|
// collection of another.
|
||
|
// Parameters:
|
||
|
// pPane - Points to a CXTPDockingPaneBase object
|
||
|
// Returns:
|
||
|
// POSITION of the pane in the collection if successful; otherwise
|
||
|
// returns NULL.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual POSITION ContainPane(CXTPDockingPaneBase* pPane) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to find all panes of a specific XTPDockingPaneType
|
||
|
// within the container.
|
||
|
// Parameters:
|
||
|
// type - Type of docking pane to search for within container.
|
||
|
// pList - An array of type CXTPDockingPaneBaseList that will
|
||
|
// contain a list of all panes of the specified type
|
||
|
// that are in the tabbed container. This points to a
|
||
|
// CXTPDockingPaneBaseList object that will contain
|
||
|
// found panes.
|
||
|
// Remarks:
|
||
|
// pList is an external list that you must create and pass in as a
|
||
|
// parameter. See example below:
|
||
|
// Example:
|
||
|
// This will get the count of panes inside container:
|
||
|
// <code>
|
||
|
// CXTPDockingPaneBaseList lst;
|
||
|
//
|
||
|
// m_pTopContainer->FindPane(xtpPaneTypeTabbedContainer, &lst);
|
||
|
// int nCount = (int)lst.GetCount();
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FindPane(XTPDockingPaneType type, CXTPDockingPaneBaseList* pList) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method retrieves the position of the first pane of this container
|
||
|
// Returns:
|
||
|
// A POSITION value that can be used for iteration or object pointer retrieval;
|
||
|
// it is NULL if the list is empty.
|
||
|
// See Also: GetNext
|
||
|
//-----------------------------------------------------------------------
|
||
|
POSITION GetHeadPosition() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Gets the pane element identified by rPosition, then sets rPosition to the POSITION value of the next
|
||
|
// entry in the container. You can use GetNext in a forward iteration loop if you establish the initial position with a call to GetHeadPosition
|
||
|
// Parameters:
|
||
|
// pos - Specifies a reference to a POSITION value returned by a previous GetNext, GetHeadPosition, or other method call
|
||
|
// Returns:
|
||
|
// Pane identified by rPosition
|
||
|
// See Also: GetHeadPosition
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPDockingPaneBase* GetNext(POSITION& pos) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method retrieves the first pane in the container
|
||
|
// Returns:
|
||
|
// First pane in the container
|
||
|
// See Also: GetLastPane, GetHeadPosition
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPDockingPaneBase* GetFirstPane() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method retrieves the last pane in the container
|
||
|
// Returns:
|
||
|
// Last pane in the container
|
||
|
// See Also: GetFirstPane, GetHeadPosition
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPDockingPaneBase* GetLastPane() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to return collection of the child panes.
|
||
|
// Returns:
|
||
|
// A reference to the child panes collection.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPDockingPaneBaseList& GetPanes();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called if some action occur
|
||
|
// Parameters:
|
||
|
// action - Docking Pane action.
|
||
|
// Returns: TRUE if action was canceled
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL OnAction(XTPDockingPaneAction action);
|
||
|
|
||
|
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to determine if there are children panes
|
||
|
// Returns:
|
||
|
// TRUE if no children panes; otherwise returns FALSE.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL IsEmpty() const;
|
||
|
|
||
|
|
||
|
protected:
|
||
|
CXTPDockingPaneBaseList m_lstPanes; // Child panes collection
|
||
|
|
||
|
};
|
||
|
|
||
|
AFX_INLINE CXTPDockingPaneBaseList& CXTPDockingPaneBaseContainer::GetPanes() {
|
||
|
return m_lstPanes;
|
||
|
}
|
||
|
|
||
|
|
||
|
#endif // #if !defined(__XTPDOCKINGPANEBASECONTAINER_H__)
|