1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Extract file selector functionality.

This commit is contained in:
Bartosz Taudul
2022-10-05 22:50:17 +02:00
parent 5940af8995
commit 3ca61ad227
8 changed files with 103 additions and 54 deletions
+54
View File
@@ -0,0 +1,54 @@
#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
}
std::string OpenFile( const char* ext, const char* desc )
{
std::string ret;
#ifndef TRACY_NO_FILESELECTOR
nfdu8filteritem_t filter = { desc, ext };
nfdu8char_t* fn;
if( NFD_OpenDialogU8( &fn, &filter, 1, nullptr ) == NFD_OKAY )
{
ret.assign( fn );
NFD_FreePathU8( fn );
}
#endif
return ret;
}
std::string SaveFile( const char* ext, const char* desc )
{
std::string ret;
#ifndef TRACY_NO_FILESELECTOR
nfdu8filteritem_t filter = { desc, ext };
nfdu8char_t* fn;
if( NFD_SaveDialogU8( &fn, &filter, 1, nullptr, nullptr ) == NFD_OKAY )
{
ret.assign( fn );
NFD_FreePathU8( fn );
}
#endif
return ret;
}
}