// This is a part of the Microsoft Foundation Classes C++ library. // Copyright (C) Microsoft Corporation // All rights reserved. // // This source code is only intended as a supplement to the // Microsoft Foundation Classes Reference and related // electronic documentation provided with the library. // See these sources for detailed information regarding the // Microsoft Foundation Classes product. #pragma once #include "afxtoolbarmenubutton.h" #include <__atlmfc_core.h> #pragma warning(push) #pragma warning(disable : _ATLMFC_DISABLED_WARNINGS) #ifdef _AFX_PACKING #pragma pack(push, _AFX_PACKING) #endif #ifdef _AFX_MINREBUILD #pragma component(minrebuild, off) #endif class CMFCToolBar; class CMFCCustomizeButton : public CMFCToolBarMenuButton { friend class CMFCToolBar; DECLARE_SERIAL(CMFCCustomizeButton) public: CMFCCustomizeButton(); CMFCCustomizeButton(int uiCustomizeCmdId, const CString& strCustomizeText); virtual ~CMFCCustomizeButton(); virtual void OnDraw(CDC* pDC, const CRect& rect, CMFCToolBarImages* pImages, BOOL bHorz = TRUE, BOOL bCustomizeMode = FALSE, BOOL bHighlight = FALSE, BOOL bDrawBorder = TRUE, BOOL bGrayDisabledButtons = TRUE); virtual CMFCPopupMenu* CreatePopupMenu(); virtual void CopyFrom(const CMFCToolBarButton& src); virtual BOOL IsEmptyMenuAllowed() const { return TRUE; } virtual void OnCancelMode(); virtual void OnChangeParentWnd(CWnd* pWndParent); virtual SIZE OnCalculateSize(CDC* pDC, const CSize& sizeDefault, BOOL bHorz); virtual BOOL IsEditable() const { return FALSE; } virtual BOOL CanBeStored() const { return FALSE; } int GetCustomizeCmdId() const { return m_iCustomizeCmdId; } CString GetCustomizeText() const { return m_strCustomizeText; } const CObList& GetInvisibleButtons() const { return m_lstInvisibleButtons; } CMFCToolBar* GetParentToolbar() { return m_pWndParentToolbar; } void SetDefaultDraw(BOOL bDefaultDraw = TRUE) { m_bDefaultDraw = bDefaultDraw; } BOOL IsDefaultDraw() const { return m_bDefaultDraw; } void SetExtraSize(int cx, int cy) { m_sizeExtra = CSize(cx, cy); } CSize GetExtraSize() const { return m_bIsPipeStyle ? m_sizeExtra : CSize(0, 0); } void SetPipeStyle(BOOL bOn = TRUE) { m_bIsPipeStyle = bOn; } BOOL IsPipeStyle() const { return m_bIsPipeStyle && !m_bOnRebar; } void AddInvisibleButton(CMFCToolBarButton* pButton) { m_lstInvisibleButtons.AddTail(pButton); } virtual BOOL InvokeCommand(CMFCPopupMenuBar* pMenuBar, const CMFCToolBarButton* pButton); void SetMenuRightAlign(BOOL bMenuRightAlign) { m_bMenuRightAlign = bMenuRightAlign; } BOOL IsMenuRightAlign() const { return m_bMenuRightAlign; } public: AFX_IMPORT_DATA static BOOL m_bIgnoreLargeIconsMode; protected: void CommonInit(); int m_iCustomizeCmdId; CSize m_sizeExtra; CString m_strCustomizeText; CMFCToolBar* m_pWndParentToolbar; BOOL m_bIsEmpty; BOOL m_bDefaultDraw; BOOL m_bIsPipeStyle; // Used in 2003 style only BOOL m_bOnRebar; BOOL m_bMenuRightAlign; CObList m_lstInvisibleButtons; // List of invisible buttons on the parent toolbar. }; #ifdef _AFX_MINREBUILD #pragma component(minrebuild, on) #endif #ifdef _AFX_PACKING #pragma pack(pop) #endif // _ATLMFC_DISABLED_WARNINGS #pragma warning(pop)