Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= 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
|