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.
		
		
		
		
		
			
		
			
	
	
		
			1783 lines
		
	
	
		
			78 KiB
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			1783 lines
		
	
	
		
			78 KiB
		
	
	
	
		
			C
		
	
| 
											2 years ago
										 | // XTOutBarCtrl.h interface for the CXTOutBarCtrl class.
 | ||
|  | //
 | ||
|  | // This file is a part of the XTREME CONTROLS 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(__XTOUTBARCTRL_H__)
 | ||
|  | #define __XTOUTBARCTRL_H__
 | ||
|  | //}}AFX_CODEJOCK_PRIVATE
 | ||
|  | 
 | ||
|  | #if _MSC_VER >= 1000
 | ||
|  | #pragma once
 | ||
|  | #endif // _MSC_VER >= 1000
 | ||
|  | 
 | ||
|  | // forwards
 | ||
|  | class CXTOutBarItem; | ||
|  | class CXTOutBarFolder; | ||
|  | class CXTOutBarEditItem; | ||
|  | class CXTOutBarCtrlTheme; | ||
|  | 
 | ||
|  | const DWORD OBS_XT_SMALLICON       = 0x0001;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_LARGEICON       = 0x0002;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_EDITGROUPS      = 0x0004;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_EDITITEMS       = 0x0008;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_REMOVEGROUPS    = 0x0010;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_REMOVEITEMS     = 0x0020;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_ADDGROUPS       = 0x0040;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_DRAGITEMS       = 0x0080;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_ANIMATION       = 0x0100;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_SELHIGHLIGHT    = 0x0200;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | const DWORD OBS_XT_DEFAULT         = 0x00FC;   //<ALIAS CXTOutBarCtrl::ModifyFlag@const DWORD&@const DWORD&@const bool>
 | ||
|  | 
 | ||
|  | const UINT XTWM_OUTBAR_NOTIFY = (WM_XTP_CONTROLS_BASE + 19); | ||
|  | const int OBN_XT_ITEMCLICK        = 1; | ||
|  | const int OBN_XT_ONLABELENDEDIT   = 2; | ||
|  | const int OBN_XT_ONGROUPENDEDIT   = 3; | ||
|  | const int OBN_XT_DRAGITEM         = 4; | ||
|  | const int OBN_XT_FOLDERCHANGE     = 5; | ||
|  | const int OBN_XT_ITEMHOVER        = 6; | ||
|  | const int OBN_XT_DELETEITEM       = 7; | ||
|  | const int OBN_XT_DELETEFOLDER     = 8; | ||
|  | const int OBN_XT_BEGINDRAG        = 9; | ||
|  | const int OBN_XT_ITEMRCLICK       =10; | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------
 | ||
|  | // Summary:
 | ||
|  | //     XT_OUTBAR_INFO structure is used by by the CXTOutBarCtrl
 | ||
|  | //     class to store and information for an Outlook bar folder or item.
 | ||
|  | // See Also:
 | ||
|  | //     CXTOutBarCtrl, CXTOutBarCtrl::OnLabelChanged
 | ||
|  | // ---------------------------------------------------------------------
 | ||
|  | struct XT_OUTBAR_INFO | ||
|  | { | ||
|  | 	int     nIndex;    // Index of the item.
 | ||
|  | 	int     nDragTo;   // Ending drag index.
 | ||
|  | 	int     nDragFrom; // Starting drag index.
 | ||
|  | 	bool    bFolder;   // true if the item is a folder
 | ||
|  | 	LPCTSTR lpszText;  // Item text.
 | ||
|  | 	HWND    hWnd;      // CXTOutBarCtrl window handle
 | ||
|  | }; | ||
|  | 
 | ||
|  | //===========================================================================
 | ||
|  | // Summary:
 | ||
|  | //     CXTOutBarCtrl is a CWnd derived class. It is used to create a shortcut
 | ||
|  | //     bar window similar to the shortcut bar seen in Outlook(tm).
 | ||
|  | //===========================================================================
 | ||
