adds comments

This commit is contained in:
2019-06-06 21:52:38 +02:00
parent 40b079c8e1
commit 664c10359d

View File

@@ -36,13 +36,11 @@ impl CellWidget {
fn new(pos: CellPosition, header_text: &str) -> Self { fn new(pos: CellPosition, header_text: &str) -> Self {
let cell_src = include_str!("../res/cell.glade"); let cell_src = include_str!("../res/cell.glade");
let builder = gtk::Builder::new_from_string(cell_src); let builder = gtk::Builder::new_from_string(cell_src);
// Retrieve children
// Set up reactivity on buttons
let eventbox: gtk::EventBox = let eventbox: gtk::EventBox =
builder builder
.get_object("cell") .get_object("cell")
.unwrap(); .unwrap();
let header: gtk::Label = let header: gtk::Label =
builder builder
.get_object("header") .get_object("header")
@@ -53,34 +51,35 @@ impl CellWidget {
.get_object("position") .get_object("position")
.unwrap(); .unwrap();
position.set_text(&format!("{}x{}", pos.0, pos.1)); position.set_text(&format!("{}x{}", pos.0, pos.1));
// Drag-and-drop capacity
let desc_btn: gtk::Button = let desc_btn: gtk::Button =
builder builder
.get_object("desc_btn") .get_object("desc_btn")
.unwrap(); .unwrap();
desc_btn.set_visible(false); desc_btn.set_visible(false);
// The data to be send
let targets = vec![
gtk::TargetEntry::new("text/plain", gtk::TargetFlags::SAME_APP, 0)
];
eventbox.drag_source_set(
gdk::ModifierType::MODIFIER_MASK,
&targets,
gdk::DragAction::MOVE,
);
let cell = CellWidget { let cell = CellWidget {
eventbox, eventbox,
position, position,
header, header,
desc_btn desc_btn,
}; };
// Drag-and-drop capacity
// The data to be sent
let targets = vec![
gtk::TargetEntry::new("text/plain", gtk::TargetFlags::SAME_APP, 0)
];
// Acting as source
cell.eventbox.drag_source_set(
gdk::ModifierType::MODIFIER_MASK,
&targets,
gdk::DragAction::MOVE,
);
let h = cell.header.clone(); let h = cell.header.clone();
// Send data to the drop site // Send data to the drop site
cell.eventbox.connect_drag_data_get( cell.eventbox.connect_drag_data_get(
move |_,_,data,info,time| { move |_,_,data,info,time| {
println!("Send..."); println!("Send...");
// TODO: Refactoring, this is the inverse of 'placing',
// building a PawnData instead of destructuring it.
if let Some(to_send) = h.get_text() { if let Some(to_send) = h.get_text() {
data.set_text(&to_send); data.set_text(&to_send);
} }
@@ -94,7 +93,7 @@ impl CellWidget {
Self::set_content(&c, None); Self::set_content(&c, None);
} }
); );
// Acting as destination
cell.eventbox.drag_dest_set( cell.eventbox.drag_dest_set(
gtk::DestDefaults::ALL, gtk::DestDefaults::ALL,
&targets, &targets,