//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #ifndef MAINFRM_H #define MAINFRM_H #ifdef _WIN32 #pragma once #endif #include "MDIClientWnd.h" #include "FilterControl.h" #include "ObjectBar.h" #include "Texturebar.h" #include "MapAnimationDlg.h" #include "SelectModeDlgBar.h" #include "materialdlg.h" #include "ManifestDialog.h" class CChildFrame; class CObjectProperties; class CTextureBrowser; class CModelBrowser; class CSearchReplaceDlg; class CFaceEditSheet; class CMessageWnd; class CLightingPreviewResultsWindow; class CMainFrame : public CMDIFrameWnd { DECLARE_DYNAMIC( CMainFrame ) public: CMainFrame(); virtual ~CMainFrame(); bool VerifyBarState(void); void BeginShellSession(void); void EndShellSession(void); bool IsShellSessionActive(void); BOOL IsUndoActive() { return m_bUndoActive; } void SetUndoActive(BOOL bActive); void SetBrightness(float fBrightness); void UpdateAllDocViews(DWORD dwCmd); void Configure(); void GlobalNotify(int nCode); void OnDeleteActiveDocument(void); void LoadWindowStates(std::fstream *pFile = NULL); inline CFaceEditSheet *GetFaceEditSheet( void ) { return m_pFaceEditSheet; } inline CStatusBar *GetStatusBar() { return &m_wndStatusBar; } void ShowSearchReplaceDialog(void); void ShowFaceEditSheetOrTextureBar( bool bShowFaceEditSheet ); HACCEL GetAccelTable( void ) { return m_hAccelTable; } CFaceSmoothingVisualDlg *GetSmoothingGroupDialog( void ) { return &m_SmoothingGroupDlg; } CModelBrowser *GetModelBrowser(); void ResetAutosaveTimer(); bool IsInFaceEditMode(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif void OpenURL(const char *pszURL); void OpenURL(UINT nID); // // Public attributes. FIXME: eliminate! // CTextureBrowser *pTextureBrowser; CObjectProperties *pObjectProperties; CFilterControl m_FilterControl; CObjectBar m_ObjectBar; CToolBar m_wndMapOps; CTextureBar m_TextureBar; CManifestFilter m_ManifestFilterControl; CFaceEditSheet *m_pFaceEditSheet; CLightingPreviewResultsWindow *m_pLightingPreviewOutputWindow; bool m_bLightingPreviewOutputWindowShowing; //CMapAnimationDlg m_AnimationDlg; // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CMainFrame) public: virtual void WinHelp(DWORD dwData, UINT nCmd); virtual BOOL PreCreateWindow(CREATESTRUCT& cs); virtual BOOL PreTranslateMessage(MSG* pMsg); protected: //}}AFX_VIRTUAL protected: //{{AFX_MSG(CMainFrame) afx_msg void OnUpdateFoundrySendSelectedEntitiesToEngine( CCmdUI *pCmdUI ); afx_msg void OnFoundrySendSelectedEntitiesToEngine(); afx_msg void OnUpdateFoundryMoveEngineViewToHammer3DView( CCmdUI *pCmdUI ); afx_msg void OnFoundryMoveEngineViewToHammer3DView(); afx_msg void OnUpdateFoundryRemoveSelectedEntitiesFromEngine( CCmdUI *pCmdUI ); afx_msg void OnFoundryRemoveSelectedEntitiesFromEngine(); afx_msg void OnUpdateFoundryMoveFocusToEngine( CCmdUI *pCmdUI ); afx_msg void OnFoundryMoveFocusToEngine(); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnEditProperties(); afx_msg void OnViewMessages(); afx_msg void OnUpdateViewMessages(CCmdUI* pCmdUI); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnClose(); afx_msg void OnDestroy(); afx_msg void OnPaint(); afx_msg void OnTimer(UINT nIDEvent); afx_msg void OnToolsOptions(); afx_msg void OnViewDotACamera(); afx_msg void OnViewShowconnections(); afx_msg void OnToolsPrefabfactory(); afx_msg BOOL OnHelpOpenURL(UINT nID); afx_msg void OnHelpFinder(); afx_msg void OnEditUndoredoactive(); afx_msg void OnUpdateEditUndoredoactive(CCmdUI* pCmdUI); afx_msg BOOL OnFileNew(UINT); afx_msg void OnSavewindowstate(); afx_msg void OnLoadwindowstate(); afx_msg void OnFileOpen(); afx_msg BOOL OnChange3dViewType(UINT nID); afx_msg BOOL OnUnits(UINT nID); afx_msg void OnUpdateUnits(CCmdUI *pCmdUI); afx_msg void OnUpdateView3d(CCmdUI *pCmdUI); afx_msg void OnUpdateView2d(CCmdUI *pCmdUI); afx_msg void OnUpdateToolUI(CCmdUI *pUI); afx_msg BOOL OnView3dChangeBrightness(UINT nID); afx_msg void OnUpdateApplicatorUI(CCmdUI *pUI); afx_msg BOOL OnHelpInfo(HELPINFO*); afx_msg void OnEnterMenuLoop( BOOL bIsTrackPopupMenu ); #if _MSC_VER < 1300 afx_msg void OnActivateApp(BOOL bActive, HTASK hTask); #else afx_msg void OnActivateApp(BOOL bActive, DWORD hThread); #endif afx_msg void OnUpdateEditFunction(CCmdUI *pCmdUI); afx_msg BOOL OnApplicator(UINT nID); afx_msg BOOL OnSoundBrowser(UINT nID); afx_msg void OnModelBrowser(); afx_msg BOOL OnReloadSounds(UINT nID); afx_msg void OnUpdateOpaqueMaterials(CCmdUI *pCmdUI); afx_msg void OnOpaqueMaterials(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg BOOL OnChangeTool(UINT nID); afx_msg void OnInitMenu( CMenu *pMenu ); afx_msg void OnHDR( void ); afx_msg LRESULT OnWTPacket(WPARAM, LPARAM); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: void DockControlBarLeftOf(CControlBar *Bar, CControlBar *LeftOf); void SaveWindowStates(std::fstream *pFile = NULL); CChildFrame *GetNextMDIChildWnd(CChildFrame *pCurChild); CChildFrame *GetNextMDIChildWndRecursive(CWnd *pCurChild); void EnableFaceEditMode(bool bEnable); void Autosave( void ); void LoadOldestAutosave( void ); CMDIClientWnd wndMDIClient; // dvs: what in God's name is this for? CSearchReplaceDlg *m_pSearchReplaceDlg; CModelBrowser *m_pModelBrowser; BOOL m_bUndoActive; CStatusBar m_wndStatusBar; CToolBar m_wndMapToolBar; CToolBar m_wndUndoRedoToolBar; CToolBar m_wndMapEditToolBar; CSelectModeDlgBar m_SelectModeDlg; CFaceSmoothingVisualDlg m_SmoothingGroupDlg; bool m_bMinimized; bool m_bShellSessionActive; // Whether a client has initiated a remote shell editing session. CBitmap m_bmMapEditTools256; enum { AUTOSAVE_TIMER, FIRST_TIMER }; }; CMainFrame *GetMainWnd(); #endif // MAINFRM_H