diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/scenemanager/workspacemanager.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'utils/scenemanager/workspacemanager.h')
| -rw-r--r-- | utils/scenemanager/workspacemanager.h | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/utils/scenemanager/workspacemanager.h b/utils/scenemanager/workspacemanager.h new file mode 100644 index 0000000..e7c5eb0 --- /dev/null +++ b/utils/scenemanager/workspacemanager.h @@ -0,0 +1,184 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef WORKSPACEMANAGER_H +#define WORKSPACEMANAGER_H +#ifdef _WIN32 +#pragma once +#endif + +class CWorkspaceBrowser; +class CWorkspaceWorkArea; +class CWorkspace; +class CProject; +class CScene; +class CVCDFile; +class CSoundEntry; +class ITreeItem; +class CSoundBrowser; +class CWaveBrowser; +class CWaveFile; + +struct _IMAGELIST; +typedef struct _IMAGELIST NEAR* HIMAGELIST; + +enum +{ + IMAGE_WORKSPACE = 0, + IMAGE_WORKSPACE_CHECKEDOUT, + IMAGE_PROJECT, + IMAGE_PROJECT_CHECKEDOUT, + IMAGE_SCENE, +// IMAGE_SCENE_CHECKEDOUT, + IMAGE_VCD, + IMAGE_VCD_CHECKEDOUT, + IMAGE_WAV, + IMAGE_WAV_CHECKEDOUT, + IMAGE_SPEAK, + IMAGE_SPEAK_CHECKEDOUT, + + NUM_IMAGES, +}; + +class CWorkspaceManager : public mxWindow +{ +public: + CWorkspaceManager(); + ~CWorkspaceManager(); + + virtual int handleEvent( mxEvent *event ); + + CWorkspaceBrowser *GetBrowser(); + CSoundBrowser *GetSoundBrowser(); + CWaveBrowser *GetWaveBrowser(); + void LoadWorkspace( char const *filename ); + + void AutoLoad( char const *workspace ); + + void ShowContextMenu( int x, int y, ITreeItem *item ); + void OnDoubleClicked( ITreeItem *item ); + + void UpdateMenus(); + + virtual bool Closing(); + + HIMAGELIST CreateImageList(); + + void RefreshBrowsers(); + + void OnSoundShowInBrowsers(); + + void SetWorkspaceDirty(); + + int GetLanguageId() const; + +private: + + void PerformLayout( bool movebrowsers ); + + void Think( float dt ); + void Frame( void ); + + virtual void OnDelete(); + + void SetWorkspace( CWorkspace *ws ); + void OnUpdateTitle( void ); + + void CreateFileMenu( mxMenu *m ); + void CreateProjectMenu( mxMenu *m ); + + int GetMaxRecentFiles( void ) const; + +// Workspace message handlers + void OnNewWorkspace(); + void OnOpenWorkspace(); + void OnCloseWorkspace(); + void OnSaveWorkspace(); + + void OnChangeVSSProperites(); + + void OnCheckoutWorkspace(); + void OnCheckinWorkspace(); + +// Project message handlers + void OnNewProject(); + void OnInsertProject(); + void OnRemoveProject(); + void OnModifyProjectComments(); + +// Scene message handlers + void OnNewScene(); + void OnModifySceneComments(); + void OnRemoveScene(); + +// Sound entry handlers + void OnSoundPlay(); + void OnSoundToggleVoiceDuck(); + void OnSoundEditText(); + + void OnSoundProperties(); + void OnWaveProperties(); + + void OnCheckout(); + void OnCheckin(); + + void OnMoveUp(); + void OnMoveDown(); + + //void OnSoundCheckOut(); + //void OnSoundCheckIn(); + +// Scene entries + void OnSceneAddVCD(); + void OnSceneRemoveVCD(); + void OnModifyVCDComments(); + + void OnRecentWorkspace( int index ); + void OnChangeLanguage( int lang_index, bool force = false ); + void AddFileToRecentWorkspaceList( char const *filename ); + void UpdateRecentFilesMenu(); + + void LoadRecentFilesMenuFromDisk(); + void SaveRecentFilesMenuToDisk(); + + + bool CloseWorkspace(); + + void ShowContextMenu_Workspace( int x, int y, CWorkspace *ws ); + void ShowContextMenu_Project( int x, int y, CProject *project ); + void ShowContextMenu_Scene( int x, int y, CScene *scene ); + void ShowContextMenu_VCD( int x, int y, CVCDFile *vcd ); + void ShowContextMenu_SoundEntry( int x, int y, CSoundEntry *entry ); + void ShowContextMenu_WaveFile( int x, int y, CWaveFile *entry ); + + mxMenuBar *m_pMenuBar; + + mxMenu *m_pFileMenu; + mxMenu *m_pRecentFileMenu; + int m_nRecentMenuItems; + mxMenu *m_pProjectMenu; + mxMenu *m_pOptionsMenu; + mxMenu *m_pMenuCloseCaptionLanguages; + + CWorkspaceWorkArea *m_pWorkArea; + + CWorkspaceBrowser *m_pBrowser; + CSoundBrowser *m_pSoundBrowser; + CWaveBrowser *m_pWaveBrowser; + + struct RecentFile + { + char filename[ 256 ]; + }; + + CUtlVector< RecentFile > m_RecentFiles; + int m_nLanguageId; + long m_lEnglishCaptionsFileChangeTime; +}; + +CWorkspaceManager *GetWorkspaceManager(); + +#endif // WORKSPACEMANAGER_H |