1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
pub struct DeadKeys { pub acute_accent_bits: Option<u16>, pub deadkey_accute_accent: Option<u16>, pub cedilla_bits: Option<u16>, pub deadkey_cedilla: Option<u16>, pub diaeresis_bits: Option<u16>, pub deadkey_diaeresis: Option<u16>, pub grave_accent_bits: Option<u16>, pub deadkey_grave_accent: Option<u16>, pub circumflex_bits: Option<u16>, pub deadkey_circumflex: Option<u16>, pub tilde_bits: Option<u16>, pub deadkey_tilde: Option<u16>, } pub struct Layout { pub shift_mask: u16, pub alt_mask: Option<u16>, pub ctrl_mask: Option<u16>, pub non_us: Option<u16>, pub dead_keys_mask: Option<u16>, pub keycode_mask: u16, pub keycodes: Box<[u16]>, pub deadkeys: DeadKeys, } impl DeadKeys { pub fn new( acute_accent_bits: Option<u16>, deadkey_accute_accent: Option<u16>, cedilla_bits: Option<u16>, deadkey_cedilla: Option<u16>, diaeresis_bits: Option<u16>, deadkey_diaeresis: Option<u16>, grave_accent_bits: Option<u16>, deadkey_grave_accent: Option<u16>, circumflex_bits: Option<u16>, deadkey_circumflex: Option<u16>, tilde_bits: Option<u16>, deadkey_tilde: Option<u16>, ) -> DeadKeys { DeadKeys { acute_accent_bits, deadkey_accute_accent, cedilla_bits, deadkey_cedilla, diaeresis_bits, deadkey_diaeresis, grave_accent_bits, deadkey_grave_accent, circumflex_bits, deadkey_circumflex, tilde_bits, deadkey_tilde, } } } impl Layout { pub fn new( shift_mask: u16, alt_mask: Option<u16>, ctrl_mask: Option<u16>, non_us: Option<u16>, dead_keys_mask: Option<u16>, keycode_mask: u16, keycodes: Vec<u16>, deadkeys: DeadKeys, ) -> Layout { let keycodes = keycodes.into_boxed_slice(); Layout { shift_mask, alt_mask, ctrl_mask, non_us, dead_keys_mask, keycode_mask, keycodes, deadkeys, } } }