nfd2 0.3.1

Please use https://crates.io/crates/rfd instead
Documentation
/*
  Native File Dialog

  User API

  http://www.frogtoss.com/labs
 */


#ifndef _NFD_H
#define _NFD_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stddef.h>

/* denotes UTF-8 char */
typedef char nfdchar_t;

/* opaque data structure -- see NFD_PathSet_* */
typedef struct {
    nfdchar_t* buf;
    size_t*    indices; /* byte offsets into buf */
    size_t     count;   /* number of indices into buf */
} nfdpathset_t;

typedef enum {
    NFD_ERROR, /* programmatic error */
    NFD_OKAY,  /* user pressed okay, or successful return */
    NFD_CANCEL /* user pressed cancel */
} nfdresult_t;


/* nfd_<targetplatform>.c */

/* single file open dialog */
nfdresult_t NFD_OpenDialog(const nfdchar_t* filterList,
                           const nfdchar_t* defaultPath,
                           nfdchar_t**      outPath);

/* multiple file open dialog */
nfdresult_t NFD_OpenDialogMultiple(const nfdchar_t* filterList,
                                   const nfdchar_t* defaultPath,
                                   nfdpathset_t*    outPaths);

/* save dialog */
nfdresult_t NFD_SaveDialog(const nfdchar_t* filterList,
                           const nfdchar_t* defaultPath,
                           nfdchar_t**      outPath);


/* select folder dialog */
nfdresult_t NFD_PickFolder(const nfdchar_t* defaultPath, nfdchar_t** outPath);

/* nfd_common.c */

/* get last error -- set when nfdresult_t returns NFD_ERROR */
const char* NFD_GetError(void);
/* get the number of entries stored in pathSet */
size_t NFD_PathSet_GetCount(const nfdpathset_t* pathSet);
/* Get the UTF-8 path at offset index */
nfdchar_t* NFD_PathSet_GetPath(const nfdpathset_t* pathSet, size_t index);
/* Free the pathSet */
void NFD_PathSet_Free(nfdpathset_t* pathSet);
/* Free any other memory allocated by NFD */
void NFD_Free(void* ptr);


#ifdef __cplusplus
}
#endif

#endif