home *** CD-ROM | disk | FTP | other *** search
- // toolbar.h : definition of old backward compatible CToolBar
- //
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 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.
-
- #ifndef _TOOLBAR_H_
- #define _TOOLBAR_H_
-
- struct AFX_TBBUTTON; // private to implementation
-
- HBITMAP AFXAPI AfxLoadSysColorBitmap(HINSTANCE hInst, HRSRC hRsrc);
-
- class COldToolBar : public CControlBar
- {
- DECLARE_DYNAMIC(COldToolBar)
-
- // Construction
- public:
- COldToolBar();
- BOOL Create(CWnd* pParentWnd,
- DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP,
- UINT nID = AFX_IDW_TOOLBAR);
-
- void SetSizes(SIZE sizeButton, SIZE sizeImage);
- // button size should be bigger than image
- void SetHeight(int cyHeight);
- // call after SetSizes, height overrides bitmap size
- BOOL LoadBitmap(LPCTSTR lpszResourceName);
- BOOL LoadBitmap(UINT nIDResource);
- BOOL SetButtons(const UINT* lpIDArray, int nIDCount);
- // lpIDArray can be NULL to allocate empty buttons
-
- // Attributes
- public: // standard control bar things
- int CommandToIndex(UINT nIDFind) const;
- UINT GetItemID(int nIndex) const;
- virtual void GetItemRect(int nIndex, LPRECT lpRect) const;
- UINT GetButtonStyle(int nIndex) const;
- void SetButtonStyle(int nIndex, UINT nStyle);
-
- public:
- // for changing button info
- void GetButtonInfo(int nIndex, UINT& nID, UINT& nStyle, int& iImage) const;
- void SetButtonInfo(int nIndex, UINT nID, UINT nStyle, int iImage);
-
- // Implementation
- public:
- virtual ~COldToolBar();
- virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
-
- #ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
- #endif
-
- protected:
- inline AFX_TBBUTTON* _GetButtonPtr(int nIndex) const;
- void InvalidateButton(int nIndex);
- void UpdateButton(int nIndex);
- void CreateMask(int iImage, CPoint offset,
- BOOL bHilite, BOOL bHiliteShadow);
-
- // for custom drawing
- struct DrawState
- {
- HBITMAP hbmMono;
- HBITMAP hbmMonoOld;
- HBITMAP hbmOldGlyphs;
- };
- BOOL PrepareDrawButton(DrawState& ds);
- BOOL DrawButton(CDC* pDC, int x, int y, int iImage, UINT nStyle);
- void EndDrawButton(DrawState& ds);
-
- protected:
- CSize m_sizeButton; // size of button
- CSize m_sizeImage; // size of glyph
- int m_cxSharedBorder; // shared x border between buttons
- int m_cySharedBorder; // shared y border between buttons
- HBITMAP m_hbmImageWell; // glyphs only
- int m_iButtonCapture; // index of button with capture (-1 => none)
- HRSRC m_hRsrcImageWell; // handle to loaded resource for image well
- HINSTANCE m_hInstImageWell; // instance handle to load image well from
-
- virtual void DoPaint(CDC* pDC);
- virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);
- virtual int HitTest(CPoint point);
- virtual int OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
-
- //{{AFX_MSG(COldToolBar)
- afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
- afx_msg void OnMouseMove(UINT nFlags, CPoint point);
- afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
- afx_msg void OnCancelMode();
- afx_msg void OnSysColorChange();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- };
-
- // define CToolBar to COldToolBar for convenience
- #define CToolBar COldToolBar
-
- #endif //!_TOOLBAR_H_
-