refactor: util.rs
for UI utilities
This commit is contained in:
parent
37bd87abde
commit
50b59ca303
3 changed files with 12 additions and 9 deletions
|
@ -3,11 +3,12 @@ use ratatui::{
|
||||||
DefaultTerminal,
|
DefaultTerminal,
|
||||||
buffer::Buffer,
|
buffer::Buffer,
|
||||||
crossterm::event::{self, Event, KeyEvent, KeyEventKind},
|
crossterm::event::{self, Event, KeyEvent, KeyEventKind},
|
||||||
layout::{Constraint, Flex, Layout, Rect},
|
layout::{Constraint, Layout, Rect},
|
||||||
widgets::Widget,
|
widgets::Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::menu;
|
use crate::menu;
|
||||||
|
use crate::util::*;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub enum Mode {
|
pub enum Mode {
|
||||||
|
@ -55,14 +56,6 @@ impl Mode {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Widget for &mut Mode {
|
impl Widget for &mut Mode {
|
||||||
fn render(self, area: Rect, buf: &mut Buffer) {
|
fn render(self, area: Rect, buf: &mut Buffer) {
|
||||||
let [header_area, main_area, footer_area] = Layout::vertical([
|
let [header_area, main_area, footer_area] = Layout::vertical([
|
||||||
|
|
|
@ -2,6 +2,7 @@ use color_eyre::Result;
|
||||||
|
|
||||||
mod game;
|
mod game;
|
||||||
mod menu;
|
mod menu;
|
||||||
|
mod util;
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
color_eyre::install()?;
|
color_eyre::install()?;
|
||||||
|
|
9
client/src/util.rs
Normal file
9
client/src/util.rs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
use ratatui::layout::{Layout, Flex, Constraint, Rect};
|
||||||
|
|
||||||
|
pub 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
|
||||||
|
}
|
Loading…
Reference in a new issue