/*--------------------------------------------------------------------------* * * Microsoft Windows * Copyright (C) Microsoft Corporation, 1992 - 1999 * * File: tbtrack.h * * Contents: Interface file for CToolbarTracker * * History: 15-May-98 JeffRo Created * *--------------------------------------------------------------------------*/ #if !defined(AFX_TBTRACK_H__E1BC376B_EAB5_11D1_8080_0000F875A9CE__INCLUDED_) #define AFX_TBTRACK_H__E1BC376B_EAB5_11D1_8080_0000F875A9CE__INCLUDED_ #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 #include "subclass.h" // for CSubclasser class CMMCToolBarCtrlEx; class CRebarWnd; class CToolbarTracker; ///////////////////////////////////////////////////////////////////////////// // CToolbarTrackerAuxWnd window class CToolbarTrackerAuxWnd : public CWnd { friend class CToolbarTracker; friend class std::auto_ptr; typedef std::vector ToolbarVector; private: // only created and destroyed by CToolbarTracker CToolbarTrackerAuxWnd(CToolbarTracker* pTracker); virtual ~CToolbarTrackerAuxWnd(); bool BeginTracking(); void EndTracking(); public: enum { ID_CMD_NEXT_TOOLBAR = 0x5300, // could be anything ID_CMD_PREV_TOOLBAR, ID_CMD_NOP, }; public: void TrackToolbar (CMMCToolBarCtrlEx* pwndNewToolbar); CMMCToolBarCtrlEx* GetTrackedToolbar() const { return (m_pTrackedToolbar); } // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CToolbarTrackerAuxWnd) public: virtual BOOL PreTranslateMessage(MSG* pMsg); //}}AFX_VIRTUAL // Generated message map functions protected: //{{AFX_MSG(CToolbarTrackerAuxWnd) //}}AFX_MSG protected: afx_msg void OnNextToolbar (); afx_msg void OnPrevToolbar (); afx_msg void OnNop (); DECLARE_MESSAGE_MAP() private: const CAccel& GetTrackAccel (); CMMCToolBarCtrlEx* GetToolbar (CMMCToolBarCtrlEx* pCurrentToolbar, bool fNext); void EnumerateToolbars (CRebarWnd* pRebar); CToolbarTracker* const m_pTracker; CMMCToolBarCtrlEx* m_pTrackedToolbar; ToolbarVector m_vToolbars; bool m_fMessagesHooked; }; ///////////////////////////////////////////////////////////////////////////// // CToolbarTracker window class CToolbarTracker : public CObject { public: CToolbarTracker(CWnd* pMainFrame); virtual ~CToolbarTracker(); bool BeginTracking(); void EndTracking(); bool IsTracking() const { return (m_pAuxWnd != NULL); } CToolbarTrackerAuxWnd* GetAuxWnd() const { return (m_pAuxWnd); } private: /* * CFrameSubclasser */ class CFrameSubclasser : public CSubclasser { HWND m_hwnd; CToolbarTracker* m_pTracker; public: CFrameSubclasser(CToolbarTracker*, CWnd*); ~CFrameSubclasser(); virtual LRESULT Callback (HWND& hwnd, UINT& msg, WPARAM& wParam, LPARAM& lParam, bool& fPassMessageOn); }; private: CToolbarTrackerAuxWnd* m_pAuxWnd; CFrameSubclasser m_Subclasser; bool m_fTerminating; }; CToolbarTrackerAuxWnd* GetMainAuxWnd(); ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Developer Studio will insert additional declarations immediately before the previous line. #endif // !defined(AFX_TBTRACK_H__E1BC376B_EAB5_11D1_8080_0000F875A9CE__INCLUDED_)