aboutsummaryrefslogtreecommitdiffstats
path: root/fm.c
diff options
context:
space:
mode:
Diffstat (limited to 'fm.c')
-rw-r--r--fm.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/fm.c b/fm.c
new file mode 100644
index 0000000..7ea798b
--- /dev/null
+++ b/fm.c
@@ -0,0 +1,51 @@
+#include "fm.h"
+
+#include "display.h"
+#include "err.h"
+#include "wm.h"
+
+static fm_info* fm_w_init(terminal* t) {
+ fm_info* f = xmalloc(sizeof(fm_info));
+ f->fm_l = xmalloc(sizeof(window));
+ f->fm_r = xmalloc(sizeof(window));
+ int i = wm_fd_w_by_name(t, "stat");
+ if (i == -1) {
+ die("Cannot find window \"stat\"");
+ }
+
+ int fm_w = t->maxx / 2;
+ int fm_h = t->maxy - t->windows[i]->height;
+ int fm_starty = t->windows[i]->height - STAT_BAR_HEIGHT;
+
+ int fm_l_startx = 0;
+ int fm_r_startx = t->maxx / 2;
+
+ window* fm_l =
+ wm_create_new_w(t, "fm_l", fm_h, fm_w, fm_starty, fm_l_startx);
+ window* fm_r =
+ wm_create_new_w(t, "fm_r", fm_h, fm_w, fm_starty, fm_r_startx);
+ if (!fm_l || !fm_r) {
+ die("Cannot create file manager window");
+ }
+ f->fm_l->height = fm_h;
+ log_write(LOG_INFO, "fm_h = %d", fm_h);
+ log_write(LOG_INFO, "f->fm_l->height = %d", f->fm_l->height);
+ f->fm_l->width = fm_w;
+ f->fm_l->start_y = fm_starty;
+ f->fm_l->start_x = fm_l_startx;
+ f->fm_l->win = fm_l->win;
+
+ f->fm_r->height = fm_h;
+ f->fm_r->width = fm_w;
+ f->fm_r->start_y = fm_starty;
+ f->fm_r->start_x = fm_r_startx;
+ f->fm_r->win = fm_r->win;
+ wborder(f->fm_l->win, ' ', ACS_VLINE, ' ', ' ', ' ', ' ', ' ', ' ');
+
+ return f;
+}
+void fm_getdir(fm_info* f);
+fm_info* fm_init(terminal* t) {
+ fm_info* f = fm_w_init(t);
+ return f;
+}