|  | class _XTP_EXT_CLASS CXTOutBarCtrl : public CWnd, public CXTThemeManagerStyleHostBase | ||
|  | { | ||
|  | 	DECLARE_DYNCREATE(CXTOutBarCtrl) | ||
|  | 	DECLARE_THEME_HOST(CXTOutBarCtrl) | ||
|  | 	DECLARE_THEME_REFRESH(CXTOutBarCtrl) | ||
|  | 
 | ||
|  | public: | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Enumeration to determine an item type.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     HitTestCode type defines the constants used to determine the
 | ||
|  | 	//     type of item that was found during a HitTestEx operation.
 | ||
|  | 	// See Also:
 | ||
|  | 	//     CXTOutBarCtrl, CXTOutBarCtrl::HitTestEx
 | ||
|  | 	//
 | ||
|  | 	// <KEYWORDS hitNone, hitFolder, hitItem, hitUpScroll, hitDnScroll>
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	enum HitTestCode | ||
|  | 	{ | ||
|  | 		hitNone      =-1, // No item was found.
 | ||
|  | 		hitFolder    = 0, // The item found was a folder.
 | ||
|  | 		hitItem      = 1, // The item found was a shortcut.
 | ||
|  | 		hitUpScroll  = 2, // The item found was a up arrow.
 | ||
|  | 		hitDnScroll  = 3  // The item found was a down arrow.
 | ||
|  | 	}; | ||
|  | 
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Enumeration to determine an item's size.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     RectItem type defines the constants used to determine the
 | ||
|  | 	//     size or the item or one of its components (label or icon). This is
 | ||
|  | 	//     used to determine how the control should be rendered.
 | ||
|  | 	// See Also:
 | ||
|  | 	//     CXTOutBarCtrl, CXTOutBarCtrl::GetItemSize
 | ||
|  | 	//
 | ||
|  | 	// <KEYWORDS rectItemIcon, rectItemLabel, rectItemBoth>
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	enum RectItem | ||
|  | 	{ | ||
|  | 		rectItemIcon = 1,  // Area is the size of an item icon.
 | ||
|  | 		rectItemLabel = 2, // Area is the size of an item label.
 | ||
|  | 		rectItemBoth = 3   // Area is the size of both the item icon and label combined.
 | ||
|  | 	}; | ||
|  | 
 | ||
|  | public: | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Constructs a CXTOutBarCtrl object
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CXTOutBarCtrl(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Destroys a CXTOutBarCtrl object, handles cleanup and deallocation
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual ~CXTOutBarCtrl(); | ||
|  | 
 | ||
|  | public: | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set an animation effect for the currently
 | ||
|  | 	//     selected item. It is not to be used with OBS_XT_SELHIGHLIGHT flag.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iTime - Specifies the time in milliseconds that the selected item will animate.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetAnimSelHighlight(const int iTime); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the item data that was set for
 | ||
|  | 	//     the specified folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - The index of the folder to retrieve item data for. If -1, the currently
 | ||
|  | 	//               selected folder item data is returned.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A DWORD value.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual DWORD GetFolderData(int iFolder = -1); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the CWnd object that has been set
 | ||
|  | 	//     for the folder specified by 'iFolder'.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of the folder to retrieve the CWnd object for, if -1 the currently
 | ||
|  | 	//               selected folder CWnd object is used.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     If 'iFolder' is -1, the child of the currently selected folder is returned.
 | ||
|  | 	//     If no object has been set for the folder, the return value is NULL.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CWnd* GetFolderChild(int iFolder = -1); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to add a folder with a CWnd child nested
 | ||
|  | 	//     inside of it. You can insert a folder with any CWnd object, such as
 | ||
|  | 	//     a tree control (see the OutlookBar sample).
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     lpszFolderName - Name of the folder to add.
 | ||
|  | 	//     pWndChild      - Points to a valid CWnd object. The object must be created before
 | ||
|  | 	//                      inserting.
 | ||
|  | 	//     dwData         - Item data (lParam) for the folder.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     The integer value that represents the index of the added folder.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int AddFolderBar(LPCTSTR lpszFolderName, CWnd* pWndChild, const DWORD dwData = 0); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to get the text of the specified item for
 | ||
|  | 	//     the currently selected folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the item to retrieve the text for.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CString object containing the retrieved text.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CString GetItemText(const int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the tick count, in milliseconds, between
 | ||
|  | 	//     each animation frame in folder scrolling. If you set a value of -1,
 | ||
|  | 	//     or minor, no animation will be played. Animation requires the OBS_XT_ANIMATION
 | ||
|  | 	//     flag be set.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     lValue - Specifies the time in milliseconds between animation. A value of
 | ||
|  | 	//              -1 will disable animation playback.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetAnimationTickCount(const long lValue); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to get the current animation tick count.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An integer value representing the current tick count.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int GetAnimationTickCount(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the image index, in the image list,
 | ||
|  | 	//     for the 'iIndex' item of the currently selected folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the item in the currently selected folder.
 | ||
|  | 	//     iImage - Index of the image, in the image list, to use for the specified item.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetItemImage(const int iIndex, const int iImage); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the item data (lParam) for the specified
 | ||
|  | 	//     item in the currently selected folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the item to set item data for.
 | ||
|  | 	//     dwData - Item data (lParam) to set.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetItemData(const int iIndex, const DWORD dwData); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the index of the image associated
 | ||
|  | 	//     with the specified item in the currently selected folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the item to retrieve the image index for.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An integer value that represents the index of the desired image.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int  GetItemImage(const int iIndex) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to get the item data (lParam) for the specified
 | ||
|  | 	//     item in the currently selected folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the item to retrieve item data for.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A DWORD value.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual DWORD GetItemData(const int iIndex) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to remove all items from the folder specified
 | ||
|  | 	//     by 'iFolder'.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of the folder to insert the item into.
 | ||
|  | 	//     bNofify - true to send an XTWM_OUTBAR_NOTIFY message.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void RemoveAllItems(int iFolder, bool bNofify = false); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to remove the specified item from the currently
 | ||
|  | 	//     selected folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the item to remove.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void RemoveItem(const int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the text for the specified item in the
 | ||
|  | 	//     currently selected folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex       - Index of the item to set the text for.
 | ||
|  | 	//     lpszItemName - Points to a NULL terminated string.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetItemText(const int iIndex, LPCTSTR lpszItemName); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to begin local editing of the specified item
 | ||
|  | 	//     in the currently selected folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the item to begin editing for.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void StartItemEdit(const int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the text label for the specified folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex         - Index of the folder to set the text label for.
 | ||
|  | 	//     lpszFolderName - Points to a NULL terminated string.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetFolderText(const int iIndex, LPCTSTR lpszFolderName); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to begin editing of the specified folder
 | ||
|  | 	//     item's label.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the folder to begin editing.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void StartGroupEdit(const int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to get a pointer to the image list for the
 | ||
|  | 	//     specified folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the folder to retrieve the image list for.
 | ||
|  | 	//     bSmall - TRUE to return the small image list. FALSE to return the large image
 | ||
|  | 	//              list.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CImageList pointer representing the image list for the folder specified
 | ||
|  | 	//     by 'iIndex'.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CImageList* GetFolderImageList(const int iIndex, const BOOL bSmall) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return the global image list for the OutlookBar
 | ||
|  | 	//     control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dwImageList - If OBS_XT_SMALLICON, the small image list is returned; if OBS_XT_LARGEICON,
 | ||
|  | 	//                   the large image list is returned.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CImageList pointer representing the global image list for the OutlookBar
 | ||
|  | 	//     control.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CImageList* GetImageList(DWORD dwImageList); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the image list for the specified folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder     - Index of the folder to set the image list for.
 | ||
|  | 	//     pImageList  - Points to the new image list.
 | ||
|  | 	//     dwImageList - If OBS_XT_SMALLICON, the small image list is set, if OBS_XT_LARGEICON,
 | ||
|  | 	//                   the large image list is set.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to the previously set image list, or NULL if no previous
 | ||
|  | 	//     image list exists.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CImageList* SetFolderImageList(const int iFolder, CImageList* pImageList, DWORD dwImageList); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function will set the main image list. You can link different
 | ||
|  | 	//     image lists to the folders using the SetFolderImageList function. If a
 | ||
|  | 	//     folder has been linked to an image list with the SetFolderImageList function,
 | ||
|  | 	//     it will own the linked image list. Otherwise, it will use the image list
 | ||
|  | 	//     set with this function.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pImageList  - Points to the new image list.
 | ||
|  | 	//     dwImageList - If OBS_XT_SMALLICON, the small image list is set; if OBS_XT_LARGEICON,
 | ||
|  | 	//     the large image list is set.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to the previously set image list, or NULL if no previous image
 | ||
|  | 	//     list exists.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CImageList* SetImageList(CImageList* pImageList, DWORD dwImageList); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to remove the specified folder and its items.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the folder to remove.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void RemoveFolder(const int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function will get the index of the currently selected folder.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An integer value representing the index of the currently selected folder.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int GetSelFolder() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function will get the total number of folders found in
 | ||
|  | 	//     the Outlook bar.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An integer value representing the number of folders in the Outlook bar.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int GetFolderCount() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function will set the selected folder for the Outlook bar.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the new selected folder.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetSelFolder(const int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function gets the number of items found in the currently
 | ||
|  | 	//     selected folder.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An integer value representing the number of items in the current folder.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int GetItemCount() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to insert an item into the specified folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder      - Index of the folder to insert the item into.
 | ||
|  | 	//     iIndex       - Index or position of the item to insert into the folder.
 | ||
|  | 	//     lpszItemName - A NULL terminated string that represents the item label. This value
 | ||
|  | 	//                    cannot be set to NULL.
 | ||
|  | 	//     iImage       - Index into the folder's image list.
 | ||
|  | 	//     dwData       - User defined item data that you can assign to the item. Use GetItemData
 | ||
|  | 	//                    and SetItemData to access and change this data.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     The index of the newly inserted item.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int InsertItem(const int iFolder, const int iIndex, LPCTSTR lpszItemName, const int iImage = -1, const DWORD dwData = 0); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to add a folder to the Outlook bar control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     lpszFolderName - A NULL terminated string that represents the folder's label.
 | ||
|  | 	//     dwData         - User defined item data for the folder.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     The index of the newly inserted folder.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int AddFolder(LPCTSTR lpszFolderName, const DWORD dwData); | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to modify an Outlook bar style.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dwRemove -  Specifies OBS_XT_ styles to be removed during
 | ||
|  | 	//                 style modification.
 | ||
|  | 	//     dwAdd -     Specifies OBS_XT_ styles to be added during style
 | ||
|  | 	//                 modification.
 | ||
|  | 	//     bRedraw -   true to redraw the Outlook bar.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to modify an Outlook bar style. Styles
 | ||
|  | 	//     to be added or removed can be combined by using the bitwise OR (|)
 | ||
|  | 	//     operator.
 | ||
|  | 	//
 | ||
|  | 	//     The desired styles for the Outlook bar can be one or more of the
 | ||
|  | 	//     following:<p/>
 | ||
|  | 	//
 | ||
|  | 	//     * <b>OBS_XT_SMALLICON</b> Sets small icon mode.
 | ||
|  | 	//     * <b>OBS_XT_LARGEICON</b> Sets large icon mode.
 | ||
|  | 	//     * <b>OBS_XT_EDITGROUPS</b> Enables folder local editing
 | ||
|  | 	//           (renaming).
 | ||
|  | 	//     * <b>OBS_XT_EDITITEMS</b> Enables item local editing
 | ||
|  | 	//           (renaming).
 | ||
|  | 	//     * <b>OBS_XT_REMOVEGROUPS</b> Enables the "Remove" command for
 | ||
|  | 	//           folders in context menu.
 | ||
|  | 	//     * <b>OBS_XT_REMOVEITEMS</b> Enables the "Remove" command for
 | ||
|  | 	//           items in context menu.
 | ||
|  | 	//     * <b>OBS_XT_ADDGROUPS</b> Enables folder insertion.
 | ||
|  | 	//     * <b>OBS_XT_DRAGITEMS</b> Enables item dragging to rearrange
 | ||
|  | 	//           position.
 | ||
|  | 	//     * <b>OBS_XT_ANIMATION</b> Enables animation while changing
 | ||
|  | 	//           folder selection.
 | ||
|  | 	//     * <b>OBS_XT_SELHIGHLIGHT</b> Enables dimmed highlight of last
 | ||
|  | 	//           pressed item.
 | ||
|  | 	//     * <b>OBS_XT_DEFAULT</b> Same as (OBS_XT_DRAGITEMS | OBS_XT_EDITGROUPS
 | ||
|  | 	//           | OBS_XT_EDITITEMS | OBS_XT_REMOVEGROUPS | OBS_XT_REMOVEITEMS
 | ||
|  | 	//           | OBS_XT_ADDGROUPS).
 | ||
|  | 	// See Also:
 | ||
|  | 	//     GetFlag, Create, CreateEx
 | ||
|  | 	// --------------------------------------------------------------------------------------------
 | ||
|  | 	virtual void ModifyFlag(const DWORD& dwRemove, const DWORD& dwAdd, const bool bRedraw = false); | ||
|  | 
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to get the current style set for the
 | ||
|  | 	//     Outlook bar.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A DWORD value representing the current style of the Outlook
 | ||
|  | 	//     bar.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     See ModifyFlag for a list of available styles.
 | ||
|  | 	// See Also:
 | ||
|  | 	//     ModifyFlag, Create, CreateEx
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	virtual DWORD GetFlag() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the size of the icons displayed in the
 | ||
|  | 	//     Outlook bar control for the specified folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     bSet    - TRUE to display small icons, or FALSE to display large icons.
 | ||
|  | 	//     iFolder - Index of the folder to set the icon size for. If -1, all folder icons
 | ||
|  | 	//               are set.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetSmallIconView(const BOOL bSet, const int iFolder = -1); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return the current state of the icon display
 | ||
|  | 	//     for the Outlook bar control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of the folder to check. If -1, the currently selected folder
 | ||
|  | 	//               is checked.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if small icons are displayed, and FALSE if large icons are displayed.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL IsSmallIconView(const int iFolder = -1) const; | ||
|  | 
 | ||
|  | 	// -----------------------------------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to create the Outlook bar control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dwStyle -     Style for the Outlook bar. It usually includes the WS_CHILD | WS_VISIBLE
 | ||
|  | 	//                   flags.
 | ||
|  | 	//     rect -        Size of the Outlook bar.
 | ||
|  | 	//     pParentWnd -  Parent of the control.
 | ||
|  | 	//     nID -         Identifier of the Outlook bar control.
 | ||
|  | 	//     dwFlag -      Specifies the style flags for the control. See ModifyFlag
 | ||
|  | 	//                   for a list of available styles.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if successful, otherwise returns FALSE.
 | ||
|  | 	// See Also:
 | ||
|  | 	//     CreateEx, ModifyFlag
 | ||
|  | 	// -----------------------------------------------------------------------------------------------
 | ||
|  | 	virtual BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, const DWORD dwFlag = OBS_XT_DEFAULT); | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to create the Outlook bar control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dwExStyle -   Extended style for the Outlook bar such as WS_EX_STATICEDGE.
 | ||
|  | 	//                   It can be NULL.
 | ||
|  | 	//     dwStyle -     Style for the Outlook bar. It usually includes the WS_CHILD | WS_VISIBLE
 | ||
|  | 	//                   flags.
 | ||
|  | 	//     rect -        Size of the Outlook bar.
 | ||
|  | 	//     pParentWnd -  Parent of the control.
 | ||
|  | 	//     nID -         Identifier of the Outlook bar control.
 | ||
|  | 	//     dwFlag -      Specifies the style flags for the control. See ModifyFlag
 | ||
|  | 	//                   for a list of available styles.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if successful, otherwise returns FALSE.
 | ||
|  | 	// See Also:
 | ||
|  | 	//     Create, ModifyFlag
 | ||
|  | 	// --------------------------------------------------------------------------------------------------
 | ||
|  | 	virtual BOOL CreateEx(DWORD dwExStyle, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, const DWORD dwFlag = OBS_XT_DEFAULT); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the font used by the Outlook bar control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pFont - Points to the font to be used by the Outlook bar.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetFontX(CFont* pFont); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the font used by the Outlook
 | ||
|  | 	//     bar control.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to a CFont object representing the font used by the Outlook bar
 | ||
|  | 	//     control.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CFont* GetFontX(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return a pointer to the CXTOutBarFolder data
 | ||
|  | 	//     that is associated with the specified folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of the folder to retrieve.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to a CXTOutBarFolder object.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CXTOutBarFolder* GetBarFolder(const int iFolder); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return a pointer to the CXTOutBarItem data
 | ||
|  | 	//     that is associated with the specified folder and item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of the folder to retrieve.
 | ||
|  | 	//     iIndex  - Index of the item to retrieve.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to a CXTOutBarItem object.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CXTOutBarItem* GetBarFolderItem(const int iFolder, const int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the background color for the Outlook
 | ||
|  | 	//     bar control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     clrBack - An RGB value that represents the background color.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetBackColor(COLORREF clrBack); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the text color for items in the Outlook
 | ||
|  | 	//     bar control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     clrText - An RGB value that represents the text item color.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetTextColor(COLORREF clrText); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the size of the label for the
 | ||
|  | 	//     specified item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of the folder where the item is located.
 | ||
|  | 	//     iIndex  - Index of the item.
 | ||
|  | 	//     rect    - Address of a CRect object that will receive the label size.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void GetLabelRect(const int iFolder, const int iIndex, CRect& rect); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the size of the icon for the
 | ||
|  | 	//     specified item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder     - Index of the folder where the item is located.
 | ||
|  | 	//     iIndex      - Index of the item.
 | ||
|  | 	//     rect        - Address of a CRect object that will receive the icon
 | ||
|  | 	//                   size.
 | ||
|  | 	//     pInsideRect - Pointer to a CRect object that represents the size
 | ||
|  | 	//                   of the client area for the Outlook bar. If NULL
 | ||
|  | 	//                   GetInsideRect will be used to determine the client
 | ||
|  | 	//                   area size.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void GetIconRect(const int iFolder, const int iIndex, CRect& rect, CRect* pInsideRect = NULL); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the size of the client area for
 | ||
|  | 	//     the Outlook bar. This is the inside area that contains the folders.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     rect - Address of a CRect object that will receive the size.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void GetInsideRect(CRect& rect) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the size of the specified item.
 | ||
|  | 	//     The size includes the area occupied by the item's label and icon.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder     - Index of the folder where the item is located.
 | ||
|  | 	//     iIndex      - Index of the item.
 | ||
|  | 	//     rect        - Address of a CRect object that will receive the icon
 | ||
|  | 	//                   size.
 | ||
|  | 	//     pInsideRect - Pointer to a CRect object that represents the size
 | ||
|  | 	//                   of the client area for the Outlook bar. If NULL
 | ||
|  | 	//                   GetInsideRect will be used to determine the client
 | ||
|  | 	//                   area size.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void GetItemRect(const int iFolder, const int iIndex, CRect& rect, CRect* pInsideRect = NULL); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the size of the specified folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the folder item.
 | ||
|  | 	//     rect   - Address of a CRect object that will receive the folder size.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if successful, otherwise returns FALSE.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL GetFolderRect(const int iIndex, CRect& rect) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function will set the selected folder and item
 | ||
|  | 	//     for the Outlook bar.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder        - Index of the folder that contains the new selection.
 | ||
|  | 	//     iItem          - Index of the new item to select.
 | ||
|  | 	//     bEnsureVisible - TRUE to ensure the item is visible when selected.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetSelItem(int iFolder, int iItem, BOOL bEnsureVisible = TRUE); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function will return the index of the currently selected
 | ||
|  | 	//     item for the currently selected folder.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An integer value representing the index of the selected item.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int GetCurSel(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function will set the currently selected item for the currently
 | ||
|  | 	//     selected folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iItem    - Index of the item to select.
 | ||
|  | 	//     bPressed - true if the item is to be pressed when selected.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void SetCurSel(int iItem, const BOOL bPressed = false); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to enable or disable a folder item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of the folder that owns the item.
 | ||
|  | 	//     iItem   - Index of the item to enable or disable.
 | ||
|  | 	//     bEnable - true to enable item, false to disable.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void EnableItem(int iFolder, int iItem, bool bEnable); | ||
|  | 
 | ||
|  | 
 | ||
|  | protected: | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to draw the up or down scroll button.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC    - Pointer to a valid device context.
 | ||
|  | 	//     rect   - Size of area to render.
 | ||
|  | 	//     uType  - Specifies the type of frame control to draw. See the
 | ||
|  | 	//              uType parameter in DrawFrameControl in the Platform SDK for
 | ||
|  | 	//              a list of this parameter's possible values.
 | ||
|  | 	//     uState - Specifies the initial state of the frame control.
 | ||
|  | 	//              Can be one or more of the values described for the uState parameter
 | ||
|  | 	//              in DrawFrameControl in the Platform SDK. Use the nState value
 | ||
|  | 	//              DFCS_ADJUSTRECT to adjust the bounding rectangle to exclude
 | ||
|  | 	//              the surrounding edge of the push button.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawScrollButton(CDC* pDC, CRect rect, UINT uType, UINT uState); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to draw a folder item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC        - Pointer to a valid device context.
 | ||
|  | 	//     iFolder    - Index of the parent folder.
 | ||
|  | 	//     rc         - Size of the area to render.
 | ||
|  | 	//     iIndex     - Index of the item to render.
 | ||
|  | 	//     bOnlyImage - TRUE if only the image is to be drawn.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawItem(CDC* pDC, const int iFolder, CRect rc, const int iIndex, const BOOL bOnlyImage = false); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to draw the drag arrow
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC   - Pointer to a valid device context.
 | ||
|  | 	//     iFrom - Index of the item before the arrow.
 | ||
|  | 	//     iTo   - Index of the item after the arrow.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawDragArrow(CDC* pDC, const int iFrom, const int iTo); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to render an item animated.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iOffsetX - X distance to offset icon animation.
 | ||
|  | 	//     iOffsetY - Y distance to offset icon animation.
 | ||
|  | 	//     iIndex   - Index of item to animate.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawAnimItem(const int iOffsetX, const int iOffsetY, const int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to render a folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC      - Pointer to a valid device context.
 | ||
|  | 	//     iIndex   - Index of the folder to render.
 | ||
|  | 	//     rect     - Size of the area to render.
 | ||
|  | 	//     eHilight - Current mouse over state.
 | ||
|  | 	// See Also: XTMouseState
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawFolder(CDC* pDC, const int iIndex, CRect rect, const XTMouseState eHilight); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to render an item's icon.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC      - Pointer to a valid device context.
 | ||
|  | 	//     iIcon    - Index of the icon to render.
 | ||
|  | 	//     iFolder  - Index of the parent folder.
 | ||
|  | 	//     bHilight - true if the icon is highlighted.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawIcon(CDC* pDC, int iIcon, int iFolder, bool bHilight); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to render all items for a folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC     - Pointer to a valid device context.
 | ||
|  | 	//     iFolder - Index of the parent folder.
 | ||
|  | 	//     rc      - Size of area to render.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void PaintItems(CDC* pDC, const int iFolder, CRect rc); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to get the area that is visible to the user.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - [in] Index of the folder to get the range for.
 | ||
|  | 	//     iFirst  - [out] Index of the first item that is visible.
 | ||
|  | 	//     iLast   - [out] Index of the last item that is visible.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void GetVisibleRange(const int iFolder, int& iFirst, int& iLast); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to get the size of the
 | ||
|  | 	//     item dragged.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the item
 | ||
|  | 	//     rect   - Size of the item dragged.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Style of last drag item that was rendered.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual int GetDragItemRect(const int iIndex, CRect& rect); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to get the size of a folder item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of parent folder.
 | ||
|  | 	//     iIndex  - Index of item.
 | ||
|  | 	//     iType   - The pare of the item to get the size for.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CSize object representing the item size.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual CSize GetItemSize(const int iFolder, const int iIndex, const RectItem iType); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to render folder animation when a new folder is selected.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFrom - Index of currently selected folder.
 | ||
|  | 	//     iTo   - Index of the new folder to select.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void AnimateFolderScroll(const int iFrom, const int iTo); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to draw an item highlighted.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC      - Pointer to a valid device context.
 | ||
|  | 	//     iIndex   - Index of the item to render.
 | ||
|  | 	//     bPressed - TRUE if the item is selected.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void HighlightItem(CDC* pDC, const int iIndex, const BOOL bPressed = false); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to render a folder highlighted.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC    - Pointer to a valid device context.
 | ||
|  | 	//     iIndex - Index of the folder to highlight.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void HighlightFolder(CDC* pDC, const int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called to determine the item from a given xy coordinate.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     point  - [in] xy coordinate to test.
 | ||
|  | 	//     iIndex - [out] Index of the item at the given xy coordinates.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     Item type see HitTestCode.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual HitTestCode HitTestEx(const CPoint& point, int& iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called to determine if the specified item is valid.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the item to test.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if the item is valid, otherwise FALSE.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL IsValidItem(const int iIndex) const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to end an item or folder label edit.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pEdit     - Pointer to the edit control.
 | ||
|  | 	//     bIsFolder - true if the item edited is a folder.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void EndLabelEdit(CXTOutBarEditItem* pEdit, bool bIsFolder); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl when an item or folders label changes.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pObi - Pointer to a XT_OUTBAR_INFO structure.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void OnLabelChanged(const XT_OUTBAR_INFO* pObi); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to draw an item icon.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC        - Pointer to a valid device context.
 | ||
|  | 	//     pt         - xy location of the icon to render.
 | ||
|  | 	//     pBarItem   - Pointer to a CXTOutBarItem object.
 | ||
|  | 	//     pImageList - Pointer to the CXTOutBarCtrl image list.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawItemIcon(CDC* pDC, CPoint pt, CXTOutBarItem* pBarItem, CImageList* pImageList); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to draw an items label.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC      - Pointer to a valid device context.
 | ||
|  | 	//     rc       - Size of text to render.
 | ||
|  | 	//     pBarItem - Pointer to a CXTOutBarItem object.
 | ||
|  | 	//     nFormat  - Draw text flags, see CXTOutBarCtrlTheme::DrawItemText.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawItemText(CDC* pDC, CRect rc, CXTOutBarItem* pBarItem, UINT nFormat); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTOutBarCtrl to render a folder that contains
 | ||
|  | 	//     a CWnd object when a new folder is selected.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pWnd    - Pointer to the child of the folder.
 | ||
|  | 	//     pDC     - Pointer to a valid device context.
 | ||
|  | 	//     nOffset - Amount in pixels to offset from the top.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	void DrawPreviewBitmap(CWnd* pWnd, CDC* pDC, int nOffset); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member is called to notify the parent window that an event
 | ||
|  | 	//     has occurred in the task panel.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     nCode -  Specifies which event has occurred.
 | ||
|  | 	//     pobi  - Additional message-specific information.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual LRESULT NotifyOwner(UINT nCode, XT_OUTBAR_INFO* pobi); | ||
|  | 
 | ||
|  | protected: | ||
|  | //{{AFX_CODEJOCK_PRIVATE
 | ||
|  | 	DECLARE_MESSAGE_MAP() | ||
|  | 
 | ||
|  | 	//{{AFX_MSG(CXTOutBarCtrl)
 | ||
|  | 	afx_msg void OnTimer(UINT_PTR nIDEvent); | ||
|  | 	afx_msg void OnPaint(); | ||
|  | 	afx_msg LRESULT OnPrintClient(WPARAM wParam, LPARAM /*lParam*/); | ||
|  | 	virtual void OnDraw(CDC* pDC); | ||
|  | 	afx_msg BOOL OnEraseBkgnd(CDC* pDC); | ||
|  | 	afx_msg void OnMouseMove(UINT nFlags, CPoint point); | ||
|  | 	afx_msg void OnMouseLeave(); | ||
|  | 	afx_msg void OnLButtonDown(UINT nFlags, CPoint point); | ||
|  | 	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); | ||
|  | 	afx_msg void OnSize(UINT nType, int cx, int cy); | ||
|  | 	afx_msg void OnLargeIcon(); | ||
|  | 	afx_msg void OnUpdateLargeIcon(CCmdUI* pCmdUI); | ||
|  | 	afx_msg void OnSmallIcon(); | ||
|  | 	afx_msg void OnUpdateSmallIcon(CCmdUI* pCmdUI); | ||
|  | 	afx_msg void OnRemoveItem(); | ||
|  | 	afx_msg void OnUpdateRemoveItem(CCmdUI* pCmdUI); | ||
|  | 	afx_msg void OnRenameItem(); | ||
|  | 	afx_msg void OnUpdateRenameItem(CCmdUI* pCmdUI); | ||
|  | 	afx_msg void OnRButtonUp(UINT nFlags, CPoint point); | ||
|  | 	afx_msg void OnDestroy(); | ||
|  | 	//}}AFX_MSG
 | ||
