You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
2.4 KiB
120 lines
2.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=============================================================================//
|
|
|
|
#ifndef VCDBROWSER_H
|
|
#define VCDBROWSER_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "mxtk/mxListView.h"
|
|
#include "commctrl.h"
|
|
#include "utldict.h"
|
|
#include "faceposertoolwindow.h"
|
|
#include "filesystem.h"
|
|
#include "tier1/UtlSortVector.h"
|
|
|
|
class CVCDList;
|
|
class CUtlSymbolTree;
|
|
class CVCDOptionsWindow;
|
|
// class CChoreoEvent;
|
|
|
|
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,
|
|
|
|
VCD_NUM_IMAGES,
|
|
};
|
|
|
|
class CVCDBrowser : public mxWindow, public IFacePoserToolWindow
|
|
{
|
|
typedef mxWindow BaseClass;
|
|
public:
|
|
|
|
CVCDBrowser( mxWindow *parent );
|
|
|
|
virtual int handleEvent( mxEvent *event );
|
|
virtual void OnDelete();
|
|
|
|
void RepopulateTree();
|
|
|
|
void BuildSelectionList( CUtlVector< FileNameHandle_t >& selected );
|
|
|
|
void OnOpen();
|
|
|
|
void JumpToItem( const FileNameHandle_t& vcd );
|
|
|
|
int GetVCDCount() const;
|
|
FileNameHandle_t GetVCD( int index );
|
|
|
|
void OnSearch();
|
|
void OnCancelSearch();
|
|
|
|
HIMAGELIST CreateImageList();
|
|
|
|
void SetCurrent( char const *fn );
|
|
|
|
private:
|
|
|
|
class CNameLessFunc
|
|
{
|
|
public:
|
|
bool Less( const FileNameHandle_t &name1, const FileNameHandle_t &name2, void *pContext );
|
|
};
|
|
|
|
|
|
void OpenVCD( const FileNameHandle_t& handle );
|
|
|
|
char const *GetSearchString();
|
|
|
|
bool LoadVCDsFilesInDirectory( CUtlSortVector< FileNameHandle_t, CNameLessFunc >& soundlist, char const* pDirectoryName, int nDirectoryNameLen );
|
|
bool InitDirectoryRecursive( CUtlSortVector< FileNameHandle_t, CNameLessFunc >& soundlist, char const* pDirectoryName );
|
|
|
|
void PopulateTree( char const *subdirectory );
|
|
|
|
void ShowContextMenu( void );
|
|
|
|
void LoadAllSounds();
|
|
void RemoveAllSounds();
|
|
|
|
CVCDList *m_pListView;
|
|
|
|
enum
|
|
{
|
|
NUM_BITMAPS = 6,
|
|
};
|
|
|
|
CUtlSortVector< FileNameHandle_t, CNameLessFunc > m_AllVCDs;
|
|
CUtlSymbolTable m_ScriptTable;
|
|
|
|
CUtlVector< CUtlSymbol > m_Scripts;
|
|
|
|
CVCDOptionsWindow *m_pOptions;
|
|
CUtlSymbolTree *m_pFileTree;
|
|
|
|
CUtlVector< FileNameHandle_t > m_CurrentSelection;
|
|
|
|
int m_nPrevProcessed;
|
|
bool m_bTextSearch;
|
|
};
|
|
|
|
extern CVCDBrowser *g_pVCDBrowser;
|
|
|
|
#endif // VCDBROWSER_H
|