// XTPToolBar.h : interface for the CXTPToolBar class. // // This file is a part of the XTREME COMMANDBARS 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(__XTPDIALOGBAR_H__) #define __XTPDIALOGBAR_H__ //}}AFX_CODEJOCK_PRIVATE #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 class CXTPPopupBar; //=========================================================================== // Summary: // CXTPDialogBar is a CXTPToolBar derived class. It represents dockable container for child window //=========================================================================== class _XTP_EXT_CLASS CXTPDialogBar : public CXTPToolBar { //{{AFX_CODEJOCK_PRIVATE class CControlButtonHide; class CControlCaptionPopup; class CCaptionPopupBar; //}}AFX_CODEJOCK_PRIVATE public: //------------------------------------------------------------------------- // Summary: // Constructs a CXTPDialogBar object //------------------------------------------------------------------------- CXTPDialogBar(); //------------------------------------------------------------------------- // Summary: // Destroys a CXTPDialogBar object, handles cleanup and deallocation. //------------------------------------------------------------------------- virtual ~CXTPDialogBar(); public: //----------------------------------------------------------------------- // Summary: // Call this member to specify the child window displayed under the // dialog bar. // Parameters: // pChild - Pointer to a CWnd object that is displayed under the // dialog bar. //----------------------------------------------------------------------- void SetChild(CWnd* pChild); //----------------------------------------------------------------------- // Summary: // Call this member to set the text that will be displayed in the // dialog bar's caption popup. // Parameters: // lpszCaption - Text that is displayed in the dialog bar's caption popup. // Remarks: // This is the text displayed in the dialog bar's caption popup. The // caption popup can be used to indicate what is being displayed in the // child window. //----------------------------------------------------------------------- void SetCaption(LPCTSTR lpszCaption); //----------------------------------------------------------------------- // Summary: // Call this member to retrieve the text displayed in the caption popup. // Returns: // The text displayed in the caption popup. //----------------------------------------------------------------------- CString GetCaption() const; //----------------------------------------------------------------------- // Summary: // Call this member to hide the caption popup control (and close button). // Parameters: // bVisible - TRUE to hide the caption popup control, FALSE to show it. // Remarks: // If bVisible is TRUE, only the commandbar is displayed, the caption // popup and close button are hidden. //----------------------------------------------------------------------- void SetCaptionVisible(BOOL bVisible); //----------------------------------------------------------------------- // Summary: // Call this member to tell the caption popup which CMenu popup to display // when the the caption popup is dropped down. // Parameters: // nMenuResourceID - Id of the CMenu resource that contains the popup // menu that should be displayed when the caption popup // is clicked/displayed. // Remarks: // If there is more than one popup on the CMenu resource, then only the // first popup on the CMenu will be used. //----------------------------------------------------------------------- void SetCaptionPopup(int nMenuResourceID); //----------------------------------------------------------------------- // Summary: // Call this member to retrieve a pointer to the CXTPPopupBar that is // displayed when the caption popup control is clicked/dropped down. // Returns: // Pointer to the CXTPPopupBar that is displayed when the caption // popup control is clicked/dropped down. //----------------------------------------------------------------------- CXTPPopupBar* GetCaptionPopup() const; //----------------------------------------------------------------------- // Summary: // Call this member to specify whether the dialog bar will be re-sizable. // Parameters: // bResizable - TRUE if the dialog bar can be resized, FALSE to lock // the dialog bar. // Remarks: // By default, bResizable is TRUE. If FALSE, no splitter is displayed // when the mouse pointer is positioned over the dialog bar borders. // You can use the SetSize member function to change the size of the // dialog bar programmatically. //----------------------------------------------------------------------- void SetResizable(BOOL bResizable); //----------------------------------------------------------------------- // Summary: // Call this member to set the width and height of the dialog bar child window. // Parameters: // sz - The width and height of the dialog bar's child window. // Remarks: // The size is only used to size the child window when the dialog // bar is floating, then both the specified width and height are used. // If the bar is dock on the left or right, only the width is used, // the height will depend on how much of the client area the dialog bar // can occupy. If the bar is docked on the top or bottom, then only // the height is used to size the child window. //----------------------------------------------------------------------- void SetSize(CSize sz); //----------------------------------------------------------------------- // Summary: // Call this member function to get child pane state. // Returns: // TRUE if a child pane is active. //----------------------------------------------------------------------- BOOL IsActive() const; protected: //----------------------------------------------------------------------- // Summary: // This method calculates the dimensions of a toolbar. // Parameters: // nLength - Length of the bar. // dwMode - Mode to dock. // nWidth - Width of the bar. // Returns: // Size of the docked toolbar. //----------------------------------------------------------------------- CSize CalcDockingLayout(int nLength, DWORD dwMode, int nWidth); //----------------------------------------------------------------------- // Summary: // This method calculates the dimensions of a toolbar. // Parameters: // nLength - The requested dimension of the control bar, either horizontal or vertical, depending on dwMode. // dwMode - see CControlBar::CalcDynamicLayout for list of supported flags. // Returns: // Size of the docked toolbar. //----------------------------------------------------------------------- CSize CalcDynamicLayout(int nLength, DWORD dwMode); //----------------------------------------------------------------------- // Summary: // Call this member function to determine if the CommandBar is a // CXTPDialogBar. // Remarks: // This will always return TRUE. // Returns: // Returns TRUE if the CommandBar is a CXTPDialogBar, otherwise FALSE. //----------------------------------------------------------------------- BOOL IsDialogBar() const; //----------------------------------------------------------------------- // Summary: // This method is called when user resize dialog bar. // Parameters: // rcWindow - CRect object specifying the size of the window. // nHitTest - Specifies the hit-test area code. //----------------------------------------------------------------------- void OnResize(CRect rcWindow, int nHitTest); //----------------------------------------------------------------------- // Summary: // This method calculates the dimensions of a dialog bar. // Parameters: // nLength - Length of the bar. // dwMode - Mode to dock. // szClient - Client size of dialog bar // Returns: // Size of the dialog bar. //----------------------------------------------------------------------- CSize CalcSize(int nLength, DWORD dwMode, CSize szClient); //----------------------------------------------------------------------- // Summary: // This method is called to determine mouse hit code // Parameters: // pt - Position to test // Returns: // HTCLIENT if pointer belongs client area; HTNOWHERE otherwise. //----------------------------------------------------------------------- int OnMouseHitTest(CPoint pt); //----------------------------------------------------------------------- // Summary: // Retrieves client margins of dialog bar. // Returns: // Rectangle contained top, left, right, bottom margins of dialog bar. //----------------------------------------------------------------------- CRect GetMargins(); //----------------------------------------------------------------------- // Summary: // This method is called to reposition child window in dialog bar. // Parameters: // rc - CRect object specifying size of area. //----------------------------------------------------------------------- void MoveChildWindow(CRect rc); protected: //{{AFX_CODEJOCK_PRIVATE DECLARE_MESSAGE_MAP() //{{AFX_MSG(CXTPDialogBar) afx_msg LRESULT OnNcHitTest(CPoint point); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg LRESULT OnIdleUpdateCmdUI(WPARAM wParam, LPARAM lParam); //}}AFX_MSG //}}AFX_CODEJOCK_PRIVATE protected: CRect m_rcBorders; // Borders size. BOOL m_bResizable; // TRUE if the child window and dialog bar are re-sizable. CSize m_szMinTrackRect; // Minimum tracking rectangle BOOL m_bCaptionVisible; // TRUE if the caption popup control is visible. BOOL m_bCaptionPopup; // TRUE to use caption as popup control. int m_nCaptionHeight; // Caption height. CSize m_szDockingClient; // Docking client rectangle CSize m_szFloatingClient; // Floating client rectangle HWND m_hwndChild; // Child window handle. CString m_strCaption; // Text that is displayed in the caption popup control. CXTPPopupBar* m_pPopupBar; // Pointer to caption popup bar. BOOL m_bActive; // TRUE if dialog bar has active caption protected: DECLARE_XTP_COMMANDBAR(CXTPDialogBar) friend class CXTPToolBar; friend class CXTPDockContext; }; ///////////////////////////////////////////////////////////////////////////// AFX_INLINE BOOL CXTPDialogBar::IsDialogBar() const { return TRUE; } AFX_INLINE CXTPPopupBar* CXTPDialogBar::GetCaptionPopup() const { return m_pPopupBar; } AFX_INLINE void CXTPDialogBar::SetResizable(BOOL bResizable) { m_bResizable = bResizable; } AFX_INLINE BOOL CXTPDialogBar::IsActive() const { return m_bActive; } #endif //#if !defined(__XTPDIALOGBAR_H__)