|  | //}}AFX_CODEJOCK_PRIVATE
 | ||
|  | 
 | ||
|  | private: | ||
|  | 	BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL); | ||
|  | 	BOOL CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, LPVOID lpParam = NULL); | ||
|  | 
 | ||
|  | 
 | ||
|  | protected: | ||
|  | 
 | ||
|  | 	int m_nFolderHeight;           // Size in pixels of the folder caption bar.
 | ||
|  | 	int m_nSelFolder;              // Index of the currently selected folder.
 | ||
|  | 	int m_nFolderHilighted;        // Index of the currently highlighted folder.
 | ||
|  | 	int m_nItemHilighted;          // Index of the currently highlighted item.
 | ||
|  | 	int m_nLastFolderSelected;     // Index of the last folder that was selected.
 | ||
|  | 	int m_nLastItemSelected;       // Index of the last item that was selected.
 | ||
|  | 	int m_nFirstItem;              // Index of the first visible item.
 | ||
|  | 	int m_nIconSpacingLarge;       // Amount in pixels of the gap between large icons.
 | ||
|  | 	int m_nIconSpacingSmall;       // Amount in pixels of the gap between small icons.
 | ||
|  | 	int m_nHitInternal1;           // Used internally to test folder and item indexes.
 | ||
|  | 	int m_nHitInternal2;           // Used internally to test folder and item indexes.
 | ||
