This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

104 lines
3.0 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#ifndef SEQUENCEPICKER_H
#define SEQUENCEPICKER_H
#ifdef _WIN32
#pragma once
#endif
#include "datacache/imdlcache.h"
#include "matsys_controls/mdlpanel.h"
#include "tier1/utlstring.h"
#include "vgui_controls/EditablePanel.h"
#include "vgui_controls/Frame.h"
#include "vgui_controls/ImageList.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