//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //============================================================================= #ifndef SEQUENCEPICKER_H #define SEQUENCEPICKER_H #ifdef _WIN32 #pragma once #endif #include "tier1/utlstring.h" #include "vgui_controls/Frame.h" #include "vgui_controls/EditablePanel.h" #include "vgui_controls/ImageList.h" #include "datacache/imdlcache.h" #include "matsys_controls/mdlpanel.h" //----------------------------------------------------------------------------- // Forward declarations //----------------------------------------------------------------------------- namespace vgui { class Splitter; } //----------------------------------------------------------------------------- // Purpose: Sequence picker panel //----------------------------------------------------------------------------- class CSequencePicker : public vgui::EditablePanel { DECLARE_CLASS_SIMPLE( CSequencePicker, vgui::EditablePanel ); public: enum PickType_t { PICK_NONE = 0, PICK_SEQUENCES = 0x1, PICK_ACTIVITIES = 0x2, PICK_ALL = 0xFFFFFFFF, }; // Flags come from PickType_t CSequencePicker( vgui::Panel *pParent, int nFlags = PICK_ALL ); ~CSequencePicker(); // overridden frame functions virtual void PerformLayout(); // Sets the MDL to preview sequences for void SetMDL( const char *pMDLName ); // Gets the selected activity/sequence PickType_t GetSelectedSequenceType(); const char *GetSelectedSequenceName( ); private: void RefreshActivitiesAndSequencesList(); // Plays the selected activity void PlayActivity( const char *pActivityName ); // Plays the selected sequence void PlaySequence( const char *pSequenceName ); MESSAGE_FUNC_PARAMS( OnItemSelected, "ItemSelected", kv ); MESSAGE_FUNC( OnPageChanged, "PageChanged" ); CMDLPanel *m_pMDLPreview; vgui::Splitter* m_pPreviewSplitter; vgui::PropertySheet *m_pViewsSheet; vgui::PropertyPage *m_pSequencesPage; vgui::PropertyPage *m_pActivitiesPage; vgui::ListPanel *m_pSequencesList; vgui::ListPanel *m_pActivitiesList; MDLHandle_t m_hSelectedMDL; CUtlString m_Filter; friend class CSequencePickerFrame; }; //----------------------------------------------------------------------------- // Purpose: Main app window //----------------------------------------------------------------------------- class CSequencePickerFrame : public vgui::Frame { DECLARE_CLASS_SIMPLE( CSequencePickerFrame, vgui::Frame ); public: CSequencePickerFrame( vgui::Panel *pParent, int nFlags ); // Inherited from Frame virtual void OnCommand( const char *pCommand ); // Purpose: Activate the dialog void DoModal( const char *pMDLName ); private: MESSAGE_FUNC_PARAMS( OnSequencePreviewChanged, "SequencePreviewChanged", kv ); CSequencePicker *m_pPicker; vgui::Button *m_pOpenButton; vgui::Button *m_pCancelButton; }; #endif // SEQUENCEPICKER_H