265 lines
7 KiB
C++
265 lines
7 KiB
C++
///+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1999 - 1999
|
|
//
|
|
// File: mainfrm.h
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
// MainFrm.h : interface of the CMainFrame class
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __DOCKSITE_H__
|
|
#include "docksite.h"
|
|
#endif
|
|
|
|
//forward prototypes
|
|
class CAMCView;
|
|
class CAMCTreeView;
|
|
class CMenuBar;
|
|
class CMMCToolBar;
|
|
class CToolbarTracker;
|
|
|
|
#ifndef _STATBAR_H
|
|
#include "statbar.h"
|
|
#endif
|
|
|
|
#include "MDIClint.h"
|
|
#include "conframe.h" // for CConsoleFrame
|
|
|
|
|
|
#define ID_MENUBAR 0x1001
|
|
#define ID_TOOLBAR 0x1002
|
|
|
|
class CMainFrame : public CMDIFrameWnd, public CConsoleFrame, public CTiedObject
|
|
{
|
|
DECLARE_DYNAMIC(CMainFrame)
|
|
public:
|
|
CMainFrame();
|
|
|
|
// Attributes
|
|
public:
|
|
SC ScGetFrame(Frame** ppFrame);
|
|
SC ScMaximize();
|
|
SC ScMinimize();
|
|
SC ScRestore();
|
|
SC ScSetPosition(const RECT &rect);
|
|
SC ScGetPosition(RECT &rect);
|
|
|
|
// Operations
|
|
public:
|
|
void NotifyMenuChanged ();
|
|
void OnIdle ();
|
|
void SetInRenameMode(bool b)
|
|
{
|
|
m_bInRenameMode = b;
|
|
}
|
|
|
|
bool InRenameMode(void) const
|
|
{
|
|
return m_bInRenameMode;
|
|
}
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CMainFrame)
|
|
public:
|
|
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
|
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
|
virtual BOOL LoadFrame(UINT nIDResource, DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, CWnd* pParentWnd = NULL, CCreateContext* pContext = NULL);
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
public:
|
|
virtual ~CMainFrame();
|
|
#ifdef _DEBUG
|
|
virtual void AssertValid() const;
|
|
virtual void Dump(CDumpContext& dc) const;
|
|
#endif
|
|
|
|
virtual void OnUpdateFrameTitle(BOOL bAddToTitle);
|
|
virtual void OnUpdateFrameMenu(HMENU hMenuAlt);
|
|
|
|
public: // control bar embedded members
|
|
CMenuBar * m_pMenuBar;
|
|
CMMCToolBar* m_pToolBar;
|
|
CMDIClientWnd m_wndMDIClient;
|
|
|
|
//Operations
|
|
public:
|
|
void RenderDockSites();
|
|
bool IsMenuVisible();
|
|
void ShowMenu(bool bShow);
|
|
void UpdateChildSystemMenus ();
|
|
void SetIconEx (HICON hIcon, BOOL fBig);
|
|
|
|
void SetFocusedChildWnd(CMDIChildWnd* pWnd) { m_pMDIChildWndFocused = pWnd; }
|
|
CMDIChildWnd* GetFocusedChildWnd() { return m_pMDIChildWndFocused; }
|
|
void SetWindowToNotifyCBChange(HWND hwnd) { m_hwndToNotifyCBChange = hwnd; }
|
|
CAMCView* GetActiveAMCView();
|
|
|
|
HACCEL& GetAccelTable()
|
|
{
|
|
return (m_hAccelTable);
|
|
}
|
|
|
|
CMenu* GetMenu () const
|
|
{
|
|
return (CMenu::FromHandle (m_hMenuCurrent));
|
|
}
|
|
|
|
CRebarWnd* GetRebar () const
|
|
{
|
|
return (m_pRebar->GetRebar());
|
|
}
|
|
|
|
CRebarDockWindow* GetRebarDockWindow()
|
|
{
|
|
return (m_pRebar);
|
|
}
|
|
|
|
CToolbarTracker* GetToolbarTracker () const
|
|
{
|
|
return (m_pToolbarTracker);
|
|
}
|
|
|
|
CMenuBar* GetMenuBar() const
|
|
{
|
|
return (m_pMenuBar);
|
|
}
|
|
|
|
CMMCToolBar* GetMainToolbar()
|
|
{
|
|
return m_pToolBar;
|
|
}
|
|
public:
|
|
// CConsoleFrame methods
|
|
virtual SC ScGetActiveStatusBar (CConsoleStatusBar*& pStatusBar);
|
|
virtual SC ScGetActiveConsoleView (CConsoleView*& pConsoleView);
|
|
virtual SC ScCreateNewView (CreateNewViewStruct* pcnvs,
|
|
bool bEmitScriptEvents = true);
|
|
virtual SC ScUpdateAllScopes (LONG lHint, LPARAM lParam);
|
|
virtual SC ScGetMenuAccelerators (LPTSTR pBuffer, int cchBuffer);
|
|
virtual SC ScShowMMCMenus (bool bShow);
|
|
|
|
protected: // control bar embedded members
|
|
virtual CWnd* GetMessageBar()
|
|
{ return (NULL); }
|
|
|
|
HICON GetDefaultIcon () const;
|
|
|
|
CDockManager<CDockSite> m_DockingManager;
|
|
CDockSite m_ToolBarDockSite;
|
|
CRebarDockWindow* m_pRebar;
|
|
CToolbarTracker* m_pToolbarTracker;
|
|
|
|
CMDIChildWnd* m_pMDIChildWndFocused;
|
|
|
|
//Operations
|
|
protected:
|
|
void AddMainFrameBars(void);
|
|
void CommonConstruct(void);
|
|
|
|
// Generated message map functions
|
|
// CODEWORK message reflection not working yet
|
|
protected:
|
|
//{{AFX_MSG(CMainFrame)
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
|
afx_msg void OnDrawClipboard();
|
|
afx_msg void OnChangeCbChain(HWND hWndRemove, HWND hWndAfter);
|
|
afx_msg void OnUpdateFilePrint(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateFilePrintSetup(CCmdUI* pCmdUI);
|
|
afx_msg void OnClose();
|
|
afx_msg void OnViewToolbar();
|
|
afx_msg void OnUpdateViewToolbar(CCmdUI* pCmdUI);
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
afx_msg void OnViewRefresh();
|
|
afx_msg void OnUpdateViewRefresh(CCmdUI* pCmdUI);
|
|
afx_msg void OnDestroy();
|
|
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
|
afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
|
|
afx_msg void OnConsoleProperties();
|
|
afx_msg void OnMove(int x, int y);
|
|
afx_msg void OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized );
|
|
afx_msg BOOL OnNcActivate(BOOL bActive);
|
|
afx_msg void OnNcPaint();
|
|
afx_msg void OnPaletteChanged(CWnd* pwndFocus);
|
|
afx_msg BOOL OnQueryNewPalette( );
|
|
afx_msg void OnSettingChange(UINT uFlags, LPCTSTR lpszSection);
|
|
afx_msg LRESULT OnUnInitMenuPopup(WPARAM wParam, LPARAM lParam);
|
|
//}}AFX_MSG
|
|
|
|
#ifdef DBG
|
|
afx_msg void OnMMCTraceDialog();
|
|
#endif
|
|
|
|
afx_msg LRESULT OnShowSnapinHelpTopic(WPARAM wParam, LPARAM lParam);
|
|
afx_msg LRESULT OnPropertySheetNotify(WPARAM wParam, LPARAM lParam);
|
|
afx_msg LRESULT OnSetText(WPARAM wParam, LPARAM lParam);
|
|
afx_msg void OnWindowNew();
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
// These need to be public so that the app can get to them.
|
|
public:
|
|
afx_msg void OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSysMenu);
|
|
|
|
afx_msg void OnHelpTopics();
|
|
SC ScOnHelpTopics();
|
|
|
|
|
|
private:
|
|
HWND m_hwndNextCB;
|
|
HWND m_hwndToNotifyCBChange;
|
|
HMENU m_hMenuCurrent;
|
|
bool m_bInRenameMode;
|
|
bool m_fCurrentlyMinimized;
|
|
bool m_fCurrentlyActive;
|
|
CString m_strGenericTitle;
|
|
|
|
CString GetFrameTitle();
|
|
CAMCTreeView* _GetActiveAMCTreeView();
|
|
void SendMinimizeNotifications (bool fMinimized) const;
|
|
};
|
|
|
|
|
|
inline CMainFrame* AMCGetMainWnd()
|
|
{
|
|
/*
|
|
* Note: the dynamic_cast here can fail. Under certain, not understood
|
|
* circumstances, AfxGetMainWnd can return a pointer to CTempWnd instead
|
|
* of CMainFrame.
|
|
*
|
|
* Any callers of this function *must* check for a NULL return value.
|
|
*/
|
|
|
|
CWnd *pWnd = AfxGetMainWnd();
|
|
CMainFrame *pMainFrame = NULL;
|
|
|
|
try
|
|
{
|
|
pMainFrame = dynamic_cast<CMainFrame*>(pWnd);
|
|
}
|
|
catch (...)
|
|
{
|
|
pMainFrame = NULL;
|
|
}
|
|
|
|
return (pMainFrame);
|
|
}
|
|
|
|
inline CRebarWnd* AMCGetRebar()
|
|
{
|
|
CMainFrame* pMainFrame = AMCGetMainWnd();
|
|
if (NULL == pMainFrame)
|
|
return NULL;
|
|
|
|
return pMainFrame->GetRebar();
|
|
}
|
|
|
|
bool FArePropertySheetsOpen(CString* pstrUserMsg, bool bBringToFrontAndAskToClose = true);
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|