summaryrefslogtreecommitdiff
path: root/utils/scenemanager/workspacemanager.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/scenemanager/workspacemanager.h')
-rw-r--r--utils/scenemanager/workspacemanager.h184
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