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.
		
		
		
		
		
			
		
			
				
	
	
		
			1209 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			C++
		
	
			
		
		
	
	
			1209 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			C++
		
	
| // XTPShortcutBar.h interface for the CXTPShortcutBar class.
 | |
| //
 | |
| // This file is a part of the XTREME SHORTCUTBAR 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(__XTPSHORTCUTBAR_H__)
 | |
| #define __XTPSHORTCUTBAR_H__
 | |
| //}}AFX_CODEJOCK_PRIVATE
 | |
| 
 | |
| #if _MSC_VER > 1000
 | |
| #pragma once
 | |
| #endif // _MSC_VER > 1000
 | |
| 
 | |
| class CXTPShortcutBarAnimation;
 | |
| class CXTPShortcutBarPopup;
 | |
| class CXTPImageManagerIcon;
 | |
| 
 | |
| //-----------------------------------------------------------------------
 | |
| // Summary:
 | |
| //     XTP_SBN_SELECTION_CHANGED is used to indicate that the selection
 | |
| //     has changed in the shortcut bar.
 | |
| // Remarks:
 | |
| //     XTP_SBN_SELECTION_CHANGED is sent in the XTPWM_SHORTCUTBAR_NOTIFY
 | |
| //     message to the owner window when the selection has changed.
 | |
| //
 | |
| //     The selection changed when a user clicks on a shortcut bar item or
 | |
| //     the items are navigated with the arrow keys.
 | |
| // Example:
 | |
| //   See example of XTPWM_SHORTCUTBAR_NOTIFY
 | |
| // See Also:
 | |
| //     XTPWM_SHORTCUTBAR_NOTIFY, XTP_SBN_RCLICK
 | |
| //-----------------------------------------------------------------------
 | |
| const UINT XTP_SBN_SELECTION_CHANGING  = 1;
 | |
| 
 | |
| //-----------------------------------------------------------------------
 | |
| // Summary:
 | |
| //     XTP_SBN_SELECTION_CHANGING is used to indicate that value for the selection
 | |
| //     is currently changing.
 | |
| // Remarks:
 | |
| //     XTP_SBN_SELECTION_CHANGING is sent in the XTPWM_SHORTCUTBAR_NOTIFY
 | |
| //     message to the owner window when the selection is in the process of changing.
 | |
| //
 | |
| //     The selection changed when a user clicks on a shortcut bar item or
 | |
| //     the items are navigated with the arrow keys.
 | |
| // See Also:
 | |
| //     XTPWM_SHORTCUTBAR_NOTIFY, XTP_SBN_RCLICK
 | |
| //-----------------------------------------------------------------------
 | |
| const UINT XTP_SBN_SELECTION_CHANGED = 3;
 | |
| 
 | |
| //-----------------------------------------------------------------------
 | |
| // Summary:
 | |
| //     XTP_SBN_RCLICK is used to indicate that the user has pressed the
 | |
| //     right mouse button on a shortcut bar item.
 | |
| // Remarks:
 | |
| //     XTP_SBN_RCLICK is sent in the XTPWM_SHORTCUTBAR_NOTIFY message to the
 | |
| //     owner window when the user has right clicked on a shortcut bar item.
 | |
| // Example:
 | |
| //   See example of XTPWM_SHORTCUTBAR_NOTIFY
 | |
| // See Also:
 | |
| //     XTPWM_SHORTCUTBAR_NOTIFY, XTP_SBN_SELECTION_CHANGING
 | |
| //-----------------------------------------------------------------------
 | |
| const UINT XTP_SBN_RCLICK = 2;
 | |
| 
 | |
| 
 | |
| 
 | |
| //-----------------------------------------------------------------------
 | |
| // Summary:
 | |
| //     XTP_SBN_MINIMIZEBUTTONCLICKED is used to indicate that the user has pressed the
 | |
| //     minimize button inside Pane caption
 | |
| // Remarks:
 | |
| //     XTP_SBN_MINIMIZEBUTTONCLICKED is sent in the XTPWM_SHORTCUTBAR_NOTIFY message to the
 | |
| //     owner window when the user has clicked minimize button
 | |
| // Example:
 | |
| //   See example of XTPWM_SHORTCUTBAR_NOTIFY
 | |
| // See Also:
 | |
| //     XTPWM_SHORTCUTBAR_NOTIFY, XTP_SBN_SELECTION_CHANGING, CXTPShortcutBar::ShowMinimizeButton
 | |
| //-----------------------------------------------------------------------
 | |
| const UINT XTP_SBN_MINIMIZEBUTTONCLICKED = 4;
 | |
| 
 | |
| 
 | |
| //-----------------------------------------------------------------------
 | |
| // Summary:
 | |
| //     The XTPWM_SHORTCUTBAR_NOTIFY message is sent to the CXTPShortcutBar owner window
 | |
| //     whenever an action occurs within the CXTPShortcutBar
 | |
| // Parameters:
 | |
| //     nAction -  Value of wParam specifies a ShortcutBar value that indicates the user's
 | |
| //                request.
 | |
| //     pItem    - The value of lParam points to an CXTPShortcutBarItem object that contains information for the
 | |
| //                specified item. This pointer should <b>never</b> be NULL.
 | |
| // Remarks:
 | |
| //     nAction parameter can be one of the following values:
 | |
| //         * <b>XTP_SBN_SELECTION_CHANGING</b> Indicates the selection has changed in the shortcut bar.
 | |
| //         * <b>XTP_SBN_RCLICK</b> Indicates the user pressed the right mouse button on the shortcut bar item.
 | |
