// 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
class CMFCAutoHideBar;
class CDockablePane;
#include "afxcontrolbarutil.h"
#include "afxautohidebar.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 CMFCAutoHideButton : public CObject
{
DECLARE_DYNCREATE(CMFCAutoHideButton)
public:
CMFCAutoHideButton();
virtual ~CMFCAutoHideButton();
virtual BOOL Create(CMFCAutoHideBar* pParentBar, CDockablePane* pAutoHideWnd, DWORD dwAlignment);
void ShowAttachedWindow(BOOL bShow);
void BringToTop() {m_bTop = TRUE;}
void Move(int nOffset);
virtual void ShowButton(BOOL bShow);
virtual BOOL IsVisible() const {return m_bVisible;}
///
/// Highlights auto hide button.
/// Specifies the new auto hide button state: TRUE - button is highlighted, FALSE- button is not highlighted.
virtual void HighlightButton(BOOL bHighlight);
///
/// Returns highlight state of auto hide button.
/// Returns TRUE if auto hide button is highlighted; otherwise FALSE.
virtual BOOL IsHighlighted() const { return m_bHighlighted; }
BOOL IsTop() const {return m_bTop;}
BOOL IsActive() const { return m_pParentBar != NULL && m_pParentBar->m_bActiveInGroup; }
virtual void OnDraw(CDC* pDC);
virtual void OnFillBackground(CDC* pDC, CRect rect);
virtual void OnDrawBorder(CDC* pDC, CRect rectBounds, CRect rectBorderSize);
virtual void UnSetAutoHideMode(CDockablePane* pFirstBarInGroup);
CSize GetSize() const;
CRect GetRect() const {return m_rect;}
virtual CSize GetTextSize() const;
BOOL IsHorizontal() const;
DWORD GetAlignment() const { return m_dwAlignment; }
CDockablePane* GetAutoHideWindow() const {return m_pAutoHideWindow;}
CMFCAutoHideBar* GetParentToolBar() {return m_pParentBar;}
void ReplacePane(CDockablePane* pNewBar);
AFX_IMPORT_DATA static int m_nBorderSize;
AFX_IMPORT_DATA static int m_nMarginSize;
AFX_IMPORT_DATA static int m_nTextMargin;
AFX_IMPORT_DATA static int m_nTextSizeNoIcon;
AFX_IMPORT_DATA static BOOL m_bOverlappingTabs;
protected:
BOOL m_bTop;
BOOL m_bVisible;
BOOL m_bHighlighted;
DWORD m_dwAlignment;
int m_nOffset; // offset from the left bound of the parent bar for the horz buttons and from left bound for vert buttons
CRect m_rect;
CMFCAutoHideBar* m_pParentBar;
CDockablePane* m_pAutoHideWindow;
};
#ifdef _AFX_MINREBUILD
#pragma component(minrebuild, on)
#endif
#ifdef _AFX_PACKING
#pragma pack(pop)
#endif
// _ATLMFC_DISABLED_WARNINGS
#pragma warning(pop)