#ifndef SF_FM_H #define SF_FM_H #include #include #include #include #include "wm.h" #define PANE_LEFT 0 #define PANE_RIGHT 1 #define MARGIN 3 typedef struct { char name[256]; int is_dir; } file_item; typedef struct { file_item *items; size_t count; size_t cap; } file_list; typedef struct { file_list *cur; file_list *next; int cursor; window *windows[2]; /* int got_next_dir; */ char got_dir[PATH_MAX]; char cwd[PATH_MAX]; int top, bottom; } fm_info; extern bool need_redraw; #define UTIL_VI 0 #define UTIL_XDG_OPEN 1 #define ENV_SHELL 0 #define ENV_EDITOR 1 #define ENV_SF 2 static char *enveditor; file_list *fm_getdir(file_list *list, const char *path); fm_info *fm_init(terminal *t); void fm_getcwd(fm_info *info); void fm_draw_entries(window *window, file_list *list, size_t cursor, int top, int bottom); void fm_entries_scroll(fm_info *info, int n); void fm_draw_file_stream(window *w, FILE *fp); /* void fm_draw_right_window(fm_info *i); */ void fm_cd_up(fm_info *i); void fm_cd_down(fm_info *i); bool fm_preview_file(window *w, const char *path); int open_with_editor(char **argv); void magic_init(void); void magic_cleanup(void); void create_status_bar_win(terminal *t); void draw_status_bar(window *bar_win, const char *cwd); #endif /* SF_FM_H */