|  | 	int m_nLastDragItemDraw;       // Insertion index for drag and drop operations.
 | ||
|  | 	int m_nLastDragItemDrawType;   // Style of last drag item that was rendered.
 | ||
|  | 	int m_nSelAnimCount;           // Selected item animation sequence count
 | ||
|  | 	int m_nSelAnimTiming;          // Specifies the time in milliseconds that the selected item will animate.
 | ||
|  | 	int m_nAnimationTickCount;     // Specifies the time in milliseconds between animation.
 | ||
|  | 	CPen m_penBlack;               // Pen used to render drag arrow.
 | ||
|  | 	BOOL m_bUpArrow;               // TRUE when the up scroll arrow is displayed.
 | ||
|  | 	BOOL m_bDownArrow;             // TRUE when the down scroll arrow is displayed.
 | ||
|  | 	BOOL m_bUpPressed;             // TRUE when the up scroll arrow is selected.
 | ||
|  | 	BOOL m_bDownPressed;           // TRUE when the down scroll arrow is selected.
 | ||
|  | 	BOOL m_bIconPressed;           // TRUE when the selected item's icon should be rendered selected.
 | ||
|  | 	BOOL m_bLooping;               // TRUE when scrolling to continue iteration.
 | ||
|  | 	BOOL m_bPressedHighlight;      // TRUE when the selected item should be rendered.
 | ||
