//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //============================================================================= #ifndef FILELISTMANAGER_H #define FILELISTMANAGER_H #ifdef _WIN32 #pragma once #endif #include "datamodel/idatamodel.h" #include "vgui_controls/listpanel.h" #include "vgui_controls/Frame.h" #include "vgui/KeyCode.h" //----------------------------------------------------------------------------- // Forward declarations //----------------------------------------------------------------------------- namespace vgui { class CheckButtonList; } //----------------------------------------------------------------------------- // CFileListManager //----------------------------------------------------------------------------- class CFileListManager : public vgui::ListPanel { DECLARE_CLASS_SIMPLE( CFileListManager , vgui::ListPanel ); public: CFileListManager( vgui::Panel *parent ); virtual void Refresh(); virtual void OnCommand( const char *cmd ); virtual void OnThink(); virtual void OnMousePressed( vgui::MouseCode code ); protected: MESSAGE_FUNC_PARAMS( OnOpenContextMenu, "OpenContextMenu", pParams ); MESSAGE_FUNC_PARAMS( OnOpenFile, "open", pParams ); MESSAGE_FUNC_PARAMS( OnLoadFiles, "load", pParams ); MESSAGE_FUNC_PARAMS( OnUnloadFiles, "unload", pParams ); MESSAGE_FUNC_PARAMS( OnSaveFiles, "save", pParams ); MESSAGE_FUNC_PARAMS( OnSaveFileAs, "saveas", pParams ); MESSAGE_FUNC_PARAMS( OnAddToPerforce, "p4add", pParams ); MESSAGE_FUNC_PARAMS( OnOpenForEdit, "p4edit", pParams ); MESSAGE_FUNC_PARAMS( OnFileSelected, "FileSelected", pParams ); MESSAGE_FUNC_PARAMS( OnDataChanged, "DataChanged", pParams ); int AddItem( DmFileId_t fileid, const char *pFilename, const char *pPath, bool bLoaded, int nElements, bool bChanged, bool bInPerforce, bool bOpenForEdit ); void SetLoaded( DmFileId_t fileid, bool bLoaded ); vgui::CheckButtonList *m_pFileList; bool m_bRefreshRequired; vgui::DHANDLE< vgui::Menu > m_hContextMenu; }; //----------------------------------------------------------------------------- // CFileListManagerFrame //----------------------------------------------------------------------------- class CFileManagerFrame : public vgui::Frame { DECLARE_CLASS_SIMPLE( CFileManagerFrame, vgui::Frame ); public: CFileManagerFrame( vgui::Panel *parent ); virtual void Refresh(); virtual void OnCommand( const char *cmd ); virtual void PerformLayout(); protected: CFileListManager *m_pFileListManager; }; #endif // FILELISTMANAGER_H