|
|
//========= 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
|