|  | 	CFont m_font;                  // Font used by the outlook bar.
 | ||
|  | 	DWORD m_dwFlags;               // Style for the Outlook bar.
 | ||
|  | 	CRect m_rcUpArrow;             // Size and location of the up scroll arrow.
 | ||
|  | 	CRect m_rcDownArrow;           // Size and location of the down scroll arrow.
 | ||
|  | 	CSize m_sizeOffset;            // Amount in pixels of the gap between an item icon and text.
 | ||
|  | 	CSize m_sizeMargin;            // Amount in pixels of the gap between the border and item text and icon.
 | ||
|  | 	CPtrArray m_arFolder;          // Array of folders added to the outlook bar.
 | ||
|  | 	CImageList* m_pLargeImageList; // Points to the large image list for the outlook bar.
 | ||
|  | 	CImageList* m_pSmallImageList; // Points to the small image list for the outlook bar.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 	friend class CXTOutBarEditItem; | ||
|  | }; | ||
|  | 
 | ||
|  | //////////////////////////////////////////////////////////////////////
 | ||
|  | 
 | ||
|  | AFX_INLINE int CXTOutBarCtrl::GetCurSel() { | ||
|  | 	return m_nItemHilighted; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarCtrl::SetCurSel(int iItem, const BOOL bPressed/*=false*/) { | ||
|  | 	HighlightItem(NULL, iItem, bPressed); | ||
|  | } | ||
|  | AFX_INLINE BOOL CXTOutBarCtrl::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 BOOL CXTOutBarCtrl::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, LPVOID lpParam) { | ||
|  | 	return CWnd::CreateEx(dwExStyle, lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, lpParam); | ||
|  | } | ||
|  | 
 | ||
|  | // ----------------------------------------------------------------------
 | ||
|  | // Summary:
 | ||
|  | //     CXTOutBarItem is a stand alone helper class. It is used by the
 | ||
|  | //     CXTOutBarCtrl to maintain information about each folder item
 | ||
|  | //     specified in the Outlook bar control.
 | ||
|  | // ----------------------------------------------------------------------
 | ||
