Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
file_chooser.hpp
Go to the documentation of this file.
1#pragma once
2
19
21
22#include <functional>
23#include <string>
24#include <vector>
25
26namespace pulp::view {
27
47public:
53 using ResultCallback = std::function<void(std::vector<std::string>)>;
54
55 FileChooser() = default;
56
60 const std::string& title() const { return title_; }
61
64 const std::string& initial_directory() const { return initial_dir_; }
65
68 FileChooser& set_default_name(std::string name);
69 const std::string& default_name() const { return default_name_; }
70
75
78 FileChooser& add_extension_filter(std::string description,
79 std::string extensions);
80
83
85 const std::vector<pulp::platform::FileFilter>& filters() const {
86 return filters_;
87 }
88
92 bool allow_multiple() const { return allow_multiple_; }
93
97 void open(ResultCallback callback) const;
98
100 void save(ResultCallback callback) const;
101
104 void choose_folder(ResultCallback callback) const;
105
106private:
107 std::string title_;
108 std::string initial_dir_;
109 std::string default_name_;
110 std::vector<pulp::platform::FileFilter> filters_;
111 bool allow_multiple_ = false;
112};
113
114} // namespace pulp::view
FileChooser & set_allow_multiple(bool allow)
When true, open() invokes the platform multi-file dialog and the callback may receive more than one p...
FileChooser & set_default_name(std::string name)
Default filename suggested in save dialogs.
FileChooser & clear_filters()
Clear all filters. Returns *this so the call chain still flows.
std::function< void(std::vector< std::string >)> ResultCallback
Callback signature shared by every dialog kind.
Definition file_chooser.hpp:53
void open(ResultCallback callback) const
Show an open dialog.
FileChooser & set_title(std::string title)
Dialog window title.
const std::string & title() const
Definition file_chooser.hpp:60
void save(ResultCallback callback) const
Show a save dialog. Runs the callback exactly once.
FileChooser & set_initial_directory(std::string path)
Initial directory the dialog opens to. Empty == platform default.
bool allow_multiple() const
Definition file_chooser.hpp:92
FileChooser & add_extension_filter(std::string description, std::string extensions)
Convenience wrapper: append a description + semicolon-separated extension list.
void choose_folder(ResultCallback callback) const
Show a folder-chooser dialog.
const std::string & default_name() const
Definition file_chooser.hpp:69
const std::vector< pulp::platform::FileFilter > & filters() const
Read-only view of accumulated filters (preserves insertion order).
Definition file_chooser.hpp:85
FileChooser & add_filter(pulp::platform::FileFilter filter)
Append a fully-formed FileFilter.
const std::string & initial_directory() const
Definition file_chooser.hpp:64
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
@ path
Definition anchor_strategy.hpp:42
Definition file_dialog.hpp:11