This commit is contained in:
romkazvo
2023-08-07 19:29:24 +08:00
commit 34d6c5d489
4832 changed files with 1389451 additions and 0 deletions

View File

@@ -0,0 +1,161 @@
// XTOutlookBar.h interface for the CXTContentItems class.
//
// This file is a part of the Xtreme Toolkit for MFC.
// <20>1998-2003 Codejock Software, All Rights Reserved.
//
// This source code can only be used under the terms and conditions
// outlined in the accompanying license agreement.
//
// support@codejock.com
// http://www.codejock.com
//
//////////////////////////////////////////////////////////////////////
#if !defined(__XTOUTLOOKBAR_H__)
#define __XTOUTLOOKBAR_H__
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
//////////////////////////////////////////////////////////////////////
// Summary: XT_CONTENT_ITEM is a stand alone helper structure class. It is used
// by CXTOutlookBar.
struct XT_CONTENT_ITEM
{
int m_nIndex; // Zero-based index for the menu item.
CString m_strText; // Text label for the menu item.
CXTIconHandle m_hIcon; // Icon handle for the menu item.
};
// Summary: CList definition for XT_CONTENT_ITEM structure list.
typedef CList<XT_CONTENT_ITEM*,XT_CONTENT_ITEM*> CXTContentItemList;
//////////////////////////////////////////////////////////////////////
// Summary: CCXTOutlookBar is a CListBox derived class. It is used to implement
// an Outlook bar style control. It can only be used with the LBS_OWNERDRAWVARIABLE
// style bit set. This is a simpler version of CXTOutBarCtrl and does not
// allow for shortcut folders.
class _XT_EXT_CLASS CXTOutlookBar : public CListBox
{
DECLARE_DYNAMIC(CXTOutlookBar)
public:
// Summary: Constructs a CXTOutlookBar object.
CXTOutlookBar();
// Summary: Destroys a CXTOutlookBar object, handles cleanup and de-allocation.
virtual ~CXTOutlookBar();
protected:
int m_cxIcon; // Width of the menu icon.
int m_cyIcon; // Height of the menu icon.
int m_nIndex; // Currently selected menu index.
bool m_bHilight; // true when the menu item is selected.
bool m_bUserColors; // true when the user has defined custom colors for the Outlook bar.
CPoint m_point; // Holds the cursor position.
COLORREF m_clrBack; // RGB value representing the background color.
COLORREF m_clrText; // RGB value representing the text color.
CXTContentItemList m_arContentItems; // Array of XT_CONTENT_ITEM structs that represent each item in the Outlook bar.
public:
// Input: dwStyle - Window style.
// rect - The size and position of the window, in client coordinates of
// 'pParentWnd'.
// pParentWnd - The parent window.
// nID - The ID of the child window.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: This member function creates an Outlook Bar control.
virtual BOOL Create(DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID);
// Input: clrText - RGB value representing the text color.
// clrBack - RGB value representing the background color.
// Summary: Call this member function to set the text and background colors for
// the Outlook bar.
void SetColors(COLORREF clrText,COLORREF clrBack);
// Returns: An RGB value that represents the background color.
// Summary: This member function gets an RGB value that represents the control's
// background color.
COLORREF GetBackColor();
// Returns: An RGB value that represents the text color.
// Summary: This member function gets an RGB value that represents the control's
// text color.
COLORREF GetTextColor();
// Input: iIndex - Specifies the zero-based index of the position to insert the
// menu item. If this parameter is -1, the menu item is added to the
// end of the list.
// nIconID - Resource ID of the icon associated with this menu item.
// lpszText - Points to the null-terminated string for the menu item
// Returns: The zero-based index of the position at which the menu item was inserted.
// The return value is LB_ERR if an error occurs. The return value is LB_ERRSPACE
// if insufficient space is available to store the new menu item.
// Summary: This member function inserts a menu item into the Outlook bar. Unlike
// the AddMenuItem member function, InsertMenuItem does not cause an Outlook
// bar with the LBS_SORT style to be sorted.
int InsertMenuItem(int iIndex,UINT nIconID,LPCTSTR lpszText);
// Input: nIconID - Resource ID of the icon associated with this menu item.
// lpszText - Points to the null-terminated string for the menu item.
// Returns: The zero-based index to the menu item in the Outlook bar. The return
// value is LB_ERR if an error occurs. The return value is LB_ERRSPACE
// if insufficient space is available to store the new menu item.
// Summary: Call this member function to add a menu item to an Outlook bar. If
// the Outlook bar was not created with the LBS_SORT style, the menu item
// is added to the end of the Outlook bar. Otherwise, the menu item is
// inserted into the Outlook bar, and the Outlook bar is sorted. If the
// Outlook bar was created with the LBS_SORT style but not the LBS_HASSTRINGS
// style, the framework sorts the Outlook bar by one or more calls to
// the CompareItem member function. Use InsertMenuItem to insert a menu
// item into a specific location within the Outlook bar.
int AddMenuItem(UINT nIconID,LPCTSTR lpszText);
// Input: iItem - Specifies the zero-based index of the menu item to retrieve.
// Returns: An XT_CONTENT_ITEM pointer.
// Summary: Call this member function to return an XT_CONTENT_ITEM object that
// represents the menu item specified by 'iItem'.
XT_CONTENT_ITEM* GetMenuItem(int iItem);
// Ignore:
//{{AFX_VIRTUAL(CXTOutlookBar)
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
//}}AFX_VIRTUAL
protected:
// Input: pDC - Points to the current device context.
// Summary: This member function is called by the control for flicker free drawing.
void OnNoFlickerPaint(CDC* pDC);
// Ignore:
//{{AFX_MSG(CXTOutlookBar)
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos);
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnPaint();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////
AFX_INLINE void CXTOutlookBar::SetColors(COLORREF clrText, COLORREF clrBack) {
m_clrBack = clrBack; m_clrText = clrText; m_bUserColors = true;
}
//////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // #if !defined(__XTOUTLOOKBAR_H__)