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.
402 lines
15 KiB
C++
402 lines
15 KiB
C++
// XTPRibbonTab.h: interface for the CXTPRibbonTab class.
|
|
//
|
|
// This file is a part of the XTREME RIBBON 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(__XTPRIBBONTAB_H__)
|
|
#define __XTPRIBBONTAB_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
class CXTPRibbonGroups;
|
|
class CXTPRibbonBar;
|
|
class CXTPRibbonGroup;
|
|
class CXTPRibbonTab;
|
|
class CXTPCommandBar;
|
|
class CXTPPropExchange;
|
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Ribbon Tab context color
|
|
// Example:
|
|
// <code>
|
|
// pTab = pRibbonBar->AddTab(ID_TAB_CHARTFORMAT);
|
|
// pTab->SetContextTab(xtpRibbonTabContextColorGreen, ID_TAB_CONTEXTCHART);
|
|
// </code>
|
|
// See Also:
|
|
// CXTPRibbonTab, CXTPRibbonTab::SetContextColor
|
|
//-----------------------------------------------------------------------
|
|
enum XTPRibbonTabContextColor
|
|
{
|
|
xtpRibbonTabContextColorNone, // Default color
|
|
xtpRibbonTabContextColorBlue, // Blue context color
|
|
xtpRibbonTabContextColorYellow, // Yellow context color
|
|
xtpRibbonTabContextColorGreen, // Green context color
|
|
xtpRibbonTabContextColorRed, // Red context color
|
|
xtpRibbonTabContextColorPurple, // Purple context color
|
|
xtpRibbonTabContextColorCyan, // Cyan context color
|
|
xtpRibbonTabContextColorOrange // Orange context color
|
|
};
|
|
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
|
|
// Context headers internal classes
|
|
|
|
class _XTP_EXT_CLASS CXTPRibbonTabContextHeader
|
|
{
|
|
public:
|
|
CXTPRibbonTabContextHeader(CXTPRibbonTab* pFirstTab);
|
|
|
|
public:
|
|
CXTPRibbonTab* m_pFirstTab;
|
|
CXTPRibbonTab* m_pLastTab;
|
|
CString m_strCaption;
|
|
XTPRibbonTabContextColor m_color;
|
|
CRect m_rcRect;
|
|
};
|
|
|
|
|
|
class _XTP_EXT_CLASS CXTPRibbonTabContextHeaders
|
|
{
|
|
public:
|
|
CXTPRibbonTabContextHeaders();
|
|
~CXTPRibbonTabContextHeaders();
|
|
public:
|
|
void RemoveAll();
|
|
int GetCount() const;
|
|
void Add(CXTPRibbonTabContextHeader* pHeader);
|
|
CXTPRibbonTabContextHeader* GetHeader(int nIndex) const;
|
|
CXTPRibbonTabContextHeader* HitTest(CPoint pt) const;
|
|
|
|
protected:
|
|
CArray<CXTPRibbonTabContextHeader*, CXTPRibbonTabContextHeader*> m_arrHeaders;
|
|
};
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// Represents a tab in the Ribbon Bar.
|
|
// Remarks:
|
|
// Tabs in the Ribbon Bar are used to display different groups of items.
|
|
// The CXTPRibbonBar.InsertTab method adds a new CXTPRibbonTab object to
|
|
// the tabs collection of the Ribbon Bar.
|
|
//
|
|
// Tabs in the Ribbon Bar contain one or more CXTPRibbonGroup objects.
|
|
// Buttons, Popups, etc can then be added to the groups.
|
|
//
|
|
// The CXTPRibbonBar::GetTabCount property can be used to determine the total number of
|
|
// tabs that have been added.
|
|
// See Also: CXTPRibbonBar.InsertTab, CXTPRibbonBar::GetTabCount, CXTPRibbonBar::GetTab
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPRibbonTab : public CXTPTabManagerItem
|
|
{
|
|
DECLARE_SERIAL(CXTPRibbonTab)
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTPRibbonTab object
|
|
//-----------------------------------------------------------------------
|
|
CXTPRibbonTab();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Destroys a CXTPRibbonTab object, handles cleanup and deallocation.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPRibbonTab();
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Collection of CXTPRibbonGroup objects that have been added to
|
|
// the CXTPRibbonTab.
|
|
// Remarks:
|
|
// A CXTPRibbonGroup is used to hold buttons, popups, edit controls,
|
|
// combo box controls, etc. The group organizes the different
|
|
// types of controls in a CXTPRibbonTab so it is easy to see what functionality
|
|
// the controls should perform. Groups are added to the
|
|
// Group collection using the AddGroup and InsertGroup methods.
|
|
// Groups are displayed in the order they are added. This means
|
|
// the group with an Index of zero (0) will be displayed first to
|
|
// the far left, then to the immediate right will be the group
|
|
// with an Index of one (1), etc...
|
|
//
|
|
// Returns:
|
|
// Collection of CXTPRibbonGroup objects that have been added to
|
|
// the CXTPRibbonTab
|
|
// See Also: CXTPRibbonGroups::GetAt, CXTPRibbonGroups::InsertAt, CXTPRibbonGroups::Add, CXTPRibbonGroups.GetCount
|
|
//-----------------------------------------------------------------------
|
|
CXTPRibbonGroups* GetGroups() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// The CXTPRibbonBar object the CXTPRibbonTab belongs to.
|
|
// Returns:
|
|
// A pointer to the CXTPRibbonBar object the CXTPRibbonTab belongs to.
|
|
// This is the RibbonBar that the tab is displayed in.
|
|
// See Also: CXTPRibbonBar
|
|
//-----------------------------------------------------------------------
|
|
CXTPRibbonBar* GetRibbonBar() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to get the parent command bar.
|
|
// Returns:
|
|
// The parent command bar object.
|
|
//-----------------------------------------------------------------------
|
|
CXTPCommandBar* GetParent() const;
|
|
|
|
//----------------------------------------------------------------------
|
|
// Summary:
|
|
// This method is called to copy the tab.
|
|
// Parameters:
|
|
// pRibbonTab - Points to a source CXTPRibbonTab object
|
|
//----------------------------------------------------------------------
|
|
virtual void Copy(CXTPRibbonTab* pRibbonTab);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Adds a CXTPRibbonGroup to a CXTPRibbonTab.
|
|
// Parameters:
|
|
// lpszCaption - Text to display in the group's title bar.
|
|
// This in the group's caption.
|
|
// nID - Identifier of group
|
|
// Returns:
|
|
// Reference to the CXTPRibbonGroup object added to the CXTPRibbonTab's
|
|
// Groups Collection (CXTPRibbonTab::GetGroups).
|
|
// See Also: CXTPRibbonGroup::SetCaption, CXTPRibbonGroup::SetCaption, CXTPRibbonTab, CXTPRibbonTab::GetGroups
|
|
//-----------------------------------------------------------------------
|
|
CXTPRibbonGroup* AddGroup(LPCTSTR lpszCaption);
|
|
CXTPRibbonGroup* AddGroup(int nID); // <combine CXTPRibbonTab::AddGroup@LPCTSTR>
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this method to find group by its identifier
|
|
// Parameters:
|
|
// nId - Identifier of group to be found
|
|
// Returns:
|
|
// Pointer to CXTPRibbonGroup object with specified identifier
|
|
// See Also: FindTab
|
|
//-----------------------------------------------------------------------
|
|
CXTPRibbonGroup* FindGroup(int nId) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this method to get tab color
|
|
// Returns:
|
|
// XTPRibbonTabContextColor enumerator.
|
|
// See Also: XTPRibbonTabContextColor
|
|
//-----------------------------------------------------------------------
|
|
XTPRibbonTabContextColor GetContextColor() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this method to set tab color
|
|
// Parameters:
|
|
// color - XTPRibbonTabContextColor enumerator.
|
|
// See Also: XTPRibbonTabContextColor
|
|
//-----------------------------------------------------------------------
|
|
void SetContextColor(XTPRibbonTabContextColor color);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this method to get context tab header text
|
|
// Returns:
|
|
// Context header text
|
|
// See Also: SetContextCaption, SetContextColor
|
|
//-----------------------------------------------------------------------
|
|
CString GetContextCaption() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this method to set context tab header text
|
|
// Parameters:
|
|
// lpszContextCaption - new text to be set
|
|
// See Also: GetContextCaption
|
|
//-----------------------------------------------------------------------
|
|
void SetContextCaption(LPCTSTR lpszContextCaption);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this method to set context tab color and text
|
|
// Parameters:
|
|
// color - Color to be set
|
|
// nContextID - Caption string identifier
|
|
// lpszContextCaption - Caption string
|
|
// See Also: GetContextCaption, GetContextColor
|
|
//-----------------------------------------------------------------------
|
|
void SetContextTab(XTPRibbonTabContextColor color, int nContextID);
|
|
void SetContextTab(XTPRibbonTabContextColor color, LPCTSTR lpszContextCaption = NULL); // <combine CXTPRibbonTab::SetContextTab@XTPRibbonTabContextColor@int>
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Gets the tab's Id.
|
|
// Remarks:
|
|
// The Id is used to identify the tab.
|
|
// Returns:
|
|
// Integer containing the tab's identifier.
|
|
// See Also: SetID
|
|
//-----------------------------------------------------------------------
|
|
int GetID() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this method to set Identifier for the tab
|
|
// Parameters:
|
|
// nId - The Id is used to identify the tab.
|
|
// See Also: GetID
|
|
//-----------------------------------------------------------------------
|
|
void SetID(int nId);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Retrieve CXTPRibbonTabContextHeader pointer associated with the tab
|
|
// Parameters:
|
|
// nId - The Id is used to identify the tab.
|
|
// See Also: GetID
|
|
//-----------------------------------------------------------------------
|
|
CXTPRibbonTabContextHeader* GetContextHeader() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to hide or show the tab.
|
|
// Parameters: bVisible - TRUE to show the tab, FALSE to hide the tab.
|
|
// See Also: IsVisible
|
|
//-----------------------------------------------------------------------
|
|
virtual void SetVisible(BOOL bVisible);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Reads or writes this object from or to an archive.
|
|
// Parameters:
|
|
// pPX - A CXTPPropExchange object to serialize to or from.
|
|
//----------------------------------------------------------------------
|
|
virtual void DoPropExchange(CXTPPropExchange* pPX);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to set the keyboard tip to the control.
|
|
// Parameters:
|
|
// lpszKeyboardTip - Keyboard tip to be set.
|
|
//-----------------------------------------------------------------------
|
|
void SetKeyboardTip(LPCTSTR lpszKeyboardTip);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member to get the keyboard tip.
|
|
// Returns:
|
|
// The keyboard tip of the control.
|
|
//-----------------------------------------------------------------------
|
|
CString GetKeyboardTip() const;
|
|
|
|
protected:
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This method is called before removing tab from Ribbon Tabs collection
|
|
//-------------------------------------------------------------------------
|
|
void OnRemoved();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Called by the framework to route and dispatch command messages
|
|
// and to handle the update of command user-interface objects.
|
|
// Parameters:
|
|
// nID - Contains the command ID.
|
|
// nCode - Identifies the command notification code.
|
|
// pExtra - Used according to the value of nCode.
|
|
// pHandlerInfo - If not NULL, OnCmdMsg fills in the pTarget and
|
|
// pmf members of the pHandlerInfo structure instead
|
|
// of dispatching the command. Typically, this parameter
|
|
// should be NULL.
|
|
// Returns:
|
|
// Nonzero if the message is handled; otherwise 0.
|
|
//-----------------------------------------------------------------------
|
|
BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
|
|
|
|
|
|
protected:
|
|
CXTPRibbonGroups* m_pGroups; // Collection of CXTPRibbonGroup objects that have been added to
|
|
// the CXTPRibbonTab.
|
|
CXTPRibbonBar* m_pRibbonBar; // The CXTPRibbonBar object the CXTPRibbonTab belongs to.
|
|
|
|
CXTPCommandBar* m_pParent; // This is the RibbonBar that the tab is displayed in.
|
|
int m_nId; // Identifier of the tab.
|
|
XTPRibbonTabContextColor m_nContextColor; // Context color
|
|
CString m_strContextCaption; // Context caption
|
|
CXTPRibbonTabContextHeader* m_pContextHeader; // Context header
|
|
CString m_strKeyboardTip; // Keyboard tip
|
|
|
|
friend class CXTPRibbonBar;
|
|
friend class CXTPRibbonTabContextHeader;
|
|
friend class CXTPRibbonTabPopupToolBar;
|
|
friend class CXTPRibbonControlTab;
|
|
};
|
|
|
|
AFX_INLINE void CXTPRibbonTab::SetKeyboardTip(LPCTSTR lpszKeyboardTip) {
|
|
m_strKeyboardTip = lpszKeyboardTip;
|
|
}
|
|
AFX_INLINE CString CXTPRibbonTab::GetKeyboardTip() const {
|
|
return m_strKeyboardTip;
|
|
}
|
|
|
|
AFX_INLINE CXTPRibbonGroups* CXTPRibbonTab::GetGroups() const {
|
|
return m_pGroups;
|
|
}
|
|
AFX_INLINE void CXTPRibbonTab::SetContextTab(XTPRibbonTabContextColor color, LPCTSTR lpszContextCaption) {
|
|
m_nContextColor = color;
|
|
m_strContextCaption = lpszContextCaption;
|
|
}
|
|
AFX_INLINE void CXTPRibbonTab::SetContextTab(XTPRibbonTabContextColor color, int nID) {
|
|
m_nContextColor = color;
|
|
if (nID != 0) VERIFY(m_strContextCaption.LoadString(nID));
|
|
}
|
|
AFX_INLINE int CXTPRibbonTab::GetID() const {
|
|
return m_nId;
|
|
}
|
|
AFX_INLINE void CXTPRibbonTab::SetID(int nID) {
|
|
m_nId = nID;
|
|
}
|
|
AFX_INLINE CString CXTPRibbonTab::GetContextCaption() const {
|
|
return m_strContextCaption;
|
|
}
|
|
AFX_INLINE XTPRibbonTabContextColor CXTPRibbonTab::GetContextColor() const {
|
|
return m_nContextColor;
|
|
}
|
|
AFX_INLINE void CXTPRibbonTab::SetContextColor(XTPRibbonTabContextColor color) {
|
|
m_nContextColor = color;
|
|
}
|
|
AFX_INLINE void CXTPRibbonTab::SetContextCaption(LPCTSTR lpszContextCaption) {
|
|
m_strContextCaption = lpszContextCaption;
|
|
}
|
|
AFX_INLINE CXTPRibbonTabContextHeader* CXTPRibbonTab::GetContextHeader() const {
|
|
return m_pContextHeader;
|
|
}
|
|
AFX_INLINE CXTPCommandBar* CXTPRibbonTab::GetParent() const {
|
|
return m_pParent;
|
|
}
|
|
|
|
#endif // !defined(__XTPRIBBONTAB_H__)
|