1*10465441SEvalZero /* 2*10465441SEvalZero * Copyright (C) 2008 Nir Tzachar <[email protected]? 3*10465441SEvalZero * Released under the terms of the GNU GPL v2.0. 4*10465441SEvalZero * 5*10465441SEvalZero * Derived from menuconfig. 6*10465441SEvalZero * 7*10465441SEvalZero */ 8*10465441SEvalZero 9*10465441SEvalZero #include <ctype.h> 10*10465441SEvalZero #include <errno.h> 11*10465441SEvalZero #include <fcntl.h> 12*10465441SEvalZero #include <limits.h> 13*10465441SEvalZero #include <stdarg.h> 14*10465441SEvalZero #include <stdlib.h> 15*10465441SEvalZero #include <string.h> 16*10465441SEvalZero #include <unistd.h> 17*10465441SEvalZero #include <locale.h> 18*10465441SEvalZero #include <curses.h> 19*10465441SEvalZero #include <menu.h> 20*10465441SEvalZero #include <panel.h> 21*10465441SEvalZero #include <form.h> 22*10465441SEvalZero 23*10465441SEvalZero #include <stdio.h> 24*10465441SEvalZero #include <time.h> 25*10465441SEvalZero #include <sys/time.h> 26*10465441SEvalZero 27*10465441SEvalZero #include "ncurses.h" 28*10465441SEvalZero 29*10465441SEvalZero #define max(a, b) ({\ 30*10465441SEvalZero typeof(a) _a = a;\ 31*10465441SEvalZero typeof(b) _b = b;\ 32*10465441SEvalZero _a > _b ? _a : _b; }) 33*10465441SEvalZero 34*10465441SEvalZero #define min(a, b) ({\ 35*10465441SEvalZero typeof(a) _a = a;\ 36*10465441SEvalZero typeof(b) _b = b;\ 37*10465441SEvalZero _a < _b ? _a : _b; }) 38*10465441SEvalZero 39*10465441SEvalZero typedef enum { 40*10465441SEvalZero NORMAL = 1, 41*10465441SEvalZero MAIN_HEADING, 42*10465441SEvalZero MAIN_MENU_BOX, 43*10465441SEvalZero MAIN_MENU_FORE, 44*10465441SEvalZero MAIN_MENU_BACK, 45*10465441SEvalZero MAIN_MENU_GREY, 46*10465441SEvalZero MAIN_MENU_HEADING, 47*10465441SEvalZero SCROLLWIN_TEXT, 48*10465441SEvalZero SCROLLWIN_HEADING, 49*10465441SEvalZero SCROLLWIN_BOX, 50*10465441SEvalZero DIALOG_TEXT, 51*10465441SEvalZero DIALOG_MENU_FORE, 52*10465441SEvalZero DIALOG_MENU_BACK, 53*10465441SEvalZero DIALOG_BOX, 54*10465441SEvalZero INPUT_BOX, 55*10465441SEvalZero INPUT_HEADING, 56*10465441SEvalZero INPUT_TEXT, 57*10465441SEvalZero INPUT_FIELD, 58*10465441SEvalZero FUNCTION_TEXT, 59*10465441SEvalZero FUNCTION_HIGHLIGHT, 60*10465441SEvalZero ATTR_MAX 61*10465441SEvalZero } attributes_t; 62*10465441SEvalZero extern attributes_t attributes[]; 63*10465441SEvalZero 64*10465441SEvalZero typedef enum { 65*10465441SEvalZero F_HELP = 1, 66*10465441SEvalZero F_SYMBOL = 2, 67*10465441SEvalZero F_INSTS = 3, 68*10465441SEvalZero F_CONF = 4, 69*10465441SEvalZero F_BACK = 5, 70*10465441SEvalZero F_SAVE = 6, 71*10465441SEvalZero F_LOAD = 7, 72*10465441SEvalZero F_SEARCH = 8, 73*10465441SEvalZero F_EXIT = 9, 74*10465441SEvalZero } function_key; 75*10465441SEvalZero 76*10465441SEvalZero void set_colors(void); 77*10465441SEvalZero 78*10465441SEvalZero /* this changes the windows attributes !!! */ 79*10465441SEvalZero void print_in_middle(WINDOW *win, 80*10465441SEvalZero int starty, 81*10465441SEvalZero int startx, 82*10465441SEvalZero int width, 83*10465441SEvalZero const char *string, 84*10465441SEvalZero chtype color); 85*10465441SEvalZero int get_line_length(const char *line); 86*10465441SEvalZero int get_line_no(const char *text); 87*10465441SEvalZero const char *get_line(const char *text, int line_no); 88*10465441SEvalZero void fill_window(WINDOW *win, const char *text); 89*10465441SEvalZero int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...); 90*10465441SEvalZero int dialog_inputbox(WINDOW *main_window, 91*10465441SEvalZero const char *title, const char *prompt, 92*10465441SEvalZero const char *init, char **resultp, int *result_len); 93*10465441SEvalZero void refresh_all_windows(WINDOW *main_window); 94*10465441SEvalZero void show_scroll_win(WINDOW *main_window, 95*10465441SEvalZero const char *title, 96*10465441SEvalZero const char *text); 97