From: a bellenir Date: Thu, 24 Jul 2014 03:01:59 +0000 (+0000) Subject: merge changes from master X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=4d6ed3b165b2d581bfb88bb4a02662aec7690abc;p=archive%2Fafm.git merge changes from master --- 4d6ed3b165b2d581bfb88bb4a02662aec7690abc diff --cc source/main.c index bbbbb28,ad5aa23..c745e51 --- a/source/main.c +++ b/source/main.c @@@ -37,8 -36,6 +36,7 @@@ int main(int argc, char** argv) erase(); refresh(); endwin(); + screen_deinit(); - workdir_deinit(); return 0; } diff --cc source/screen.c index e5bfc06,5a51c05..e47d868 --- a/source/screen.c +++ b/source/screen.c @@@ -1,28 -1,30 +1,38 @@@ - #include "screen.h" - #include "state.h" - #include "aardvark.h" - #include "workdir.h" + /* external libraries */ #include + #include + #include + + /* internal libraries */ + #include "vec.h" +#include "list.h" #include "mem.h" - typedef struct { - WINDOW* p_win; - } frame_t; + /* internal headers */ + #include "screen.h" + #include "state.h" + #include "aardvark.h" + #include "workdir.h" static void screen_place_windows(void); static frame_t* screen_frame_new(void); static void screen_frame_free(void* p_frame); + void screen_frame_draw_files(frame_t* frame); -static frame_t* Master; -static vec_t* Screen_List; +static list_t* Screen_List; + ++frame_t* master_frame(void){ ++ return (frame_t*) Screen_List->head->contents; ++} + void screen_init(void) { - Master = screen_frame_new(); - Screen_List = vec_new(0); - state_set_focused_frame(Master); + Screen_List = list_new(); + list_push_back(Screen_List, screen_frame_new()); ++ state_set_focused_frame(master_frame()); +} + +void screen_deinit(void) { + mem_release(Screen_List); } void screen_update(void) { @@@ -57,10 -55,11 +67,11 @@@ static void screen_place_windows(void) getmaxyx(stdscr, lines, cols); /* Print the master frame */ - p_frame = Master; + p_frame = list_at(Screen_List,0)->contents; mvwin(p_frame->p_win, 0, 0); - wresize(p_frame->p_win, lines, (vec_size(Screen_List) > 0) ? cols/2 : cols); + wresize(p_frame->p_win, lines, (num_frames > 1) ? cols/2 : cols); wclear(p_frame->p_win); + screen_frame_draw_files(p_frame); box(p_frame->p_win, 0 , 0); wrefresh(p_frame->p_win); @@@ -77,13 -72,12 +88,14 @@@ mvwin(p_frame->p_win, pos, cols/2); wresize(p_frame->p_win, height, cols/2); wclear(p_frame->p_win); + screen_frame_draw_files(p_frame); wmove(p_frame->p_win, 1, 1); - wprintw(p_frame->p_win, "(%d, %d)", i*height, cols/2); box(p_frame->p_win, 0 , 0); wrefresh(p_frame->p_win); + /* Get the next one */ + id++; pos += height; + p_node = p_node->next; } } diff --cc source/screen.h index 5e40eed,ff017f6..3a48292 --- a/source/screen.h +++ b/source/screen.h @@@ -7,8 -7,10 +7,11 @@@ #ifndef SCREEN_H #define SCREEN_H + #include + #include "workdir.h" + void screen_init(void); +void screen_deinit(void); void screen_update(void); void screen_open(void); void screen_close(void); diff --cc source/workdir.h index 0b3afd6,6b57347..ead0994 --- a/source/workdir.h +++ b/source/workdir.h @@@ -7,16 -7,23 +7,25 @@@ #ifndef WORKDIR_H #define WORKDIR_H - void workdir_init(int windex); + #include "vec.h" +void workdir_deinit(void); + - void workdir_prev(void); + typedef struct { + int idx; + char* path; + vec_t* vfiles; + int top_index; + } WorkDir_T; - void workdir_next(void); + WorkDir_T* workdir_new(char* path); - void workdir_cd(void); + void workdir_prev(WorkDir_T*); - void workdir_ls(void); + void workdir_next(WorkDir_T*); + + void workdir_cd(WorkDir_T*); + + void workdir_ls(WorkDir_T*); #endif /* WORKDIR_H */