parsing: Remove bounds which weren't used anyway
This commit is contained in:
@ -1,18 +1,11 @@
|
||||
# Maintained by: Mark Müller <markmueller86@gmail.com>
|
||||
---
|
||||
bounds: { x: 0, y: 1, width: 360, height: 208 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 35.33, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 52.67, height: 52 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 99.67, height: 52 }
|
||||
special:
|
||||
bounds: { x: 0, y: 0, width: 35.33, height: 52 }
|
||||
default: { width: 35.33, height: 52 }
|
||||
altline: { width: 52.67, height: 52 }
|
||||
wide: { width: 62, height: 52 }
|
||||
spaceline: { width: 99.67, height: 52 }
|
||||
special: { width: 35.33, height: 52 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -1,18 +1,11 @@
|
||||
# Maintained by: Mark Müller <markmueller86@gmail.com>
|
||||
---
|
||||
bounds: { x: 0, y: 1, width: 540, height: 168 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 48, height: 42 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 81, height: 42 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 108, height: 42 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 216, height: 42 }
|
||||
special:
|
||||
bounds: { x: 0, y: 0, width: 48, height: 42 }
|
||||
default: { width: 48, height: 42 }
|
||||
altline: { width: 81, height: 42 }
|
||||
wide: { width: 108, height: 42 }
|
||||
spaceline: { width: 216, height: 42 }
|
||||
special: { width: 48, height: 42 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -2,19 +2,12 @@
|
||||
# University of the Aegean, Department of Mathematics, atsol@aegean.gr
|
||||
# Sep 2019
|
||||
---
|
||||
bounds: { x: 0, y: 0.33, width: 360, height: 210 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 32, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
outline7:
|
||||
bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 150.5853, height: 52 }
|
||||
default: { width: 32, height: 52 }
|
||||
altline: { width: 48.39024, height: 52 }
|
||||
wide: { width: 62, height: 52 }
|
||||
outline7: { width: 88.97561, height: 52 }
|
||||
spaceline: { width: 150.5853, height: 52 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -1,17 +1,10 @@
|
||||
---
|
||||
bounds: { x: 0, y: 1, width: 360, height: 210 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 35.33, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 52.67, height: 52 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 99.67, height: 52 }
|
||||
special:
|
||||
bounds: { x: 0, y: 0, width: 44, height: 52 }
|
||||
default: { width: 35.33, height: 52 }
|
||||
altline: { width: 52.67, height: 52 }
|
||||
wide: { width: 62, height: 52 }
|
||||
spaceline: { width: 99.67, height: 52 }
|
||||
special: { width: 44, height: 52 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -1,17 +1,10 @@
|
||||
---
|
||||
bounds: { x: 0, y: 0.33, width: 360, height: 210 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 32, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
outline7:
|
||||
bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 150.5853, height: 52 }
|
||||
default: { width: 32, height: 52 }
|
||||
altline: { width: 48.39024, height: 52 }
|
||||
wide: { width: 62, height: 52 }
|
||||
outline7: { width: 88.97561, height: 52 }
|
||||
spaceline: { width: 150.5853, height: 52 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -1,19 +1,12 @@
|
||||
# Italian layout created by Antonio Pandolfo
|
||||
# 03 october 2019
|
||||
---
|
||||
bounds: { x: 0, y: 1, width: 360, height: 210 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 35.33, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 52.67, height: 52 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 99.67, height: 52 }
|
||||
special:
|
||||
bounds: { x: 0, y: 0, width: 44, height: 52 }
|
||||
default: { width: 35.33, height: 52 }
|
||||
altline: { width: 52.67, height: 52 }
|
||||
wide: { width: 62, height: 52 }
|
||||
spaceline: { width: 99.67, height: 52 }
|
||||
special: { width: 44, height: 52 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -1,18 +1,11 @@
|
||||
# Maintained by: Mark Müller <markmueller86@gmail.com>
|
||||
---
|
||||
bounds: { x: 0, y: 1, width: 360, height: 208 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
default-wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
special:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
default: { width: 62, height: 52 }
|
||||
default-wide: { width: 62, height: 52 }
|
||||
altline: { width: 62, height: 52 }
|
||||
wide: { width: 62, height: 52 }
|
||||
special: { width: 62, height: 52 }
|
||||
|
||||
views:
|
||||
base: # hiragana
|
||||
|
||||
@ -1,18 +1,11 @@
|
||||
# Maintained by: Mark Müller <markmueller86@gmail.com>
|
||||
---
|
||||
bounds: { x: 0, y: 1, width: 540, height: 168 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 42 }
|
||||
default-wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 42 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 42 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 42 }
|
||||
special:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 42 }
|
||||
default: { width: 62, height: 42 }
|
||||
default-wide: { width: 62, height: 42 }
|
||||
altline: { width: 62, height: 42 }
|
||||
wide: { width: 62, height: 42 }
|
||||
special: { width: 62, height: 42 }
|
||||
|
||||
views:
|
||||
base: # hiragana
|
||||
|
||||
@ -1,17 +1,10 @@
|
||||
---
|
||||
bounds: { x: 0, y: 0.33, width: 360, height: 210 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 32, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
outline7:
|
||||
bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 150.5853, height: 52 }
|
||||
default: { width: 32, height: 52 }
|
||||
altline: { width: 48.39024, height: 52 }
|
||||
wide: { width: 62, height: 52 }
|
||||
outline7: { width: 88.97561, height: 52 }
|
||||
spaceline: { width: 150.5853, height: 52 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -1,15 +1,9 @@
|
||||
---
|
||||
bounds: { x: 0, y: 0.33, width: 360, height: 210 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 37.46341, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
|
||||
outline7:
|
||||
bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 120.5853, height: 52 }
|
||||
default: { width: 37.46341, height: 52 }
|
||||
altline: { width: 48.39024, height: 52 }
|
||||
outline7: { width: 88.97561, height: 52 }
|
||||
spaceline: { width: 120.5853, height: 52 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -1,17 +1,10 @@
|
||||
---
|
||||
bounds: { x: 0, y: 0.33, width: 360, height: 210 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 32, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 48.39024, height: 52 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
outline7:
|
||||
bounds: { x: 0, y: 0, width: 88.97561, height: 52 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 150.5853, height: 52 }
|
||||
default: { width: 32, height: 52 }
|
||||
altline: { width: 48.39024, height: 52 }
|
||||
wide: { width: 62, height: 52 }
|
||||
outline7: { width: 88.97561, height: 52 }
|
||||
spaceline: { width: 150.5853, height: 52 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -1,17 +1,10 @@
|
||||
---
|
||||
bounds: { x: 0, y: 1, width: 360, height: 208 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 35.33, height: 52 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 52.67, height: 52 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 62, height: 52 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 142, height: 52 }
|
||||
special:
|
||||
bounds: { x: 0, y: 0, width: 44, height: 52 }
|
||||
default: { width: 35.33, height: 52 }
|
||||
altline: { width: 52.67, height: 52 }
|
||||
wide: { width: 62, height: 52 }
|
||||
spaceline: { width: 142, height: 52 }
|
||||
special: { width: 44, height: 52 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
@ -1,17 +1,10 @@
|
||||
---
|
||||
bounds: { x: 0, y: 1, width: 540, height: 168 }
|
||||
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 54, height: 42 }
|
||||
altline:
|
||||
bounds: { x: 0, y: 0, width: 81, height: 42 }
|
||||
wide:
|
||||
bounds: { x: 0, y: 0, width: 108, height: 42 }
|
||||
spaceline:
|
||||
bounds: { x: 0, y: 0, width: 216, height: 42 }
|
||||
special:
|
||||
bounds: { x: 0, y: 0, width: 54, height: 42 }
|
||||
default: { width: 54, height: 42 }
|
||||
altline: { width: 81, height: 42 }
|
||||
wide: { width: 108, height: 42 }
|
||||
spaceline: { width: 216, height: 42 }
|
||||
special: { width: 54, height: 42 }
|
||||
|
||||
views:
|
||||
base:
|
||||
|
||||
45
src/data.rs
45
src/data.rs
@ -1,5 +1,7 @@
|
||||
/**! The parsing of the data files for layouts */
|
||||
|
||||
// TODO: find a nice way to make sure non-positive sizes don't break layouts
|
||||
|
||||
use std::cell::RefCell;
|
||||
use std::collections::{ HashMap, HashSet };
|
||||
use std::env;
|
||||
@ -216,21 +218,20 @@ fn load_layout_data_with_fallback(
|
||||
#[derive(Debug, Deserialize, PartialEq)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct Layout {
|
||||
/// FIXME: deprecate in favor of margins
|
||||
bounds: Bounds,
|
||||
#[serde(default)]
|
||||
margins: Margins,
|
||||
views: HashMap<String, Vec<ButtonIds>>,
|
||||
#[serde(default)]
|
||||
buttons: HashMap<String, ButtonMeta>,
|
||||
outlines: HashMap<String, Outline>
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq)]
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq, Default)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
struct Bounds {
|
||||
x: f64,
|
||||
y: f64,
|
||||
width: f64,
|
||||
height: f64,
|
||||
struct Margins {
|
||||
top: f64,
|
||||
bottom: f64,
|
||||
side: f64,
|
||||
}
|
||||
|
||||
/// Buttons are embedded in a single string
|
||||
@ -271,8 +272,8 @@ enum Action {
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
struct Outline {
|
||||
/// FIXME: replace with Size
|
||||
bounds: Bounds,
|
||||
width: f64,
|
||||
height: f64,
|
||||
}
|
||||
|
||||
/// Errors encountered loading the layout into yaml
|
||||
@ -460,10 +461,10 @@ impl Layout {
|
||||
},
|
||||
// FIXME: use a dedicated field
|
||||
margins: layout::Margins {
|
||||
top: self.bounds.x,
|
||||
left: self.bounds.y,
|
||||
bottom: 0.0,
|
||||
right: self.bounds.y,
|
||||
top: self.margins.top,
|
||||
left: self.margins.side,
|
||||
bottom: self.margins.bottom,
|
||||
right: self.margins.side,
|
||||
},
|
||||
}),
|
||||
warning_handler,
|
||||
@ -649,9 +650,7 @@ fn create_button<H: WarningHandler>(
|
||||
warning_handler.handle(
|
||||
&format!("No default outline defined! Using 1x1!")
|
||||
);
|
||||
Outline {
|
||||
bounds: Bounds { x: 0f64, y: 0f64, width: 1f64, height: 1f64 },
|
||||
}
|
||||
Outline { width: 1f64, height: 1f64 }
|
||||
});
|
||||
|
||||
layout::Button {
|
||||
@ -659,8 +658,8 @@ fn create_button<H: WarningHandler>(
|
||||
outline_name: CString::new(outline_name).expect("Bad outline"),
|
||||
// TODO: do layout before creating buttons
|
||||
size: layout::Size {
|
||||
width: outline.bounds.width,
|
||||
height: outline.bounds.height,
|
||||
width: outline.width,
|
||||
height: outline.height,
|
||||
},
|
||||
label: label,
|
||||
state: state,
|
||||
@ -686,7 +685,7 @@ mod tests {
|
||||
assert_eq!(
|
||||
Layout::from_file(PathBuf::from("tests/layout.yaml")).unwrap(),
|
||||
Layout {
|
||||
bounds: Bounds { x: 0f64, y: 0f64, width: 0f64, height: 0f64 },
|
||||
margins: Margins { top: 0f64, bottom: 0f64, side: 0f64 },
|
||||
views: hashmap!(
|
||||
"base".into() => vec!("test".into()),
|
||||
),
|
||||
@ -701,11 +700,7 @@ mod tests {
|
||||
}
|
||||
},
|
||||
outlines: hashmap!{
|
||||
"default".into() => Outline {
|
||||
bounds: Bounds {
|
||||
x: 0f64, y: 0f64, width: 0f64, height: 0f64
|
||||
},
|
||||
}
|
||||
"default".into() => Outline { width: 0f64, height: 0f64 },
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
@ -1,15 +1,9 @@
|
||||
---
|
||||
bounds:
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
height: 0
|
||||
views:
|
||||
base:
|
||||
- "test"
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 0, height: 0 }
|
||||
default: { width: 0, height: 0 }
|
||||
|
||||
buttons:
|
||||
test:
|
||||
|
||||
@ -1,11 +1,5 @@
|
||||
---
|
||||
# missing views
|
||||
bounds:
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
height: 0
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 0, height: 0 }
|
||||
default: { width: 0, height: 0 }
|
||||
|
||||
|
||||
@ -1,15 +1,9 @@
|
||||
---
|
||||
# extra field
|
||||
bounds:
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
height: 0
|
||||
views:
|
||||
base:
|
||||
- "test"
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 0, height: 0 }
|
||||
default: { width: 0, height: 0 }
|
||||
|
||||
bad_field: false
|
||||
|
||||
@ -1,16 +1,10 @@
|
||||
---
|
||||
# punctuation
|
||||
bounds:
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
height: 0
|
||||
views:
|
||||
base:
|
||||
- "."
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 0, height: 0 }
|
||||
default: { width: 0, height: 0 }
|
||||
|
||||
buttons:
|
||||
".":
|
||||
|
||||
@ -1,16 +1,10 @@
|
||||
---
|
||||
# punctuation
|
||||
bounds:
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
height: 0
|
||||
views:
|
||||
base:
|
||||
- "å"
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 0, height: 0 }
|
||||
default: { width: 0, height: 0 }
|
||||
|
||||
buttons:
|
||||
å:
|
||||
|
||||
@ -1,14 +1,8 @@
|
||||
---
|
||||
# punctuation
|
||||
bounds:
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
height: 0
|
||||
views:
|
||||
base:
|
||||
- "か゚" # 2 codepoints
|
||||
outlines:
|
||||
default:
|
||||
bounds: { x: 0, y: 0, width: 0, height: 0 }
|
||||
default: { width: 0, height: 0 }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user