mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-14 04:31:05 +00:00
1
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user