2020-09-12 22:29:57 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
2020-10-10 02:42:06 -04:00
|
|
|
#include <stdint.h>
|
2021-03-18 17:08:11 -04:00
|
|
|
#include <stddef.h>
|
2020-10-10 02:42:06 -04:00
|
|
|
|
2020-09-12 22:29:57 -04:00
|
|
|
#include "VirtualDirectory.h"
|
|
|
|
|
|
|
|
|
|
class PLPasStr;
|
2020-11-10 20:04:29 -05:00
|
|
|
struct DrawSurface;
|
|
|
|
|
struct Point;
|
|
|
|
|
struct Rect;
|
2020-09-12 22:29:57 -04:00
|
|
|
|
|
|
|
|
namespace PortabilityLayer
|
|
|
|
|
{
|
2020-11-12 02:35:07 -05:00
|
|
|
class ResTypeID;
|
|
|
|
|
|
2020-11-10 20:04:29 -05:00
|
|
|
struct FileBrowserUI_DetailsCallbackAPI
|
|
|
|
|
{
|
2021-05-10 23:21:21 -04:00
|
|
|
void *m_context;
|
2020-11-10 20:04:29 -05:00
|
|
|
|
2021-05-10 23:21:21 -04:00
|
|
|
void (*m_drawLabelsCallback)(void *context, DrawSurface *surface, const Point &basePoint);
|
|
|
|
|
void (*m_drawFileDetailsCallback)(void *context, DrawSurface *surface, const Point &basePoint, const Rect &constraintRect, void *fileDetails);
|
|
|
|
|
|
|
|
|
|
void *(*m_loadFileDetailsCallback)(void *context, VirtualDirectory_t dirID, const PLPasStr &filename);
|
|
|
|
|
void (*m_freeFileDetailsCallback)(void *context, void *fileDetails);
|
|
|
|
|
bool (*m_filterFileCallback)(void *context, VirtualDirectory_t dirID, const PLPasStr &filename);
|
|
|
|
|
bool (*m_isDeleteValidCallback)(void *context, VirtualDirectory_t dirID, const PLPasStr &filename);
|
|
|
|
|
void (*m_onDeletedCallback)(void *context, VirtualDirectory_t dirID, const PLPasStr &filename);
|
2020-11-10 20:04:29 -05:00
|
|
|
};
|
|
|
|
|
|
2020-09-12 22:29:57 -04:00
|
|
|
class FileBrowserUI
|
|
|
|
|
{
|
|
|
|
|
public:
|
2020-11-10 20:04:29 -05:00
|
|
|
|
2020-09-12 22:29:57 -04:00
|
|
|
enum Mode
|
|
|
|
|
{
|
2021-05-09 22:48:23 -04:00
|
|
|
Mode_SaveNoDelete,
|
|
|
|
|
Mode_SaveWithDelete,
|
2020-09-12 22:29:57 -04:00
|
|
|
Mode_Open,
|
|
|
|
|
};
|
|
|
|
|
|
2021-03-07 04:24:13 -05:00
|
|
|
static bool Prompt(Mode mode, VirtualDirectory_t dirID, const char *extension, char *path, size_t &outPathLength, size_t pathCapacity, const PLPasStr &initialFileName, const PLPasStr &promptText, bool composites, const FileBrowserUI_DetailsCallbackAPI &callbackAPI);
|
2020-09-12 22:29:57 -04:00
|
|
|
};
|
|
|
|
|
}
|