//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: Defines a special dockable dialog bar that activates itself when // the mouse cursor moves over it. This enables stacking of the // bars with only a small portion of each visible. // // $Workfile: $ // $Date: $ // //----------------------------------------------------------------------------- // $Log: $ // // $NoKeywords: $ //=============================================================================// #ifndef HAMMERBAR_H #define HAMMERBAR_H #pragma once #include "utlvector.h" #define RIGHT_JUSTIFY 0x01 #define BOTTOM_JUSTIFY 0x02 #define GROUP_BOX 0x04 struct ControlInfo_t { int m_nIDDialogItem; DWORD m_dwPlacementFlag; int m_nWidthBuffer; int m_nHeightBuffer; int m_nPosX; int m_nPosY; }; class CHammerBar : public CDialogBar { public: CHammerBar(void) { } ~CHammerBar(void); BOOL Create( CWnd* pParentWnd, UINT nIDTemplate, UINT nStyle, UINT nID ); BOOL Create( CWnd* pParentWnd, UINT nIDTemplate, UINT nStyle, UINT nID, char *pszName ); CSize m_sizeDocked; CSize m_sizeFloating; virtual CSize CalcDynamicLayout(int nLength, DWORD dwMode); virtual void OnSize( UINT nType, int cx, int cy ); void AddControl( int nIDTemplate, DWORD dwPlacementFlag ); void AdjustControls( void ); CUtlVector< ControlInfo_t > m_ControlList; protected: afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); DECLARE_MESSAGE_MAP() }; #endif // HAMMERBAR_H