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

对话框与窗口

开发平台:

Visual C++

  1. // XTPRibbonTab.h: interface for the CXTPRibbonTab class.
  2. //
  3. // This file is a part of the XTREME RIBBON 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(__XTPRIBBONTAB_H__)
  22. #define __XTPRIBBONTAB_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. class CXTPRibbonGroups;
  28. class CXTPRibbonBar;
  29. class CXTPRibbonGroup;
  30. class CXTPRibbonTab;
  31. class CXTPCommandBar;
  32. class CXTPPropExchange;
  33. #include "TabManager/XTPTabManager.h"
  34. //-----------------------------------------------------------------------
  35. // Summary:
  36. //     Ribbon Tab context color
  37. // Example:
  38. // <code>
  39. // pTab = pRibbonBar->AddTab(ID_TAB_CHARTFORMAT);
  40. // pTab->SetContextTab(xtpRibbonTabContextColorGreen, ID_TAB_CONTEXTCHART);
  41. // </code>
  42. // See Also:
  43. //     CXTPRibbonTab, CXTPRibbonTab::SetContextColor
  44. //-----------------------------------------------------------------------
  45. enum XTPRibbonTabContextColor
  46. {
  47. xtpRibbonTabContextColorNone,           // Default color
  48. xtpRibbonTabContextColorBlue,           // Blue context color
  49. xtpRibbonTabContextColorYellow,         // Yellow context color
  50. xtpRibbonTabContextColorGreen,          // Green context color
  51. xtpRibbonTabContextColorRed,            // Red context color
  52. xtpRibbonTabContextColorPurple,         // Purple context color
  53. xtpRibbonTabContextColorCyan,           // Cyan context color
  54. xtpRibbonTabContextColorOrange          // Orange context color
  55. };
  56. //{{AFX_CODEJOCK_PRIVATE
  57. // Context headers internal classes
  58. class _XTP_EXT_CLASS CXTPRibbonTabContextHeader
  59. {
  60. public:
  61. CXTPRibbonTabContextHeader(CXTPRibbonTab* pFirstTab);
  62. public:
  63. CXTPRibbonTab* m_pFirstTab;
  64. CXTPRibbonTab* m_pLastTab;
  65. CString m_strCaption;
  66. XTPRibbonTabContextColor m_color;
  67. CRect m_rcRect;
  68. };
  69. class _XTP_EXT_CLASS CXTPRibbonTabContextHeaders
  70. {
  71. public:
  72. CXTPRibbonTabContextHeaders();
  73. ~CXTPRibbonTabContextHeaders();
  74. public:
  75. void RemoveAll();
  76. int GetCount() const;
  77. void Add(CXTPRibbonTabContextHeader* pHeader);
  78. CXTPRibbonTabContextHeader* GetHeader(int nIndex) const;
  79. CXTPRibbonTabContextHeader* HitTest(CPoint pt) const;
  80. protected:
  81. CArray<CXTPRibbonTabContextHeader*, CXTPRibbonTabContextHeader*> m_arrHeaders;
  82. };
  83. //}}AFX_CODEJOCK_PRIVATE
  84. //===========================================================================
  85. // Summary:
  86. //     Represents a tab in the Ribbon Bar.
  87. // Remarks:
  88. //     Tabs in the Ribbon Bar are used to display different groups of items.
  89. //     The CXTPRibbonBar.InsertTab method adds a new CXTPRibbonTab object to
  90. //     the tabs collection of the Ribbon Bar.
  91. //
  92. //     Tabs in the Ribbon Bar contain one or more CXTPRibbonGroup objects.
  93. //     Buttons, Popups, etc can then be added to the groups.
  94. //
  95. //     The CXTPRibbonBar::GetTabCount property can be used to determine the total number of
  96. //     tabs that have been added.
  97. // See Also: CXTPRibbonBar.InsertTab, CXTPRibbonBar::GetTabCount, CXTPRibbonBar::GetTab
  98. //===========================================================================
  99. class _XTP_EXT_CLASS CXTPRibbonTab : public CXTPTabManagerItem
  100. {
  101. DECLARE_SERIAL(CXTPRibbonTab)
  102. public:
  103. //-----------------------------------------------------------------------
  104. // Summary:
  105. //     Constructs a CXTPRibbonTab object
  106. //-----------------------------------------------------------------------
  107. CXTPRibbonTab();
  108. //-----------------------------------------------------------------------
  109. // Summary:
  110. //     Destroys a CXTPRibbonTab object, handles cleanup and deallocation.
  111. //-----------------------------------------------------------------------
  112. virtual ~CXTPRibbonTab();
  113. public:
  114. //-----------------------------------------------------------------------
  115. // Summary:
  116. //     Collection of CXTPRibbonGroup objects that have been added to
  117. //     the CXTPRibbonTab.
  118. // Remarks:
  119. //     A CXTPRibbonGroup is used to hold buttons, popups, edit controls,
  120. //     combo box controls, etc.  The group organizes the different
  121. //     types of controls in a CXTPRibbonTab so it is easy to see what functionality
  122. //     the controls should perform.  Groups are added to the
  123. //     Group collection using the AddGroup and InsertGroup methods.
  124. //     Groups are displayed in the order they are added.  This means
  125. //     the group with an Index of zero (0) will be displayed first to
  126. //     the far left, then to the immediate right will be the group
  127. //     with an Index of one (1), etc...
  128. //
  129. // Returns:
  130. //     Collection of CXTPRibbonGroup objects that have been added to
  131. //     the CXTPRibbonTab
  132. // See Also: CXTPRibbonGroups::GetAt, CXTPRibbonGroups::InsertAt, CXTPRibbonGroups::Add, CXTPRibbonGroups.GetCount
  133. //-----------------------------------------------------------------------
  134. CXTPRibbonGroups* GetGroups() const;
  135. //-----------------------------------------------------------------------
  136. // Summary:
  137. //     The CXTPRibbonBar object the CXTPRibbonTab belongs to.
  138. // Returns:
  139. //     A pointer to the CXTPRibbonBar object the CXTPRibbonTab belongs to.
  140. //     This is the RibbonBar that the tab is displayed in.
  141. // See Also: CXTPRibbonBar
  142. //-----------------------------------------------------------------------
  143. CXTPRibbonBar* GetRibbonBar() const;
  144. //-----------------------------------------------------------------------
  145. // Summary:
  146. //     Call this member to get the parent command bar.
  147. // Returns:
  148. //     The parent command bar object.
  149. //-----------------------------------------------------------------------
  150. CXTPCommandBar* GetParent() const;
  151. //----------------------------------------------------------------------
  152. // Summary:
  153. //     This method is called to copy the tab.
  154. // Parameters:
  155. //     pRibbonTab   - Points to a source CXTPRibbonTab object
  156. //----------------------------------------------------------------------
  157. virtual void Copy(CXTPRibbonTab* pRibbonTab);
  158. //-----------------------------------------------------------------------
  159. // Summary:
  160. //     Adds a CXTPRibbonGroup to a CXTPRibbonTab.
  161. // Parameters:
  162. //     lpszCaption - Text to display in the group's title bar.
  163. //                   This in the group's caption.
  164. //     nID         - Identifier of group
  165. // Returns:
  166. //     Reference to the CXTPRibbonGroup object added to the CXTPRibbonTab's
  167. //     Groups Collection (CXTPRibbonTab::GetGroups).
  168. // See Also: CXTPRibbonGroup::SetCaption, CXTPRibbonGroup::SetCaption, CXTPRibbonTab, CXTPRibbonTab::GetGroups
  169. //-----------------------------------------------------------------------
  170. CXTPRibbonGroup* AddGroup(LPCTSTR lpszCaption);
  171. CXTPRibbonGroup* AddGroup(int nID); // <combine CXTPRibbonTab::AddGroup@LPCTSTR>
  172. //-----------------------------------------------------------------------
  173. // Summary:
  174. //     Call this method to find group by its identifier
  175. // Parameters:
  176. //     nId - Identifier of group to be found
  177. // Returns:
  178. //     Pointer to CXTPRibbonGroup object with specified identifier
  179. // See Also: FindTab
  180. //-----------------------------------------------------------------------
  181. CXTPRibbonGroup* FindGroup(int nId) const;
  182. //-----------------------------------------------------------------------
  183. // Summary:
  184. //     Call this method to get tab color
  185. // Returns:
  186. //     XTPRibbonTabContextColor enumerator.
  187. // See Also: XTPRibbonTabContextColor
  188. //-----------------------------------------------------------------------
  189. XTPRibbonTabContextColor GetContextColor() const;
  190. //-----------------------------------------------------------------------
  191. // Summary:
  192. //     Call this method to set tab color
  193. // Parameters:
  194. //     color - XTPRibbonTabContextColor enumerator.
  195. // See Also: XTPRibbonTabContextColor
  196. //-----------------------------------------------------------------------
  197. void SetContextColor(XTPRibbonTabContextColor color);
  198. //-----------------------------------------------------------------------
  199. // Summary:
  200. //     Call this method to get context tab header text
  201. // Returns:
  202. //     Context header text
  203. // See Also: SetContextCaption, SetContextColor
  204. //-----------------------------------------------------------------------
  205. CString GetContextCaption() const;
  206. //-----------------------------------------------------------------------
  207. // Summary:
  208. //     Call this method to set context tab header text
  209. // Parameters:
  210. //     lpszContextCaption - new text to be set
  211. // See Also: GetContextCaption
  212. //-----------------------------------------------------------------------
  213. void SetContextCaption(LPCTSTR lpszContextCaption);
  214. //-----------------------------------------------------------------------
  215. // Summary:
  216. //     Call this method to set context tab color and text
  217. // Parameters:
  218. //     color - Color to be set
  219. //     nContextID - Caption string identifier
  220. //     lpszContextCaption - Caption string
  221. // See Also: GetContextCaption, GetContextColor
  222. //-----------------------------------------------------------------------
  223. void SetContextTab(XTPRibbonTabContextColor color, int nContextID);
  224. void SetContextTab(XTPRibbonTabContextColor color, LPCTSTR lpszContextCaption = NULL); // <combine CXTPRibbonTab::SetContextTab@XTPRibbonTabContextColor@int>
  225. //-----------------------------------------------------------------------
  226. // Summary:
  227. //     Gets the tab's Id.
  228. // Remarks:
  229. //     The Id is used to identify the tab.
  230. // Returns:
  231. //     Integer containing the tab's identifier.
  232. // See Also: SetID
  233. //-----------------------------------------------------------------------
  234. int GetID() const;
  235. //-----------------------------------------------------------------------
  236. // Summary:
  237. //     Call this method to set Identifier for the tab
  238. // Parameters:
  239. //     nId - The Id is used to identify the tab.
  240. // See Also: GetID
  241. //-----------------------------------------------------------------------
  242. void SetID(int nId);
  243. //-----------------------------------------------------------------------
  244. // Summary:
  245. //     Retrieve CXTPRibbonTabContextHeader pointer associated with the tab
  246. // Parameters:
  247. //     nId - The Id is used to identify the tab.
  248. // See Also: GetID
  249. //-----------------------------------------------------------------------
  250. CXTPRibbonTabContextHeader* GetContextHeader() const;
  251. //-----------------------------------------------------------------------
  252. // Summary:
  253. //     Call this member to hide or show the tab.
  254. // Parameters: bVisible - TRUE to show the tab, FALSE to hide the tab.
  255. // See Also: IsVisible
  256. //-----------------------------------------------------------------------
  257. virtual void SetVisible(BOOL bVisible);
  258. virtual void DoPropExchange(CXTPPropExchange* pPX);
  259. protected:
  260. //-------------------------------------------------------------------------
  261. // Summary:
  262. //     This method is called before removing tab from Ribbon Tabs collection
  263. //-------------------------------------------------------------------------
  264. void OnRemoved();
  265. protected:
  266. CXTPRibbonGroups* m_pGroups;            // Collection of CXTPRibbonGroup objects that have been added to
  267.                                         // the CXTPRibbonTab.
  268. CXTPRibbonBar* m_pRibbonBar;            // The CXTPRibbonBar object the CXTPRibbonTab belongs to.
  269.                                         // This is the RibbonBar that the tab is displayed in.
  270. CXTPCommandBar* m_pParent;
  271. int m_nId;                              // Identifier of the tab.
  272. XTPRibbonTabContextColor m_nContextColor;       // Context color
  273. CString m_strContextCaption;                    // Context caption
  274. CXTPRibbonTabContextHeader* m_pContextHeader;   // Context header
  275. friend class CXTPRibbonBar;
  276. friend class CXTPRibbonTabContextHeader;
  277. friend class CXTPRibbonTabPopupToolBar;
  278. friend class CXTPRibbonControlTab;
  279. };
  280. AFX_INLINE CXTPRibbonGroups* CXTPRibbonTab::GetGroups() const {
  281. return m_pGroups;
  282. }
  283. AFX_INLINE void CXTPRibbonTab::SetContextTab(XTPRibbonTabContextColor color, LPCTSTR lpszContextCaption) {
  284. m_nContextColor = color;
  285. m_strContextCaption = lpszContextCaption;
  286. }
  287. AFX_INLINE void CXTPRibbonTab::SetContextTab(XTPRibbonTabContextColor color, int nID) {
  288. m_nContextColor = color;
  289. if (nID != 0) VERIFY(m_strContextCaption.LoadString(nID));
  290. }
  291. AFX_INLINE int CXTPRibbonTab::GetID() const {
  292. return m_nId;
  293. }
  294. AFX_INLINE void CXTPRibbonTab::SetID(int nID) {
  295. m_nId = nID;
  296. }
  297. AFX_INLINE CString CXTPRibbonTab::GetContextCaption() const {
  298. return m_strContextCaption;
  299. }
  300. AFX_INLINE XTPRibbonTabContextColor CXTPRibbonTab::GetContextColor() const {
  301. return m_nContextColor;
  302. }
  303. AFX_INLINE void CXTPRibbonTab::SetContextColor(XTPRibbonTabContextColor color) {
  304. m_nContextColor = color;
  305. }
  306. AFX_INLINE void CXTPRibbonTab::SetContextCaption(LPCTSTR lpszContextCaption) {
  307. m_strContextCaption = lpszContextCaption;
  308. }
  309. AFX_INLINE CXTPRibbonTabContextHeader* CXTPRibbonTab::GetContextHeader() const {
  310. return m_pContextHeader;
  311. }
  312. AFX_INLINE CXTPCommandBar* CXTPRibbonTab::GetParent() const {
  313. return m_pParent;
  314. }
  315. #endif // !defined(__XTPRIBBONTAB_H__)