27 const std::string&
label()
const {
return label_; }
37 std::function<void(
const std::vector<std::string>& paths)>
on_drop;
61 void drop(
const std::vector<std::string>& paths);
73 std::vector<std::string> extensions_;
74 std::string label_ =
"Drop files here";
75 std::string hover_label_ =
"Release to drop";
77 bool drag_over_ =
false;
78 bool drag_valid_ =
false;
79 bool browse_on_click_ =
true;
80 std::string dialog_title_ =
"Choose a file";
82 bool is_valid_extension(
const std::string&
path)
const;
Definition canvas.hpp:240
Definition drag_drop.hpp:37
void set_label(std::string text)
Label shown when idle.
Definition file_drop_zone.hpp:26
bool wants_mouse_input() const override
True if this widget handles mouse down/drag through virtual methods even when it does not expose JS p...
Definition file_drop_zone.hpp:56
const std::string & label() const
Definition file_drop_zone.hpp:27
void set_dialog_title(std::string title)
Title for the click-to-browse dialog (default "Choose a file").
Definition file_drop_zone.hpp:48
void drop(const std::vector< std::string > &paths)
void on_mouse_event(const MouseEvent &event) override
Mouse down with full event context.
void drag_enter(const std::vector< std::string > &paths)
std::function< void(const std::vector< std::string > &paths)> on_drop
Callback when files are dropped.
Definition file_drop_zone.hpp:37
void leave_drag() override
void set_browse_on_click(bool on)
Click-to-browse (on by default): a left click opens the platform file picker (pulp::platform::FileDia...
Definition file_drop_zone.hpp:45
bool accept_drop(const DropData &data, Point local) override
bool accept_drag(const DropData &data, Point local) override
IconStyle
Icon type to display.
Definition file_drop_zone.hpp:33
@ none
Definition file_drop_zone.hpp:33
@ upload
Definition file_drop_zone.hpp:33
@ folder
Definition file_drop_zone.hpp:33
void set_icon_style(IconStyle s)
Definition file_drop_zone.hpp:34
void set_accepted_extensions(std::vector< std::string > exts)
Accepted file extensions (e.g., {".wav", ".aiff", ".mp3"}).
bool browse_on_click() const
Definition file_drop_zone.hpp:46
bool is_drag_over() const
Current drag-over state (for external styling).
Definition file_drop_zone.hpp:51
float intrinsic_height() const override
Definition file_drop_zone.hpp:70
void paint(canvas::Canvas &canvas) override
const std::vector< std::string > & accepted_extensions() const
Definition file_drop_zone.hpp:23
void set_hover_label(std::string text)
Label shown when hovering with valid files.
Definition file_drop_zone.hpp:30
bool is_drag_valid() const
Definition file_drop_zone.hpp:52
@ text
Definition view.hpp:2742
Definition affine_transform.hpp:24
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
@ path
Definition anchor_strategy.hpp:42
@ s
Definition input_events.hpp:41
@ on
Definition accessibility.hpp:132
Definition drag_drop.hpp:14
Rich mouse/pointer event with position, modifiers, button state, pointer ID, and stylus properties.
Definition input_events.hpp:104
Definition geometry.hpp:20