Added scrolling in processes.

This commit is contained in:
ClementTsang 2019-09-16 18:47:49 -04:00
parent 43ac5c3399
commit a5306c6692
2 changed files with 27 additions and 21 deletions

View File

@ -18,6 +18,8 @@
## After making public
* Mouse + key events conflict? Make it so that some events don't clog up the loop if they are not valid keys!
* Header should be clear on current sorting direction!
* Scaling in and out (zoom), may need to show zoom levels

View File

@ -197,34 +197,38 @@ pub fn draw_data<B : tui::backend::Backend>(terminal : &mut Terminal<B>, app_sta
let mut process_counter = 0;
//TODO: Fix this!
let start_position = if num_rows <= app_state.currently_selected_process_position {
match app_state.scroll_direction {
app::ScrollDirection::UP => {
if app_state.previous_process_position - app_state.currently_selected_process_position <= num_rows {
// We don't need to scroll up yet...
debug!("No need to scroll up yet...");
app_state.previous_process_position
}
else {
// We need to scroll up!
debug!("Scroll up! Scroll up!");
app_state.previous_process_position = app_state.currently_selected_process_position;
app_state.currently_selected_process_position
}
let start_position = match app_state.scroll_direction {
app::ScrollDirection::DOWN => {
if app_state.currently_selected_process_position < num_rows {
0
}
app::ScrollDirection::DOWN => {
else if app_state.currently_selected_process_position - num_rows < app_state.previous_process_position {
app_state.previous_process_position
}
else {
app_state.previous_process_position = app_state.currently_selected_process_position - num_rows + 1;
(app_state.currently_selected_process_position - num_rows + 1)
app_state.previous_process_position
}
}
app::ScrollDirection::UP => {
if app_state.currently_selected_process_position == app_state.previous_process_position - 1 {
app_state.previous_process_position = if app_state.previous_process_position > 0 {
app_state.previous_process_position - 1
}
else {
0
};
app_state.previous_process_position
}
else {
app_state.previous_process_position
}
}
}
else {
0
};
debug!(
"START POSN: {}, CURRENT SELECTED POSN: {}, NUM ROWS: {}",
start_position, app_state.currently_selected_process_position, num_rows
"START POSN: {}, PREV POSN: {}, CURRENT SELECTED POSN: {}, NUM ROWS: {}",
start_position, app_state.previous_process_position, app_state.currently_selected_process_position, num_rows
);
let sliced_vec : Vec<Vec<String>> = (&canvas_data.process_data[start_position as usize..]).to_vec();