| //
 | |
| // Returns:
 | |
| //     If the application is to process this message, the return value should be TRUE, otherwise the
 | |
| //     return value is FALSE.
 | |
| // Example:
 | |
| //     Here is an example of how an application would process the XTPWM_SHORTCUTBAR_NOTIFY
 | |
| //     message.
 | |
| // <code>
 | |
| //
 | |
| // BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
 | |
| //     //{{AFX_MSG_MAP(CMainFrame)
 | |
| //     ON_MESSAGE(XTPWM_SHORTCUTBAR_NOTIFY, OnShortcutBarNotify)
 | |
| //     //}}AFX_MSG_MAP
 | |
| // END_MESSAGE_MAP()
 | |
| //
 | |
| // LRESULT CMainFrame::OnShortcutBarNotify(WPARAM wParam, LPARAM lParam)
 | |
| // {
 | |
| //      switch (wParam)
 | |
| //      {
 | |
| //          case XTP_SBN_SELECTION_CHANGING:
 | |
| //              {
 | |
| //                  CXTPShortcutBarItem* pItem = (CXTPShortcutBarItem*)lParam;
 | |
| //                  TRACE(_T("Selection Changing. Item.Caption = %s\n"), pItem->GetCaption());
 | |
| //
 | |
| //                  // TODO: You can return -1 to ignore changing
 | |
| //
 | |
| //              }
 | |
| //              return TRUE;
 | |
| //          case XTP_SBN_RCLICK:
 | |
| //              {
 | |
| //                  CPoint point(lParam);
 | |
| //                  CXTPShortcutBarItem* pItem = m_wndShortcutBar.HitTest(point);
 | |
| //                  if (pItem)
 | |
| //                  {
 | |
| //                      TRACE(_T("RClick. Item.ID = %i\n"), pItem->GetID());
 | |
| //
 | |
| //                      CMenu mnu;
 | |
| //                      mnu.LoadMenu(IDR_POPUP_MENU);
 | |
| //
 | |
| //                      m_wndShortcutBar.ClientToScreen(&point);
 | |
| //
 | |
| //                      CXTPCommandBars::TrackPopupMenu(mnu.GetSubMenu(0), 0, point.x, point.y, AfxGetMainWnd());
 | |
| //
 | |
| //                  }
 | |
| //              }
 | |
| //              return TRUE;
 | |
| //
 | |
| //
 | |
| //      }
 | |
| //      return 0;
 | |
| //  }
 | |
| // </code>
 | |
| // See Also:
 | |
| //     XTP_SBN_SELECTION_CHANGING, XTP_SBN_RCLICK, CXTPShortcutBar
 | |
| //-----------------------------------------------------------------------
 | |
| const UINT XTPWM_SHORTCUTBAR_NOTIFY = (WM_USER + 9190 + 1);
 | |
| 
 | |
| 
 | |
| class CXTPShortcutBar;
 | |
| class CXTPImageManager;
 | |
| class CXTPToolTipContext;
 | |
| 
 | |
| //===========================================================================
 | |
| // Summary:
 | |
| //     CXTPShortcutBarItem is the base class representing an item of the
 | |
| //     ShortcutBar Control.
 | |
| //===========================================================================
 | |
| class _XTP_EXT_CLASS CXTPShortcutBarItem : public CXTPCmdTarget
 | |
