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.
73 lines
2.5 KiB
73 lines
2.5 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//
|
|
//=============================================================================//
|
|
|
|
#include "dme_controls/AttributeFilePickerPanel.h"
|
|
#include "filesystem.h"
|
|
#include "vgui_controls/Button.h"
|
|
#include "vgui_controls/FileOpenDialog.h"
|
|
#include "dme_controls/AttributeTextEntry.h"
|
|
#include "vgui/IInput.h"
|
|
|
|
// memdbgon must be the last include file in a .cpp file!!!
|
|
#include "tier0/memdbgon.h"
|
|
|
|
|
|
using namespace vgui;
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Various file picker types
|
|
//-----------------------------------------------------------------------------
|
|
IMPLEMENT_ATTRIBUTE_FILE_PICKER( CAttributeTgaFilePickerPanel, "Choose TGA file", "TGA", "tga" );
|
|
IMPLEMENT_ATTRIBUTE_FILE_PICKER( CAttributeDmeFilePickerPanel, "Choose DmE .xml file", "DmE XML", "xml" );
|
|
IMPLEMENT_ATTRIBUTE_FILE_PICKER( CAttributeAviFilePickerPanel, "Choose AVI file", "AVI", "avi" );
|
|
IMPLEMENT_ATTRIBUTE_FILE_PICKER( CAttributeShtFilePickerPanel, "Choose Sheet file", "SHT", "sht" );
|
|
IMPLEMENT_ATTRIBUTE_FILE_PICKER( CAttributeRawFilePickerPanel, "Choose RAW file", "RAW", "raw" );
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Constructor
|
|
//-----------------------------------------------------------------------------
|
|
CAttributeFilePickerPanel::CAttributeFilePickerPanel( vgui::Panel *parent, const AttributeWidgetInfo_t &info ) :
|
|
BaseClass( parent, info )
|
|
{
|
|
}
|
|
|
|
CAttributeFilePickerPanel::~CAttributeFilePickerPanel()
|
|
{
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Shows the picker dialog
|
|
//-----------------------------------------------------------------------------
|
|
void CAttributeFilePickerPanel::ShowPickerDialog()
|
|
{
|
|
FileOpenDialog *pFileOpenDialog = new FileOpenDialog( this, "Choose file", true );
|
|
SetupFileOpenDialog( pFileOpenDialog );
|
|
pFileOpenDialog->AddActionSignalTarget( this );
|
|
pFileOpenDialog->SetDeleteSelfOnClose( true );
|
|
pFileOpenDialog->DoModal( true );
|
|
input()->SetAppModalSurface( pFileOpenDialog->GetVPanel() );
|
|
}
|
|
|
|
void CAttributeFilePickerPanel::OnFileSelected( char const *fullpath )
|
|
{
|
|
if ( !fullpath || !fullpath[ 0 ] )
|
|
return;
|
|
|
|
char relativepath[ 512 ];
|
|
g_pFullFileSystem->FullPathToRelativePath( fullpath, relativepath, sizeof( relativepath ) );
|
|
|
|
// Apply to text panel
|
|
m_pData->SetText( relativepath );
|
|
SetDirty(true);
|
|
if ( IsAutoApply() )
|
|
{
|
|
Apply();
|
|
}
|
|
}
|