diff options
| author | verdant <im@verdant.ee> | 2026-07-28 18:30:16 +0800 |
|---|---|---|
| committer | verdant <im@verdant.ee> | 2026-07-28 18:30:16 +0800 |
| commit | 9bffcafa9ae0c38103a8c64b3482bb099e792869 (patch) | |
| tree | 3cc18cabd99f9e300ca2539a9a48fb9c2d30e337 /src/fm.h | |
| parent | cbdc8462b6e982d3137b74d61bed6f8977405b8a (diff) | |
| download | sf-9bffcafa9ae0c38103a8c64b3482bb099e792869.tar.gz sf-9bffcafa9ae0c38103a8c64b3482bb099e792869.zip | |
Move source files to src/
Diffstat (limited to 'src/fm.h')
| -rw-r--r-- | src/fm.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/fm.h b/src/fm.h new file mode 100644 index 0000000..493d1f9 --- /dev/null +++ b/src/fm.h @@ -0,0 +1,69 @@ +#ifndef SF_FM_H +#define SF_FM_H + +#include <limits.h> +#include <linux/limits.h> +#include <ncurses.h> +#include <stdbool.h> +#include <sys/stat.h> + +#include "wm.h" + +#define PANE_LEFT 0 +#define PANE_RIGHT 1 + +#define MARGIN 3 + +typedef struct { + char name[256]; + int is_dir; + char permission[11]; +} 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, char permission[11]); + +#endif /* SF_FM_H */ |
