Formatting fixed

pull/462/head
Oleksandr Litus 3 years ago
parent b95894d2b9
commit 31b97447b7

@ -6,7 +6,7 @@ use std::{error::Error, io};
use termion::{event::Key, input::MouseTerminal, raw::IntoRawMode, screen::AlternateScreen};
use tui::{
backend::TermionBackend,
layout::{Constraint, Direction, Layout, Alignment},
layout::{Alignment, Constraint, Direction, Layout},
style::{Color, Modifier, Style},
text::Span,
widgets::{Block, BorderType, Borders},
@ -50,7 +50,7 @@ fn main() -> Result<(), Box<dyn Error>> {
.direction(Direction::Horizontal)
.constraints([Constraint::Percentage(50), Constraint::Percentage(50)].as_ref())
.split(chunks[0]);
// Top left inner block with green background
let block = Block::default()
.title(vec![
@ -60,14 +60,16 @@ fn main() -> Result<(), Box<dyn Error>> {
.style(Style::default().bg(Color::Green));
f.render_widget(block, top_chunks[0]);
// Top right inner block with styled title aligned to the right
let block = Block::default().title(Span::styled(
"Styled title",
Style::default()
.fg(Color::White)
.bg(Color::Red)
.add_modifier(Modifier::BOLD),
)).title_alignment(Alignment::Right);
// Top right inner block with styled title aligned to the right
let block = Block::default()
.title(Span::styled(
"Styled title",
Style::default()
.fg(Color::White)
.bg(Color::Red)
.add_modifier(Modifier::BOLD),
))
.title_alignment(Alignment::Right);
f.render_widget(block, top_chunks[1]);
// Bottom two inner blocks

@ -1,6 +1,6 @@
use crate::{
buffer::Buffer,
layout::{Rect, Alignment},
layout::{Alignment, Rect},
style::Style,
symbols::line,
text::{Span, Spans},
@ -203,7 +203,6 @@ impl<'a> Widget for Block<'a> {
// Title
if let Some(title) = self.title {
let left_border_dx = if self.borders.intersects(Borders::LEFT) {
1
} else {
@ -216,18 +215,20 @@ impl<'a> Widget for Block<'a> {
0
};
let title_area_width = area.width.saturating_sub(left_border_dx)
.saturating_sub(right_border_dx);
let title_area_width = area
.width
.saturating_sub(left_border_dx)
.saturating_sub(right_border_dx);
let title_dx = match self.title_alignment {
Alignment::Left => 0,
Alignment::Left => 0,
Alignment::Center => (title_area_width - title.width() as u16) / 2,
Alignment::Right => (title_area_width - title.width() as u16)
Alignment::Right => (title_area_width - title.width() as u16),
};
let title_x = area.left() + left_border_dx + title_dx;
let title_y = area.top();
buf.set_spans(title_x, title_y, &title, title_area_width);
}
}
@ -533,14 +534,14 @@ mod tests {
);
assert_eq!(
Block::default()
.title("Test")
.title_alignment(Alignment::Center)
.inner(Rect {
x: 0,
y: 0,
width: 0,
height: 1,
}),
.title("Test")
.title_alignment(Alignment::Center)
.inner(Rect {
x: 0,
y: 0,
width: 0,
height: 1,
}),
Rect {
x: 0,
y: 1,
@ -550,14 +551,14 @@ mod tests {
);
assert_eq!(
Block::default()
.title("Test")
.title_alignment(Alignment::Right)
.inner(Rect {
x: 0,
y: 0,
width: 0,
height: 1,
}),
.title("Test")
.title_alignment(Alignment::Right)
.inner(Rect {
x: 0,
y: 0,
width: 0,
height: 1,
}),
Rect {
x: 0,
y: 1,

@ -1,7 +1,7 @@
use tui::{
backend::TestBackend,
buffer::Buffer,
layout::{Rect, Alignment},
layout::{Alignment, Rect},
style::{Color, Style},
text::Span,
widgets::{Block, Borders},
@ -218,9 +218,9 @@ fn widgets_block_renders_title_top_left_all_borders() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Left)
.borders(Borders::ALL);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Left)
.borders(Borders::ALL);
let area = Rect {
x: 1,
@ -229,7 +229,11 @@ fn widgets_block_renders_title_top_left_all_borders() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -253,9 +257,9 @@ fn widgets_block_renders_title_top_left_no_left_border() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Left)
.borders(Borders::TOP | Borders::RIGHT | Borders::BOTTOM);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Left)
.borders(Borders::TOP | Borders::RIGHT | Borders::BOTTOM);
let area = Rect {
x: 1,
@ -264,7 +268,11 @@ fn widgets_block_renders_title_top_left_no_left_border() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -288,9 +296,9 @@ fn widgets_block_renders_title_top_left_no_right_border() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Left)
.borders(Borders::LEFT | Borders::TOP | Borders::BOTTOM);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Left)
.borders(Borders::LEFT | Borders::TOP | Borders::BOTTOM);
let area = Rect {
x: 1,
@ -299,7 +307,11 @@ fn widgets_block_renders_title_top_left_no_right_border() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -323,9 +335,9 @@ fn widgets_block_renders_title_top_left_no_borders() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Left)
.borders(Borders::NONE);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Left)
.borders(Borders::NONE);
let area = Rect {
x: 1,
@ -334,7 +346,11 @@ fn widgets_block_renders_title_top_left_no_borders() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -358,9 +374,9 @@ fn widgets_block_renders_title_top_center_all_borders() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Center)
.borders(Borders::ALL);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Center)
.borders(Borders::ALL);
let area = Rect {
x: 1,
@ -369,7 +385,11 @@ fn widgets_block_renders_title_top_center_all_borders() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -393,9 +413,9 @@ fn widgets_block_renders_title_top_center_no_left_border() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Center)
.borders(Borders::TOP | Borders::RIGHT | Borders::BOTTOM);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Center)
.borders(Borders::TOP | Borders::RIGHT | Borders::BOTTOM);
let area = Rect {
x: 1,
@ -404,7 +424,11 @@ fn widgets_block_renders_title_top_center_no_left_border() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -428,9 +452,9 @@ fn widgets_block_renders_title_top_center_no_right_border() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Center)
.borders(Borders::LEFT | Borders::TOP | Borders::BOTTOM);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Center)
.borders(Borders::LEFT | Borders::TOP | Borders::BOTTOM);
let area = Rect {
x: 1,
@ -439,7 +463,11 @@ fn widgets_block_renders_title_top_center_no_right_border() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -463,9 +491,9 @@ fn widgets_block_renders_title_top_center_no_borders() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Center)
.borders(Borders::NONE);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Center)
.borders(Borders::NONE);
let area = Rect {
x: 1,
@ -474,7 +502,11 @@ fn widgets_block_renders_title_top_center_no_borders() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -498,9 +530,9 @@ fn widgets_block_renders_title_top_right_all_borders() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Right)
.borders(Borders::ALL);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Right)
.borders(Borders::ALL);
let area = Rect {
x: 1,
@ -509,7 +541,11 @@ fn widgets_block_renders_title_top_right_all_borders() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -533,9 +569,9 @@ fn widgets_block_renders_title_top_right_no_left_border() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Right)
.borders(Borders::TOP | Borders::RIGHT | Borders::BOTTOM);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Right)
.borders(Borders::TOP | Borders::RIGHT | Borders::BOTTOM);
let area = Rect {
x: 1,
@ -544,7 +580,11 @@ fn widgets_block_renders_title_top_right_no_left_border() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -568,9 +608,9 @@ fn widgets_block_renders_title_top_right_no_right_border() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Right)
.borders(Borders::LEFT | Borders::TOP | Borders::BOTTOM);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Right)
.borders(Borders::LEFT | Borders::TOP | Borders::BOTTOM);
let area = Rect {
x: 1,
@ -579,7 +619,11 @@ fn widgets_block_renders_title_top_right_no_right_border() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -603,9 +647,9 @@ fn widgets_block_renders_title_top_right_no_borders() {
let mut terminal = Terminal::new(backend).unwrap();
let block = Block::default()
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Right)
.borders(Borders::NONE);
.title(Span::styled("Title", Style::default()))
.title_alignment(Alignment::Right)
.borders(Borders::NONE);
let area = Rect {
x: 1,
@ -614,7 +658,11 @@ fn widgets_block_renders_title_top_right_no_borders() {
height: 8,
};
terminal.draw(|f| { f.render_widget(block, area); }).unwrap();
terminal
.draw(|f| {
f.render_widget(block, area);
})
.unwrap();
let expected = Buffer::with_lines(vec![
" ",
@ -630,4 +678,4 @@ fn widgets_block_renders_title_top_right_no_borders() {
]);
terminal.backend().assert_buffer(&expected);
}
}

Loading…
Cancel
Save