diff options
author | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2018-12-24 12:21:42 -0500 |
---|---|---|
committer | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2018-12-24 12:21:42 -0500 |
commit | ee9fe6b2b0d22c67db5b5c6a240fea9883d5d1a3 (patch) | |
tree | 9d7df6864b530f7cdabae51cb31c8f6aa905903e | |
parent | 7af8e3db4507f68af266ae45479fb8aa786eb894 (diff) |
fix redrawing windows
-rw-r--r-- | src/joshuto/structs.rs | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/src/joshuto/structs.rs b/src/joshuto/structs.rs index 3c1201c..5aa666c 100644 --- a/src/joshuto/structs.rs +++ b/src/joshuto/structs.rs @@ -215,25 +215,35 @@ impl JoshutoView { } pub fn redraw_views(&mut self) { + let sum_ratio: usize = self.win_ratio.0 + self.win_ratio.1 + self.win_ratio.2; + let mut term_rows : i32 = 0; let mut term_cols : i32 = 0; ncurses::getmaxyx(ncurses::stdscr(), &mut term_rows, &mut term_cols); + ncurses::getmaxyx(ncurses::stdscr(), &mut term_rows, &mut term_cols); + let term_divide: i32 = term_cols / sum_ratio as i32; - let term_divide : usize = term_cols as usize / 7; + let win_xy: (i32, i32) = (1, term_cols); + let win_coord: (usize, usize) = (0, 0); + self.top_win.redraw(win_xy.0, win_xy.1, win_coord); - self.top_win.redraw(1, term_cols, (0, 0)); - ncurses::scrollok(self.top_win.win, true); + let win_xy: (i32, i32) = (term_rows - 2, (term_divide * self.win_ratio.0 as i32) - 2); + let win_coord: (usize, usize) = (1, 0); + self.left_win.redraw(win_xy.0, win_xy.1, win_coord); - self.left_win.redraw(term_rows - 2, - (term_divide * self.win_ratio.0) as i32, (1, 0)); + let win_xy: (i32, i32) = (term_rows - 2, (term_divide * self.win_ratio.1 as i32) - 2); + let win_coord: (usize, usize) = (1, term_divide as usize * self.win_ratio.0); + self.mid_win.redraw(win_xy.0, win_xy.1, win_coord); - self.mid_win.redraw(term_rows - 2, - (term_divide * self.win_ratio.1) as i32, - (1, term_divide * self.win_ratio.0)); + let win_xy: (i32, i32) = (term_rows - 2, (term_divide * self.win_ratio.2 as i32) - 2); + let win_coord: (usize, usize) = (1, term_divide as usize * self.win_ratio.2); + self.right_win.redraw(win_xy.0, win_xy.1, win_coord); - self.right_win.redraw(term_rows - 2, - term_divide as i32 * 3, - (1, term_divide * self.win_ratio.2)); - self.bot_win.redraw(1, term_cols, (term_rows as usize - 1, 0)); + let win_xy: (i32, i32) = (1, term_cols); + let win_coord: (usize, usize) = (term_rows as usize - 2, 0); + self.bot_win.redraw(win_xy.0, win_xy.1, win_coord); + + ncurses::scrollok(self.top_win.win, true); + ncurses::scrollok(self.bot_win.win, true); } } |