| {
 | |
| protected:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Constructs a CXTPShortcutBarItem object.
 | |
| 	// Parameters:
 | |
| 	//     pShortcutBar - Points to the parent ShortcutBar class.
 | |
| 	//     nID - Identifier of the item.
 | |
| 	//     pWnd - Client window of the item
 | |
| 	//     pShortcutBar - Points to the parent ShortcutBar class.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBarItem(CXTPShortcutBar* pShortcutBar, int nID, CWnd* pWnd); // <combine CXTPShortcutBarItem::CXTPShortcutBarItem@CXTPShortcutBar*>
 | |
| 
 | |
| public:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to set the identifier of the item.
 | |
| 	// Parameters:
 | |
| 	//     nID - The new identifier of the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetID(int nID);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to get the identifier of the item.
 | |
| 	// Returns:
 | |
| 	//     Identifier of the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	int GetID() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to set the icon's identifier.
 | |
| 	// Parameters:
 | |
| 	//     nId - Icon's identifier to be set.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetIconId(int nId);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to get the icon's identifier.
 | |
| 	// Returns:
 | |
| 	//     An icon's identifier of the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	int GetIconId() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to set the caption of the item.
 | |
| 	// Parameters:
 | |
| 	//     strCaption - The new caption of the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetCaption(LPCTSTR strCaption);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to get the caption of the item.
 | |
| 	// Returns:
 | |
| 	//     A CString object containing the caption of the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CString GetCaption() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member function to set the visibility state of the item.
 | |
| 	// Parameters:
 | |
| 	//     bVisible - TRUE if the item is visible; otherwise FALSE.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetVisible(BOOL bVisible);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member function to determine if the item is visible.
 | |
| 	// Returns:
 | |
| 	//     TRUE if the item is visible; otherwise FALSE.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsVisible() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Associates ToolTip text with the item.
 | |
| 	// Parameters:
 | |
| 	//     strTooltip - The ToolTip text to display when the mouse cursor is over the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetTooltip(LPCTSTR strTooltip);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Retrieves the ToolTip text associated with the item.
 | |
| 	// Returns:
 | |
| 	//     The ToolTip text for the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CString GetTooltip() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member function to determine if the item is expanded.
 | |
| 	// Returns:
 | |
| 	//     TRUE if the item is expanded; otherwise FALSE.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsExpanded() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member function to determine if the item is expand button.
 | |
| 	// Returns:
 | |
| 	//     TRUE if the item is expand button; otherwise FALSE.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsItemExpandButton() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member function to get the parent ShortcutBar class.
 | |
| 	// Returns:
 | |
| 	//     A Pointer to the parent CXTPShortcutBar class.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBar* GetShortcutBar() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method retrieves the dimensions of the rectangle that bounds the item.
 | |
| 	// Returns:
 | |
| 	//     CRect object contains the bounding rectangle of the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CRect GetItemRect() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method sets the 32-bit value associated with the item.
 | |
| 	// Parameters:
 | |
| 	//     dwData - Contains the new value to associate with the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetItemData(DWORD_PTR dwData);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method retrieves the application-supplied 32-bit value associated with the item
 | |
| 	// Returns:
 | |
| 	//     The 32-bit value associated with the item
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	DWORD_PTR GetItemData() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to retrieve the image of this shortcut bar item.
 | |
| 	// Parameters:
 | |
| 	//     nWidth - Width of the icon to be retrieved. (CXTPImageManagerIcon
 | |
| 	//              can have multiple image sizes for the same item, the
 | |
| 	//              shortcut bar uses both 16x16 and 24x24 images depending on
 | |
| 	//              if the item is displayed in the extended shortcut list).
 | |
| 	//              If a 16x16 icon is to be retrieved, then pass in 16 for
 | |
| 	//              the width.
 | |
| 	// Returns:
 | |
| 	//     A pointer the CXTPImageManagerIcon object for this shortcut bar
 | |
| 	//     item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPImageManagerIcon* GetImage(int nWidth) const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member function to determine is the ShortcutBarItem is hidden.
 | |
| 	//     An item is hidden when there are more items then can be displayed
 | |
| 	//     in the bottom shortcut bar.  As the shortcut bar is expanded, items
 | |
| 	//     that were hidden will become visible as more items are added to the
 | |
| 	//     expanded shortcut bar.
 | |
| 	// Returns:
 | |
| 	//     TRUE is the ShortcutBarItem is hidden, otherwise FALSE
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsHidden() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to determine if the item is currently selected.
 | |
| 	//     Note that multiple items can be selected at one time, but only one
 | |
| 	//     can have focus.
 | |
| 	// Returns:
 | |
| 	//     TRUE if the item is currently selected.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsSelected() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to select this item.  Multiple items can have
 | |
| 	//     focus if CXTPShortcutBar::m_bSingleSelection is FALSE.
 | |
| 	// Parameters:
 | |
| 	//     bSelected - TRUE if the item will be selected, FALSE to no longer
 | |
| 	//                 select the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetSelected(BOOL bSelected);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to get child window of the item.
 | |
| 	// Returns:
 | |
| 	//     CWnd pointer to child window
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CWnd* GetClientWindow() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to set child window that will be visible
 | |
| 	//     in client part of the shortcutbar when item is selected.
 | |
| 	// Parameters:
 | |
| 	//     pWnd - New child window to be set.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetClientWindow(CWnd* pWnd);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Determines if item is enabled and clickable by user
 | |
| 	// Returns:
 | |
| 	//     TRUE if items is neabled
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsEnabled() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to enable/disable individual item of shortuct bar.
 | |
| 	// Parameters:
 | |
| 	//     bEnabled - TRUE to enable item
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetEnabled(BOOL bEnabled);
 | |
| 
 | |
| protected:
 | |
| 	CString m_strCaption;               // Caption for the item.
 | |
| 	CString m_strTooltip;               // Tooltip for the item.
 | |
| 	int m_nID;                          // Item's identifier.
 | |
| 	CRect m_rcItem;                     // Bounding rectangle of the item
 | |
| 	BOOL m_bVisible;                    // TRUE if the item is visible
 | |
| 	BOOL m_bExpanded;                   // TRUE if the item is expanded
 | |
| 	BOOL m_bHidden;                     // TRUE if the item is hidden
 | |
| 	HWND m_hwndChild;                   // Child window associated with the item
 | |
| 	BOOL m_bExpandButton;               // True if the item is expand button
 | |
| 	BOOL m_bNavigateButton;             // True if the item is navigate button
 | |
| 	DWORD_PTR m_dwData;                 // The 32-bit value associated with the item
 | |
| 	CXTPShortcutBar* m_pShortcutBar;    // Parent CXTPShortcutBar class
 | |
| 	BOOL m_bSelected;                   // TRUE if item selected
 | |
| 	int m_nIconId;                      // Identifier of the item's image.
 | |
| 	BOOL m_bEnabled;                    // RUE if the item is Enabled
 | |
| 
 | |
| private:
 | |
| 
 | |
| 	friend class CXTPShortcutBar;
 | |
| };
 | |
| 
 | |
| //-----------------------------------------------------------------------
 | |
| // Summary:
 | |
| //     CXTPShortcutBar is a CWnd derived class. It is used to implement
 | |
| //     an Outlook2003 ShortcutBar style control.
 | |
| //-----------------------------------------------------------------------
 | |
| class _XTP_EXT_CLASS CXTPShortcutBar : public CWnd
 | |
