feat(Paragraph): add alignment convenience functions (#866)

Added convenience functions left_aligned(), centered() and
right_aligned() plus unit tests. Updated example code.

Signed-off-by: Eelco Empting <me@eelco.de>
This commit is contained in:
Eeelco
2024-01-24 12:31:52 +01:00
committed by GitHub
parent b80264de87
commit d726e928d2
10 changed files with 77 additions and 19 deletions

View File

@@ -143,8 +143,7 @@ impl Default for Fps {
impl<'a> AppWidget<'a> {
fn new(app: &'a App) -> Self {
let title =
Paragraph::new("colors_rgb example. Press q to quit").alignment(Alignment::Center);
let title = Paragraph::new("colors_rgb example. Press q to quit").centered();
Self {
title,
fps_widget: FpsWidget { fps: &app.fps },

View File

@@ -183,7 +183,7 @@ impl App {
width = width - width_label.len() / 2
);
Paragraph::new(width_bar.dark_gray())
.alignment(Alignment::Center)
.centered()
.block(Block::default().padding(Padding {
left: 0,
right: 0,
@@ -418,9 +418,7 @@ impl Example {
.border_set(symbols::border::QUADRANT_OUTSIDE)
.border_style(Style::reset().fg(color).reversed())
.style(Style::default().fg(fg).bg(color));
Paragraph::new(text)
.alignment(Alignment::Center)
.block(block)
Paragraph::new(text).centered().block(block)
}
}

View File

@@ -71,7 +71,7 @@ impl Root<'_> {
})
.collect_vec();
Paragraph::new(Line::from(spans))
.alignment(Alignment::Center)
.centered()
.fg(Color::Indexed(236))
.bg(Color::Indexed(232))
.render(area, buf);

View File

@@ -251,7 +251,7 @@ impl App {
};
let bar_width = width - 2; // we want to `<` and `>` at the ends
let width_bar = format!("<{label:-^bar_width$}>");
Paragraph::new(width_bar.dark_gray()).alignment(Alignment::Center)
Paragraph::new(width_bar.dark_gray()).centered()
}
/// Render the demo content
@@ -416,9 +416,7 @@ impl Example {
.border_set(symbols::border::QUADRANT_OUTSIDE)
.border_style(Style::reset().fg(main_color).reversed())
.style(Style::default().fg(fg_color).bg(main_color));
Paragraph::new(text)
.alignment(Alignment::Center)
.block(block)
Paragraph::new(text).centered().block(block)
}
}

View File

@@ -173,7 +173,7 @@ impl App<'_> {
fn render_title(&self, area: Rect, buf: &mut Buffer) {
Paragraph::new("Ratatui List Example")
.bold()
.alignment(Alignment::Center)
.centered()
.render(area, buf);
}
@@ -268,7 +268,7 @@ impl App<'_> {
Paragraph::new(
"\nUse ↓↑ to move, ← to unselect, → to change status, g/G to go top/bottom.",
)
.alignment(Alignment::Center)
.centered()
.render(area, buf);
}
}

View File

@@ -128,7 +128,7 @@ fn ui(f: &mut Frame, app: &App) {
.title("Panic Handler Demo")
.borders(Borders::ALL);
let p = Paragraph::new(text).block(b).alignment(Alignment::Center);
let p = Paragraph::new(text).block(b).centered();
f.render_widget(p, f.size());
}

View File

@@ -132,14 +132,14 @@ fn ui(f: &mut Frame, app: &App) {
let paragraph = Paragraph::new(text.clone())
.style(Style::default().fg(Color::Gray))
.block(create_block("Right alignment, with wrap"))
.alignment(Alignment::Right)
.right_aligned()
.wrap(Wrap { trim: true });
f.render_widget(paragraph, layout[2]);
let paragraph = Paragraph::new(text)
.style(Style::default().fg(Color::Gray))
.block(create_block("Center alignment, with wrap, with scroll"))
.alignment(Alignment::Center)
.centered()
.wrap(Wrap { trim: true })
.scroll((app.scroll, 0));
f.render_widget(paragraph, layout[3]);

View File

@@ -73,7 +73,7 @@ fn ui(f: &mut Frame, app: &App) {
"Press p to show the popup"
};
let paragraph = Paragraph::new(text.slow_blink())
.alignment(Alignment::Center)
.centered()
.wrap(Wrap { trim: true });
f.render_widget(paragraph, instructions);

View File

@@ -313,7 +313,7 @@ fn render_scrollbar(f: &mut Frame, app: &mut App, area: Rect) {
fn render_footer(f: &mut Frame, app: &mut App, area: Rect) {
let info_footer = Paragraph::new(Line::from(INFO_TEXT))
.style(Style::new().fg(app.colors.row_fg).bg(app.colors.buffer_bg))
.alignment(Alignment::Center)
.centered()
.block(
Block::default()
.borders(Borders::ALL)