#include #include #include #include #include "helpers.h" void *xmalloc(size_t size) { void *ptr = malloc((size ? size : 1)); assert(ptr != NULL); return ptr; } unsigned long strict_strtoul(const char *nptr, int base) { char *endptr; unsigned long ret = strtoul(nptr, &endptr, base); return (*endptr ? 0 : ret); } void cursinit(void) { setlocale(LC_ALL, ""); initscr(); cbreak(); noecho(); keypad(stdscr, TRUE); curs_set(FALSE); timeout(25); refresh(); start_color(); use_default_colors(); init_pair(1, COLOR_GREEN, -1); init_pair(2, COLOR_CYAN, -1); init_pair(3, COLOR_RED, -1); init_pair(4, COLOR_YELLOW, -1); } void cursupdate(void) { update_panels(); doupdate(); } PANEL *newpan(int h, int w, int y, int x) { WINDOW *win = newwin(h, w, y, x); scrollok(win, TRUE); return new_panel(win); } void delpan(PANEL *pan) { WINDOW *win = panel_window(pan); del_panel(pan); delwin(win); } void reset_panel(PANEL *pan, int h, int w, int y, int x) { WINDOW *win = panel_window(pan); wresize(win, h, w); replace_panel(pan, win); move_panel(pan, y, x); } int pprintw(PANEL *pan, const char *fmt, ...) { va_list args; va_start(args, fmt); int res = vw_printw(panel_window(pan), fmt, args); va_end(args); return res; } int pclear(PANEL *pan) { return wclear(panel_window(pan)); } int pattron(PANEL *pan, int attrs) { return wattron(panel_window(pan), attrs); } int pattroff(PANEL *pan, int attrs) { return wattroff(panel_window(pan), attrs); }