| {
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Array of CXTPShortcutBarItem objects
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	typedef CArray<CXTPShortcutBarItem*, CXTPShortcutBarItem*> CShortcutArray;
 | |
| 
 | |
| public:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Constructs a CXTPShortcutBar object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBar();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Destroys a CXTPShortcutBar object, handles cleanup and deallocation.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual ~CXTPShortcutBar();
 | |
| 
 | |
| 
 | |
| public:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method creates the ShortcutBar control
 | |
| 	// Parameters:
 | |
| 	//     dwStyle - Style for the ShortcutBar.
 | |
| 	//     rect -  Specifies the size and position of the ShortcutBar control.
 | |
| 	//     pParentWnd - Specifies the parent window of the ShortcutBar control.
 | |
| 	//     nID - Specifies the ShortcutBar control ID.
 | |
| 	// Returns:
 | |
| 	//     TRUE if successful, otherwise returns FALSE.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Register the window class if it has not already been registered.
 | |
| 	// Parameters:
 | |
| 	//     hInstance - Instance of resource where control is located
 | |
| 	// Returns:
 | |
| 	//     TRUE if the window class was successfully registered.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL RegisterWindowClass(HINSTANCE hInstance = NULL);
 | |
| 
 | |
| public:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this function to retrieve state information from the registry or .INI file.
 | |
| 	// Parameters:
 | |
| 	//     lpszProfileName - Points to a null-terminated string that specifies the name of a
 | |
| 	//     section in the initialization file or a key in the Windows registry where state
 | |
| 	//     information is stored.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void LoadState(LPCTSTR lpszProfileName);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this function to save the state information to the registry or .INI file.
 | |
| 	// Parameters:
 | |
| 	//     lpszProfileName - Points to a null-terminated string that specifies the name of a
 | |
| 	//     section in the initialization file or a key in the Windows registry where state
 | |
| 	//     information is stored.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SaveState(LPCTSTR lpszProfileName);
 | |
| 
 | |
| public:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to add a new item.
 | |
| 	// Parameters:
 | |
| 	//     nID - Identifier of item that is to be added.
 | |
| 	//     pWnd - A Pointer to CWnd class associated with new item.
 | |
| 	// Returns:
 | |
| 	//     A pointer to a CXTPShortcutBarItem object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBarItem* AddItem(UINT nID, CWnd* pWnd = NULL);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to find an item with the specified identifier.
 | |
| 	// Parameters:
 | |
| 	//     nID - Identifier of the item needed to find.
 | |
| 	// Returns:
 | |
| 	//     A pointer to a CXTPShortcutBarItem object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBarItem* FindItem(int nID) const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to select the specified item.
 | |
| 	// Parameters:
 | |
| 	//     pItem - Item to be selected.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SelectItem(CXTPShortcutBarItem* pItem);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to show/hide expand button
 | |
| 	// Parameters:
 | |
| 	//     bShow - TRUE to show; FALSE to hide
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void ShowExpandButton(BOOL bShow);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Determines if expand button visible
 | |
| 	// Returns:
 | |
| 	//     TRUE if expand button is visible; otherwise FALSE;
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsExpandButtonVisible() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to remove the item.
 | |
| 	// Parameters:
 | |
| 	//     nID - Identifier of the item to delete.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void RemoveItem(int nID);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to remove all items.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void RemoveAllItems();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method retrieves an item with specified index.
 | |
| 	// Parameters:
 | |
| 	//     nIndex - Specifies the zero-based index of the item to retrieve.
 | |
| 	// Returns:
 | |
| 	//     A pointer to a CXTPShortcutBarItem object.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBarItem* GetItem(int nIndex) const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method determines where a point lies in a specified item.
 | |
| 	// Parameters:
 | |
| 	//     pt - Specifies the point to be tested.
 | |
| 	// Returns:
 | |
| 	//     A pointer to a CXTPShortcutBarItem item that occupies the specified point or NULL
 | |
| 	//     if no item occupies the point.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBarItem* HitTest(CPoint pt) const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method sets the minimum height of the client area in a ShortcutBar control.
 | |
| 	//     The default value is 200.
 | |
| 	// Parameters:
 | |
| 	//     nMinHeight - Specifies the minimum height in pixels of the client.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetMinimumClientHeight(int nMinHeight);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to determine gripper rectangle.
 | |
| 	// Returns:
 | |
| 	//     CRect object contains gripper bounding rectangle.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CRect GetGripperRect() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to get size of items
 | |
| 	// Returns:
 | |
| 	//     CSize object contains size of items
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CSize GetItemSize() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to set size of items
 | |
| 	// Parameters:
 | |
| 	//     szItem - Size of the item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetItemSize(CSize szItem);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method determines the count of visible lines in the ShortcutBar control.
 | |
| 	// Returns:
 | |
| 	//     Count of visible lines
 | |
| 	// See Also:
 | |
| 	//     SetExpandedLinesCount
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	int GetExpandedLinesCount() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method determines the height of visible lines in the ShortcutBar control.
 | |
| 	// Returns:
 | |
| 	//     Height of visible lines
 | |
| 	// See Also:
 | |
| 	//     SetExpandedLinesHeight
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	int GetExpandedLinesHeight() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method sets the count of lines that are visible in the ShortcutBar control.
 | |
| 	// Parameters:
 | |
| 	//     nCount - Number of visible lines.
 | |
| 	// See Also:
 | |
| 	//     GetExpandedLinesCount
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetExpandedLinesCount(int nCount);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method sets the the height of  lines that are visible in the ShortcutBar control.
 | |
| 	// Parameters:
 | |
| 	//     nHeight - Height of visible lines.
 | |
| 	// See Also:
 | |
| 	//     SetExpandedLinesCount, GetExpandedLinesCount
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetExpandedLinesHeight(int nHeight);
 | |
| 
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to enable/disable resize client area
 | |
| 	// Parameters:
 | |
| 	//     bAllowResize - TRUE to allow resize; FALSE to disable
 | |
| 	// See Also:
 | |
| 	//     SetExpandedLinesCount
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void AllowGripperResize(BOOL bAllowResize);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Returns the hot item in the ShortcutBar control.
 | |
| 	// Returns:
 | |
| 	//     Pointer to the hot item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBarItem* GetHotItem() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Returns the selected item in the ShortcutBar control.
 | |
| 	// Returns:
 | |
| 	//     Pointer to the selected item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBarItem* GetSelectedItem() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to allow only one item to be selected.
 | |
| 	// Parameters:
 | |
| 	//     bSingleSelection - TRUE to use single selection.
 | |
| 	// See Also: IsSingleSelection, SetSelectItemOnFocus
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetSingleSelection(BOOL bSingleSelection = TRUE);
 | |
| 
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to get Single Selection property of control.
 | |
| 	// See Also: SetSingleSelection, SetSelectItemOnFocus
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsSingleSelection() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to show active item on top of controls
 | |
| 	// Parameters:
 | |
| 	//     bActiveItemOnTop - TRUE to show active item on top of controls
 | |
| 	// See Also: IsShowActiveItemOnTop
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void ShowActiveItemOnTop(BOOL bActiveItemOnTop);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to get ShowActiveItemOnTop property of control.
 | |
| 	// See Also: ShowActiveItemOnTop
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsShowActiveItemOnTop() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to allow resize gripper by pixel
 | |
| 	// Parameters:
 | |
| 	//     bAllowFreeResize - TRUE to allow resize gripper by pixel
 | |
| 	// See Also: IsShowActiveItemOnTop
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void AllowFreeResize(BOOL bAllowFreeResize);
 | |
| 
 | |
| 	// Summary:
 | |
| 	//     Determines if gripper allowed to resize by pixel.
 | |
| 	// See Also: ShowActiveItemOnTop
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsAllowFreeResize() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to allow collapse items
 | |
| 	// Parameters:
 | |
| 	//     bAllowCollapse - TRUE to allow collapse items
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void AllowCollapse(BOOL bAllowCollapse);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to show gripper.
 | |
| 	// Parameters:
 | |
| 	//     bShowGripper - TRUE to show gripper; FALSE to hide
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void ShowGripper(BOOL bShowGripper);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Returns the pressed item in the ShortcutBar control.
 | |
| 	// Returns:
 | |
| 	//     Pointer to the pressed item.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBarItem* GetPressedItem() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Determines visibility of client pane.
 | |
| 	// Returns:
 | |
| 	//     TRUE if client pane is visible.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsClientPaneVisible() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to show or hide client pane.
 | |
| 	// Parameters:
 | |
| 	//     bVisible - TRUE to show client pane; FALSE to hide.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetClientPaneVisible(BOOL bVisible);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to set new image manager.
 | |
| 	// Parameters:
 | |
| 	//     pImageManager - Points to a CXTPImageManager object to be set
 | |
| 	// Example:
 | |
| 	// <code>
 | |
| 	//     CXTPImageManager* pImageManager = new CXTPImageManager();
 | |
| 	//     pImageManager->SetIcons(IDR_MAINFRAME);
 | |
| 	//     m_wndShortcutBar.SetImageManager(pImageManager);
 | |
| 	// </code>
 | |
| 	// See Also:
 | |
| 	//     GetImageManager
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetImageManager(CXTPImageManager* pImageManager);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to get a pointer to the image manager of shortcut
 | |
| 	//     bar control.
 | |
| 	// Returns:
 | |
| 	//     Pointer to the image manager of shortcut bar control.
 | |
| 	// Remarks:
 | |
| 	//     The image manager is used to hold all of the icons displayed in the
 | |
| 	//     shortcut bar control.
 | |
| 	// See Also:
 | |
| 	//     SetImageManager
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPImageManager* GetImageManager() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to determine how many CXTPShortcutBarItem(s) are int he
 | |
| 	//     shortcut bar.
 | |
| 	// Returns:
 | |
| 	//     Number of shortcut bar items in the shortcut bar.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	int GetItemCount() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to set right-to-left mode.
 | |
| 	// Parameters:
 | |
| 	//     bRightToLeft - TRUE to set right-to-left reading-order properties.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetLayoutRTL(BOOL bRightToLeft);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Retrieves bounding rectangle of shortcut bar client
 | |
| 	// Returns:
 | |
| 	//     Bounding rectangle of shortcut bar client
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CRect GetClientPaneRect() const;
 | |
| 
 | |
| public:
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to switch the visual theme of the ShortcutBar control.
 | |
| 	// Parameters:
 | |
| 	//     paintTheme - New visual theme. Can be any of the values listed in the Remarks section.
 | |
| 	// Remarks:
 | |
| 	//     paintTheme can be one of the following:
 | |
| 	//     * <b>xtpShortcutThemeOffice2000</b> Enables Office 2000 style theme.
 | |
| 	//     * <b>xtpShortcutThemeOfficeXP</b> Enables Office XP style theme.
 | |
| 	//     * <b>xtpShortcutThemeOffice2003</b> Enables Office 2003 style theme.
 | |
| 	//     * <b>xtpTaskPanelThemeShortcutBarOffice2007</b> Enables Office 2007 style theme.
 | |
| 	//
 | |
| 	// See Also:
 | |
| 	//     GetCurrentTheme, SetCustomTheme, XTPShortcutBarPaintTheme
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetTheme(XTPShortcutBarPaintTheme paintTheme);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to set a custom theme.
 | |
| 	// Parameters:
 | |
| 	//     pPaintManager - New paint manager.
 | |
| 	// See Also:
 | |
| 	//     GetCurrentTheme, SetTheme, XTPShortcutBarPaintTheme
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetCustomTheme(CXTPShortcutBarPaintManager* pPaintManager);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to get the current paint manager.
 | |
| 	// Returns:
 | |
| 	//     The current paint manager.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPShortcutBarPaintManager* GetPaintManager() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this member to get the current visual theme.
 | |
| 	// Returns:
 | |
| 	//     The current theme.
 | |
| 	// See Also:
 | |
| 	//     SetTheme, SetCustomTheme, XTPShortcutBarPaintTheme
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	XTPShortcutBarPaintTheme GetCurrentTheme() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to redraw control.
 | |
| 	// Parameters:
 | |
| 	//     lpRect - The rectangular area of the bar that is invalid.
 | |
| 	//     bAnimate - TRUE to animate changes in bounding rectangle.
 | |
| 	//-------------------------------------------------------------------------
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void RedrawControl(LPCRECT lpRect = NULL, BOOL bAnimate = FALSE);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to get tooltip context pointer.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	CXTPToolTipContext* GetToolTipContext() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to determine the number of visible items
 | |
| 	// Returns:
 | |
| 	//     Number of visible items
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	int GetVisibleItemsCount() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to determine the number of collapsed items
 | |
| 	// Returns:
 | |
| 	//     Number of collapsed items
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	int GetCollapsedItemsCount() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to reposition items.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void Reposition();
 | |
| 
 | |
| 	// ----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Called by the framework to draw the shortcut bar using the specified
 | |
| 	//     device context.
 | |
| 	// Parameters:
 | |
| 	//     pDC :        Pointer to a valid device context.
 | |
| 	//     rcClipBox :  The rectangular area of the control that is invalid.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void OnDraw(CDC* pDC, CRect rcClipBox);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to enable animation for shortcut bar
 | |
| 	// Parameters:
 | |
| 	//     bEnable - TRUE to enable animation; FALSE to disable
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void EnableAnimation(BOOL bEnable = TRUE);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Determines if ShortcutBar in minimized state
 | |
| 	// Returns:
 | |
| 	//     TRUE if Width of shortcutBar is less that m_nMinimizedWidth parameter
 | |
| 	// See Also: AllowMinimize
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsShortcutBarMinimized() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to show Navigation Pane if user resize ShortcutBar to small size
 | |
| 	// Parameters:
 | |
| 	//     bAllowMinimize - TRUE to allow minimize feature
 | |
| 	//     nMinimizedWidth - Width of shortcutBar considered as minimized
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void AllowMinimize(BOOL bAllowMinimize = TRUE, int nMinimizedWidth = 32);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to show Minimize button in caption of the Pane.
 | |
| 	// Parameters:
 | |
| 	//     bShowMinimizeButton - TRUE to show minimize button
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void ShowMinimizeButton(BOOL bShowMinimizeButton);
 | |
| 	BOOL IsMinimizeButtonVisible() const;
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Determines if Minimized ShortcutBar feature is enabled
 | |
| 	// Returns:
 | |
| 	//     TRUE to show Navigation Pane item when Width of ShortcutBar is less than m_nMinimizedWidth
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	BOOL IsAllowMinimize() const;
 | |
| 
 | |
| 	CXTPShortcutBarItem* GetNavigationPaneItem() const;
 | |
| 
 | |
| 	virtual void OnMinimizeButtonClicked();
 | |
| 
 | |
| protected:
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method is called when reposition is done.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void OnRepositionDone();
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method is called when expand button is pressed.
 | |
| 	// Parameters:
 | |
| 	//     pExpandButton - A pointer to expand button.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	virtual void OnExpandButtonDown(CXTPShortcutBarItem* pExpandButton);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     This method is called when Navigate button is pressed.
 | |
| 	// Parameters:
 | |
| 	//     pNavigateButton - A pointer to Navigate button.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void OnNavigateButtonDown(CXTPShortcutBarItem* pNavigateButton);
 | |
| 
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	// Summary:
 | |
| 	//     Call this method to set hot item.
 | |
| 	// Parameters:
 | |
| 	//     pItem - Item to be hot.
 | |
| 	//-----------------------------------------------------------------------
 | |
| 	void SetHotItem(CXTPShortcutBarItem* pItem);
 | |
| 
 | |
| protected:
 | |
| 
 | |
| //{{AFX_CODEJOCK_PRIVATE
 | |
| 	DECLARE_MESSAGE_MAP()
 | |
| 
 | |
| 	//{{AFX_VIRTUAL(CXTPShortcutBar)
 | |
| 	BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult);
 | |
