diff options
Diffstat (limited to 'vgui2/dme_controls/AttributeFilePickerPanel.cpp')
| -rw-r--r-- | vgui2/dme_controls/AttributeFilePickerPanel.cpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/vgui2/dme_controls/AttributeFilePickerPanel.cpp b/vgui2/dme_controls/AttributeFilePickerPanel.cpp new file mode 100644 index 0000000..c83237b --- /dev/null +++ b/vgui2/dme_controls/AttributeFilePickerPanel.cpp @@ -0,0 +1,73 @@ +//========= 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(); + } +}
\ No newline at end of file |