mirror of
https://github.com/wolfpld/tracy
synced 2025-05-02 13:43:52 +00:00
51 lines
984 B
C++
51 lines
984 B
C++
#include "TracyFileselector.hpp"
|
|
|
|
#ifndef TRACY_NO_FILESELECTOR
|
|
# include "../nfd/nfd.h"
|
|
#endif
|
|
|
|
namespace tracy::Fileselector
|
|
{
|
|
|
|
void Init()
|
|
{
|
|
#ifndef TRACY_NO_FILESELECTOR
|
|
NFD_Init();
|
|
#endif
|
|
}
|
|
|
|
void Shutdown()
|
|
{
|
|
#ifndef TRACY_NO_FILESELECTOR
|
|
NFD_Quit();
|
|
#endif
|
|
}
|
|
|
|
void OpenFile( const char* ext, const char* desc, std::function<void(const char*)> callback )
|
|
{
|
|
#ifndef TRACY_NO_FILESELECTOR
|
|
nfdu8filteritem_t filter = { desc, ext };
|
|
nfdu8char_t* fn;
|
|
if( NFD_OpenDialogU8( &fn, &filter, 1, nullptr ) == NFD_OKAY )
|
|
{
|
|
callback( (const char*)fn );
|
|
NFD_FreePathU8( fn );
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void SaveFile( const char* ext, const char* desc, std::function<void(const char*)> callback )
|
|
{
|
|
#ifndef TRACY_NO_FILESELECTOR
|
|
nfdu8filteritem_t filter = { desc, ext };
|
|
nfdu8char_t* fn;
|
|
if( NFD_SaveDialogU8( &fn, &filter, 1, nullptr, nullptr ) == NFD_OKAY )
|
|
{
|
|
callback( (const char*)fn );
|
|
NFD_FreePathU8( fn );
|
|
}
|
|
#endif
|
|
}
|
|
|
|
}
|