| 	INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
 | |
| 	void PreSubclassWindow();
 | |
| 	BOOL PreCreateWindow(CREATESTRUCT& cs);
 | |
| 	//}}AFX_VIRTUAL
 | |
| 
 | |
| 	//{{AFX_MSG(CXTPShortcutBar)
 | |
| 	afx_msg void OnPaint();
 | |
| 	afx_msg LRESULT OnPrintClient(WPARAM wParam, LPARAM /*lParam*/);
 | |
| 	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
 | |
| 	afx_msg void OnSize(UINT nType, int cx, int cy);
 | |
| 	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
 | |
| 	afx_msg void OnDestroy();
 | |
| 	afx_msg void OnTimer(UINT_PTR nIDEvent);
 | |
| 	afx_msg void OnNcPaint();
 | |
| 	afx_msg void OnNcCalcSize(BOOL /*bCalcValidRects*/, NCCALCSIZE_PARAMS* /*lpncsp*/);
 | |
| 	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
 | |
| 	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
 | |
| 	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
 | |
| 	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
 | |
| 	afx_msg void OnCaptureChanged(CWnd* pWnd);
 | |
| 	afx_msg void OnMouseLeave();
 | |
| 	afx_msg void OnSysColorChange();
 | |
| 	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
 | |
| 	afx_msg void OnRButtonUp(UINT nFlags, CPoint point) ;
 | |
