use std::cell::{Cell, RefCell}; use std::rc::Rc; use glib::SignalHandlerId; use gtk4::subclass::prelude::*; use gtk4::{gio, glib}; use gtk4::{Box, DragSource, DropTarget, GestureClick, ListView}; use once_cell::sync::OnceCell; #[derive(Debug, Default)] pub struct DockList { pub list_view: OnceCell, pub type_: OnceCell, pub model: OnceCell, pub click_controller: OnceCell, pub drop_controller: OnceCell, pub drag_source: OnceCell, pub drag_end_signal: Rc>>, pub drag_cancel_signal: Rc>>, pub popover_menu_index: Rc>>, } #[glib::object_subclass] impl ObjectSubclass for DockList { const NAME: &'static str = "DockList"; type Type = super::DockList; type ParentType = Box; } impl ObjectImpl for DockList {} impl WidgetImpl for DockList {} impl BoxImpl for DockList {}