XTPDockingPaneBaseContainer.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:8k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPDockingPaneBaseContainer.h : interface for the CXTPDockingPaneBaseContainer class.
  2. //
  3. // This file is a part of the XTREME DOCKINGPANE MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPDOCKINGPANEBASECONTAINER_H__)
  22. #define __XTPDOCKINGPANEBASECONTAINER_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. #include "XTPDockingPaneDefines.h"
  28. #include "XTPDockingPaneBase.h"
  29. //===========================================================================
  30. // Summary:
  31. //     CXTPDockingPaneBaseContainer is a CXTPDockingPaneBase derived class. It represents the parent
  32. //     class for a all virtual containers.
  33. //===========================================================================
  34. class _XTP_EXT_CLASS CXTPDockingPaneBaseContainer : public CXTPDockingPaneBase
  35. {
  36. protected:
  37. //-----------------------------------------------------------------------
  38. // Summary:
  39. //     Protected constructor. You cannot create this class.
  40. // Parameters:
  41. //     type    - Docking Pane type. Can be any of the values listed in the Remarks section.
  42. //     pLayout - Points to a CXTPDockingPaneLayout object.
  43. // Remarks:
  44. //     Docking Pane type can be one of the following:
  45. //     * <b>xtpPaneTypeDockingPane</b> Indicates the pane's style is a docking pane.
  46. //     * <b>xtpPaneTypeTabbedContainer</b> Indicates the pane's style is a tabbed container for pane.
  47. //     * <b>xtpPaneTypeSplitterContainer</b> Indicates the pane's style is a splitter container.
  48. //     * <b>xtpPaneTypeMiniWnd</b> Indicates the pane's style is a floating window container.
  49. //     * <b>xtpPaneTypeClient</b> Indicates the pane's style is a container for client area.
  50. //     * <b>xtpPaneTypeAutoHidePanel</b> Indicates the pane's style is an auto-hide panel container.
  51. //-----------------------------------------------------------------------
  52. CXTPDockingPaneBaseContainer(XTPDockingPaneType type, CXTPDockingPaneLayout* pLayout);
  53. //-----------------------------------------------------------------------
  54. // Summary:
  55. //     Destroys a CXTPDockingPaneBase object, handles cleanup and
  56. //     deallocation.
  57. //-----------------------------------------------------------------------
  58. virtual ~CXTPDockingPaneBaseContainer();
  59. public:
  60. //-----------------------------------------------------------------------
  61. // Summary:
  62. //     Call this member to determine if one pane is contained in the
  63. //     collection of another.
  64. // Parameters:
  65. //     pPane - Points to a CXTPDockingPaneBase object
  66. // Returns:
  67. //     POSITION of the pane in the collection if successful; otherwise
  68. //     returns NULL.
  69. //-----------------------------------------------------------------------
  70. virtual POSITION ContainPane(CXTPDockingPaneBase* pPane) const;
  71. //-----------------------------------------------------------------------
  72. // Summary:
  73. //     Call this member to find all panes of a specific XTPDockingPaneType
  74. //     within the container.
  75. // Parameters:
  76. //     type  - Type of docking pane to search for within container.
  77. //     pList - An array of type CXTPDockingPaneBaseList that will
  78. //             contain a list of all panes of the specified type
  79. //             that are in the tabbed container.  This points to a
  80. //             CXTPDockingPaneBaseList object that will contain
  81. //             found panes.
  82. // Remarks:
  83. //     pList is an external list that you must create and pass in as a
  84. //     parameter.  See example below:
  85. // Example:
  86. //     This will get the count of panes inside container:
  87. // <code>
  88. // CXTPDockingPaneBaseList lst;
  89. //
  90. // m_pTopContainer->FindPane(xtpPaneTypeTabbedContainer, &lst);
  91. // int nCount = (int)lst.GetCount();
  92. // </code>
  93. //-----------------------------------------------------------------------
  94. virtual void FindPane(XTPDockingPaneType type, CXTPDockingPaneBaseList* pList) const;
  95. //-----------------------------------------------------------------------
  96. // Summary:
  97. //     This method retrieves the position of the first pane of this container
  98. // Returns:
  99. //     A POSITION value that can be used for iteration or object pointer retrieval;
  100. //     it is NULL if the list is empty.
  101. // See Also: GetNext
  102. //-----------------------------------------------------------------------
  103. POSITION GetHeadPosition() const;
  104. //-----------------------------------------------------------------------
  105. // Summary:
  106. //     Gets the pane element identified by rPosition, then sets rPosition to the POSITION value of the next
  107. //     entry in the container. You can use GetNext in a forward iteration loop if you establish the initial position with a call to GetHeadPosition
  108. // Parameters:
  109. //     pos - Specifies a reference to a POSITION value returned by a previous GetNext, GetHeadPosition, or other method call
  110. // Returns:
  111. //     Pane identified by rPosition
  112. // See Also: GetHeadPosition
  113. //-----------------------------------------------------------------------
  114. CXTPDockingPaneBase* GetNext(POSITION& pos) const;
  115. //-----------------------------------------------------------------------
  116. // Summary:
  117. //     This method retrieves the first pane in the container
  118. // Returns:
  119. //     First pane in the container
  120. // See Also: GetLastPane, GetHeadPosition
  121. //-----------------------------------------------------------------------
  122. CXTPDockingPaneBase* GetFirstPane() const;
  123. //-----------------------------------------------------------------------
  124. // Summary:
  125. //     This method retrieves the last pane in the container
  126. // Returns:
  127. //     Last pane in the container
  128. // See Also: GetFirstPane, GetHeadPosition
  129. //-----------------------------------------------------------------------
  130. CXTPDockingPaneBase* GetLastPane() const;
  131. //-----------------------------------------------------------------------
  132. // Summary:
  133. //     Call this member to return collection of the child panes.
  134. // Returns:
  135. //     A reference to the child panes collection.
  136. //-----------------------------------------------------------------------
  137. CXTPDockingPaneBaseList& GetPanes();
  138. //-----------------------------------------------------------------------
  139. // Summary:
  140. //     This method is called if some action occur
  141. // Parameters:
  142. //     action - Docking Pane action.
  143. // Returns: TRUE if action was canceled
  144. //-----------------------------------------------------------------------
  145. BOOL OnAction(XTPDockingPaneAction action);
  146. protected:
  147. //-----------------------------------------------------------------------
  148. // Summary:
  149. //     Call this member to determine if there are children panes
  150. // Returns:
  151. //     TRUE if no children panes; otherwise returns FALSE.
  152. //-----------------------------------------------------------------------
  153. virtual BOOL IsEmpty() const;
  154. protected:
  155. CXTPDockingPaneBaseList m_lstPanes;         // Child panes collection
  156. };
  157. AFX_INLINE CXTPDockingPaneBaseList& CXTPDockingPaneBaseContainer::GetPanes() {
  158. return m_lstPanes;
  159. }
  160. #endif // #if !defined(__XTPDOCKINGPANEBASECONTAINER_H__)