| 	afx_msg LRESULT OnExpandPopupExecute(WPARAM wparam, LPARAM lParam);
 | |
| 	afx_msg void OnShowMoreButtons();
 | |
| 	afx_msg void OnShowFewerButtons();
 | |
| 	afx_msg void OnUpdateShowMoreButtons(CCmdUI* pCmdUI);
 | |
| 	afx_msg void OnUpdateShowFewerButtons(CCmdUI* pCmdUI);
 | |
| 	afx_msg void OnSetFocus(CWnd* pWnd);
 | |
| 	//}}AFX_MSG
 | |
| //}}AFX_CODEJOCK_PRIVATE
 | |
| 
 | |
| private:
 | |
| 	BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
 | |
| 	CXTPShortcutBarItem* CreateNavigationItem();
 | |
| 	CXTPShortcutBarItem* CreateConfigureButton();
 | |
| 
 | |
| protected:
 | |
| 	CXTPShortcutBarPaintManager* m_pPaintManager;   // Current paint manager.
 | |
| 	CXTPImageManager* m_pImageManager;      // Current image manager.
 | |
| 	int m_nExpandedLines;                   // Number of lines currently visible
 | |
| 	int m_nDesiredExpandedLinesHeight;      // Desired visible lines height height.
 | |
| 	int m_nMinClientHeight;                 // The height of client area.
 | |
