forked from NationTech/harmony
feat: harmony terminal ui can now browse scores and (almost) launch them
This commit is contained in:
22
harmony-rs/harmony_tui/src/ratatui_utils.rs
Normal file
22
harmony-rs/harmony_tui/src/ratatui_utils.rs
Normal file
@@ -0,0 +1,22 @@
|
||||
use ratatui::layout::{Constraint, Flex, Layout, Rect};
|
||||
|
||||
/// Centers a [`Rect`] within another [`Rect`] using the provided [`Constraint`]s.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// use ratatui::layout::{Constraint, Rect};
|
||||
///
|
||||
/// let area = Rect::new(0, 0, 100, 100);
|
||||
/// let horizontal = Constraint::Percentage(20);
|
||||
/// let vertical = Constraint::Percentage(30);
|
||||
///
|
||||
/// let centered = center(area, horizontal, vertical);
|
||||
/// ```
|
||||
pub(crate) fn center(area: Rect, horizontal: Constraint, vertical: Constraint) -> Rect {
|
||||
let [area] = Layout::horizontal([horizontal])
|
||||
.flex(Flex::Center)
|
||||
.areas(area);
|
||||
let [area] = Layout::vertical([vertical]).flex(Flex::Center).areas(area);
|
||||
area
|
||||
}
|
||||
Reference in New Issue
Block a user