rog-aura: adjustment of layouts and key sizes

This commit is contained in:
Luke D. Jones
2022-07-29 15:56:03 +12:00
parent 7abad979c8
commit 6d97ef13a1
12 changed files with 531 additions and 427 deletions

View File

@@ -5,6 +5,7 @@ matches = [
locale = "US"
[[rows]]
height = 0.8
row = [
'NormalSpacer',
'FuncSpacer',
@@ -16,6 +17,7 @@ row = [
]
[[rows]]
height = 0.8
row = [
'Esc',
'FuncSpacer',
@@ -38,6 +40,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tilde',
'N1',
@@ -58,6 +61,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tab',
'Q',
@@ -78,6 +82,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Caps',
'A',
@@ -97,6 +102,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'LShift',
'Z',
@@ -115,6 +121,7 @@ row = [
]
[[rows]]
height = 1.2
row = [
'LCtrl',
'LFn',
@@ -132,6 +139,7 @@ row = [
]
[[rows]]
height = 0.8
row = [
'ArrowSpacer',
'ArrowSpacer',

View File

@@ -1,11 +1,11 @@
matches = [
'G533',
'GU502',
]
locale = "US"
[[rows]]
height = 0.8
row = [
'NormalSpacer',
'FuncSpacer',
@@ -17,6 +17,7 @@ row = [
]
[[rows]]
height = 0.8
row = [
'Esc',
'FuncSpacer',
@@ -38,6 +39,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tilde',
'N1',
@@ -57,6 +59,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tab',
'Q',
@@ -76,6 +79,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Caps',
'A',
@@ -94,6 +98,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'LShift',
'Z',
@@ -112,6 +117,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'LCtrlMed',
'LFn',

View File

@@ -10,6 +10,7 @@ matches = [
locale = "US"
[[rows]]
height = 0.8
row = [
'NormalSpacer',
'FuncSpacer',
@@ -20,6 +21,7 @@ row = [
]
[[rows]]
height = 0.8
row = [
'Esc',
'FuncSpacer',
@@ -40,6 +42,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tilde',
'N1',
@@ -58,6 +61,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tab',
'Q',
@@ -76,6 +80,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Caps',
'A',
@@ -93,6 +98,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'LShift',
'Z',
@@ -109,6 +115,7 @@ row = [
]
[[rows]]
height = 1.2
row = [
'LCtrl',
'LFn',
@@ -124,6 +131,7 @@ row = [
]
[[rows]]
height = 0.8
row = [
'FuncSpacer',
'FuncSpacer',

View File

@@ -5,6 +5,7 @@ matches = [
locale = "US"
[[rows]]
height = 0.8
row = [
'NormalSpacer',
'FuncSpacer',
@@ -15,6 +16,7 @@ row = [
]
[[rows]]
height = 0.8
row = [
'Esc',
'FuncSpacer',
@@ -39,6 +41,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tilde',
'N1',
@@ -61,6 +64,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tab',
'Q',
@@ -83,6 +87,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Caps',
'A',
@@ -104,6 +109,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'LShift',
'Z',
@@ -124,8 +130,9 @@ row = [
]
[[rows]]
height = 1.0
row = [
'LCtrlMed',
'LCtrl',
'LFn',
'Meta',
'LAlt',
@@ -141,6 +148,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'FuncSpacer',
'FuncSpacer',

View File

@@ -6,6 +6,7 @@ matches = [
locale = "US"
[[rows]]
height = 0.8
row = [
'NormalSpacer',
'FuncSpacer',
@@ -16,6 +17,7 @@ row = [
]
[[rows]]
height = 0.8
row = [
'Esc',
'FuncSpacer',
@@ -38,6 +40,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tilde',
'N1',
@@ -60,6 +63,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Tab',
'Q',
@@ -80,6 +84,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'Caps',
'A',
@@ -101,6 +106,7 @@ row = [
]
[[rows]]
height = 1.0
row = [
'LShift',
'Z',
@@ -121,6 +127,7 @@ row = [
]
[[rows]]
height = 1.2
row = [
'LCtrl',
'LFn',
@@ -142,6 +149,7 @@ row = [
]
[[rows]]
height = 0.8
row = [
'FuncSpacer',
'FuncSpacer',

View File

@@ -193,7 +193,7 @@ pub enum KeyShape {
}
impl KeyShape {
pub const fn ux(&self) -> f32 {
pub const fn width(&self) -> f32 {
match self {
Self::Tilde => 0.8,
Self::Normal => 1.0,
@@ -208,7 +208,7 @@ impl KeyShape {
Self::LShift => 2.0,
Self::LShift3 => 0.67,
Self::RShift => 2.8,
Self::RshiftSmall => 1.7,
Self::RshiftSmall => 1.8,
Self::RShift3 => 0.93,
Self::Return => 2.2,
Self::Return3 => 0.7333,
@@ -223,17 +223,6 @@ impl KeyShape {
Self::RowEndSpacer => 0.1,
}
}
pub const fn uy(&self) -> f32 {
match self {
Self::Func => 0.8,
Self::RowEndSpacer => 0.1,
Self::FuncBlank => 0.8,
Self::FuncSpacer => 0.8,
Self::Arrow | Self::ArrowBlank | Self::ArrowSpacer => 0.6,
Self::ArrowSplit | Self::ArrowSplitBlank | Self::ArrowSplitSpacer => 5.0,
_ => 1.0,
}
}
/// A blank is used to space keys out in GUI's and can be used or ignored
/// depednign on the per-key effect

View File

@@ -8,138 +8,162 @@ impl KeyLayout {
matches: vec!["G513".into()],
locale: "US".to_string(),
rows: vec![
KeyRow::new(vec![
Key::NormalSpacer,
Key::FuncSpacer,
Key::VolDown,
Key::VolUp,
Key::MicMute,
Key::Fan,
Key::Rog,
]),
KeyRow::new(vec![
Key::Esc,
Key::FuncSpacer,
Key::F1,
Key::F2,
Key::F3,
Key::F4,
Key::FuncSpacer, // not sure which key to put here
Key::F5,
Key::F6,
Key::F7,
Key::F8,
Key::FuncSpacer,
Key::F9,
Key::F10,
Key::F11,
Key::F12,
Key::RowEndSpacer,
Key::Del,
]),
KeyRow::new(vec![
Key::Tilde,
Key::N1,
Key::N2,
Key::N3,
Key::N4,
Key::N5,
Key::N6,
Key::N7,
Key::N8,
Key::N9,
Key::N0,
Key::Hyphen,
Key::Equals,
Key::BkSpc,
Key::RowEndSpacer,
Key::Home,
]),
KeyRow::new(vec![
Key::Tab,
Key::Q,
Key::W,
Key::E,
Key::R,
Key::T,
Key::Y,
Key::U,
Key::I,
Key::O,
Key::P,
Key::LBracket,
Key::RBracket,
Key::BackSlash,
Key::RowEndSpacer,
Key::PgUp,
]),
KeyRow::new(vec![
Key::Caps,
Key::A,
Key::S,
Key::D,
Key::F,
Key::G,
Key::H,
Key::J,
Key::K,
Key::L,
Key::SemiColon,
Key::Quote,
Key::Return,
Key::RowEndSpacer,
Key::PgDn,
]),
KeyRow::new(vec![
Key::LShift,
Key::Z,
Key::X,
Key::C,
Key::V,
Key::B,
Key::N,
Key::M,
Key::Comma,
Key::Period,
Key::FwdSlash,
Key::Rshift,
Key::RowEndSpacer,
Key::End,
]),
KeyRow::new(vec![
Key::LCtrl,
Key::LFn,
Key::Meta,
Key::LAlt,
Key::Space,
Key::RAlt,
Key::PrtSc,
Key::RCtrl,
Key::ArrowSpacer,
Key::Up,
Key::ArrowSpacer,
Key::RowEndSpacer,
Key::RFn,
]),
KeyRow::new(vec![
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::Left,
Key::Down,
Key::Right,
Key::ArrowSpacer,
]),
KeyRow::new(
0.8,
vec![
Key::NormalSpacer,
Key::FuncSpacer,
Key::VolDown,
Key::VolUp,
Key::MicMute,
Key::Fan,
Key::Rog,
],
),
KeyRow::new(
0.8,
vec![
Key::Esc,
Key::FuncSpacer,
Key::F1,
Key::F2,
Key::F3,
Key::F4,
Key::FuncSpacer, // not sure which key to put here
Key::F5,
Key::F6,
Key::F7,
Key::F8,
Key::FuncSpacer,
Key::F9,
Key::F10,
Key::F11,
Key::F12,
Key::RowEndSpacer,
Key::Del,
],
),
KeyRow::new(
1.0,
vec![
Key::Tilde,
Key::N1,
Key::N2,
Key::N3,
Key::N4,
Key::N5,
Key::N6,
Key::N7,
Key::N8,
Key::N9,
Key::N0,
Key::Hyphen,
Key::Equals,
Key::BkSpc,
Key::RowEndSpacer,
Key::Home,
],
),
KeyRow::new(
1.0,
vec![
Key::Tab,
Key::Q,
Key::W,
Key::E,
Key::R,
Key::T,
Key::Y,
Key::U,
Key::I,
Key::O,
Key::P,
Key::LBracket,
Key::RBracket,
Key::BackSlash,
Key::RowEndSpacer,
Key::PgUp,
],
),
KeyRow::new(
1.0,
vec![
Key::Caps,
Key::A,
Key::S,
Key::D,
Key::F,
Key::G,
Key::H,
Key::J,
Key::K,
Key::L,
Key::SemiColon,
Key::Quote,
Key::Return,
Key::RowEndSpacer,
Key::PgDn,
],
),
KeyRow::new(
1.0,
vec![
Key::LShift,
Key::Z,
Key::X,
Key::C,
Key::V,
Key::B,
Key::N,
Key::M,
Key::Comma,
Key::Period,
Key::FwdSlash,
Key::Rshift,
Key::RowEndSpacer,
Key::End,
],
),
KeyRow::new(
1.0,
vec![
Key::LCtrl,
Key::LFn,
Key::Meta,
Key::LAlt,
Key::Space,
Key::RAlt,
Key::PrtSc,
Key::RCtrl,
Key::ArrowSpacer,
Key::Up,
Key::ArrowSpacer,
Key::RowEndSpacer,
Key::RFn,
],
),
KeyRow::new(
1.0,
vec![
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::Left,
Key::Down,
Key::Right,
Key::ArrowSpacer,
],
),
],
}
}

View File

@@ -7,125 +7,149 @@ impl KeyLayout {
matches: vec!["GA401".into(), "GA402".into()],
locale: "US".to_string(),
rows: vec![
KeyRow::new(vec![
Key::NormalSpacer,
Key::FuncSpacer,
Key::VolDown,
Key::VolUp,
Key::MicMute,
Key::Rog,
]),
KeyRow::new(vec![
Key::Esc,
Key::FuncSpacer,
Key::F1,
Key::F2,
Key::F3,
Key::F4,
Key::FuncSpacer, // not sure which key to put here
Key::F5,
Key::F6,
Key::F7,
Key::F8,
Key::FuncSpacer,
Key::F9,
Key::F10,
Key::F11,
Key::F12,
]),
KeyRow::new(vec![
Key::Tilde,
Key::N1,
Key::N2,
Key::N3,
Key::N4,
Key::N5,
Key::N6,
Key::N7,
Key::N8,
Key::N9,
Key::N0,
Key::Hyphen,
Key::Equals,
Key::BkSpc,
]),
KeyRow::new(vec![
Key::Tab,
Key::Q,
Key::W,
Key::E,
Key::R,
Key::T,
Key::Y,
Key::U,
Key::I,
Key::O,
Key::P,
Key::LBracket,
Key::RBracket,
Key::BackSlash,
]),
KeyRow::new(vec![
Key::Caps,
Key::A,
Key::S,
Key::D,
Key::F,
Key::G,
Key::H,
Key::J,
Key::K,
Key::L,
Key::SemiColon,
Key::Quote,
Key::Return,
]),
KeyRow::new(vec![
Key::LShift,
Key::Z,
Key::X,
Key::C,
Key::V,
Key::B,
Key::N,
Key::M,
Key::Comma,
Key::Period,
Key::FwdSlash,
Key::Rshift,
]),
KeyRow::new(vec![
Key::LCtrl,
Key::LFn,
Key::Meta,
Key::LAlt,
Key::Space,
Key::RAlt,
Key::PrtSc,
Key::RCtrl,
Key::ArrowSpacer,
Key::Up,
Key::ArrowSpacer,
]),
KeyRow::new(vec![
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::Left,
Key::Down,
Key::Right,
Key::ArrowSpacer,
]),
KeyRow::new(
0.8,
vec![
Key::NormalSpacer,
Key::FuncSpacer,
Key::VolDown,
Key::VolUp,
Key::MicMute,
Key::Rog,
],
),
KeyRow::new(
0.8,
vec![
Key::Esc,
Key::FuncSpacer,
Key::F1,
Key::F2,
Key::F3,
Key::F4,
Key::FuncSpacer, // not sure which key to put here
Key::F5,
Key::F6,
Key::F7,
Key::F8,
Key::FuncSpacer,
Key::F9,
Key::F10,
Key::F11,
Key::F12,
],
),
KeyRow::new(
1.0,
vec![
Key::Tilde,
Key::N1,
Key::N2,
Key::N3,
Key::N4,
Key::N5,
Key::N6,
Key::N7,
Key::N8,
Key::N9,
Key::N0,
Key::Hyphen,
Key::Equals,
Key::BkSpc,
],
),
KeyRow::new(
1.0,
vec![
Key::Tab,
Key::Q,
Key::W,
Key::E,
Key::R,
Key::T,
Key::Y,
Key::U,
Key::I,
Key::O,
Key::P,
Key::LBracket,
Key::RBracket,
Key::BackSlash,
],
),
KeyRow::new(
1.0,
vec![
Key::Caps,
Key::A,
Key::S,
Key::D,
Key::F,
Key::G,
Key::H,
Key::J,
Key::K,
Key::L,
Key::SemiColon,
Key::Quote,
Key::Return,
],
),
KeyRow::new(
1.0,
vec![
Key::LShift,
Key::Z,
Key::X,
Key::C,
Key::V,
Key::B,
Key::N,
Key::M,
Key::Comma,
Key::Period,
Key::FwdSlash,
Key::Rshift,
],
),
KeyRow::new(
1.0,
vec![
Key::LCtrl,
Key::LFn,
Key::Meta,
Key::LAlt,
Key::Space,
Key::RAlt,
Key::PrtSc,
Key::RCtrl,
Key::ArrowSpacer,
Key::Up,
Key::ArrowSpacer,
],
),
KeyRow::new(
1.2,
vec![
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::Left,
Key::Down,
Key::Right,
Key::ArrowSpacer,
],
),
],
}
}

View File

@@ -7,147 +7,171 @@ impl KeyLayout {
matches: vec!["GX502".into(), "GU502".into()],
locale: "US".to_string(),
rows: vec![
KeyRow::new(vec![
Key::NormalSpacer,
Key::FuncSpacer,
Key::VolDown,
Key::VolUp,
Key::MicMute,
Key::Rog,
]),
KeyRow::new(vec![
Key::Esc,
Key::FuncSpacer,
Key::F1,
Key::F2,
Key::F3,
Key::F4,
Key::FuncSpacer, // not sure which key to put here
Key::F5,
Key::F6,
Key::F7,
Key::F8,
Key::FuncSpacer,
Key::F9,
Key::F10,
Key::F11,
Key::F12,
Key::RowEndSpacer,
Key::Del,
]),
KeyRow::new(vec![
Key::Tilde,
Key::N1,
Key::N2,
Key::N3,
Key::N4,
Key::N5,
Key::N6,
Key::N7,
Key::N8,
Key::N9,
Key::N0,
Key::Hyphen,
Key::Equals,
Key::BkSpc3_1,
Key::BkSpc3_2,
Key::BkSpc3_3,
Key::RowEndSpacer,
Key::Home,
]),
KeyRow::new(vec![
Key::Tab,
Key::Q,
Key::W,
Key::E,
Key::R,
Key::T,
Key::Y,
Key::U,
Key::I,
Key::O,
Key::P,
Key::LBracket,
Key::RBracket,
Key::BackSlash,
Key::RowEndSpacer,
Key::PgUp,
]),
KeyRow::new(vec![
Key::Caps,
Key::A,
Key::S,
Key::D,
Key::F,
Key::G,
Key::H,
Key::J,
Key::K,
Key::L,
Key::SemiColon,
Key::Quote,
Key::Return3_1,
Key::Return3_2,
Key::Return3_3,
Key::RowEndSpacer,
Key::PgDn,
]),
KeyRow::new(vec![
Key::LShift,
Key::Z,
Key::X,
Key::C,
Key::V,
Key::B,
Key::N,
Key::M,
Key::Comma,
Key::Period,
Key::FwdSlash,
Key::Rshift3_1,
Key::Rshift3_2,
Key::Rshift3_3,
Key::RowEndSpacer,
Key::End,
]),
KeyRow::new(vec![
Key::LCtrl,
Key::LFn,
Key::Meta,
Key::LAlt,
Key::Space5_1,
Key::Space5_2,
Key::Space5_3,
Key::Space5_4,
Key::Space5_5,
Key::RAlt,
Key::PrtSc,
Key::RCtrl,
Key::ArrowSpacer,
Key::Up,
Key::ArrowSpacer,
Key::RowEndSpacer,
Key::RFn,
]),
KeyRow::new(vec![
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::Left,
Key::Down,
Key::Right,
Key::ArrowSpacer,
]),
KeyRow::new(
0.8,
vec![
Key::NormalSpacer,
Key::FuncSpacer,
Key::VolDown,
Key::VolUp,
Key::MicMute,
Key::Rog,
],
),
KeyRow::new(
0.8,
vec![
Key::Esc,
Key::FuncSpacer,
Key::F1,
Key::F2,
Key::F3,
Key::F4,
Key::FuncSpacer, // not sure which key to put here
Key::F5,
Key::F6,
Key::F7,
Key::F8,
Key::FuncSpacer,
Key::F9,
Key::F10,
Key::F11,
Key::F12,
Key::RowEndSpacer,
Key::Del,
],
),
KeyRow::new(
1.0,
vec![
Key::Tilde,
Key::N1,
Key::N2,
Key::N3,
Key::N4,
Key::N5,
Key::N6,
Key::N7,
Key::N8,
Key::N9,
Key::N0,
Key::Hyphen,
Key::Equals,
Key::BkSpc3_1,
Key::BkSpc3_2,
Key::BkSpc3_3,
Key::RowEndSpacer,
Key::Home,
],
),
KeyRow::new(
1.0,
vec![
Key::Tab,
Key::Q,
Key::W,
Key::E,
Key::R,
Key::T,
Key::Y,
Key::U,
Key::I,
Key::O,
Key::P,
Key::LBracket,
Key::RBracket,
Key::BackSlash,
Key::RowEndSpacer,
Key::PgUp,
],
),
KeyRow::new(
1.0,
vec![
Key::Caps,
Key::A,
Key::S,
Key::D,
Key::F,
Key::G,
Key::H,
Key::J,
Key::K,
Key::L,
Key::SemiColon,
Key::Quote,
Key::Return3_1,
Key::Return3_2,
Key::Return3_3,
Key::RowEndSpacer,
Key::PgDn,
],
),
KeyRow::new(
1.0,
vec![
Key::LShift,
Key::Z,
Key::X,
Key::C,
Key::V,
Key::B,
Key::N,
Key::M,
Key::Comma,
Key::Period,
Key::FwdSlash,
Key::Rshift3_1,
Key::Rshift3_2,
Key::Rshift3_3,
Key::RowEndSpacer,
Key::End,
],
),
KeyRow::new(
1.0,
vec![
Key::LCtrl,
Key::LFn,
Key::Meta,
Key::LAlt,
Key::Space5_1,
Key::Space5_2,
Key::Space5_3,
Key::Space5_4,
Key::Space5_5,
Key::RAlt,
Key::PrtSc,
Key::RCtrl,
Key::ArrowSpacer,
Key::Up,
Key::ArrowSpacer,
Key::RowEndSpacer,
Key::RFn,
],
),
KeyRow::new(
1.0,
vec![
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::ArrowSpacer,
Key::Left,
Key::Down,
Key::Right,
Key::ArrowSpacer,
],
),
],
}
}

View File

@@ -50,15 +50,20 @@ impl KeyLayout {
#[derive(Debug, Deserialize, Serialize)]
pub struct KeyRow {
height: f32,
row: Vec<Key>,
}
impl KeyRow {
pub fn new(row: Vec<Key>) -> Self {
Self { row }
pub fn new(height: f32, row: Vec<Key>) -> Self {
Self { height, row }
}
pub fn row(&self) -> Iter<Key> {
self.row.iter()
}
pub fn height(&self) -> f32 {
self.height
}
}

View File

@@ -47,7 +47,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut path = PathBuf::from(DATA_DIR);
#[cfg(feature = "mocking")]
{
board_name = "G513".to_string();
board_name = "gx502".to_string();
path.pop();
path.push("rog-aura");
path.push("data");

View File

@@ -26,6 +26,7 @@ impl<'a> RogApp<'a> {
ui.spacing_mut().item_spacing = egui::vec2(0.0, 0.0);
let mut arrows_done = false;
for row in states.keyboard_layout.rows() {
let height = row.height();
ui.horizontal_top(|ui| {
for key in row.row() {
// your boat
@@ -38,11 +39,11 @@ impl<'a> RogApp<'a> {
arrows_done = true;
}
} else if shape.is_blank() || shape.is_spacer() {
blank(ui, shape);
blank(ui, shape.width(), height);
} else if shape.is_group() {
key_group(ui, colour, shape.ux(), shape.uy()).on_hover_text(label);
key_group(ui, colour, shape.width(), height).on_hover_text(label);
} else {
key_shape(ui, colour, shape).on_hover_text(label);
key_shape(ui, colour, shape.width(), height).on_hover_text(label);
}
}
});
@@ -51,9 +52,8 @@ impl<'a> RogApp<'a> {
}
}
fn key_shape(ui: &mut egui::Ui, colour: Color32, shape: KeyShape) -> egui::Response {
let desired_size =
ui.spacing().interact_size.y * egui::vec2(2.0 * shape.ux(), 2.0 * shape.uy());
fn key_shape(ui: &mut egui::Ui, colour: Color32, ux: f32, uy: f32) -> egui::Response {
let desired_size = ui.spacing().interact_size.y * egui::vec2(2.0 * ux, 2.0 * uy);
let (mut rect, mut response) = ui.allocate_exact_size(desired_size, egui::Sense::click());
rect = rect.shrink(3.0);
if response.clicked() {
@@ -94,32 +94,32 @@ fn key_group(ui: &mut egui::Ui, colour: Color32, ux: f32, uy: f32) -> egui::Resp
response
}
fn blank(ui: &mut egui::Ui, shape: KeyShape) {
let desired_size =
ui.spacing().interact_size.y * egui::vec2(2.0 * shape.ux(), 2.0 * shape.uy());
fn blank(ui: &mut egui::Ui, ux: f32, uy: f32) {
let desired_size = ui.spacing().interact_size.y * egui::vec2(2.0 * ux, 2.0 * uy);
ui.allocate_exact_size(desired_size, egui::Sense::click());
}
/// Draws entire arrow cluster block. This is visibly different to the split-arrows.
fn arrow_cluster(ui: &mut egui::Ui, colour: Color32) {
let height = 0.7;
let space = KeyShape::ArrowSpacer;
let shape = KeyShape::Arrow;
ui.horizontal_top(|ui| {
ui.with_layout(egui::Layout::top_down(Align::LEFT), |ui| {
blank(ui, space);
blank(ui, space.width(), height);
ui.horizontal(|ui| {
blank(ui, KeyShape::RowEndSpacer);
blank(ui, KeyShape::RowEndSpacer);
key_shape(ui, colour, shape).on_hover_text("Left");
blank(ui, KeyShape::RowEndSpacer.width(), height);
blank(ui, KeyShape::RowEndSpacer.width(), height);
key_shape(ui, colour, shape.width(), height).on_hover_text("Left");
});
});
ui.with_layout(egui::Layout::top_down(Align::LEFT), |ui| {
key_shape(ui, colour, shape).on_hover_text("Up");
key_shape(ui, colour, shape).on_hover_text("Down");
key_shape(ui, colour, shape.width(), height).on_hover_text("Up");
key_shape(ui, colour, shape.width(), height).on_hover_text("Down");
});
ui.with_layout(egui::Layout::top_down(Align::LEFT), |ui| {
blank(ui, space);
key_shape(ui, colour, shape).on_hover_text("Right");
blank(ui, space.width(), height);
key_shape(ui, colour, shape.width(), height).on_hover_text("Right");
});
});
}