11 #if defined(__APPLE__) && GUI_USE_NATIVE_FILE_DIALOG
19 namespace visualization {
22 struct FileDialog::Impl {
25 std::vector<std::pair<std::string, std::string>> filters_;
27 std::function<void(
const char *)>
on_done_;
31 : Dialog(title), impl_(new FileDialog::Impl()) {
35 FileDialog::~FileDialog() {}
37 void FileDialog::SetPath(
const char *
path) { impl_->path_ =
path; }
39 void FileDialog::AddFilter(
const char *filter,
const char *description) {
40 impl_->filters_.push_back(
41 std::make_pair<std::string, std::string>(filter, description));
44 void FileDialog::SetOnCancel(std::function<
void()> on_cancel) {
45 impl_->on_cancel_ = on_cancel;
48 void FileDialog::SetOnDone(std::function<
void(
const char *)> on_done) {
49 impl_->on_done_ = on_done;
52 Size FileDialog::CalcPreferredSize(
const LayoutContext &
context,
53 const Constraints &constraints)
const {
57 void FileDialog::OnWillShow() {
58 auto on_ok = [
this](
const char *
path) { this->impl_->on_done_(
path); };
59 auto on_cancel = [
this]() { this->impl_->on_cancel_(); };
60 ShowNativeFileDialog(impl_->mode_, impl_->path_, impl_->filters_, on_ok,
64 void FileDialog::OnDone() {}
FileDialog(Mode type, const char *title, const Theme &theme)
static const std::string path
Generic file read and write utility for python interface.
std::function< void()> on_cancel_
std::function< void(const char *)> on_done_