adds comments
This commit is contained in:
33
src/grid.rs
33
src/grid.rs
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user