adding drag target
This commit is contained in:
parent
574914ef41
commit
97e2bdf29c
|
@ -28,6 +28,7 @@ pub(crate) struct Library {
|
||||||
library_hovered: Option<LibraryKind>,
|
library_hovered: Option<LibraryKind>,
|
||||||
selected_item: Option<(LibraryKind, i32)>,
|
selected_item: Option<(LibraryKind, i32)>,
|
||||||
hovered_item: Option<(LibraryKind, i32)>,
|
hovered_item: Option<(LibraryKind, i32)>,
|
||||||
|
dragged_item: Option<(LibraryKind, i32)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
|
@ -39,6 +40,7 @@ pub(crate) enum Message {
|
||||||
OpenLibrary(Option<LibraryKind>),
|
OpenLibrary(Option<LibraryKind>),
|
||||||
HoverItem(Option<(LibraryKind, i32)>),
|
HoverItem(Option<(LibraryKind, i32)>),
|
||||||
SelectItem(Option<(LibraryKind, i32)>),
|
SelectItem(Option<(LibraryKind, i32)>),
|
||||||
|
DragItem(Option<(LibraryKind, i32)>),
|
||||||
None,
|
None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,6 +59,7 @@ impl Library {
|
||||||
library_hovered: None,
|
library_hovered: None,
|
||||||
selected_item: None,
|
selected_item: None,
|
||||||
hovered_item: None,
|
hovered_item: None,
|
||||||
|
dragged_item: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,6 +85,11 @@ impl Library {
|
||||||
self.selected_item = item;
|
self.selected_item = item;
|
||||||
Task::none()
|
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((
|
.on_enter(Message::HoverItem(Some((
|
||||||
model.kind,
|
model.kind,
|
||||||
index as i32,
|
index as i32,
|
||||||
|
|
Loading…
Reference in a new issue