Split implementation into seperate crate
This commit is contained in:
parent
5165708a03
commit
401560d35e
12
Cargo.lock
generated
12
Cargo.lock
generated
@ -72,14 +72,22 @@ dependencies = [
|
||||
name = "board-builder"
|
||||
version = "1.0.0"
|
||||
dependencies = [
|
||||
"fltk",
|
||||
"image",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"state",
|
||||
"zip",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "board-builder-impl-fltk"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"board-builder",
|
||||
"fltk",
|
||||
"image",
|
||||
"state",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bumpalo"
|
||||
version = "3.9.1"
|
||||
|
11
Cargo.toml
11
Cargo.toml
@ -3,11 +3,14 @@ name = "board-builder"
|
||||
version = "1.0.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
[lib]
|
||||
crate-type = ["rlib", "cdylib"]
|
||||
|
||||
fltk = "1.3.6"
|
||||
state = "0.5.3"
|
||||
[dependencies]
|
||||
serde = { version = "1.0.136", features = ["derive"] }
|
||||
serde_json = "1.0.79"
|
||||
zip = "0.6.2"
|
||||
image = "0.24.2"
|
||||
image = "0.24.2"
|
||||
|
||||
[workspace]
|
||||
members = ["board-builder-impl-fltk"]
|
12
board-builder-impl-fltk/Cargo.toml
Normal file
12
board-builder-impl-fltk/Cargo.toml
Normal file
@ -0,0 +1,12 @@
|
||||
[package]
|
||||
name = "board-builder-impl-fltk"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
board-builder = { path = "../" }
|
||||
fltk = "1.3.6"
|
||||
state = "0.5.3"
|
||||
image = "0.24.2"
|
@ -11,9 +11,8 @@ use state::Storage;
|
||||
|
||||
use std::sync::Mutex;
|
||||
|
||||
mod board;
|
||||
use board::Board;
|
||||
use board::{ encode_png, write_board_to_file, read_board_from_file, CoordTransformer };
|
||||
use board_builder::Board;
|
||||
use board_builder::{ encode_png, write_board_to_file, read_board_from_file, CoordTransformer };
|
||||
|
||||
//////////////////// Global State ////////////////////
|
||||
// Don't @ me...
|
||||
@ -133,9 +132,11 @@ mod dispatch {
|
||||
}
|
||||
}
|
||||
|
||||
impl CoordTransformer<i32> for frame::Frame {
|
||||
fn origin(&self) -> (i32, i32) { (self.x(), self.y()) }
|
||||
fn extremes(&self) -> (i32, i32) { (self.x()+self.w(), self.y()+self.h()) }
|
||||
struct FrameView<'a>(&'a frame::Frame);
|
||||
|
||||
impl<'a> CoordTransformer<i32> for FrameView<'a> {
|
||||
fn origin(&self) -> (i32, i32) { (self.0.x(), self.0.y()) }
|
||||
fn extremes(&self) -> (i32, i32) { (self.0.x()+self.0.w(), self.0.y()+self.0.h()) }
|
||||
}
|
||||
|
||||
//////////////////// App State ////////////////////
|
||||
@ -249,6 +250,7 @@ fn main() {
|
||||
}
|
||||
// Nodes
|
||||
let board = &state.board;
|
||||
let f = FrameView(f);
|
||||
for (&id, node) in &board.nodes {
|
||||
// Draw the node
|
||||
let (x, y) = f.from_coords(node.x, node.y);
|
||||
@ -270,6 +272,7 @@ fn main() {
|
||||
frame.handle(move |f, e| {
|
||||
match e {
|
||||
Event::Push => {
|
||||
let f = FrameView(f);
|
||||
let edit_mode = STATE.get().lock().unwrap().edit_mode;
|
||||
let coords = f.to_coords(app::event_x(), app::event_y());
|
||||
|
Loading…
Reference in New Issue
Block a user