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(); |
|
} |
|
} |