Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*--------------------------------------------------------------------------*
* * 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<CToolbarTrackerAuxWnd>; typedef std::vector<CMMCToolBarCtrlEx*> 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_)
|