| 	BOOL m_bAllowResize;                    // TRUE to allow resize
 | |
| 	XTPShortcutBarPaintTheme m_paintTheme;  // Current theme.
 | |
| 	CShortcutArray m_arrItems;              // Array of items.
 | |
| 	CSize m_szItem;                         // Size of items
 | |
| 	CRect m_rcClient;                       // Client's rectangle.
 | |
| 	CRect m_rcGripper;                      // Gripper's rectangle.
 | |
| 	HWND m_hwndClient;                      // Client window handle
 | |
| 	HCURSOR m_hSizeCursor;                  // Handle to the cursor displayed for the size icon.
 | |
| 	BOOL m_bTrackingSize;                   // TRUE if control in tracking mode.
 | |
| 	BOOL m_bShowActiveItemOnTop;            // TRUE to show active item on top
 | |
| 	BOOL m_bAllowFreeResize;                // TRUE to allow resize gripper by pixel;
 | |
| 	BOOL m_bAllowCollapse;                  // TRUE to allow collapse items.
 | |
| 	BOOL m_bShowGripper;                    // TRUE to show gripper.
 | |
| 
 | |
| 	CXTPShortcutBarItem* m_pHotItem;        // Pointer to hot item.
 | |
| 	CXTPShortcutBarItem* m_pSelectedItem;   // Pointer to selected item.
 | |
| 	CXTPShortcutBarItem* m_pPressedItem;    // Pointer to pressed item.
 | |
| 
 | |
| 	CXTPShortcutBarPopup* m_pActivePopup;
 | |
| 
 | |
| 	CXTPShortcutBarItem* m_pNavigationPaneItem;
 | |
| 
 | |
| 	BOOL m_bClientPaneVisible;              // TRUE is client Pane in ShortcutBar is visible
 | |
| 	HCURSOR m_hHandCursor;                  // Hand cursor that is displayed when the cursor is positioned over a shortcut bar item.
 | |
| 	BOOL m_bSingleSelection;                // TRUE to use single selected items.
 | |
| 	CXTPToolTipContext* m_pToolTipContext;  // Tooltip Context.
 | |
| 	BOOL m_bPreSubclassWindow;              // True if PreSubclassWindow was called
 | |
| 	CXTPShortcutBarAnimation* m_pAnimation; // Animation helper
 | |
| 
 | |
| 	int m_bAllowMinimize;
 | |
| 	int m_nMinimizedWidth;
 | |
| 	BOOL m_bMinimized;
 | |
| 	BOOL m_bShowMinimizeButton;
 | |
| 
 | |
| 
 | |
| 	friend class CXTPShortcutBarItem;
 | |
| 	friend class CShortcutBarCtrl;
 | |
| };
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| AFX_INLINE CString CXTPShortcutBarItem::GetCaption() const{
 | |
| 	return m_strCaption;
 | |
| }
 | |
| AFX_INLINE CString CXTPShortcutBarItem::GetTooltip() const{
 | |
| 	return m_strTooltip;
 | |
| }
 | |
| AFX_INLINE BOOL CXTPShortcutBarItem::IsItemExpandButton() const{
 | |
| 	return m_bExpandButton;
 | |
| }
 | |
| AFX_INLINE BOOL CXTPShortcutBarItem::IsExpanded() const {
 | |
| 	return m_bExpanded;
 | |
| }
 | |
| AFX_INLINE CXTPShortcutBar* CXTPShortcutBarItem::GetShortcutBar() const {
 | |
| 	return m_pShortcutBar;
 | |
| }
 | |
