#include #include #include #include #include #include #include #include #include #include #include #include #include "display.h" #include "err.h" #include "fm.h" #include "keys.h" #include "log.h" #include "mem.h" #include "stat.h" #include "version.h" #include "wm.h" int main(int argc, char **argv) { int ch; log_init(); terminal *t = ncurses_init(); stat *s = stat_init(); stat_get_sysver(s); stat_get_diskinfo(s); stat_get_meminfo(s); log_write(LOG_INFO, "Terminal maxx = %d, maxy = %d", t->maxy, t->maxx); draw_stat_bar(t, s->sysver); /* int stat_w_h = t->maxy / 8 < 4 ? 4 : t->maxy / 8; */ int stat_w_h = 4; window *stat_w = wm_create_new_w(t, "stat", stat_w_h, t->maxx, 0, 0); fm_info *f = fm_init(t); if (argc == 2) { snprintf(f->cwd, sizeof(f->cwd), "%s", argv[1]); log_write(LOG_INFO, "f->cwd = %s", f->cwd); log_write(LOG_INFO, "argv[1] = %s", argv[1]); } else { fm_getcwd(f); } log_write(LOG_INFO, "cwd = %s", f->cwd); fm_getdir(f, f->cur, f->cwd); timeout(100); int i; int sw_y, sw_x; while (1) { ch = getch(); handing_keys(ch, t, f); stat_get_meminfo(s); stat_get_diskinfo(s); stat_get_cpuinfo(s); getmaxyx(stat_w->win, sw_y, sw_x); wclear(stat_w->win); wborder(stat_w->win, ' ', ' ', ' ', '-', ' ', ' ', '-', '-'); stat_draw_cpu_bar(stat_w->win, sw_x, 0, 0, s); stat_print_cpu_info(stat_w->win, 0, sw_x, s); stat_draw_bar(stat_w->win, "Mem", sw_x, 1, 0, s->meminfo.mem_total, s->meminfo.mem_available); stat_print_info(stat_w->win, 1, sw_x, "Mem", s->meminfo.mem_total, s->meminfo.mem_available); stat_draw_bar(stat_w->win, "Disk", sw_x, 2, 0, s->diskinfo.disk_total, s->diskinfo.disk_available); stat_print_info(stat_w->win, 2, sw_x, "Disk", s->diskinfo.disk_total, s->diskinfo.disk_available); if (ch == KEY_RESIZE) { wclear(t->windows[wm_fd_w_by_name(t, "stat_bar")]->win); wclear(t->windows[wm_fd_w_by_name(t, "fm_l")]->win); getmaxyx(stdscr, t->maxy, t->maxx); draw_stat_bar(t, s->sysver); /* wborder(f->fm_l->win, ' ', ACS_VLINE, ' ', ' ', ' ', */ /* ' ', ' ', ' '); */ } if (f->needs_redraw) { wclear(f->fm_l->win); i = 0; for (int j = f->top; j < f->bottom; j++) { fm_draw_entries(f, j, i); i++; } f->needs_redraw = 0; } fm_draw_right_window(f); wm_refresh_all(t); } return 0; }