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.
88 lines
2.3 KiB
88 lines
2.3 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
#include "DemoPage.h"
|
|
|
|
#include <VGUI/IVGui.h>
|
|
#include <vgui_controls/Controls.h>
|
|
#include <Keyvalues.h>
|
|
#include <vgui_controls/FileOpenDialog.h>
|
|
|
|
using namespace vgui;
|
|
|
|
|
|
class FileOpenDemo: public DemoPage
|
|
{
|
|
public:
|
|
FileOpenDemo(Panel *parent, const char *name);
|
|
~FileOpenDemo();
|
|
|
|
void SetVisible(bool status);
|
|
|
|
private:
|
|
void OnFileSelected(const char *fullpath);
|
|
|
|
DHANDLE<FileOpenDialog> m_hFileDialog;
|
|
|
|
DECLARE_PANELMAP();
|
|
};
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Constructor
|
|
//-----------------------------------------------------------------------------
|
|
FileOpenDemo::FileOpenDemo(Panel *parent, const char *name) : DemoPage(parent, name)
|
|
{
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Destructor
|
|
//-----------------------------------------------------------------------------
|
|
FileOpenDemo::~FileOpenDemo()
|
|
{
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: When we make this this demo page visible we make the dialog visible.
|
|
//-----------------------------------------------------------------------------
|
|
void FileOpenDemo::SetVisible(bool status)
|
|
{
|
|
if (status)
|
|
{
|
|
if (!m_hFileDialog.Get())
|
|
{
|
|
// Pop up the dialog
|
|
FileOpenDialog *pFileDialog = new FileOpenDialog (NULL, "Find the TestFile", true);
|
|
m_hFileDialog = pFileDialog;
|
|
m_hFileDialog->AddActionSignalTarget(this);
|
|
}
|
|
m_hFileDialog->DoModal(false);
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: When a file is selected print out its full path in the debugger
|
|
//-----------------------------------------------------------------------------
|
|
void FileOpenDemo::OnFileSelected(const char *fullpath)
|
|
{
|
|
ivgui()->DPrintf("File selected\n");
|
|
ivgui()->DPrintf(fullpath);
|
|
ivgui()->DPrintf("\n");
|
|
}
|
|
|
|
MessageMapItem_t FileOpenDemo::m_MessageMap[] =
|
|
{
|
|
MAP_MESSAGE_CONSTCHARPTR(FileOpenDemo, "FileSelected", OnFileSelected, "fullpath"),
|
|
};
|
|
|
|
IMPLEMENT_PANELMAP(FileOpenDemo, DemoPage);
|
|
|
|
|
|
Panel* FileOpenDemo_Create(Panel *parent)
|
|
{
|
|
return new FileOpenDemo(parent, "FileOpenDialogDemo");
|
|
}
|
|
|
|
|