close #40
This commit is contained in:
@@ -1,13 +1,25 @@
|
|||||||
use std::{
|
use std::{
|
||||||
cmp::{max, min}, collections::HashMap, io, path::PathBuf
|
cmp::{max, min},
|
||||||
|
collections::HashMap,
|
||||||
|
io,
|
||||||
|
path::PathBuf,
|
||||||
};
|
};
|
||||||
|
|
||||||
use ratatui::{
|
use ratatui::{
|
||||||
DefaultTerminal, Frame, crossterm::event, layout::{self, Constraint, Layout, Rect}, prelude, style::{Color, Modifier, Style}, widgets::{Paragraph, Widget}
|
DefaultTerminal, Frame,
|
||||||
|
crossterm::event,
|
||||||
|
layout::{self, Constraint, Layout, Rect},
|
||||||
|
prelude,
|
||||||
|
style::{Color, Modifier, Style},
|
||||||
|
widgets::{Paragraph, Widget},
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::app::{
|
use crate::app::{
|
||||||
clipboard::Clipboard, error_msg::StatusMessage, logic::{calc::Grid, cell::CellType}, mode::Mode, screen::ScreenSpace
|
clipboard::Clipboard,
|
||||||
|
error_msg::StatusMessage,
|
||||||
|
logic::{calc::Grid, cell::CellType},
|
||||||
|
mode::Mode,
|
||||||
|
screen::ScreenSpace,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub struct App {
|
pub struct App {
|
||||||
@@ -144,6 +156,13 @@ impl Widget for &App {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if let Some(bound) = suggest_upper_bound {
|
||||||
|
let bound = bound as usize;
|
||||||
|
if bound < display.len() {
|
||||||
|
display.truncate(bound - 2);
|
||||||
|
display.push('…');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
None => should_render = false,
|
None => should_render = false,
|
||||||
}
|
}
|
||||||
@@ -223,7 +242,7 @@ impl App {
|
|||||||
}
|
}
|
||||||
if self.grid.needs_to_be_saved() {
|
if self.grid.needs_to_be_saved() {
|
||||||
icon = "[+]";
|
icon = "[+]";
|
||||||
}
|
}
|
||||||
format!("{file_name}{icon}")
|
format!("{file_name}{icon}")
|
||||||
};
|
};
|
||||||
file_name_status
|
file_name_status
|
||||||
@@ -233,10 +252,10 @@ impl App {
|
|||||||
let (x, y) = self.grid.cursor();
|
let (x, y) = self.grid.cursor();
|
||||||
let current_cell = self.grid.get_cell_raw(x, y);
|
let current_cell = self.grid.get_cell_raw(x, y);
|
||||||
let len = self.mode.chars_to_display(current_cell);
|
let len = self.mode.chars_to_display(current_cell);
|
||||||
let file_name_status = self.file_name_display();
|
let file_name_status = self.file_name_display();
|
||||||
|
|
||||||
// layout
|
// layout
|
||||||
// ======================================================
|
// ======================================================
|
||||||
let layout = Layout::default()
|
let layout = Layout::default()
|
||||||
.direction(layout::Direction::Vertical)
|
.direction(layout::Direction::Vertical)
|
||||||
.constraints([Constraint::Length(1), Constraint::Min(1)])
|
.constraints([Constraint::Length(1), Constraint::Min(1)])
|
||||||
@@ -246,14 +265,19 @@ impl App {
|
|||||||
|
|
||||||
let cmd_line_split = Layout::default()
|
let cmd_line_split = Layout::default()
|
||||||
.direction(layout::Direction::Horizontal)
|
.direction(layout::Direction::Horizontal)
|
||||||
.constraints([Constraint::Length(len), Constraint::Length(file_name_status.len() as u16 + 1), Constraint::Percentage(50), Constraint::Percentage(50)])
|
.constraints([
|
||||||
|
Constraint::Length(len),
|
||||||
|
Constraint::Length(file_name_status.len() as u16 + 1),
|
||||||
|
Constraint::Percentage(50),
|
||||||
|
Constraint::Percentage(50),
|
||||||
|
])
|
||||||
.split(cmd_line);
|
.split(cmd_line);
|
||||||
|
|
||||||
let cmd_line_left = cmd_line_split[0];
|
let cmd_line_left = cmd_line_split[0];
|
||||||
let cmd_line_status = cmd_line_split[1];
|
let cmd_line_status = cmd_line_split[1];
|
||||||
let cmd_line_right = cmd_line_split[2];
|
let cmd_line_right = cmd_line_split[2];
|
||||||
let cmd_line_debug = cmd_line_split[3];
|
let cmd_line_debug = cmd_line_split[3];
|
||||||
// ======================================================
|
// ======================================================
|
||||||
|
|
||||||
self.mode.render(frame, cmd_line_left, current_cell);
|
self.mode.render(frame, cmd_line_left, current_cell);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user