aboutsummaryrefslogtreecommitdiffstats
path: root/fm.c
blob: 88d87de58b3ef3ecb4ded7ec3835af420179562a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#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 - 1;
	int fm_starty = t->windows[i]->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;
}