Use Frame for rendering instead of Buffer
This commit is contained in:
parent
cc2f102141
commit
add2f25aba
5 changed files with 85 additions and 53 deletions
41
src/frame.rs
Normal file
41
src/frame.rs
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
use crossterm::style::ContentStyle;
|
||||
|
||||
use crate::buffer::Buffer;
|
||||
pub use crate::buffer::{Pos, Size};
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub struct Frame {
|
||||
pub(crate) buffer: Buffer,
|
||||
cursor: Option<Pos>,
|
||||
}
|
||||
|
||||
impl Frame {
|
||||
pub fn size(&self) -> Size {
|
||||
self.buffer.size()
|
||||
}
|
||||
|
||||
pub fn reset(&mut self) {
|
||||
self.buffer.reset();
|
||||
self.cursor = None;
|
||||
}
|
||||
|
||||
pub fn cursor(&self) -> Option<Pos> {
|
||||
self.cursor
|
||||
}
|
||||
|
||||
pub fn set_cursor(&mut self, pos: Option<Pos>) {
|
||||
self.cursor = pos;
|
||||
}
|
||||
|
||||
pub fn show_cursor(&mut self, pos: Pos) {
|
||||
self.set_cursor(Some(pos));
|
||||
}
|
||||
|
||||
pub fn hide_cursor(&mut self) {
|
||||
self.set_cursor(None);
|
||||
}
|
||||
|
||||
pub fn write(&mut self, pos: Pos, content: &str, style: ContentStyle) {
|
||||
self.buffer.write(pos, content, style);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue