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:
//
// $NoKeywords: $
//
//===========================================================================//
#include "dme_controls/AttributeSequencePickerPanel.h"
#include "filesystem.h"
#include "vgui_controls/Button.h"
#include "vgui_controls/FileOpenDialog.h"
#include "dme_controls/AttributeTextEntry.h"
#include "matsys_controls/MDLPicker.h"
#include "matsys_controls/sequencepicker.h"
#include "tier1/KeyValues.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
using namespace vgui;
//-----------------------------------------------------------------------------
// Constructor
//-----------------------------------------------------------------------------
CAttributeSequencePickerPanel::CAttributeSequencePickerPanel( vgui::Panel *parent, const AttributeWidgetInfo_t &info ) : BaseClass( parent, info ) { }
CAttributeSequencePickerPanel::~CAttributeSequencePickerPanel() { }
//-----------------------------------------------------------------------------
// Called when it's time to show the MDL picker
//-----------------------------------------------------------------------------
void CAttributeSequencePickerPanel::ShowPickerDialog() { CMDLPickerFrame *pMDLPickerDialog = new CMDLPickerFrame( this, "Select .MDL File" ); pMDLPickerDialog->AddActionSignalTarget( this ); pMDLPickerDialog->DoModal( ); }
//-----------------------------------------------------------------------------
// Called when it's time to show the MDL picker
//-----------------------------------------------------------------------------
void CAttributeSequencePickerPanel::OnMDLSelected( KeyValues *pKeyValues ) { const char *pMDLName = pKeyValues->GetString( "asset", NULL );
char pRelativePath[MAX_PATH]; Q_snprintf( pRelativePath, sizeof(pRelativePath), "models\\%s", pMDLName ); ShowSequencePickerDialog( pRelativePath ); }
//-----------------------------------------------------------------------------
// Called when it's time to show the sequence picker
//-----------------------------------------------------------------------------
void CAttributeSequencePickerPanel::ShowSequencePickerDialog( const char *pMDLName ) { if ( !pMDLName || !pMDLName[ 0 ] ) return;
// Open file
CSequencePicker::PickType_t pickType = CSequencePicker::PICK_ALL; const char *pTextType = GetTextType(); if ( pTextType ) { if ( !Q_stricmp( pTextType, "activityName" ) ) { pickType = CSequencePicker::PICK_ACTIVITIES; } else if ( !Q_stricmp( pTextType, "sequenceName" ) ) { pickType = CSequencePicker::PICK_SEQUENCES; } }
CSequencePickerFrame *pSequencePickerDialog = new CSequencePickerFrame( this, pickType ); pSequencePickerDialog->AddActionSignalTarget( this ); pSequencePickerDialog->DoModal( pMDLName ); }
//-----------------------------------------------------------------------------
// Called when it's time to show the MDL picker
//-----------------------------------------------------------------------------
void CAttributeSequencePickerPanel::OnSequenceSelected( KeyValues *pKeyValues ) { // We're either going to get an activity or sequence name
const char *pActivityName = pKeyValues->GetString( "activity", NULL ); const char *pSequenceName = pKeyValues->GetString( "sequence", pActivityName ); if ( !pSequenceName || !pSequenceName[ 0 ] ) return;
// Apply to text panel
m_pData->SetText( pSequenceName ); SetDirty(true); if ( IsAutoApply() ) { Apply(); } }
|