}
-void frame_set_highlighting(Frame_T* frame, bool highlight, bool refresh_win){
+void frame_set_highlighting(Frame_T* frame, bool highlight, bool redraw_win){
if(frame){
int rows,cols;
int line = FrameTopBuffer + count_double_lines_to_idx(frame, false) + frame->workdir->idx - frame->top_index;
mvwchgat(frame->p_win, line, 1, cols-2, newattr, color, NULL);
if(file && file->expanded) mvwchgat(frame->p_win, line+1, 1, cols-2, newattr, color, NULL);
wmove(frame->p_win, 0, 0); //move the cursor out of the way
- if(frame_scroll(frame)) state_set_refresh_state(REDRAW_CURR_FRAME);
- if(refresh_win) wrefresh(frame->p_win);
+ if(frame_scroll(frame)) state_set_redraw_state(REDRAW_CURR_FRAME);
+ if(redraw_win) wrefresh(frame->p_win);
}
}
void frame_reload(Frame_T* frame){
workdir_ls(frame->workdir);
frame_draw_files(frame);
- state_set_refresh_state(REDRAW_CURR_FRAME);
+ state_set_redraw_state(REDRAW_CURR_FRAME);
}
static void handle_aardvark(void) {
if(state_get_aardvark_mode()){
state_set_aardvark_mode(false);
- state_set_refresh_state(REDRAW_ALL_FRAMES);
+ state_set_redraw_state(REDRAW_ALL_FRAMES);
}else{
state_set_aardvark_mode(true);
- state_set_refresh_state(REDRAW_AARDVARK);
+ state_set_redraw_state(REDRAW_AARDVARK);
}
}
} else {
workdir_seek(state_get_focused_workdir(), Key_Buffer);
}
- if(state_get_refresh_state() != REDRAW_COMPLETE) screen_update();
+ if(state_get_redraw_state() != REDRAW_COMPLETE) screen_update();
}
static void print_status(void) {
void handle_signal(int sig) {
(void) sig;
- state_set_refresh_state(REDRAW_ALL_FRAMES);
+ state_set_redraw_state(REDRAW_ALL_FRAMES);
}
void handle_alarm(int sig) {
(void) sig;
- state_set_refresh_state(REDRAW_AARDVARK);
+ state_set_redraw_state(REDRAW_AARDVARK);
alarm(1);
}
state_set_mode(MODE_NORMAL);
/* main loop */
while(state_get_running()) {
- if(state_get_refresh_state() != REDRAW_COMPLETE)
+ if(state_get_redraw_state() != REDRAW_COMPLETE)
screen_update();
input_handle_key(getch());
}
#define STATUS_LINE_MARGIN (1u)
static void screen_place_windows(void);
-static void screen_refresh_curr_frame(void);
+static void screen_redraw_curr_frame(void);
static list_t* Frame_List;
}
void screen_update(void) {
- /* Clear screen and update LINES and COLS */
- if(state_get_refresh_state() == REDRAW_CURR_FRAME){
- screen_refresh_curr_frame();
- } else if (state_get_refresh_state() == REDRAW_ALL_FRAMES) {
+ /* redraw frames as needed */
+ if(state_get_redraw_state() == REDRAW_CURR_FRAME){
+ screen_redraw_curr_frame();
+ } else if (state_get_redraw_state() == REDRAW_ALL_FRAMES) {
endwin();
screen_place_windows();
}
- if(state_get_aardvark_mode() && state_get_refresh_state() != REDRAW_COMPLETE)
+ if(state_get_aardvark_mode() && state_get_redraw_state() != REDRAW_COMPLETE)
aardvark_draw();
- /* Refresh and mark complete */
- state_set_refresh_state(REDRAW_COMPLETE);
+ /* mark complete */
+ state_set_redraw_state(REDRAW_COMPLETE);
}
void screen_open(void) {
list_push_back(Frame_List, frame_new());
- state_set_refresh_state(REDRAW_ALL_FRAMES);
+ state_set_redraw_state(REDRAW_ALL_FRAMES);
}
void screen_close(void) {
mem_retain(doomed_node);
list_delete_node(Frame_List, doomed_node);
state_set_focused_node(new_focus);
- state_set_refresh_state(REDRAW_ALL_FRAMES);
+ state_set_redraw_state(REDRAW_ALL_FRAMES);
mem_release(doomed_node);
} /* else only one window open. do nothing */
}
}
}
-static void screen_refresh_curr_frame(void) {
+static void screen_redraw_curr_frame(void) {
Frame_T* p_frame = state_get_focused_frame();
frame_draw(p_frame);
}
void screen_focus_next(void){
list_node_t* focused = state_get_focused_node();
state_set_focused_node(focused->next ? focused->next : Frame_List->head);
- state_set_refresh_state(REDRAW_CURR_FRAME);
+ state_set_redraw_state(REDRAW_CURR_FRAME);
}
void screen_focus_prev(void){
list_node_t* prev = list_prev(Frame_List, state_get_focused_node());
if(!prev) prev = Frame_List->tail;
state_set_focused_node(prev);
- state_set_refresh_state(REDRAW_CURR_FRAME);
+ state_set_redraw_state(REDRAW_CURR_FRAME);
}
void screen_focus_master(void){
state_set_focused_node(Frame_List->head);
- state_set_refresh_state(REDRAW_CURR_FRAME);
+ state_set_redraw_state(REDRAW_CURR_FRAME);
}
-//for when force refresh (R) fixes the screen,
+//for when force redraw (R) fixes the screen,
//but setting screen REDRAW_ALL_FRAMES doesnt
//necessary when moving frames around
static void stoopid_redraw(Frame_T* a, Frame_T* b){
frame_move(a, 0, 0);
frame_resize(b, 1, 1);
frame_move(b, 1, 1);
- state_set_refresh_state(REDRAW_ALL_FRAMES);
+ state_set_redraw_state(REDRAW_ALL_FRAMES);
}
void screen_swap_with_master(void){
frame_reload((Frame_T*)node->contents);
node = node->next;
}
- state_set_refresh_state(REDRAW_ALL_FRAMES);
+ state_set_redraw_state(REDRAW_ALL_FRAMES);
}
/** A pointer to the currently focused node */
static list_node_t* Focused_Node = NULL;
-/** Current refresh state */
-static RefreshState_T RefreshState = REDRAW_ALL_FRAMES;
+/** Current redraw state */
+static RedrawState_T RedrawState = REDRAW_ALL_FRAMES;
/** Current operational mode */
static Mode_T CurrentMode = MODE_NORMAL;
Focused_Node = p_node;
}
-RefreshState_T state_get_refresh_state(void)
+RedrawState_T state_get_redraw_state(void)
{
- return RefreshState;
+ return RedrawState;
}
-void state_set_refresh_state(RefreshState_T state)
+void state_set_redraw_state(RedrawState_T state)
{
- if ((state == REDRAW_COMPLETE) || (RefreshState < state)) {
- RefreshState = state;
+ if ((state == REDRAW_COMPLETE) || (RedrawState < state)) {
+ RedrawState = state;
}
}
REDRAW_AARDVARK,
REDRAW_CURR_FRAME,
REDRAW_ALL_FRAMES,
-} RefreshState_T;
+} RedrawState_T;
-RefreshState_T state_get_refresh_state(void);
-void state_set_refresh_state(RefreshState_T state);
+RedrawState_T state_get_redraw_state(void);
+void state_set_redraw_state(RedrawState_T state);
typedef enum {
MODE_NORMAL,
wd->idx = 0;
}
workdir_ls(wd);
- state_set_refresh_state(REDRAW_CURR_FRAME);
+ state_set_redraw_state(REDRAW_CURR_FRAME);
}
File_T* make_dotdot(char* path){
void workdir_expand_selected(WorkDir_T* wd){
((File_T*)vec_at(wd->vfiles, wd->idx))->expanded = true;
- state_set_refresh_state(REDRAW_CURR_FRAME);
+ state_set_redraw_state(REDRAW_CURR_FRAME);
}
void workdir_collapse_selected(WorkDir_T* wd){
((File_T*)vec_at(wd->vfiles, wd->idx))->expanded = false;
- state_set_refresh_state(REDRAW_CURR_FRAME);
+ state_set_redraw_state(REDRAW_CURR_FRAME);
}