A small crate providing simpler RichText formatting for fltk-rs.
```rust use fltk::{enums::, prelude::, *}; use fltk_richtext::{RichTextBuilder, RichTextDisplay, Style};
fn main() { let a = app::App::default(); let mut w = window::Window::default().withsize(400, 300); let mut disp = text::TextDisplay::defaultfill(); w.end(); w.show();
let mut buf = RichTextBuilder::new();
buf.append("Lorem ipsum text", None);
buf.append(
"::\n",
Style {
color: Color::DarkYellow,
..Default::default()
},
);
buf.append(
"Lorem ipsum, dolor sit amet\n",
Style {
color: Color::Red,
font: Font::Times,
..Default::default()
},
);
buf.append(
" consectetur adipisicing elit.\n",
Style {
color: Color::Blue,
..Default::default()
},
);
buf.append(
"Aliquam expedita odio dignissimos\n",
Style {
color: Color::Green.darker(),
..Default::default()
},
);
buf.append(
"ducimus perspiciatis dolorum,\n",
Style {
font: Font::Courier,
size: 14,
..Default::default()
},
);
buf.append(
"itaque dolorem similique velit doloribus,\n",
Style {
color: Color::White,
bgcolor: Color::Magenta,
attr: text::TextAttr::BgColor,
..Default::default()
},
);
buf.append(
"debitis ea ex necessitatibus quia,\n",
Style {
attr: text::TextAttr::Grammar,
..Default::default()
},
);
buf.append(
"optio maiores a voluptates. Animi.\n",
Style {
attr: text::TextAttr::Spelling,
..Default::default()
},
);
disp.set_rich_text(buf);
a.run().unwrap();
} ```
```rust use fltk::{enums::, prelude::, *}; use fltk_richtext::{RichTextBuilder, RichTextDisplay, Style}; use regex::Regex;
const MARKUP: &str = r#"# The important points are: - Point 1 - Point 2 - Point 3 "#;
fn handlemarkup(s: &str) -> RichTextBuilder { let re = Regex::new(r"(^# .*)").unwrap(); let mut buf = RichTextBuilder::new(); buf.append(s, None); for caps in re.capturesiter(s) { buf.replaceall( caps.get(1).unwrap().asstr(), &caps.get(1).unwrap().asstr()[2..], Style { font: Font::HelveticaBold, size: app::fontsize() + 2, ..Default::default() }, ); } buf.replace_all( "-", " •", Style { color: Color::Red, ..Default::default() }, ); buf }
fn main() { let a = app::App::default(); let mut w = window::Window::default().withsize(400, 300); let mut disp = text::TextDisplay::defaultfill(); w.end(); w.show();
disp.set_rich_text(handle_markup(MARKUP));
a.run().unwrap();
} ```