|  | class _XTP_EXT_CLASS CXTOutBarItem | ||
|  | { | ||
|  | public: | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Constructs a CXTOutBarItem object
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     lpszName -     [in] A NULL terminated string that represents the
 | ||
|  | 	//                    item name.
 | ||
|  | 	// nImageIndex -  [in] An index into the folders image list.
 | ||
|  | 	// dwData -       [in] User item data (lParam).
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	CXTOutBarItem(LPCTSTR lpszName, const int nImageIndex, DWORD dwData); | ||
|  | 
 | ||
|  | 	// ------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Destroys a CXTOutBarItem object, handles cleanup and
 | ||
|  | 	//     deallocation
 | ||
|  | 	// ------------------------------------------------------------
 | ||
|  | 	virtual ~CXTOutBarItem(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the zero-based index of the folder
 | ||
|  | 	//     item.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An integer value that represents the zero-based index of the folder item.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int GetIndex(); | ||
|  | 
 | ||
|  | 	// ----------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the zero-based index of the
 | ||
|  | 	//     folder item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex -  [in] New index of the folder item.
 | ||
|  | 	// ----------------------------------------------------------------
 | ||
|  | 	void SetIndex(int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return the user specified item data (lParam)
 | ||
|  | 	//     for the folder item.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A DWORD value that represents the user data.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	DWORD GetData(); | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set a user data (lParam) value for
 | ||
|  | 	//     the folder item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dwData -  [in] Specifies the user data (lparam) value to be associated
 | ||
|  | 	//               with the folder item.
 | ||
|  | 	// --------------------------------------------------------------------------
 | ||
|  | 	void SetData(DWORD dwData); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the label of the folder item.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CString object that contains the folder item label.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CString GetName(); | ||
|  | 
 | ||
|  | 	// ---------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the label of the folder item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     strName -  [in] A NULL terminated string that represents the item
 | ||
|  | 	//                label.
 | ||
|  | 	// ---------------------------------------------------------------------
 | ||
|  | 	void SetName(LPCTSTR strName); | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the items selected state.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     bSelected -  [in] true to set the item state to selected.
 | ||
|  | 	// --------------------------------------------------------------
 | ||
|  | 	void SelectItem(bool bSelected); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to see if the item is selected.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     true if the item is selected, otherwise returns false.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	bool IsSelected(); | ||
|  | 
 | ||
|  | 	// -----------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to toggle the enabled state for the
 | ||
|  | 	//     \outlook bar item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     bEnable -  [in] true to enable, false to disable.
 | ||
|  | 	// -----------------------------------------------------------------
 | ||
|  | 	void EnableItem(bool bEnable); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to determine if the item is enabled.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     true if the item is enabled, otherwise returns false.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	bool IsEnabled(); | ||
|  | 
 | ||
|  | protected: | ||
|  | 
 | ||
|  | 	int     m_nIndex;       // Item index.
 | ||
|  | 	bool    m_bEnabled;     // true if the icon is enabled.
 | ||
|  | 	bool    m_bSelected;    // true if selected.
 | ||
|  | 	DWORD   m_dwData;       // User data.
 | ||
|  | 	CString m_strName;      // label of the folder item.
 | ||
|  | 
 | ||
|  | 	friend class CXTOutBarCtrl; | ||
|  | }; | ||
|  | 
 | ||
|  | //////////////////////////////////////////////////////////////////////
 | ||
|  | 
 | ||
|  | AFX_INLINE void CXTOutBarItem::SelectItem(bool bSelected) { | ||
|  | 	m_bSelected = bSelected; | ||
|  | } | ||
|  | AFX_INLINE bool CXTOutBarItem::IsSelected() { | ||
|  | 	return m_bSelected; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarItem::EnableItem(bool bEnable) { | ||
|  | 	m_bEnabled = bEnable; | ||
|  | } | ||
|  | AFX_INLINE bool CXTOutBarItem::IsEnabled() { | ||
|  | 	return m_bEnabled; | ||
|  | } | ||
|  | 
 | ||
|  | // --------------------------------------------------------------------
 | ||
|  | // Summary:
 | ||
|  | //     CXTOutBarFolder is a stand alone helper class. It is used by
 | ||
|  | //     the CXTOutBarCtrl to maintain information about each folder
 | ||
|  | //     specified in the Outlook bar control.
 | ||
|  | // --------------------------------------------------------------------
 | ||
|  | class _XTP_EXT_CLASS CXTOutBarFolder | ||
|  | { | ||
|  | public: | ||
|  | 
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Constructs a CXTOutBarFolder object.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     lpszName -  [in] A NULL terminated string that represents the item
 | ||
|  | 	//                 name.
 | ||
|  | 	// dwData -    [in] User defined item data (lParam).
 | ||
|  | 	// pControl -  [in] Pointer to the parent CXTOutBarCtrl object.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     The CXTOutBarFolder object is constructed by the CXTOutBarCtrl to
 | ||
|  | 	//     when a new folder to the control.
 | ||
|  | 	// See Also:
 | ||
|  | 	//     CXTOutBarCtrl::AddFolder, CXTOutBarCtrl::AddFolderBar
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	CXTOutBarFolder(LPCTSTR lpszName, DWORD dwData, CXTOutBarCtrl* pControl); | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Destroys a CXTOutBarFolder object, handles cleanup and
 | ||
|  | 	//     deallocation
 | ||
|  | 	// --------------------------------------------------------------
 | ||
|  | 	virtual ~CXTOutBarFolder(); | ||
|  | 
 | ||
|  | 	// ---------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the number of folders found
 | ||
|  | 	//     in the Outlook bar.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     The number of folders in the Outlook bar.
 | ||
|  | 	// ---------------------------------------------------------------------
 | ||
|  | 	int GetItemCount(); | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to insert an item into the Outlook bar
 | ||
|  | 	//     folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex -    [in] Index of the item.
 | ||
|  | 	// lpszName -  [in] A NULL terminated string that represents the
 | ||
|  | 	//                 label of the item.
 | ||
|  | 	// nImage -    [in] Index into the folder's image list.
 | ||
|  | 	// dwData -    [in] User item data (lParam).
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An integer value.
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	int InsertItem(int iIndex, LPCTSTR lpszName, const int nImage, const DWORD dwData); | ||
|  | 
 | ||
|  | 	// ---------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Retrieves a pointer to a CXTOutBarItem at the given index.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex -  [in] Index of the folder item to retrieve.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to retrieve a pointer to the CXTOutBarItem
 | ||
|  | 	//     at the specified index.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to a CXTOutBarItem object if successful, otherwise NULL.
 | ||
|  | 	// ---------------------------------------------------------------------
 | ||
|  | 	CXTOutBarItem* GetItemAt(int iIndex); | ||
|  | 
 | ||
|  | 	// -----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to insert a folder item into the
 | ||
|  | 	//     location specified by 'iIndex'.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex -    [in] Zero\-based index of where to insert the new item.
 | ||
|  | 	// pBarItem -  [in] Points to a valid CXTOutBarItem object.
 | ||
|  | 	// -----------------------------------------------------------------------
 | ||
|  | 	void InsertItemAt(int iIndex, CXTOutBarItem* pBarItem); | ||
|  | 
 | ||
|  | 	// -------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to remove the specified item from the
 | ||
|  | 	//     folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex -  Index of the item to remove.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to the removed item.
 | ||
|  | 	// -------------------------------------------------------------------
 | ||
|  | 	CXTOutBarItem* RemoveItemAt(int iIndex); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return the label of the folder item.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CString object.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CString GetName(); | ||
|  | 
 | ||
|  | 	// -------------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the label for the folder item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     strName -  [in] A NULL terminated string that represents the folder's
 | ||
|  | 	//                new label.
 | ||
|  | 	// -------------------------------------------------------------------------
 | ||
|  | 	void SetName(LPCTSTR strName); | ||
|  | 
 | ||
|  | 	// ---------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return the user defined item data
 | ||
|  | 	//     (lParam) for the folder.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A DWORD value that represents the item data if defined, otherwise
 | ||
|  | 	//     NULL.
 | ||
|  | 	// ---------------------------------------------------------------------
 | ||
|  | 	DWORD GetData(); | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the user item data (lParam) for
 | ||
|  | 	//     the folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dwData -  [in] User item data (lParam).
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	void SetData(DWORD dwData); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return a pointer to the large image list
 | ||
|  | 	//     for the folder.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to CImageList object if successful, otherwise returns NULL.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CImageList* GetLargeImageList(); | ||
|  | 
 | ||
|  | 	// -----------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the large image list for the
 | ||
|  | 	//     folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pLargeList -  [in] Points to a CImageList object.
 | ||
|  | 	// -----------------------------------------------------------------
 | ||
|  | 	void SetLargeImageList(CImageList* pLargeList); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return a pointer to the small image list
 | ||
|  | 	//     for the folder.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CImageList object if successful, otherwise returns NULL.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CImageList* GetSmallImageList(); | ||
|  | 
 | ||
|  | 	// -----------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the small image list for the
 | ||
|  | 	//     folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pSmallList -  [in] Points to a CImageList object.
 | ||
|  | 	// -----------------------------------------------------------------
 | ||
|  | 	void SetSmallImageList(CImageList* pSmallList); | ||
|  | 
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Retrieves a pointer to the child window.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member function to retrieve a CWnd pointer to the child
 | ||
|  | 	//     object that is associated with this folder item.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CWnd pointer to the child associated with the folder, or NULL if
 | ||
|  | 	//     no objects were found.
 | ||
|  | 	// See Also:
 | ||
|  | 	//     SetChild, CXTOutBarCtrl::AddFolderBar
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	CWnd* GetChild(); | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the CWnd child to be associated
 | ||
|  | 	//     with this folder item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pChild -  [in] Points to a valid CWnd object.
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	void SetChild(CWnd* pChild); | ||
|  | 
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to set the currently selected item for
 | ||
|  | 	//     the folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iItem -  [in] Index of the item to select
 | ||
|  | 	// --------------------------------------------------------------------
 | ||
|  | 	void SetSelItem(int iItem); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return a pointer to the currently selected
 | ||
|  | 	//     item.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to a CXTOutBarItem object if successful, otherwise returns NULL.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CXTOutBarItem* GetSelItem(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return the index for the currently selected
 | ||
|  | 	//     item.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     The index of the currently selected item if successful, otherwise returns -1.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int GetSelIndex(); | ||
|  | 
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Retrieves a pointer to the parent CXTOutBarCtrl window.
 | ||
|  | 	// Remarks:
 | ||
|  | 	//     Call this member to retrieve a pointer to the folder's CXTOutBarCtrl
 | ||
|  | 	//     parent window.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A pointer to a CXTOutBarCtrl object if successful, otherwise NULL.
 | ||
|  | 	// ----------------------------------------------------------------------
 | ||
|  | 	CXTOutBarCtrl* GetControl(); | ||
|  | 
 | ||
|  | protected: | ||
|  | 
 | ||
|  | 	BOOL                            m_bSmallIcons;  // TRUE to use small icons.
 | ||
|  | 	CWnd*                           m_pChild;       // Child window pointer.
 | ||
|  | 	DWORD                           m_dwData;       // Application data.
 | ||
|  | 	CString                         m_strName;      // Folder label.
 | ||
|  | 	CImageList*                     m_pLargeList;   // Image list for large icons.
 | ||
|  | 	CImageList*                     m_pSmallList;   // Image list for small icons.
 | ||
|  | 	CList<CXTOutBarItem*, CXTOutBarItem*> m_barItems;     // Folder items.
 | ||
|  | 	CXTOutBarCtrl*                  m_pControl;     // Pointer to the parent CXTOutBarCtrl object.
 | ||
|  | 
 | ||
|  | 	friend class CXTOutBarCtrl; | ||
|  | }; | ||
|  | 
 | ||
|  | //////////////////////////////////////////////////////////////////////
 | ||
|  | 
 | ||
|  | AFX_INLINE void CXTOutBarCtrl::SetFontX(CFont* pFont) { | ||
|  | 	ASSERT_VALID(pFont); LOGFONT lf; pFont->GetLogFont(&lf); m_font.DeleteObject(); m_font.CreateFontIndirect(&lf); | ||
|  | } | ||
|  | AFX_INLINE CFont* CXTOutBarCtrl::GetFontX() { | ||
|  | 	return &m_font; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarCtrl::SetAnimationTickCount(const long lValue) { | ||
|  | 	m_nAnimationTickCount = lValue; | ||
|  | } | ||
|  | AFX_INLINE int CXTOutBarCtrl::GetAnimationTickCount() { | ||
|  | 	return m_nAnimationTickCount; | ||
|  | } | ||
|  | AFX_INLINE CXTOutBarFolder* CXTOutBarCtrl::GetBarFolder(const int iFolder) { | ||
|  | 	return (CXTOutBarFolder*)m_arFolder.GetAt(iFolder); | ||
|  | } | ||
|  | AFX_INLINE CXTOutBarItem* CXTOutBarCtrl::GetBarFolderItem(const int iFolder, const int iIndex) { | ||
|  | 	return GetBarFolder(iFolder)->GetItemAt(iIndex); | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | //////////////////////////////////////////////////////////////////////
 | ||
|  | 
 | ||
|  | AFX_INLINE int CXTOutBarItem::GetIndex() { | ||
|  | 	return m_nIndex; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarItem::SetIndex(int iIndex) { | ||
|  | 	m_nIndex = iIndex; | ||
|  | } | ||
|  | AFX_INLINE DWORD CXTOutBarItem::GetData() { | ||
|  | 	return m_dwData; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarItem::SetData(DWORD dwData) { | ||
|  | 	m_dwData = dwData; | ||
|  | } | ||
|  | AFX_INLINE CString CXTOutBarItem::GetName() { | ||
|  | 	return m_strName; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarItem::SetName(LPCTSTR strName) { | ||
|  | 	m_strName = strName; | ||
|  | } | ||
|  | 
 | ||
|  | //////////////////////////////////////////////////////////////////////
 | ||
|  | 
 | ||
|  | AFX_INLINE int CXTOutBarFolder::GetItemCount() { | ||
|  | 	return (int)m_barItems.GetCount(); | ||
|  | } | ||
|  | AFX_INLINE CString CXTOutBarFolder::GetName() { | ||
|  | 	return m_strName; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarFolder::SetName(LPCTSTR strName) { | ||
|  | 	m_strName = strName; | ||
|  | } | ||
|  | AFX_INLINE DWORD CXTOutBarFolder::GetData() { | ||
|  | 	return m_dwData; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarFolder::SetData(DWORD dwData) { | ||
|  | 	m_dwData = dwData; | ||
|  | } | ||
|  | AFX_INLINE CImageList* CXTOutBarFolder::GetLargeImageList() { | ||
|  | 	return m_pLargeList; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarFolder::SetLargeImageList(CImageList* pLargeList) { | ||
|  | 	m_pLargeList = pLargeList; | ||
|  | } | ||
|  | AFX_INLINE CImageList* CXTOutBarFolder::GetSmallImageList() { | ||
|  | 	return m_pSmallList; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarFolder::SetSmallImageList(CImageList* pSmallList) { | ||
|  | 	m_pSmallList = pSmallList; | ||
|  | } | ||
|  | AFX_INLINE CWnd* CXTOutBarFolder::GetChild() { | ||
|  | 	return m_pChild; | ||
|  | } | ||
|  | AFX_INLINE void CXTOutBarFolder::SetChild(CWnd* pChild) { | ||
|  | 	m_pChild = pChild; | ||
|  | } | ||
|  | 
 | ||
|  | AFX_INLINE CXTOutBarCtrl* CXTOutBarFolder::GetControl() { | ||
|  | 	return m_pControl; | ||
|  | } | ||
|  | //////////////////////////////////////////////////////////////////////
 | ||
|  | 
 | ||
|  | //===========================================================================
 | ||
|  | // Summary:
 | ||
|  | //     CXTOutBarEditItem is a helper class derived from CXTEdit. It is used by
 | ||
|  | //     CXTOutBarCtrl, an Outlook like control, to create an in-place edit box
 | ||
|  | //     that is used to modify a folder or an item within the control.
 | ||
|  | //===========================================================================
 | ||
|  | class _XTP_EXT_CLASS CXTOutBarEditItem : public CXTPEdit | ||
|  | { | ||
|  | 	DECLARE_DYNAMIC(CXTOutBarEditItem) | ||
|  | 
 | ||
|  | public: | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Constructs a CXTOutBarEditItem object
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CXTOutBarEditItem(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Destroys a CXTOutBarEditItem object, handles cleanup and deallocation
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual ~CXTOutBarEditItem(); | ||
|  | 
 | ||
|  | protected: | ||
|  | 
 | ||
|  | 	int             m_iIndex;       // Index of the folder or item.
 | ||
|  | 	bool            m_bEscapeKey;   // true if the escape key was pressed.
 | ||
|  | 	bool            m_bSmallIcons;  // true if the folder is using small icons.
 | ||
|  | 	bool            m_bIsFolder;    // true if the edit box is for a folder.
 | ||
|  | 	CRect           m_rcOriginal;   // Original size of the edit box when it was first created.
 | ||
|  | 	CString         m_strText;      // Original string of the edit box when it was first created, and the new text on edit completion.
 | ||
|  | 	CXTOutBarCtrl*  m_pParentWnd;   // Parent Outlook bar control.
 | ||
|  | 
 | ||
|  | public: | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return the index of the folder or item
 | ||
|  | 	//     currently being edited.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     An integer value that represents the index of the folder or item.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	int GetIndex() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to return the text associated with this edit
 | ||
|  | 	//     control.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     A CString object that represents the text originally
 | ||
|  | 	//     set for the edit control. If called after the edit is destroyed, it
 | ||
|  | 	//     returns the modified text value.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CString GetText() const; | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     The Outlook bar control calls this member to create an in-place edit
 | ||
|  | 	//     control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     lpszText    - NULL terminated string to be displayed in the edit control.
 | ||
|  | 	//     dwStyle     - Window style for the edit control.
 | ||
|  | 	//     rect        - Size of the edit control.
 | ||
|  | 	//     pParentWnd  - Owner window.
 | ||
|  | 	//     nID         - Control ID.
 | ||
|  | 	//     nIndex      - Folder or item index.
 | ||
|  | 	//     bIsFolder   - true if the edit is for a folder item.
 | ||
|  | 	//     bSmallIcons - true if the parent folder is displaying small icons.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if successful, otherwise returns FALSE.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL Create(LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, UINT nIndex, bool bIsFolder, bool bSmallIcons); | ||
|  | 
 | ||
|  | 	//{{AFX_CODEJOCK_PRIVATE
 | ||
|  | 	//{{AFX_VIRTUAL(CXTOutBarEditItem)
 | ||
|  | 	public: | ||
|  | 	virtual BOOL PreTranslateMessage(MSG* pMsg); | ||
|  | 	protected: | ||
|  | 	virtual void PostNcDestroy(); | ||
|  | 	//}}AFX_VIRTUAL
 | ||
|  | 	//}}AFX_CODEJOCK_PRIVATE
 | ||
|  | 
 | ||
|  | protected: | ||
|  | 
 | ||
|  | 	//{{AFX_CODEJOCK_PRIVATE
 | ||
|  | 	//{{AFX_MSG(CXTOutBarEditItem)
 | ||
|  | 	afx_msg void OnKillFocus(CWnd* pNewWnd); | ||
|  | 	afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); | ||
|  | 	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); | ||
|  | 	//}}AFX_MSG
 | ||
|  | 	DECLARE_MESSAGE_MAP() | ||
|  | 	//}}AFX_CODEJOCK_PRIVATE
 | ||
|  | 
 | ||
|  | private: | ||
|  | 	BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL); | ||
|  | 	BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); | ||
|  | }; | ||
|  | 
 | ||
|  | //////////////////////////////////////////////////////////////////////
 | ||
|  | 
 | ||
|  | AFX_INLINE int CXTOutBarEditItem::GetIndex() const { | ||
|  | 	return m_iIndex; | ||
|  | } | ||
|  | AFX_INLINE CString CXTOutBarEditItem::GetText() const { | ||
|  | 	return m_strText; | ||
|  | } | ||
|  | AFX_INLINE BOOL CXTOutBarEditItem::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 BOOL CXTOutBarEditItem::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID) { | ||
|  | 	return CEdit::Create(dwStyle, rect, pParentWnd, nID); | ||
|  | } | ||
|  | 
 | ||
|  | //===========================================================================
 | ||
|  | // Summary:
 | ||
|  | //     CXTToolBox is a CXTOutBarCtrl derived class. It is used to create a
 | ||
|  | //     toolbox control similar to the toolbox control seen in VisualStudio.NET.
 | ||
|  | //===========================================================================
 | ||
|  | class _XTP_EXT_CLASS CXTToolBox : public CXTOutBarCtrl | ||
|  | { | ||
|  | 	DECLARE_DYNCREATE(CXTToolBox) | ||
|  | 
 | ||
|  | public: | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Constructs a CXTToolBox object
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	CXTToolBox(); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Destroys a CXTToolBox object, handles cleanup and deallocation
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual ~CXTToolBox(); | ||
|  | 
 | ||
|  | protected: | ||
|  | 
 | ||
|  | 	int  m_iFirst;      // Index of the first visible item.
 | ||
|  | 	int  m_iLast;       // Index of the last visible item.
 | ||
|  | 	bool m_bAnimating;  // true if the folder selection is changing.
 | ||
|  | 
 | ||
|  | public: | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to create the toolbox control.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     dwExStyle  - Extended style for the toolbox, such as WS_EX_STATICEDGE. It can be
 | ||
|  | 	//                  NULL.
 | ||
|  | 	//     dwStyle    - Style for the toolbox. It usually includes the WS_CHILD | WS_VISIBLE
 | ||
|  | 	//                  flags.
 | ||
|  | 	//     rect       - Size of the toolbox.
 | ||
|  | 	//     pParentWnd - Parent of the control.
 | ||
|  | 	//     nID        - Identifier of the toolbox control.
 | ||
|  | 	//     dwFlag     - Specifies the style flags for the control. See CXTOutBarCtrl::ModifyFlag
 | ||
|  | 	//                  for a list of available styles.
 | ||
|  | 	// Returns:
 | ||
|  | 	//     TRUE if successful, otherwise returns FALSE.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual BOOL CreateEx(DWORD dwExStyle, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, const DWORD dwFlag = OBS_XT_DEFAULT); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the size of the icon for the
 | ||
|  | 	//     specified item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of the folder where the item is located.
 | ||
|  | 	//     iIndex  - Index of the item.
 | ||
|  | 	//     rect    - Address of a CRect object that will receive the icon size.
 | ||
|  | 	//     pInsideRect - Pointer to a CRect object that represents the size
 | ||
|  | 	//                   of the client area for the Outlook bar. If NULL
 | ||
|  | 	//                   GetInsideRect will be used to determine the client
 | ||
|  | 	//                   area size.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void GetIconRect(const int iFolder, const int iIndex, CRect& rect, CRect* pInsideRect = NULL); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Call this member function to retrieve the size of the specified item.
 | ||
|  | 	//     The size includes the area occupied by the item's label and icon.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iFolder - Index of the folder where the item is located.
 | ||
|  | 	//     iIndex  - Index of the item.
 | ||
|  | 	//     rect    - Address of a CRect object that will receive the item size.
 | ||
|  | 	//     pInsideRect - Pointer to a CRect object that represents the size
 | ||
|  | 	//                   of the client area for the Outlook bar. If NULL
 | ||
|  | 	//                   GetInsideRect will be used to determine the client
 | ||
|  | 	//                   area size.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void GetItemRect(const int iFolder, const int iIndex, CRect& rect, CRect* pInsideRect = NULL); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     This member function will set the selected folder for the toolbox.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     iIndex - Index of the new selected folder.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void SetSelFolder(const int iIndex); | ||
|  | 
 | ||
|  | protected: | ||
|  | 
 | ||
|  | 	//{{AFX_CODEJOCK_PRIVATE
 | ||
|  | 	//{{AFX_VIRTUAL(CXTToolBox)
 | ||
|  | 	//}}AFX_VIRTUAL
 | ||
|  | 	//}}AFX_CODEJOCK_PRIVATE
 | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTToolBox to render an item's icon.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC      - Pointer to a valid device context.
 | ||
|  | 	//     iIcon    - Index of the icon to render.
 | ||
|  | 	//     iFolder  - Index of the parent folder.
 | ||
|  | 	//     bHilight - true if the icon is highlighted.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawIcon(CDC* pDC, int iIcon, int iFolder, bool bHilight); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTToolBox to draw a folder item.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC        - Pointer to a valid device context.
 | ||
|  | 	//     iFolder    - Index of the parent folder.
 | ||
|  | 	//     rc         - Size of the area to render.
 | ||
|  | 	//     iIndex     - Index of the item to render.
 | ||
|  | 	//     bOnlyImage - TRUE if only the image is to be drawn.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawItem(CDC* pDC, const int iFolder, CRect rc, const int iIndex, const BOOL bOnlyImage); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTToolBox to render a folder.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC      - Pointer to a valid device context.
 | ||
|  | 	//     iIndex   - Index of the folder to render.
 | ||
|  | 	//     rect     - Size of the area to render.
 | ||
|  | 	//     eHilight - Current mouse over state.
 | ||
|  | 	// See Also: XTMouseState
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawFolder(CDC* pDC, const int iIndex, CRect rect, const XTMouseState eHilight); | ||
|  | 
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	// Summary:
 | ||
|  | 	//     Called by the CXTToolBox to draw the up or down scroll button.
 | ||
|  | 	// Parameters:
 | ||
|  | 	//     pDC    - Pointer to a valid device context.
 | ||
|  | 	//     rect   - Size of area to render.
 | ||
|  | 	//     uType  - Specifies the type of frame control to draw. See the
 | ||
|  | 	//              uType parameter in DrawFrameControl in the Platform SDK for
 | ||
|  | 	//              a list of this parameter's possible values.
 | ||
|  | 	//     uState - Specifies the initial state of the frame control.
 | ||
|  | 	//              Can be one or more of the values described for the uState parameter
 | ||
|  | 	//              in DrawFrameControl in the Platform SDK. Use the nState value
 | ||
|  | 	//              DFCS_ADJUSTRECT to adjust the bounding rectangle to exclude
 | ||
|  | 	//              the surrounding edge of the push button.
 | ||
|  | 	//-----------------------------------------------------------------------
 | ||
|  | 	virtual void DrawScrollButton(CDC* pDC, CRect rect, UINT uType, UINT uState); | ||
|  | 
 | ||
|  | 	//{{AFX_CODEJOCK_PRIVATE
 | ||
|  | 	//{{AFX_MSG(CXTToolBox)
 | ||
|  | 	afx_msg void OnPaint(); | ||
|  | 	virtual void OnDraw(CDC* pDC); | ||
|  | 	afx_msg void OnRButtonUp(UINT nFlags, CPoint point); | ||
|  | 	//}}AFX_MSG
 | ||
|  | 	DECLARE_MESSAGE_MAP() | ||
|  | 	//}}AFX_CODEJOCK_PRIVATE
 | ||
|  | 
 | ||
|  | private: | ||
|  | 	BOOL CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, LPVOID lpParam = NULL); | ||
|  | }; | ||
|  | 
 | ||
|  | AFX_INLINE BOOL CXTToolBox::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, LPVOID lpParam) { | ||
|  | 	return CWnd::CreateEx(dwExStyle, lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, lpParam); | ||
|  | } | ||
|  | 
 | ||
|  | #endif // #if !defined(__XTOUTBARCTRL_H__)
 |