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.
89 lines
2.3 KiB
89 lines
2.3 KiB
5 years ago
|
//========= 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");
|
||
|
}
|
||
|
|
||
|
|