aboutsummaryrefslogtreecommitdiffstats
path: root/src/fm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/fm.h')
-rw-r--r--src/fm.h69
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 */