Wrap model on insert single char
This commit is contained in:
parent
c339a27481
commit
4cd6cf46dd
@ -174,6 +174,15 @@ impl UiModel {
|
||||
ModelRect::new(top as usize, bot as usize, left, right)
|
||||
}
|
||||
|
||||
/// Move down all lines except first one
|
||||
pub fn move_down(&mut self) {
|
||||
let right = self.columns + 1;
|
||||
|
||||
for row in (1..self.rows + 1).rev() {
|
||||
self.copy_row(row as i64, 1, 0, right);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn clear(&mut self) {
|
||||
let (rows, columns) = (self.rows, self.columns);
|
||||
self.clear_region(0, rows - 1, 0, columns - 1);
|
||||
|
@ -65,6 +65,14 @@ impl ModelLayout {
|
||||
|
||||
if shift {
|
||||
//TODO: insert special char
|
||||
if self.cols_filled + 1 >= self.model.columns {
|
||||
let rows_filled = self.rows_filled + 1;
|
||||
|
||||
self.check_model_size(rows_filled);
|
||||
self.model.move_down();
|
||||
|
||||
self.rows_filled = rows_filled;
|
||||
}
|
||||
} else {
|
||||
self.model.put(c.chars().next().unwrap(), false, None);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user