aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs38
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))?;