diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 38 |
1 files changed, 6 insertions, 32 deletions
diff --git a/src/main.rs b/src/main.rs index 85e95ea..d6bf2d9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,18 +1,14 @@ -use crossterm::{ - event::{ - self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEvent, KeyModifiers, - }, - execute, - terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, -}; +use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyModifiers}; use std::io; use tui::{ - backend::{Backend, CrosstermBackend}, + backend::Backend, layout::{Constraint, Direction, Layout}, widgets::Paragraph, Frame, Terminal, }; +use pfc::ui; + enum Signal { None, Exit, @@ -52,34 +48,12 @@ impl App { fn main() -> io::Result<()> { let app = App::default(); - let mut terminal = init_terminal()?; + let mut terminal = ui::init_terminal()?; let result = run(app, &mut terminal); - cleanup_terminal(terminal)?; + ui::cleanup_terminal(terminal)?; result } -fn init_terminal() -> Result<Terminal<CrosstermBackend<io::Stdout>>, io::Error> { - enable_raw_mode()?; - let mut stdout = io::stdout(); - execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?; - let backend = CrosstermBackend::new(stdout); - Terminal::new(backend) -} - -fn cleanup_terminal<B>(mut terminal: Terminal<B>) -> Result<(), io::Error> -where - B: Backend + io::Write, -{ - disable_raw_mode()?; - execute!( - terminal.backend_mut(), - LeaveAlternateScreen, - DisableMouseCapture, - )?; - terminal.show_cursor()?; - Ok(()) -} - fn run<B: Backend>(mut app: App, terminal: &mut Terminal<B>) -> io::Result<()> { loop { terminal.draw(|f| app.draw(f))?; |