pub enum DirectoryTreeEvent {
Toggled(PathBuf),
Selected {
path: PathBuf,
is_dir: bool,
mode: SelectionMode,
},
Drag(DragMsg),
}Expand description
An event emitted by the keyboard handler, the view component, or the drag state machine.
The host handles each variant by calling the corresponding method on
DirectoryTree:
fn handle(tree: &mut DirectoryTree, ev: DirectoryTreeEvent) {
match ev {
DirectoryTreeEvent::Toggled(path) => {
let _req = tree.on_toggled(&path);
}
DirectoryTreeEvent::Selected { path, is_dir, mode } => {
tree.on_selected(&path, is_dir, mode);
}
DirectoryTreeEvent::Drag(msg) => {
match tree.on_drag_msg(msg) {
DragOutcome::Clicked { path, is_dir } => {
tree.on_selected(&path, is_dir, SelectionMode::Replace);
}
DragOutcome::Completed { sources, destination } => {
// application performs the filesystem operation
let _ = (sources, destination);
}
DragOutcome::None => {}
}
}
}
}Variants§
Toggled(PathBuf)
Expand or collapse the directory at path.
Selected
Change the selection to include path.
Fields
§
is_dir: boolWhether the target is a directory (used by the view layer for
icon/styling; the core’s on_selected ignores it).
§
mode: SelectionModeHow the selection should change.
Drag(DragMsg)
A drag-and-drop gesture. The host calls
crate::DirectoryTree::on_drag_msg and acts on the returned
crate::drag::DragOutcome.
Trait Implementations§
Source§impl Clone for DirectoryTreeEvent
impl Clone for DirectoryTreeEvent
Source§fn clone(&self) -> DirectoryTreeEvent
fn clone(&self) -> DirectoryTreeEvent
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DirectoryTreeEvent
impl Debug for DirectoryTreeEvent
Source§impl PartialEq for DirectoryTreeEvent
impl PartialEq for DirectoryTreeEvent
Source§fn eq(&self, other: &DirectoryTreeEvent) -> bool
fn eq(&self, other: &DirectoryTreeEvent) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for DirectoryTreeEvent
Auto Trait Implementations§
impl Freeze for DirectoryTreeEvent
impl RefUnwindSafe for DirectoryTreeEvent
impl Send for DirectoryTreeEvent
impl Sync for DirectoryTreeEvent
impl Unpin for DirectoryTreeEvent
impl UnsafeUnpin for DirectoryTreeEvent
impl UnwindSafe for DirectoryTreeEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DependencyElement for T
Source§impl<T> InitializeFromFunction<T> for T
impl<T> InitializeFromFunction<T> for T
Source§fn initialize_from_function(f: fn() -> T) -> T
fn initialize_from_function(f: fn() -> T) -> T
Create an instance of this type from an initialization function
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<Ret> SpawnIfAsync<(), Ret> for Ret
impl<Ret> SpawnIfAsync<(), Ret> for Ret
Source§impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
Source§fn super_from(input: T) -> O
fn super_from(input: T) -> O
Convert from a type to another type.
Source§impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
Source§fn super_into(self) -> O
fn super_into(self) -> O
Convert from a type to another type.