mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-16 05:37:00 +00:00
1
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
#ifndef BASEANIMSETPRESETFADERPANEL_H
|
||||
#define BASEANIMSETPRESETFADERPANEL_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "dme_controls/AnimSetAttributeValue.h"
|
||||
#include "datamodel/dmehandle.h"
|
||||
#include "vgui_controls/EditablePanel.h"
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Forward declarations
|
||||
//-----------------------------------------------------------------------------
|
||||
class CPresetSlider;
|
||||
class CBaseAnimationSetEditor;
|
||||
class CDmeAnimationSet;
|
||||
class CSliderListPanel;
|
||||
class CAddPresetDialog;
|
||||
class CDmePreset;
|
||||
class CDmePresetGroupEditorFrame;
|
||||
|
||||
namespace vgui
|
||||
{
|
||||
class InputDialog;
|
||||
}
|
||||
|
||||
struct FaderPreview_t
|
||||
{
|
||||
FaderPreview_t() :
|
||||
name( 0 ),
|
||||
amount( 0 ),
|
||||
isbeingdragged( false ),
|
||||
holdingctrl( false ),
|
||||
values( 0 )
|
||||
{
|
||||
}
|
||||
const char *name;
|
||||
float amount;
|
||||
bool isbeingdragged;
|
||||
bool holdingctrl;
|
||||
AttributeDict_t *values;
|
||||
CDmeHandle< CDmePreset > preset;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Base class for the preset fader panel
|
||||
//-----------------------------------------------------------------------------
|
||||
class CBaseAnimSetPresetFaderPanel : public vgui::EditablePanel
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CBaseAnimSetPresetFaderPanel, vgui::EditablePanel );
|
||||
public:
|
||||
CBaseAnimSetPresetFaderPanel( vgui::Panel *parent, const char *className, CBaseAnimationSetEditor *editor );
|
||||
|
||||
void GetPreviewFader( FaderPreview_t& fader );
|
||||
|
||||
void ChangeAnimationSet( CDmeAnimationSet *newAnimSet );
|
||||
void UpdateControlValues();
|
||||
|
||||
void ApplyPreset( float flScale, AttributeDict_t& dict );
|
||||
|
||||
// Takes slider current values and creates a new preset
|
||||
void AddNewPreset( const char *pGroupName, const char *pName );
|
||||
void SetPresetFromSliders( CDmePreset *pPreset );
|
||||
virtual void OnOverwritePreset( CDmePreset *pPreset );
|
||||
void OnDeletePreset( CDmePreset *pPreset );
|
||||
|
||||
virtual void ApplySchemeSettings( vgui::IScheme *scheme );
|
||||
|
||||
virtual void ProceduralPreset_UpdateCrossfade( CDmePreset *pPreset, bool bFadeIn );
|
||||
|
||||
protected:
|
||||
MESSAGE_FUNC( OnTextChanged, "TextChanged" );
|
||||
MESSAGE_FUNC( OnAddPreset, "AddPreset" );
|
||||
MESSAGE_FUNC_PARAMS( OnAddNewPreset, "AddNewPreset", params );
|
||||
MESSAGE_FUNC( OnPresetsChanged, "PresetsChanged" );
|
||||
MESSAGE_FUNC( OnSetCrossfadeSpeed, "SetPresetCrossfadeSpeed" );
|
||||
MESSAGE_FUNC( OnManagePresets, "ManagePresets" );
|
||||
MESSAGE_FUNC_PARAMS( OnInputCompleted, "InputCompleted", params );
|
||||
MESSAGE_FUNC_PARAMS( OnPresetNameSelected, "PresetNameSelected", params );
|
||||
|
||||
protected:
|
||||
void OnAddCompleted( const char *pText, KeyValues *pContextKeyValues );
|
||||
void PopulateList( bool bChanged );
|
||||
void AddNewPreset( CDmePreset *pPreset );
|
||||
|
||||
vgui::DHANDLE< CBaseAnimationSetEditor > m_hEditor;
|
||||
vgui::EditablePanel *m_pWorkspace;
|
||||
vgui::TextEntry *m_pFilter;
|
||||
CSliderListPanel *m_pSliders;
|
||||
CDmeHandle< CDmeAnimationSet > m_AnimSet;
|
||||
float m_flLastFrameTime;
|
||||
CUtlString m_Filter;
|
||||
vgui::DHANDLE< vgui::InputDialog > m_hInputDialog;
|
||||
vgui::DHANDLE< CAddPresetDialog > m_hAddPresetDialog;
|
||||
vgui::DHANDLE< CDmePresetGroupEditorFrame > m_hPresetEditor;
|
||||
|
||||
CUtlVector< CDmeHandle< CDmePreset > > m_CurrentPresetList;
|
||||
};
|
||||
|
||||
#endif // BASEANIMSETPRESETFADERPANEL_H
|
||||
Reference in New Issue
Block a user