Format overflowing words to go to next line
This commit is contained in:
parent
3a827cfde7
commit
0806f9803e
36
src/font.rs
36
src/font.rs
@ -137,26 +137,32 @@ pub fn draw_text<T: DelayNs, DCPin: PinOps, RSTPin: PinOps>(
|
||||
let kerning = 9 * scale;
|
||||
let original_x = position.x;
|
||||
|
||||
for c in text.chars() {
|
||||
if c == '\n' {
|
||||
curr_pos.y += kerning;
|
||||
continue;
|
||||
}
|
||||
if c == ' ' {
|
||||
curr_pos.x += kerning;
|
||||
continue;
|
||||
}
|
||||
if curr_pos.x + kerning > 240 {
|
||||
for word in text.split(' ') {
|
||||
let word_length = word.len() as u16 * kerning;
|
||||
if curr_pos.x + word_length > 240 {
|
||||
curr_pos.x = original_x;
|
||||
curr_pos.y += kerning;
|
||||
}
|
||||
if curr_pos.y + kerning > 240 {
|
||||
curr_pos.y = 0;
|
||||
|
||||
for c in word.chars() {
|
||||
if c == '\n' {
|
||||
curr_pos.y += kerning;
|
||||
continue;
|
||||
}
|
||||
if curr_pos.x + kerning > 240 {
|
||||
curr_pos.x = original_x;
|
||||
curr_pos.y += kerning;
|
||||
}
|
||||
if curr_pos.y + kerning > 240 {
|
||||
curr_pos.y = 0;
|
||||
}
|
||||
|
||||
Letter::from(c, fg, bg)
|
||||
.iter()
|
||||
.draw(display, curr_pos, scale);
|
||||
curr_pos.x += kerning;
|
||||
}
|
||||
|
||||
Letter::from(c, fg, bg)
|
||||
.iter()
|
||||
.draw(display, curr_pos, scale);
|
||||
curr_pos.x += kerning;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user