//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //============================================================================= #ifndef MDLSEQUENCEPICKER_H #define MDLSEQUENCEPICKER_H #ifdef _WIN32 #pragma once #endif #include "datacache/imdlcache.h" #include "matsys_controls/mdlpanel.h" #include "vgui_controls/Frame.h" #include "vgui_controls/ImageList.h" //----------------------------------------------------------------------------- // Forward declarations //----------------------------------------------------------------------------- namespace vgui { class Splitter; class Button; } // namespace vgui class CGameFileTreeView; //----------------------------------------------------------------------------- // Purpose: Main app window //----------------------------------------------------------------------------- class CMDLSequencePicker : public vgui::EditablePanel { DECLARE_CLASS_SIMPLE(CMDLSequencePicker, vgui::EditablePanel); public: CMDLSequencePicker(vgui::Panel *pParent); virtual ~CMDLSequencePicker(); // overridden frame functions virtual void Activate(); virtual void OnClose(); virtual void PerformLayout(); virtual void OnTick(); char const *GetModelName(); char const *GetSequenceName(); int GetSequenceNumber(); private: void SelectMDL(const char *pMDLName); void RefreshFileList(); void RefreshActivitiesAndSequencesList(); // Plays the selected activity void PlaySelectedActivity(); // Plays the selected sequence void PlaySelectedSequence(); MESSAGE_FUNC(OnFileSelected, "TreeViewItemSelected"); MESSAGE_FUNC_PTR_CHARPTR(OnTextChanged, "TextChanged", Panel, text); MESSAGE_FUNC_PARAMS(OnItemSelected, "ItemSelected", kv); MESSAGE_FUNC(OnPageChanged, "PageChanged"); // changes // MESSAGE_FUNC_INT( CloakFolder, "CloakFolder", item ); // MESSAGE_FUNC_INT( OpenFileForEdit, "EditFile", item ); // MESSAGE_FUNC_INT( OpenFileForDelete, "DeleteFile", item ); CMDLPanel *m_pMDLPreview; vgui::ComboBox *m_pFilterList; CGameFileTreeView *m_pFileTree; vgui::ImageList m_Images; vgui::Splitter *m_pMDLSplitter; vgui::Splitter *m_pSequenceSplitter; vgui::PropertySheet *m_pViewsSheet; vgui::PropertyPage *m_pSequencesPage; vgui::PropertyPage *m_pActivitiesPage; vgui::ListPanel *m_pSequencesList; vgui::ListPanel *m_pActivitiesList; MDLHandle_t m_hSelectedMDL; friend class CMDLSequencePickerFrame; }; //----------------------------------------------------------------------------- // Model sequence picker frame //----------------------------------------------------------------------------- class CMDLSequencePickerFrame : public vgui::Frame { DECLARE_CLASS_SIMPLE(CMDLSequencePickerFrame, vgui::Frame); public: CMDLSequencePickerFrame(vgui::Panel *parent, char const *title); virtual ~CMDLSequencePickerFrame(); virtual void PerformLayout(); protected: virtual void OnTick(); MESSAGE_FUNC(OnOK, "OnOK"); MESSAGE_FUNC(OnCancel, "OnCancel"); private: CMDLSequencePicker *m_pMDLSequencePicker; vgui::Button *m_pOK; vgui::Button *m_pCancel; }; #endif // MDLSEQUENCEPICKER_H