summaryrefslogtreecommitdiff
path: root/utils/hlfaceposer/vcdbrowser.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/hlfaceposer/vcdbrowser.h')
-rw-r--r--utils/hlfaceposer/vcdbrowser.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/utils/hlfaceposer/vcdbrowser.h b/utils/hlfaceposer/vcdbrowser.h
new file mode 100644
index 0000000..d2e82ff
--- /dev/null
+++ b/utils/hlfaceposer/vcdbrowser.h
@@ -0,0 +1,120 @@
+//========= 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