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

对话框与窗口

开发平台:

Visual C++

  1. // XTPTaskPanelItems.h interface for the CXTPTaskPanelItems class.
  2. //
  3. // This file is a part of the XTREME TASKPANEL 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(__XTPTASKPANELITEMS_H__)
  22. #define __XTPTASKPANELITEMS_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. class CXTPTaskPanelGroup;
  28. class CXTPTaskPanelItem;
  29. class CXTPTaskPanel;
  30. class CXTPPropExchange;
  31. //===========================================================================
  32. // Summary:
  33. //     CXTPTaskPanelItems is a CCmdTarget derived class. It is used as collection of
  34. //     CXTPTaskPanelItem classes.
  35. //===========================================================================
  36. class _XTP_EXT_CLASS CXTPTaskPanelItems : public CXTPCmdTarget
  37. {
  38. DECLARE_DYNCREATE(CXTPTaskPanelItems)
  39. public:
  40. //-----------------------------------------------------------------------
  41. // Summary:
  42. //     Constructs a CXTPTaskPanelItems object.
  43. // Parameters:
  44. //     pPanel - Pointer to the task panel to add the items to.
  45. //-----------------------------------------------------------------------
  46. CXTPTaskPanelItems(CXTPTaskPanel* pPanel = NULL);
  47. //-----------------------------------------------------------------------
  48. // Summary:
  49. //     Destroys a CXTPTaskPanelItems object, handles cleanup and deallocation.
  50. //-----------------------------------------------------------------------
  51. virtual ~CXTPTaskPanelItems();
  52. public:
  53. //-----------------------------------------------------------------------
  54. // Summary:
  55. //     Call this member to add a new item to the collection.
  56. // Parameters:
  57. //     pItem - Points to a CXTPTaskPanelItem to be added.
  58. //     nID - Identifier of the item.
  59. // Returns:
  60. //     A pointer to a CXTPTaskPanelItem object added.
  61. //-----------------------------------------------------------------------
  62. CXTPTaskPanelItem* Add(CXTPTaskPanelItem* pItem, UINT nID);
  63. //-----------------------------------------------------------------------
  64. // Summary:
  65. //     Call this member to insert an item at a specific position
  66. //     within the collection of items.
  67. // Parameters:
  68. //     nIndex - Position in collectionarray to insert the new item.
  69. //     pItem  - Pointer to a valid task panel itemgroup.
  70. // Remarks:
  71. //     To move an item, use the MOVE function.
  72. // Returns:
  73. //     A pointer to the newly inserted item.
  74. //-----------------------------------------------------------------------
  75. CXTPTaskPanelItem* InsertAt(int nIndex, CXTPTaskPanelItem* pItem);
  76. //-----------------------------------------------------------------------
  77. // Summary:
  78. //     Call this member to return the item at the specified index
  79. // Parameters:
  80. //     nIndex - Specifies the zero-based index of the item to retrieve.
  81. // Returns:
  82. //     A pointer to a CXTPTaskPanelItem object.
  83. //-----------------------------------------------------------------------
  84. CXTPTaskPanelItem* GetAt(int nIndex) const;
  85. //-----------------------------------------------------------------------
  86. // Summary:
  87. //     Call this method to remove all items in the collection.
  88. // Parameters:
  89. //     bReposition - TRUE to reposition items after remove.
  90. // See Also: CXTPTaskPanel::Reposition
  91. //-----------------------------------------------------------------------
  92. void Clear(BOOL bReposition = TRUE);
  93. //-----------------------------------------------------------------------
  94. // Summary:
  95. //     Call this member function to find an item by its ID
  96. // Parameters:
  97. //     nID - Identifier of item to be found.
  98. // Returns:
  99. //     A pointer to item if successful; otherwise returns NULL.
  100. //-----------------------------------------------------------------------
  101. CXTPTaskPanelItem* Find(UINT nID) const;
  102. //-----------------------------------------------------------------------
  103. // Summary:
  104. //     Call this method to remove the specified item.
  105. // Parameters:
  106. //     pItem - Item to be removed.
  107. //-----------------------------------------------------------------------
  108. void Remove(CXTPTaskPanelItem* pItem);
  109. //-----------------------------------------------------------------------
  110. // Summary:
  111. //     Call this method to remove the specified item by its index.
  112. // Parameters:
  113. //     nIndex - Specifies the zero-based index of the item to remove.
  114. //-----------------------------------------------------------------------
  115. void RemoveAt(int nIndex);
  116. //-----------------------------------------------------------------------
  117. // Summary:
  118. //     Call this member to get index of item in the collection of items.
  119. // Parameters:
  120. //     pItem - Item to be tested
  121. // Returns:
  122. //     Index of item in collection.
  123. //-----------------------------------------------------------------------
  124. int GetIndex(const CXTPTaskPanelItem* pItem) const;
  125. //-----------------------------------------------------------------------
  126. // Summary:
  127. //     Call this member to get count of items
  128. // Returns:
  129. //     Number of items.
  130. //-----------------------------------------------------------------------
  131. int GetCount() const;
  132. //-----------------------------------------------------------------------
  133. // Summary:
  134. //     Call this member function to get a pointer to the owner
  135. // Returns:
  136. //     A pointer to a CCmdTarget object owned by this collection
  137. //-----------------------------------------------------------------------
  138. CCmdTarget* GetOwner() const;
  139. //-----------------------------------------------------------------------
  140. // Summary:
  141. //     Call this member to move a GroupItem to the specified location
  142. //     within the collection of items.
  143. // Parameters:
  144. //     pItem  - GroupItem to be moved.
  145. //     nIndex - New position of the item within the collection of items.
  146. // Remarks:
  147. //     A GroupItem will be displayed in the order that they are added
  148. //     to the collection of items.  They are stored in a zero based array
  149. //     of items.  The items position within the array can be changed by
  150. //     specifying an index to move the item to.
  151. //-----------------------------------------------------------------------
  152. void Move(CXTPTaskPanelItem* pItem, int nIndex);
  153. //-----------------------------------------------------------------------
  154. // Summary:
  155. //     Reads or writes this object from or to an archive.
  156. // Parameters:
  157. //     pPX - A CXTPPropExchange object to serialize to or from.
  158. //-----------------------------------------------------------------------
  159. void DoPropExchange(CXTPPropExchange* pPX);
  160. //-----------------------------------------------------------------------
  161. // Summary:
  162. //     Retrieves default runtime class of items in collection.
  163. //-----------------------------------------------------------------------
  164. virtual CRuntimeClass* GetDefaultItemClass() const;
  165. //-----------------------------------------------------------------------
  166. // Summary:
  167. //     This method finds next visible item index in specified direction.
  168. // Parameters:
  169. //     nIndex - Index of the item to begin the searching with.
  170. //     nDirection - Direction to find (1 to forward, -1 to backward)
  171. // Returns:
  172. //     The index of the next visible item if successful, or -1 otherwise.
  173. // See Also: GetFirstVisibleItem, GetLastVisibleItem
  174. //-----------------------------------------------------------------------
  175. int GetNextVisibleIndex(int nIndex, int nDirection) const;
  176. //-----------------------------------------------------------------------
  177. // Summary:
  178. //     Retrieves first visible item.
  179. // Returns:
  180. //     Pointer to first visible item in collection
  181. // See Also: GetLastVisibleItem, GetNextVisibleIndex
  182. //-----------------------------------------------------------------------
  183. CXTPTaskPanelItem* GetFirstVisibleItem() const;
  184. //-----------------------------------------------------------------------
  185. // Summary:
  186. //     Retrieves last visible item.
  187. // Returns:
  188. //     Pointer to last visible item in collection
  189. // See Also: GetFirstVisibleItem, GetNextVisibleIndex
  190. //-----------------------------------------------------------------------
  191. CXTPTaskPanelItem* GetLastVisibleItem() const;
  192. protected:
  193. CXTPTaskPanel* m_pPanel;                                    // Parent TaskPanel control.
  194. CArray<CXTPTaskPanelItem*, CXTPTaskPanelItem*> m_arrItems;  // Array of items.
  195. CCmdTarget* m_pOwner;                                       // Owner of items. Can be TaskPanel or Group.
  196. friend class CXTPTaskPanel;
  197. friend class CXTPTaskPanelGroup;
  198. };
  199. //===========================================================================
  200. // Summary:
  201. //     CXTPTaskPanelGroupItems is a CXTPTaskPanelItems derived class.
  202. //     It is used as collection of items in the group.
  203. //===========================================================================
  204. class _XTP_EXT_CLASS CXTPTaskPanelGroupItems : public CXTPTaskPanelItems
  205. {
  206. public:
  207. //-----------------------------------------------------------------------
  208. // Summary:
  209. //     Constructs CXTPTaskPanelGroupItems object
  210. // Parameters:
  211. //     pPanel - Points to a CXTPTaskPanel object
  212. //-----------------------------------------------------------------------
  213. CXTPTaskPanelGroupItems(CXTPTaskPanel* pPanel);
  214. //-----------------------------------------------------------------------
  215. // Summary:
  216. //     Retrieves default runtime class of items in collection.
  217. //-----------------------------------------------------------------------
  218. virtual CRuntimeClass* GetDefaultItemClass() const;
  219. };
  220. //===========================================================================
  221. // Summary:
  222. //     CXTPTaskPanelGroups is a CXTPTaskPanelItems derived class.
  223. //     It is used as a collection of groups in the control.
  224. //===========================================================================
  225. class _XTP_EXT_CLASS CXTPTaskPanelGroups : public CXTPTaskPanelItems
  226. {
  227. public:
  228. //-----------------------------------------------------------------------
  229. // Summary:
  230. //     Constructs a CXTPTaskPanelGroups object
  231. // Parameters:
  232. //     pPanel - Points to a CXTPTaskPanel object
  233. //-----------------------------------------------------------------------
  234. CXTPTaskPanelGroups(CXTPTaskPanel* pPanel);
  235. //-----------------------------------------------------------------------
  236. // Summary:
  237. //     Retrieves default runtime class of items in collection.
  238. //-----------------------------------------------------------------------
  239. virtual CRuntimeClass* GetDefaultItemClass() const;
  240. };
  241. AFX_INLINE int CXTPTaskPanelItems::GetCount() const
  242. {
  243. return (int)m_arrItems.GetSize();
  244. }
  245. AFX_INLINE CXTPTaskPanelItem* CXTPTaskPanelItems::GetAt(int nIndex) const
  246. {
  247. return nIndex >= 0 && nIndex < m_arrItems.GetSize() ? m_arrItems.GetAt(nIndex) : NULL;
  248. }
  249. AFX_INLINE CCmdTarget* CXTPTaskPanelItems::GetOwner() const
  250. {
  251. return m_pOwner;
  252. }
  253. #endif // !defined(__XTPTASKPANELITEMS_H__)