adds rustfmt config, formats current code
This commit is contained in:
1
rustfmt.toml
Normal file
1
rustfmt.toml
Normal file
@@ -0,0 +1 @@
|
||||
max_width = 89
|
||||
57
src/grid.rs
57
src/grid.rs
@@ -14,9 +14,7 @@ impl Grid {
|
||||
for i in 0..(size * size) {
|
||||
let x = i % size;
|
||||
let y = i / size;
|
||||
let cell = grid::Cell::new(
|
||||
CellPosition(x,y)
|
||||
);
|
||||
let cell = grid::Cell::new(CellPosition(x, y));
|
||||
cell.inner.connect_clicked(app_state.clone());
|
||||
inner.attach(cell.as_ref(), x, y, 1, 1);
|
||||
}
|
||||
@@ -37,24 +35,12 @@ impl CellWidget {
|
||||
let cell_src = include_str!("../res/cell.glade");
|
||||
let builder = gtk::Builder::new_from_string(cell_src);
|
||||
// Retrieve children
|
||||
let eventbox: gtk::EventBox =
|
||||
builder
|
||||
.get_object("cell")
|
||||
.unwrap();
|
||||
let header: gtk::Label =
|
||||
builder
|
||||
.get_object("header")
|
||||
.unwrap();
|
||||
let eventbox: gtk::EventBox = builder.get_object("cell").unwrap();
|
||||
let header: gtk::Label = builder.get_object("header").unwrap();
|
||||
header.set_text(header_text);
|
||||
let position: gtk::Label =
|
||||
builder
|
||||
.get_object("position")
|
||||
.unwrap();
|
||||
let position: gtk::Label = builder.get_object("position").unwrap();
|
||||
position.set_text(&format!("{}x{}", pos.0, pos.1));
|
||||
let desc_btn: gtk::Button =
|
||||
builder
|
||||
.get_object("desc_btn")
|
||||
.unwrap();
|
||||
let desc_btn: gtk::Button = builder.get_object("desc_btn").unwrap();
|
||||
desc_btn.set_visible(false);
|
||||
let cell = CellWidget {
|
||||
eventbox,
|
||||
@@ -64,9 +50,11 @@ impl CellWidget {
|
||||
};
|
||||
// Drag-and-drop capacity
|
||||
// The data to be sent
|
||||
let targets = vec![
|
||||
gtk::TargetEntry::new("text/plain", gtk::TargetFlags::SAME_APP, 0)
|
||||
];
|
||||
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,
|
||||
@@ -75,24 +63,21 @@ impl CellWidget {
|
||||
);
|
||||
let h = cell.header.clone();
|
||||
// Send data to the drop site
|
||||
cell.eventbox.connect_drag_data_get(
|
||||
move |_,_,data,info,time| {
|
||||
cell.eventbox
|
||||
.connect_drag_data_get(move |_, _, data, info, time| {
|
||||
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() {
|
||||
data.set_text(&to_send);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
let c = cell.clone();
|
||||
// Empty the cell on successfull move
|
||||
cell.eventbox.connect_drag_data_delete(
|
||||
move |w,drag| {
|
||||
cell.eventbox.connect_drag_data_delete(move |w, drag| {
|
||||
println!("Cleaning... {:#?}", (&drag.drag_drop_succeeded()));
|
||||
Self::set_content(&c, None);
|
||||
}
|
||||
);
|
||||
});
|
||||
// Acting as destination
|
||||
cell.eventbox.drag_dest_set(
|
||||
gtk::DestDefaults::ALL,
|
||||
@@ -101,8 +86,8 @@ impl CellWidget {
|
||||
);
|
||||
// Retrieve data from the source
|
||||
let c = cell.clone();
|
||||
cell.eventbox.connect_drag_data_received(
|
||||
move |w,_,_,_,data,_,_| {
|
||||
cell.eventbox
|
||||
.connect_drag_data_received(move |w, _, _, _, data, _, _| {
|
||||
// Check if cell is not already occupied
|
||||
if !(c.header.get_text().unwrap().as_str() == "") {
|
||||
// TODO: Find what to do to abort, since
|
||||
@@ -116,8 +101,7 @@ impl CellWidget {
|
||||
eprintln!("No data !");
|
||||
}
|
||||
};
|
||||
}
|
||||
);
|
||||
});
|
||||
cell
|
||||
}
|
||||
|
||||
@@ -136,8 +120,7 @@ impl CellWidget {
|
||||
|
||||
pub fn connect_clicked(&self, state: AppState) {
|
||||
let c = self.clone();
|
||||
self.eventbox
|
||||
.connect_button_press_event(move |_,_| {
|
||||
self.eventbox.connect_button_press_event(move |_, _| {
|
||||
let mut state = state.borrow_mut();
|
||||
if let Some(ref data) = state.pending.take() {
|
||||
println!("{:?}", data);
|
||||
@@ -164,7 +147,7 @@ impl Cell {
|
||||
fn new(position: CellPosition) -> Self {
|
||||
Cell {
|
||||
inner: CellWidget::new(position, ""),
|
||||
position
|
||||
position,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
31
src/main.rs
31
src/main.rs
@@ -1,13 +1,13 @@
|
||||
extern crate gtk;
|
||||
extern crate gio;
|
||||
extern crate gdk;
|
||||
extern crate gio;
|
||||
extern crate glib;
|
||||
extern crate gtk;
|
||||
|
||||
use std::cell::RefCell;
|
||||
use std::rc::Rc;
|
||||
|
||||
use gtk::prelude::*;
|
||||
use gio::prelude::*;
|
||||
use gtk::prelude::*;
|
||||
use std::env::args;
|
||||
use std::process;
|
||||
|
||||
@@ -40,15 +40,14 @@ struct App {
|
||||
state: AppState,
|
||||
}
|
||||
|
||||
|
||||
impl App {
|
||||
fn new<'a>() -> Result<Self, &'a str> {
|
||||
let app =
|
||||
App {
|
||||
let app = App {
|
||||
inner: gtk::Application::new(
|
||||
"home.local.PlayMat",
|
||||
gio::ApplicationFlags::FLAGS_NONE
|
||||
).expect("Failed to build Application"),
|
||||
gio::ApplicationFlags::FLAGS_NONE,
|
||||
)
|
||||
.expect("Failed to build Application"),
|
||||
state: Default::default(),
|
||||
};
|
||||
app.connect_all();
|
||||
@@ -58,15 +57,11 @@ impl App {
|
||||
fn connect_all(&self) {
|
||||
let app_state = self.state.clone();
|
||||
self.inner.connect_startup(|_| {});
|
||||
self.inner.connect_activate(
|
||||
move |app| {
|
||||
self.inner.connect_activate(move |app| {
|
||||
println!("Activate App");
|
||||
let main_src = include_str!("../res/main.glade");
|
||||
let builder = gtk::Builder::new_from_string(main_src);
|
||||
let win: gtk::ApplicationWindow =
|
||||
builder
|
||||
.get_object("app")
|
||||
.unwrap();
|
||||
let win: gtk::ApplicationWindow = builder.get_object("app").unwrap();
|
||||
win.set_application(app);
|
||||
// Set up a simple switch for the Pawn list panel
|
||||
let panel: gtk::Paned = builder.get_object("panel").unwrap();
|
||||
@@ -94,9 +89,7 @@ impl App {
|
||||
// * From pawn_list to cell : place pawn on dest cell
|
||||
// * From cell to cell : move pawn from source to dest cell
|
||||
let _grid = grid::Grid::init(grid, 10, app_state.clone());
|
||||
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
/// Creates a simple action and connects the given handler to its activate signal.
|
||||
@@ -119,13 +112,13 @@ impl App {
|
||||
fn main() {
|
||||
if gtk::init().is_err() {
|
||||
println!("Failed to initialize Gtk");
|
||||
return
|
||||
return;
|
||||
}
|
||||
let exit_code = match App::new() {
|
||||
Err(e) => {
|
||||
println!("Error !\n{}", e);
|
||||
1
|
||||
},
|
||||
}
|
||||
Ok(app) => app.run(&args().collect::<Vec<_>>()),
|
||||
};
|
||||
process::exit(exit_code);
|
||||
|
||||
25
src/pawn.rs
25
src/pawn.rs
@@ -1,4 +1,3 @@
|
||||
|
||||
use super::*;
|
||||
|
||||
/// A wrapper around gtk::ListBox for Pawns
|
||||
@@ -42,14 +41,14 @@ impl Pawn {
|
||||
let pawn_src = include_str!("../res/pawn.glade");
|
||||
let builder = gtk::Builder::new_from_string(pawn_src);
|
||||
let name = name.into();
|
||||
let label: gtk::Label =
|
||||
builder
|
||||
.get_object("name")
|
||||
.unwrap();
|
||||
let label: gtk::Label = builder.get_object("name").unwrap();
|
||||
label.set_text(&name);
|
||||
let widget: gtk::Box = builder.get_object("pawn").unwrap();
|
||||
Pawn {
|
||||
data: PawnData{ name, position: None, },
|
||||
data: PawnData {
|
||||
name,
|
||||
position: None,
|
||||
},
|
||||
widget,
|
||||
place_btn: builder.get_object("place_btn").unwrap(),
|
||||
stats_btn: builder.get_object("stats_btn").unwrap(),
|
||||
@@ -59,23 +58,17 @@ impl Pawn {
|
||||
pub fn connect_place(&self, state: AppState) {
|
||||
let name = self.data.name.clone();
|
||||
let data = self.data.clone();
|
||||
self.place_btn
|
||||
.connect_clicked(
|
||||
move |_| {
|
||||
self.place_btn.connect_clicked(move |_| {
|
||||
println!("Placing {}...", name);
|
||||
let mut state = state.0.borrow_mut();
|
||||
state.pending = Some(data.clone()); // ???
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
pub fn connect_stats(&self) {
|
||||
self.stats_btn
|
||||
.connect_clicked(
|
||||
move |_| {
|
||||
self.stats_btn.connect_clicked(move |_| {
|
||||
println!("Showing stats...");
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user