XTPStatusBar.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:45k
- // XTPStatusBar.h : interface for the CXTPStatusBar class.
- //
- // This file is a part of the XTREME COMMANDBARS MFC class library.
- // (c)1998-2008 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(__XTPSTATUSBAR_H__)
- #define __XTPSTATUSBAR_H__
- //}}AFX_CODEJOCK_PRIVATE
- #if _MSC_VER >= 1000
- #pragma once
- #endif // _MSC_VER >= 1000
- class CXTPCommandBars;
- class CXTPPaintManager;
- class CXTPStatusBar;
- class CXTPImageManagerIcon;
- class CXTPImageManager;
- class CXTPToolTipContext;
- class CXTPPopupBar;
- class CXTPMarkupUIElement;
- class CXTPMarkupContext;
- #include "XTPScrollBar.h"
- #include "XTPControlProgress.h"
- //===========================================================================
- // Summary:
- // CXTPStatusBarPane is a CCmdTarget derived class. It represents single pane of status bar
- //===========================================================================
- class _XTP_EXT_CLASS CXTPStatusBarPane : public CXTPCmdTarget
- {
- private:
- DECLARE_DYNAMIC(CXTPStatusBarPane)
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Constructs a CXTPStatusBarPane object
- //-----------------------------------------------------------------------
- CXTPStatusBarPane();
- //-----------------------------------------------------------------------
- // Summary:
- // Destroys a CXTPStatusBarPane object, handles cleanup and deallocation
- //-----------------------------------------------------------------------
- virtual ~CXTPStatusBarPane();
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to set the text caption that is displayed
- // in this pane.
- // Parameters:
- // lpszText - Text caption of the pane.
- // See Also: GetText
- //-----------------------------------------------------------------------
- void SetText(LPCTSTR lpszText);
- void SetCaption(LPCTSTR lpszCaption);
- CString GetCaption() const;
- void SetValue(LPCTSTR lpszValue);
- CString GetValue() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to get the text caption to the pane.
- // Returns:
- // Text caption of pane. This is the text displayed in the pane
- // See Also: SetText
- //-----------------------------------------------------------------------
- CString GetText() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to set the width of this pane.
- // Parameters:
- // nWidth - new width to be set
- // See Also: GetWidth
- //-----------------------------------------------------------------------
- void SetWidth(int nWidth);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to get the width of the pane.
- // Returns:
- // Current width of the pane
- // See Also: SetWidth
- //-----------------------------------------------------------------------
- virtual int GetWidth();
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to set the style of a status bar's pane.
- // A pane's style determines how the pane appears.
- // Parameters:
- // nStyle - Style of the pane whose style is to be set
- //-----------------------------------------------------------------------
- void SetStyle(UINT nStyle);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to get the style of a status bar's pane.
- // Returns:
- // Style of the indicator pane.
- //-----------------------------------------------------------------------
- UINT GetStyle() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to get the ID of a status bar's pane.
- // Returns:
- // ID of the indicator pane.
- //-----------------------------------------------------------------------
- UINT GetID() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to get the index of a status bar's pane.
- // Returns:
- // Index of the indicator pane.
- //-----------------------------------------------------------------------
- int GetIndex() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to remove the pane
- //-----------------------------------------------------------------------
- void Remove();
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to determine if the pane is visible.
- // Returns:
- // TRUE if the tab is visible, FALSE otherwise.
- // See Also: SetVisible
- //-----------------------------------------------------------------------
- BOOL IsVisible() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to hide or show the pane.
- // Parameters:
- // bVisible - TRUE to show the tab, FALSE to hide the tab.
- // See Also: IsVisible
- //-----------------------------------------------------------------------
- void SetVisible(BOOL bVisible);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to set the color of an item text.
- // Parameters:
- // clrText - COLORREF object that represents the color of an item
- // text.
- //-----------------------------------------------------------------------
- void SetTextColor(COLORREF clrText);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to get the color of an item text.
- // Returns:
- // A COLORREF object that represents the color of an item text.
- //-----------------------------------------------------------------------
- COLORREF GetTextColor() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to set the color of an item background.
- // Parameters:
- // clrBackground - COLORREF object that represents the background color of an item
- // text.
- //-----------------------------------------------------------------------
- void SetBackgroundColor(COLORREF clrBackground);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to get the background color of an item.
- // Returns:
- // The background color of a item.
- //-----------------------------------------------------------------------
- COLORREF GetBackgroundColor() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to set the font of an item text.
- // Parameters:
- // pFntText - point to CFont object.
- // pLogfText - point to LOGFONT structure.
- //-----------------------------------------------------------------------
- void SetTextFont(CFont* pFntText);
- void SetTextFont(PLOGFONT pLogfText); // <combine CXTPStatusBarPane::SetTextFont@CFont* >
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to set the font of an item text.
- // Returns:
- // Pointer to CFont object.
- //-----------------------------------------------------------------------
- virtual CFont* GetTextFont();
- //-----------------------------------------------------------------------
- // Summary:
- // Retrieves icon index.
- // Returns:
- // Icon index.
- // See Also: SetIconIndex
- //-----------------------------------------------------------------------
- int GetIconIndex() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this method to set icon index of item.
- // Parameters:
- // nIconIndex - Icon index to be set.
- // See Also: GetIconIndex
- //-----------------------------------------------------------------------
- void SetIconIndex(int nIconIndex);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to set the alignment of an item text.
- // Parameters:
- // nAlign - The alignment style of an item text.
- //-----------------------------------------------------------------------
- void SetTextAlignment(int nAlign);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to get the alignment of an item text.
- // Returns:
- // The alignment style of an item text.
- //-----------------------------------------------------------------------
- int GetTextAlignment() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to set the tooltip for this pane. This is the
- // text that will be displayed when the mouse pointer is positioned
- // over the pane.
- // Parameters: lpszTooltip - Tooltip to set for this tab.
- // See Also: GetTooltip
- //-----------------------------------------------------------------------
- void SetTooltip(LPCTSTR lpszTooltip);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to get the tooltip displayed when the mouse
- // pointer is positioned over the pane.
- // Returns:
- // The tooltip displayed when the mouse if over the pane.
- // See Also: SetTooltip
- //-----------------------------------------------------------------------
- CString GetTooltip() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Fits the width of the pane to the its text width.
- //-----------------------------------------------------------------------
- void BestFit();
- int GetBestFit();
- void SetBeginGroup(BOOL bBeginGroup = TRUE);
- BOOL GetBeginGroup() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to get parent status bar object
- // Returns:
- // Pointer to parent status bar object
- //-----------------------------------------------------------------------
- CXTPStatusBar* GetStatusBar() const;
- //-----------------------------------------------------------------------
- // Summary:
- // This method is called to get image of the pane
- // Returns:
- // CXTPImageManagerIcon Pointer to be drawn.
- //-----------------------------------------------------------------------
- virtual CXTPImageManagerIcon* GetImage() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Returns margins for pane entry
- // See Also: SetMargins
- //-----------------------------------------------------------------------
- CRect GetMargins() const;
- CRect GetPadding() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this method to set margins for pane
- // Parameters:
- // nLeft - Left margin
- // nTop - Top margin
- // nRight - Right margin
- // nBottom - Bottom margin
- // See Also: GetMargins
- //-----------------------------------------------------------------------
- void SetMargins(int nLeft, int nTop, int nRight, int nBottom);
- void SetPadding(int nLeft, int nTop, int nRight, int nBottom);
- void SetButton(BOOL bButton = TRUE);
- BOOL IsButton() const;
- BOOL IsEnabled() const;
- void SetEnabled(BOOL bEnabled);
- BOOL IsHighlighted() const;
- BOOL IsPressed() const;
- void SetCustomizationVisible(BOOL bVisible);
- BOOL GetCustomizationVisible() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to determine if the pane button state is
- // checked.
- // Returns:
- // TRUE if the pane button is checked, otherwise FALSE.
- //-----------------------------------------------------------------------
- BOOL IsChecked() const;
- void SetChecked(BOOL bChecked);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to determine if the pane has borders
- // enabled.
- // Returns:
- // TRUE if the pane has borders, otherwise FALSE. If the pane is a
- // button, the return value is always FALSE since buttons will handle
- // drawing their own borders.
- // See Also:
- // IsButton
- //-----------------------------------------------------------------------
- BOOL HasBorders() const;
- void ShowBorders(BOOL bShowBorders);
- void Redraw() const;
- CRect GetRect() const;
- CXTPMarkupUIElement* GetMarkupUIElement() const;
- protected:
- //-----------------------------------------------------------------------
- // Summary:
- // This method is called to draw pane item. Override it to draw custom pane.
- // Parameters:
- // pDC - Pointer to a valid device context
- // rcItem - Item rectangle
- //-----------------------------------------------------------------------
- virtual void OnDraw(CDC* pDC, CRect rcItem);
- virtual void OnLButtonDown(CPoint point);
- virtual void OnMouseMove(CPoint point);
- virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
- protected:
- UINT m_nID; // IDC of indicator: 0 => normal text area.
- int m_cxText; // Width of the string area in pixels. On both sides there is a 3 pixel gap and a 1 pixel border, making a pane 6 pixels wider.
- UINT m_nStyle; // Style flags (SBPS_*).
- CString m_strText; // Text in the pane.
- DWORD m_dwHideFlags; // TRUE if pane is visible
- COLORREF m_clrText; // Text color
- COLORREF m_clrBackground; // Background color
- CString m_strToolTip; // Tooltip text for the item..
- CRect m_rcPane;
- HWND m_hWndPane; // Child handle
- BOOL m_bAutoDeleteWnd; // TRUE to auto delete child.
- int m_nAlignment; // Alignment of the item.
- CXTPStatusBar* m_pStatusBar; // Parent StatusBar object
- int m_nIndex; // Index of the item
- CFont m_fntText; // Font of an item text
- int m_nIconIndex; // Icon index of the pane
- CRect m_rcPadding; // Margins of the pane
- CRect m_rcMargins; // Margins of the pane
- BOOL m_bButton; // TRUE if pane is clickable button
- BOOL m_bPressed; // TRUE if button was pressed
- CXTPMarkupUIElement* m_pMarkupUIElement;
- BOOL m_bBeginGroup;
- CString m_strCaption;
- CString m_strValue;
- int m_nBestFit;
- friend class CXTPStatusBar;
- };
- //===========================================================================
- // Summary:
- // CXTPStatusBar is a CControlBar derived class.
- //===========================================================================
- class _XTP_EXT_CLASS CXTPStatusBar : public CControlBar
- {
- //{{AFX_CODEJOCK_PRIVATE
- DECLARE_DYNAMIC(CXTPStatusBar)
- //}}AFX_CODEJOCK_PRIVATE
- private:
- class CStatusCmdUI;
- class CControlCustomization;
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Constructs a CXTPStatusBar object
- //-----------------------------------------------------------------------
- CXTPStatusBar();
- //-----------------------------------------------------------------------
- // Summary:
- // Destroys a CXTPStatusBar object, handles cleanup and deallocation
- //-----------------------------------------------------------------------
- virtual ~CXTPStatusBar();
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Creates a status bar (a child window) and associates it with the CStatusBar object.
- // Also sets the initial font and sets the status bar's height to a default value.
- // Parameters:
- // pParentWnd - Pointer to the CWnd object whose Windows window is the parent of the status bar.
- // dwStyle - The status-bar style. In addition to the standard Windows styles, these styles are supported
- // nID - The toolbar's child-window ID
- // Returns:
- // Nonzero if successful; otherwise 0.
- //-----------------------------------------------------------------------
- BOOL Create(CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, UINT nID = AFX_IDW_STATUS_BAR);
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Sets each indicator's ID to the value specified by the corresponding
- // element of the array lpIDArray, loads the string resource specified
- // by each ID, and sets the indicator's text to the string.
- // Parameters:
- // lpIDArray - Pointer to an array of IDs.
- // nIDCount - Number of elements in the array pointed to by lpIDArray.
- // Returns:
- // TRUE if successful; otherwise returns FALSE
- //-----------------------------------------------------------------------
- BOOL SetIndicators (const UINT* lpIDArray, int nIDCount);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to set the command bar's object.
- // Parameters:
- // pCommandBars - CXTPCommandBars to be set.
- //-----------------------------------------------------------------------
- void SetCommandBars(CXTPCommandBars* pCommandBars);
- //-----------------------------------------------------------------------
- // Summary:
- // Retrieves the paint manager.
- // Returns:
- // A pointer to a CXTPPaintManager object.
- //-----------------------------------------------------------------------
- CXTPPaintManager* GetPaintManager() const;
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // This member function is called by the status bar to reposition pane
- // item controls.
- //-----------------------------------------------------------------------
- void PositionControls();
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to add a control to an indicator pane.
- // Parameters:
- // pWnd - Points to a control window.
- // nID - ID of the indicator pane.
- // bAutoDelete - TRUE if the control is to be deleted when destroyed.
- // Returns:
- // TRUE if successful, otherwise returns FALSE.
- //-----------------------------------------------------------------------
- BOOL AddControl(CWnd* pWnd, UINT nID, BOOL bAutoDelete = TRUE);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to set the width for an indicator pane.
- // Parameters:
- // nIndex - Index of the indicator pane.
- // cxText - New width for the indicator pane.
- //-----------------------------------------------------------------------
- void SetPaneWidth(int nIndex, int cxText);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to add an indicator pane to the status bar.
- // Parameters:
- // nID - ID of the indicator pane.
- // nIndex - Index of the indicator pane.
- // pPane - New CXTPStatusBarPane object
- // Returns:
- // CXTPStatusBarPane pointer if successful, otherwise returns NULL.
- //-----------------------------------------------------------------------
- CXTPStatusBarPane* AddIndicator(UINT nID, int nIndex = -1);
- CXTPStatusBarPane* AddIndicator(CXTPStatusBarPane* pPane, UINT nID, int nIndex = -1); // <combine CXTPStatusBar::AddIndicator@UINT@int>
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to remove an indicator pane from the status bar.
- // Parameters:
- // nID - ID of the indicator pane.
- // Returns:
- // TRUE if successful, otherwise returns FALSE.
- //-----------------------------------------------------------------------
- BOOL RemoveIndicator(UINT nID);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to return the number of panes that are created
- // for the status bar.
- // Returns:
- // An integer value that represents the number of panes for the status bar.
- //-----------------------------------------------------------------------
- int GetPaneCount() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Calculates total number of visible panes.
- // Returns:
- // Total number of panes currently visible.
- //-----------------------------------------------------------------------
- int GetVisiblePaneCount() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to get the pane information for the given index.
- // Parameters:
- // nIndex - Index of the indicator pane.
- // Returns:
- // A pointer to an CXTPStatusBarPane class.
- //-----------------------------------------------------------------------
- CXTPStatusBarPane* GetPane(int nIndex) const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to find the pane for the given Identifier.
- // Parameters:
- // nID - Identifier of the indicator pane.
- // Returns:
- // A pointer to an CXTPStatusBarPane class.
- //-----------------------------------------------------------------------
- CXTPStatusBarPane* FindPane(UINT nID) const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to remove all indicators.
- //-----------------------------------------------------------------------
- void RemoveAll();
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to remove an indicator pane from the status bar.
- // Parameters:
- // nIndex - Index of the indicator pane.
- // Returns:
- // TRUE if successful, otherwise returns FALSE.
- //-----------------------------------------------------------------------
- BOOL RemoveAt(int nIndex);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to retrieve the image manager of the image manager.
- // Returns:
- // A pointer to a CXTPImageManager object
- //-----------------------------------------------------------------------
- CXTPImageManager* GetImageManager() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this function to determine which pane, if any, is at the
- // specified screen position.
- // Parameters:
- // pt - Point to be tested.
- // lpRect - Returns rectangle of the item under point pt.
- // Returns:
- // CXTPStatusBarPane pointer, or returns NULL if no pane is
- // at the specified position.
- //-----------------------------------------------------------------------
- CXTPStatusBarPane* HitTest(CPoint pt, CRect* lpRect = NULL) const;
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Call this method to enable/disable customization of the statusbar
- // Parameters:
- // bEnable - TRUE to enable customization.
- //-----------------------------------------------------------------------
- void EnableCustomization(BOOL bEnable = TRUE);
- void LoadState(LPCTSTR lpszProfileName);
- void SaveState(LPCTSTR lpszProfileName);
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to draw disabled text.
- // Parameters:
- // bDraw - TRUE to draw disabled text, FALSE otherwise.
- //-----------------------------------------------------------------------
- void SetDrawDisabledText(BOOL bDraw);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member to determine if paint manager draw disabled text.
- //-----------------------------------------------------------------------
- BOOL GetDrawDisabledText() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this method to get tooltip context pointer.
- //-----------------------------------------------------------------------
- CXTPToolTipContext* GetToolTipContext() const;
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // This method is called to draw a single pane of the status bar.
- // Parameters:
- // pDC - Pointer to a valid device context
- // nIndex - Index of the pane to draw.
- // rcItem - Bounding rectangle of the pane
- //-----------------------------------------------------------------------
- virtual void DrawPaneEntry(CDC* pDC, int nIndex, CRect rcItem);
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Call this function to create a status bar
- // Parameters:
- // pParentWnd - Pointer to the CWnd object whose Windows window is the parent of the status bar.
- // dwCtrlStyle - Additional styles for the creation of the embedded CStatusBarCtrl object.
- // dwStyle - The status-bar style
- // nID - The status bar's child-window ID.
- // Returns: Nonzero if successful; otherwise 0.
- //-----------------------------------------------------------------------
- BOOL CreateEx(CWnd* pParentWnd, DWORD dwCtrlStyle = 0,
- DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
- UINT nID = AFX_IDW_STATUS_BAR);
- //-----------------------------------------------------------------------
- // Summary:
- // Gets the indicator index for a given ID. The index of the first indicator is 0
- // Parameters:
- // nIDFind - String ID of the indicator whose index is to be retrieved
- // Returns:
- // The index of the indicator if successful; -1 if not successful.
- // See Also: GetItemID
- //-----------------------------------------------------------------------
- int CommandToIndex(UINT nIDFind) const;
- //-----------------------------------------------------------------------
- // Summary:
- // Returns the ID of the indicator specified by nIndex
- // Parameters:
- // nIndex - Index of the indicator whose ID is to be retrieved.
- // Returns:
- // The ID of the indicator specified by nIndex.
- // See Also: CommandToIndex
- //-----------------------------------------------------------------------
- UINT GetItemID(int nIndex) const;
- //-----------------------------------------------------------------------
- // Summary:
- // Copies the coordinates of the indicator specified by nIndex into the structure pointed to by lpRect.
- // Coordinates are in pixels relative to the upper-left corner of the status bar.
- // Parameters:
- // nIndex - Index of the indicator whose rectangle coordinates are to be retrieved.
- // lpRect - Points to aRECT structure or a CRect object that will receive the coordinates of the indicator specified by nIndex.
- // See Also: GetPaneInfo, CommandToIndex
- //-----------------------------------------------------------------------
- void GetItemRect(int nIndex, LPRECT lpRect) const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to retrieve the text that appears in a status-bar pane.
- // The second form of this member function fills a CString object with the string text.
- // Parameters:
- // nIndex - Index of the pane whose text is to be retrieved
- // rString - A reference to a CString object that contains the text to be retrieved.
- // See Also: SetPaneText
- //-----------------------------------------------------------------------
- CString GetPaneText(int nIndex) const;
- void GetPaneText(int nIndex, CString& rString) const; // <combine CXTPStatusBar::GetPaneText@int@const>
- //-----------------------------------------------------------------------
- // Summary:
- // Sets the pane text to the string pointed to by lpszNewText.
- // Parameters:
- // nIndex - Index of the pane whose text is to be set.
- // lpszNewText - Pointer to the new pane text
- // bUpdate - If TRUE, the pane is invalidated after the text is set.
- // Returns:
- // Nonzero if successful; otherwise 0.
- // See Also: GetPaneText
- //-----------------------------------------------------------------------
- BOOL SetPaneText(int nIndex, const CString& lpszNewText);
- //-----------------------------------------------------------------------
- // Summary:
- // Sets nID, nStyle, and cxWidth to the ID, style, and width of the indicator
- // pane at the location specified by nIndex.
- // Parameters:
- // nIndex - Index of the pane whose information is to be retrieved.
- // nID - Reference to a UINT that is set to the ID of the pane
- // nStyle - Reference to a UINT that is set to the style of the pane.
- // cxWidth - Reference to an integer that is set to the width of the pane
- // See Also: SetPaneInfo, GetItemRect
- //-----------------------------------------------------------------------
- void GetPaneInfo(int nIndex, UINT& nID, UINT& nStyle, int& cxWidth) const;
- //-----------------------------------------------------------------------
- // Summary:
- // Sets the specified indicator pane to a new ID, style, and width.
- // Parameters:
- // nIndex - Index of the indicator pane whose style is to be set.
- // nID - New ID for the indicator pane
- // nStyle - New style for the indicator pane
- // cxWidth - New width for the indicator pane
- // See Also: GetPaneInfo
- //-----------------------------------------------------------------------
- void SetPaneInfo(int nIndex, UINT nID, UINT nStyle, int cxWidth);
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to retrieve the style of a status bar's pane. A pane's style determines how the pane appears.
- // Parameters:
- // nIndex - Index of the pane whose style is to be retrieved.
- // Returns:
- // The style of the status-bar pane specified by nIndex
- // See Also: SetPaneStyle
- //-----------------------------------------------------------------------
- UINT GetPaneStyle(int nIndex) const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this member function to set the style of a status bar's pane. A pane's style determines how the pane appears.
- // Parameters:
- // nIndex - Index of the pane whose style is to be set.
- // nStyle - Style of the pane whose style is to be set
- // See Also: GetPaneStyle
- //-----------------------------------------------------------------------
- void SetPaneStyle(int nIndex, UINT nStyle);
- //-----------------------------------------------------------------------
- // Summary:
- // This member function allows direct access to the underlying common control
- // Returns:
- // Contains a reference to a CStatusBarCtrl object.
- //-----------------------------------------------------------------------
- CStatusBarCtrl& GetStatusBarCtrl() const;
- //-----------------------------------------------------------------------
- // Summary:
- // Call this method to set font for status bar
- // Parameters:
- // pFont - Font to set
- // bRedraw - TRUE to redraw status bar
- //-----------------------------------------------------------------------
- void SetFont(CFont* pFont, BOOL bRedraw = TRUE);
- CFont* GetFont();
- void SetRibbonDividerIndex(int nIndex);
- int GetRibbonDividerIndex() const;
- void UpdateAllPanes(BOOL bUpdateRects, BOOL bUpdateText);
- void EnableMarkup(BOOL bEnableMarkup = TRUE);
- CXTPMarkupContext* GetMarkupContext() const;
- //{{AFX_CODEJOCK_PRIVATE
- #if _MSC_VER > 1100
- void SetBorders(LPCRECT lpRect);
- void SetBorders(int cxLeft = 0, int cyTop = 0, int cxRight = 0, int cyBottom = 0);
- #endif
- //}}AFX_CODEJOCK_PRIVATE
- protected:
- //-----------------------------------------------------------------------
- // Summary:
- // Draws the stretch gripper of the status bar.
- // Parameters:
- // pDC - Pointer to a valid device context.
- // rcClient - Client rectangle.
- //-----------------------------------------------------------------------
- virtual void DrawStretch(CDC* pDC, CRect& rcClient);
- protected:
- //{{AFX_CODEJOCK_PRIVATE
- virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
- BOOL PreCreateWindow(CREATESTRUCT& cs);
- void CalcInsideRect(CRect& rect, BOOL bHorz) const;
- virtual void OnBarStyleChange(DWORD dwOldStyle, DWORD dwNewStyle);
- #ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
- void EnableDocking(DWORD dwDockStyle);
- #endif
- public:
- virtual void RecalcLayout();
- virtual void OnPaneClick(CXTPStatusBarPane* pPane);
- virtual void OnSwitchPaneClick(CXTPStatusBarPane* pPane, long Id);
- virtual CXTPPopupBar* CXTPStatusBar::GetStatusBarPopup();
- //}}AFX_CODEJOCK_PRIVATE
- protected:
- //{{AFX_CODEJOCK_PRIVATE
- DECLARE_MESSAGE_MAP()
- virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);
- INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
- virtual BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult);
- //{{AFX_MSG(CXTPStatusBar)
- public:
- afx_msg void OnPaint();
- afx_msg void OnDraw(CDC* pDC);
- afx_msg LRESULT OnPrintClient(WPARAM wParam, LPARAM /*lParam*/);
- afx_msg BOOL OnEraseBkgnd(CDC* pDC);
- afx_msg void OnSize(UINT nType, int cx, int cy);
- afx_msg int OnCreate(LPCREATESTRUCT lpcs);
- afx_msg LRESULT OnIdleUpdateCmdUI (WPARAM wParam, LPARAM lParam);
- protected:
- afx_msg LRESULT OnNcHitTest(CPoint);
- afx_msg void OnNcCalcSize(BOOL, NCCALCSIZE_PARAMS*);
- afx_msg void OnNcPaint();
- afx_msg void OnWindowPosChanging(LPWINDOWPOS);
- afx_msg LRESULT OnSetText(WPARAM wParam, LPARAM lParam);
- afx_msg LRESULT OnGetText(WPARAM wParam, LPARAM lParam);
- afx_msg LRESULT OnGetTextLength(WPARAM wParam, LPARAM lParam);
- afx_msg LRESULT OnSetMinHeight(WPARAM wParam, LPARAM lParam);
- afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);
- afx_msg void OnMouseMove(UINT nFlags, CPoint point);
- afx_msg void OnMouseLeave();
- afx_msg void OnLButtonDown(UINT nFlags, CPoint pt);
- afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
- afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
- afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
- //}}AFX_MSG
- //}}AFX_CODEJOCK_PRIVATE
- private:
- BOOL IsWin4();
- private:
- DISABLE_WNDCREATE()
- DISABLE_WNDCREATEEX()
- protected:
- CArray <CXTPStatusBarPane*, CXTPStatusBarPane*> m_arrPanes; // Array of panes
- int m_nMinHeight; // Minimum client height
- CFont m_fontStatus; // Font of status bar
- BOOL m_bDrawDisabledText; // TRUE to draw disabled text
- CXTPStatusBarPane* m_pHighlightedPane; // Pane currently highlighted
- int m_nRibbonDividerIndex; // Position of dark part for Ribbon Theme
- BOOL m_bShowSizeGripper; // TRUE to show size gripper
- CXTPMarkupContext* m_pMarkupContext;
- int m_cxPaneSpacing;
- int m_bCustomizable;
- private:
- CXTPCommandBars* m_pCommandBars;
- CXTPToolTipContext* m_pToolTipContext; // Tooltip Context.
- friend class CXTPStatusBarPane;
- };
- //===========================================================================
- // Summary:
- // CXTPStatusBarSwitchPane is a CXTPStatusBarPane derived class. CXTPStatusBarSwitchPane works with
- // CXTStatusBar and allows you to create switches in your status
- // bar area.
- //===========================================================================
- class _XTP_EXT_CLASS CXTPStatusBarSwitchPane : public CXTPStatusBarPane
- {
- DECLARE_DYNAMIC(CXTPStatusBarSwitchPane)
- public:
- struct SWITCH
- {
- CString strToolTip;
- UINT nID;
- int nWidth;
- BOOL bChecked;
- BOOL bHighlighted;
- BOOL bPressed;
- };
- public:
- CXTPStatusBarSwitchPane();
- ~CXTPStatusBarSwitchPane();
- public:
- BOOL SetSwitches(const UINT* lpIDArray, int nIDCount);
- SWITCH* AddSwitch(UINT nID, LPCTSTR lpszToolTip);
- SWITCH* AddSwitch(UINT nID);
- SWITCH* GetSwitch(int nIndex) const;
- int GetSwitchCount() const;
- void RemoveAll();
- void RemoveSwitch(UINT nID);
- void SetChecked(UINT nID);
- virtual int GetWidth();
- public:
- SWITCH* HitTest(CPoint point, CRect& rcItem) const;
- protected:
- virtual void OnLButtonDown(CPoint point);
- virtual void OnDraw(CDC* pDC, CRect rcItem);
- virtual void OnMouseMove(CPoint point);
- virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
- protected:
- CArray<SWITCH*, SWITCH*> m_arrSwitches;
- SWITCH* m_pHighlighted;
- };
- //===========================================================================
- // Summary:
- // CXTPStatusBarScrollBarPane is a CXTPStatusBarPane derived class. CXTPStatusBarScrollBarPane works with
- // CXTStatusBar and allows you to create themed ScrollBar in your status
- // bar area.
- //===========================================================================
- class _XTP_EXT_CLASS CXTPStatusBarScrollBarPane : public CXTPStatusBarPane, public CXTPScrollBase
- {
- DECLARE_DYNAMIC(CXTPStatusBarScrollBarPane)
- public:
- CXTPStatusBarScrollBarPane();
- ~CXTPStatusBarScrollBarPane();
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Call this method to set position of scrollbar
- // Parameters:
- // nValue - Scrollbar position to be set
- //-----------------------------------------------------------------------
- void SetPos(int nValue);
- void SetRange(int nMin, int nMax);
- int GetPos() const;
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Call this method to set tooltip for scroll part of scrollbar.
- // Parameters:
- // nPart - Part of scrollbar to set tooltip. Can be XTP_HTSCROLLUP, XTP_HTSCROLLDOWN, XTP_HTSCROLLUPPAGE, XTP_HTSCROLLDOWNPAGE, XTP_HTSCROLLTHUMB
- // lpszTooltip - Text of tooltip to set
- //-----------------------------------------------------------------------
- void SetTooltipPart(int nPart, LPCTSTR lpszTooltip);
- protected:
- //{{AFX_CODEJOCK_PRIVATE
- virtual CRect GetScrollBarRect();
- virtual void GetScrollInfo(SCROLLINFO* psi);
- virtual void DoScroll(int cmd, int pos);
- virtual void RedrawScrollBar();
- virtual CXTPScrollBarPaintManager* GetScrollBarPaintManager() const;
- virtual BOOL IsScrollBarEnabled() const;
- virtual CWnd* GetParentWindow() const;
- virtual INT_PTR CXTPStatusBarScrollBarPane::OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
- virtual void OnDraw(CDC* pDC, CRect rcItem);
- virtual void OnMouseMove(CPoint point);
- virtual void OnLButtonDown(CPoint point);
- //}}AFX_CODEJOCK_PRIVATE
- protected:
- int m_nMin;
- int m_nMax;
- int m_nValue;
- int m_nPage;
- CString m_strToolTipPart[5];
- };
- //===========================================================================
- // Summary:
- // CXTPStatusBarSliderPane is a CXTPStatusBarPane derived class. CXTPStatusBarSliderPane works with
- // CXTStatusBar and allows you to create themed Slider in your status
- // bar area.
- //===========================================================================
- class _XTP_EXT_CLASS CXTPStatusBarSliderPane : public CXTPStatusBarScrollBarPane
- {
- DECLARE_DYNAMIC(CXTPStatusBarSliderPane)
- public:
- CXTPStatusBarSliderPane();
- ~CXTPStatusBarSliderPane();
- protected:
- virtual CXTPScrollBarPaintManager* GetScrollBarPaintManager() const;
- public:
- void SetTicks(double* pTicks, int nCount);
- };
- //===========================================================================
- // Summary:
- // CXTPStatusBarProgressPane is a CXTPStatusBarPane derived class. CXTPStatusBarProgressPane works with
- // CXTStatusBar and allows you to create progress bar in your status bar area.
- //===========================================================================
- class _XTP_EXT_CLASS CXTPStatusBarProgressPane : public CXTPStatusBarPane, public CXTPProgressBase
- {
- DECLARE_DYNAMIC(CXTPStatusBarProgressPane)
- public:
- //-----------------------------------------------------------------------
- // Summary:
- // Constructs a CXTPStatusBarProgressPane object
- //-----------------------------------------------------------------------
- CXTPStatusBarProgressPane();
- //-----------------------------------------------------------------------
- // Summary:
- // Destroys a CXTPStatusBarProgressPane object, handles cleanup and deallocation
- //-----------------------------------------------------------------------
- ~CXTPStatusBarProgressPane();
- protected:
- //----------------------------------------------------------------------
- // Summary:
- // This method is called to redraw progress bar
- //----------------------------------------------------------------------
- virtual void RedrawProgress();
- //----------------------------------------------------------------------
- // Summary:
- // This method is called to retrieve pointer to CXTPProgressPaintManager
- //----------------------------------------------------------------------
- virtual CXTPProgressPaintManager* GetProgressPaintManager() const;
- //----------------------------------------------------------------------
- // Summary:
- // This method is called to get bounding rectangle of progressbar
- //----------------------------------------------------------------------
- virtual CRect GetProgressRect();
- // Summary:
- // This method is called to draw pane item. Override it to draw custom pane.
- // Parameters:
- // pDC - Pointer to a valid device context
- // rcItem - Item rectangle
- //-----------------------------------------------------------------------
- virtual void OnDraw(CDC* pDC, CRect rcItem);
- public:
- };
- //////////////////////////////////////////////////////////////////////
- AFX_INLINE void CXTPStatusBarPane::SetCaption(LPCTSTR lpszCaption){
- m_strCaption = lpszCaption;
- }
- AFX_INLINE CString CXTPStatusBarPane::GetCaption() const{
- return m_strCaption;
- }
- AFX_INLINE void CXTPStatusBarPane::SetValue(LPCTSTR lpszValue){
- m_strValue = lpszValue;
- }
- AFX_INLINE CString CXTPStatusBarPane::GetValue() const{
- return m_strValue;
- }
- AFX_INLINE BOOL CXTPStatusBarPane::IsHighlighted() const {
- return m_pStatusBar->m_pHighlightedPane == this;
- }
- AFX_INLINE BOOL CXTPStatusBarPane::IsPressed() const {
- return m_bPressed;
- }
- AFX_INLINE void CXTPStatusBarPane::SetBeginGroup(BOOL bBeginGroup) {
- m_bBeginGroup = bBeginGroup;
- }
- AFX_INLINE BOOL CXTPStatusBarPane::GetBeginGroup() const {
- return m_bBeginGroup;
- }
- AFX_INLINE BOOL CXTPStatusBarPane::HasBorders() const {
- return ((m_nStyle & SBPS_NOBORDERS) == 0);
- }
- AFX_INLINE void CXTPStatusBarPane::ShowBorders(BOOL bShowBorders) {
- SetStyle(bShowBorders ? m_nStyle & ~SBPS_NOBORDERS : m_nStyle | SBPS_NOBORDERS);
- }
- AFX_INLINE void CXTPStatusBar::SetRibbonDividerIndex(int nIndex) {
- m_nRibbonDividerIndex = nIndex;
- }
- AFX_INLINE int CXTPStatusBar::GetRibbonDividerIndex() const {
- return m_nRibbonDividerIndex;
- }
- AFX_INLINE void CXTPStatusBar::SetCommandBars(CXTPCommandBars* pCommandBars) {
- m_pCommandBars = pCommandBars;
- }
- AFX_INLINE int CXTPStatusBar::GetPaneCount() const {
- return (int)m_arrPanes.GetSize();
- }
- AFX_INLINE CStatusBarCtrl& CXTPStatusBar::GetStatusBarCtrl() const{
- return *(CStatusBarCtrl*)this;
- }
- #if _MSC_VER > 1100
- AFX_INLINE void CXTPStatusBar::SetBorders(int cxLeft, int cyTop, int cxRight, int cyBottom){
- ASSERT(cyTop >= 2); CControlBar::SetBorders(cxLeft, cyTop, cxRight, cyBottom);
- }AFX_INLINE void CXTPStatusBar::SetBorders(LPCRECT lpRect) {
- SetBorders(lpRect->left, lpRect->top, lpRect->right, lpRect->bottom);
- }
- #endif
- #ifdef _DEBUG
- // status bars do not support docking
- AFX_INLINE void CXTPStatusBar::EnableDocking(DWORD) {
- ASSERT(FALSE);
- }
- #endif
- AFX_INLINE void CXTPStatusBar::SetDrawDisabledText(BOOL bDraw) {
- m_bDrawDisabledText = bDraw;
- }
- AFX_INLINE BOOL CXTPStatusBar::GetDrawDisabledText() const {
- return m_bDrawDisabledText;
- }
- AFX_INLINE CXTPToolTipContext* CXTPStatusBar::GetToolTipContext() const {
- return m_pToolTipContext;
- }
- AFX_INLINE CXTPMarkupContext* CXTPStatusBar::GetMarkupContext() const {
- return m_pMarkupContext;
- }
- AFX_INLINE CXTPMarkupUIElement* CXTPStatusBarPane::GetMarkupUIElement() const {
- return m_pMarkupUIElement;
- }
- #endif //#if !defined(__XTPSTATUSBAR_H__)