diff options
| author | Laurenz <laurmaedje@gmail.com> | 2019-04-01 12:25:31 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2019-04-01 12:25:31 +0200 |
| commit | 3b4b55c59ecc85fc7446795f136baf632d0c9449 (patch) | |
| tree | e2d55007d46312849ba2eaf0c5cf4ec4272379b5 /src/engine | |
| parent | a34d725000791215f2793269c4bc3de7374420ff (diff) | |
Implement bold and italics 📜
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/mod.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/engine/mod.rs b/src/engine/mod.rs index 2e7938ed..80341dec 100644 --- a/src/engine/mod.rs +++ b/src/engine/mod.rs @@ -30,6 +30,8 @@ pub struct Engine<'t> { current_text: String, current_line_width: Size, current_max_vertical_move: Size, + bold: bool, + italic: bool, } impl<'t> Engine<'t> { @@ -44,6 +46,8 @@ impl<'t> Engine<'t> { current_text: String::new(), current_line_width: Size::zero(), current_max_vertical_move: Size::zero(), + italic: false, + bold: false, } } @@ -57,8 +61,12 @@ impl<'t> Engine<'t> { match node { Node::Word(word) => self.write_word(word)?, Node::Space => self.write_space()?, - Node::Newline => (), - Node::ToggleItalics | Node::ToggleBold | Node::ToggleMath => unimplemented!(), + Node::Newline => {}, + + Node::ToggleItalics => self.italic = !self.italic, + Node::ToggleBold => self.bold = !self.bold, + + Node::ToggleMath => unimplemented!(), Node::Func(_) => unimplemented!(), } } @@ -177,8 +185,8 @@ impl<'t> Engine<'t> { fn get_font_for(&self, character: char) -> TypeResult<(usize, Ref<Font>)> { self.font_loader.get(FontQuery { families: &self.ctx.style.font_families, - italic: false, - bold: false, + italic: self.italic, + bold: self.bold, character, }).ok_or_else(|| TypesetError::MissingFont) } |
