mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 22:27:05 +00:00
185 lines
3.9 KiB
C++
185 lines
3.9 KiB
C++
//========= 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
|