adding drag target

This commit is contained in:
Chris Cochrun 2025-02-10 12:46:18 -06:00
parent 574914ef41
commit 97e2bdf29c

View file

@ -28,6 +28,7 @@ pub(crate) struct Library {
library_hovered: Option<LibraryKind>,
selected_item: Option<(LibraryKind, i32)>,
hovered_item: Option<(LibraryKind, i32)>,
dragged_item: Option<(LibraryKind, i32)>,
}
#[derive(Clone, Debug)]
@ -39,6 +40,7 @@ pub(crate) enum Message {
OpenLibrary(Option<LibraryKind>),
HoverItem(Option<(LibraryKind, i32)>),
SelectItem(Option<(LibraryKind, i32)>),
DragItem(Option<(LibraryKind, i32)>),
None,
}
@ -57,6 +59,7 @@ impl Library {
library_hovered: None,
selected_item: None,
hovered_item: None,
dragged_item: None,
}
}
@ -82,6 +85,11 @@ impl Library {
self.selected_item = item;
Task::none()
}
Message::DragItem(item) => {
self.dragged_item = item;
debug!(?self.dragged_item);
Task::none()
}
}
}
@ -284,6 +292,10 @@ impl Library {
)
}),
)
.on_drag(Message::DragItem(Some((
model.kind,
index as i32,
))))
.on_enter(Message::HoverItem(Some((
model.kind,
index as i32,