| AFX_INLINE CRect CXTPShortcutBarItem::GetItemRect() const {
 | |
| 	return m_rcItem;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBarItem::SetItemData(DWORD_PTR dwData) {
 | |
| 	m_dwData = dwData;
 | |
| }
 | |
| AFX_INLINE DWORD_PTR CXTPShortcutBarItem::GetItemData() const {
 | |
| 	return m_dwData;
 | |
| }
 | |
| AFX_INLINE CWnd* CXTPShortcutBarItem::GetClientWindow() const {
 | |
| 	return CWnd::FromHandle(m_hwndChild);
 | |
| }
 | |
| 
 | |
| AFX_INLINE CXTPShortcutBarItem* CXTPShortcutBar::GetHotItem() const {
 | |
| 	return m_pHotItem;
 | |
| }
 | |
| AFX_INLINE CXTPShortcutBarItem* CXTPShortcutBar::GetSelectedItem() const {
 | |
| 	return m_pSelectedItem;
 | |
| }
 | |
| AFX_INLINE CXTPShortcutBarItem* CXTPShortcutBar::GetPressedItem() const {
 | |
| 	return m_pPressedItem;
 | |
| }
 | |
| AFX_INLINE CRect CXTPShortcutBar::GetGripperRect() const {
 | |
| 	return m_rcGripper;
 | |
| }
 | |
| AFX_INLINE CSize CXTPShortcutBar::GetItemSize() const {
 | |
| 	return m_szItem;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::SetItemSize(CSize szItem) {
 | |
| 	m_szItem = szItem;
 | |
| }
 | |
| AFX_INLINE int CXTPShortcutBar::GetExpandedLinesCount() const{
 | |
| 	return m_nExpandedLines;
 | |
| }
 | |
| AFX_INLINE BOOL CXTPShortcutBar::IsClientPaneVisible() const{
 | |
| 	return m_bClientPaneVisible;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::SetClientPaneVisible(BOOL bVisible) {
 | |
| 	m_bClientPaneVisible = bVisible;
 | |
| 	Reposition();
 | |
| }
 | |
| AFX_INLINE CXTPShortcutBarPaintManager* CXTPShortcutBar::GetPaintManager() const{
 | |
| 	return m_pPaintManager;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::SetMinimumClientHeight(int nMinHeight) {
 | |
| 	m_nMinClientHeight = nMinHeight;
 | |
| }
 | |
| AFX_INLINE XTPShortcutBarPaintTheme CXTPShortcutBar::GetCurrentTheme() const{
 | |
| 	return m_paintTheme;
 | |
| }
 | |
| AFX_INLINE BOOL CXTPShortcutBar::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
 | |
| 	return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::AllowGripperResize(BOOL bAllowResize) {
 | |
| 	m_bAllowResize = bAllowResize;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::SetSingleSelection(BOOL bSingleSelection) {
 | |
| 	m_bSingleSelection = bSingleSelection;
 | |
| 	Reposition();
 | |
| }
 | |
| AFX_INLINE BOOL CXTPShortcutBar::IsSingleSelection() const{
 | |
| 	return m_bSingleSelection;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::ShowActiveItemOnTop(BOOL bActiveItemOnTop) {
 | |
| 	m_bShowActiveItemOnTop = bActiveItemOnTop;
 | |
| 	Reposition();
 | |
| }
 | |
| AFX_INLINE BOOL CXTPShortcutBar::IsShowActiveItemOnTop() const {
 | |
| 	return m_bShowActiveItemOnTop;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::AllowFreeResize(BOOL bAllowFreeResize) {
 | |
| 	m_bAllowFreeResize = bAllowFreeResize;
 | |
| 	Reposition();
 | |
| }
 | |
| AFX_INLINE BOOL CXTPShortcutBar::IsAllowFreeResize() const {
 | |
| 	return m_bAllowFreeResize;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::AllowCollapse(BOOL bAllowCollapse) {
 | |
| 	m_bAllowCollapse = bAllowCollapse;
 | |
| 	Reposition();
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::ShowGripper(BOOL bShowGripper) {
 | |
| 	m_bShowGripper = bShowGripper;
 | |
| 	Reposition();
 | |
| }
 | |
| AFX_INLINE int CXTPShortcutBar::GetExpandedLinesHeight() const {
 | |
| 	return m_nDesiredExpandedLinesHeight;
 | |
| }
 | |
| AFX_INLINE CRect CXTPShortcutBar::GetClientPaneRect() const {
 | |
| 	return m_rcClient;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::AllowMinimize(BOOL bAllowMinimize, int nMinimizedWidth) {
 | |
| 	m_bAllowMinimize = bAllowMinimize;
 | |
| 	m_nMinimizedWidth = nMinimizedWidth;
 | |
| }
 | |
| AFX_INLINE void CXTPShortcutBar::ShowMinimizeButton(BOOL bShowMinimizeButton) {
 | |
| 	m_bShowMinimizeButton = bShowMinimizeButton;
 | |
| 	Reposition();
 | |
| }
 | |
| AFX_INLINE BOOL CXTPShortcutBar::IsAllowMinimize() const {
 | |
| 	return m_bAllowMinimize;
 | |
| }
 | |
| AFX_INLINE CXTPShortcutBarItem* CXTPShortcutBar::GetNavigationPaneItem() const {
 | |
| 	return m_pNavigationPaneItem;
 | |
| }
 | |
| AFX_INLINE BOOL CXTPShortcutBar::IsMinimizeButtonVisible() const {
 | |
| 	return m_bShowMinimizeButton;
 | |
| }
 | |
| 
 | |
| #endif // !defined(__XTPSHORTCUTBAR_H__)
 |