xref: /openbmc/u-boot/scripts/kconfig/nconf.h (revision e91610da7c8a9fe42f3e5a75f06c3d1a0cb5f815)
10a9064fbSMasahiro Yamada /*
20a9064fbSMasahiro Yamada  * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
30a9064fbSMasahiro Yamada  * Released under the terms of the GNU GPL v2.0.
40a9064fbSMasahiro Yamada  *
50a9064fbSMasahiro Yamada  * Derived from menuconfig.
60a9064fbSMasahiro Yamada  *
70a9064fbSMasahiro Yamada  */
80a9064fbSMasahiro Yamada 
90a9064fbSMasahiro Yamada #include <ctype.h>
100a9064fbSMasahiro Yamada #include <errno.h>
110a9064fbSMasahiro Yamada #include <fcntl.h>
120a9064fbSMasahiro Yamada #include <limits.h>
130a9064fbSMasahiro Yamada #include <stdarg.h>
140a9064fbSMasahiro Yamada #include <stdlib.h>
150a9064fbSMasahiro Yamada #include <string.h>
160a9064fbSMasahiro Yamada #include <unistd.h>
170a9064fbSMasahiro Yamada #include <locale.h>
18*e91610daSEugeniu Rosca #include <ncurses.h>
190a9064fbSMasahiro Yamada #include <menu.h>
200a9064fbSMasahiro Yamada #include <panel.h>
210a9064fbSMasahiro Yamada #include <form.h>
220a9064fbSMasahiro Yamada 
230a9064fbSMasahiro Yamada #include <stdio.h>
240a9064fbSMasahiro Yamada #include <time.h>
250a9064fbSMasahiro Yamada #include <sys/time.h>
260a9064fbSMasahiro Yamada 
270a9064fbSMasahiro Yamada #define max(a, b) ({\
280a9064fbSMasahiro Yamada 		typeof(a) _a = a;\
290a9064fbSMasahiro Yamada 		typeof(b) _b = b;\
300a9064fbSMasahiro Yamada 		_a > _b ? _a : _b; })
310a9064fbSMasahiro Yamada 
320a9064fbSMasahiro Yamada #define min(a, b) ({\
330a9064fbSMasahiro Yamada 		typeof(a) _a = a;\
340a9064fbSMasahiro Yamada 		typeof(b) _b = b;\
350a9064fbSMasahiro Yamada 		_a < _b ? _a : _b; })
360a9064fbSMasahiro Yamada 
370a9064fbSMasahiro Yamada typedef enum {
380a9064fbSMasahiro Yamada 	NORMAL = 1,
390a9064fbSMasahiro Yamada 	MAIN_HEADING,
400a9064fbSMasahiro Yamada 	MAIN_MENU_BOX,
410a9064fbSMasahiro Yamada 	MAIN_MENU_FORE,
420a9064fbSMasahiro Yamada 	MAIN_MENU_BACK,
430a9064fbSMasahiro Yamada 	MAIN_MENU_GREY,
440a9064fbSMasahiro Yamada 	MAIN_MENU_HEADING,
450a9064fbSMasahiro Yamada 	SCROLLWIN_TEXT,
460a9064fbSMasahiro Yamada 	SCROLLWIN_HEADING,
470a9064fbSMasahiro Yamada 	SCROLLWIN_BOX,
480a9064fbSMasahiro Yamada 	DIALOG_TEXT,
490a9064fbSMasahiro Yamada 	DIALOG_MENU_FORE,
500a9064fbSMasahiro Yamada 	DIALOG_MENU_BACK,
510a9064fbSMasahiro Yamada 	DIALOG_BOX,
520a9064fbSMasahiro Yamada 	INPUT_BOX,
530a9064fbSMasahiro Yamada 	INPUT_HEADING,
540a9064fbSMasahiro Yamada 	INPUT_TEXT,
550a9064fbSMasahiro Yamada 	INPUT_FIELD,
560a9064fbSMasahiro Yamada 	FUNCTION_TEXT,
570a9064fbSMasahiro Yamada 	FUNCTION_HIGHLIGHT,
580a9064fbSMasahiro Yamada 	ATTR_MAX
590a9064fbSMasahiro Yamada } attributes_t;
600a9064fbSMasahiro Yamada extern attributes_t attributes[];
610a9064fbSMasahiro Yamada 
620a9064fbSMasahiro Yamada typedef enum {
630a9064fbSMasahiro Yamada 	F_HELP = 1,
640a9064fbSMasahiro Yamada 	F_SYMBOL = 2,
650a9064fbSMasahiro Yamada 	F_INSTS = 3,
660a9064fbSMasahiro Yamada 	F_CONF = 4,
670a9064fbSMasahiro Yamada 	F_BACK = 5,
680a9064fbSMasahiro Yamada 	F_SAVE = 6,
690a9064fbSMasahiro Yamada 	F_LOAD = 7,
700a9064fbSMasahiro Yamada 	F_SEARCH = 8,
710a9064fbSMasahiro Yamada 	F_EXIT = 9,
720a9064fbSMasahiro Yamada } function_key;
730a9064fbSMasahiro Yamada 
740a9064fbSMasahiro Yamada void set_colors(void);
750a9064fbSMasahiro Yamada 
760a9064fbSMasahiro Yamada /* this changes the windows attributes !!! */
770a9064fbSMasahiro Yamada void print_in_middle(WINDOW *win,
780a9064fbSMasahiro Yamada 		int starty,
790a9064fbSMasahiro Yamada 		int startx,
800a9064fbSMasahiro Yamada 		int width,
810a9064fbSMasahiro Yamada 		const char *string,
820a9064fbSMasahiro Yamada 		chtype color);
830a9064fbSMasahiro Yamada int get_line_length(const char *line);
840a9064fbSMasahiro Yamada int get_line_no(const char *text);
850a9064fbSMasahiro Yamada const char *get_line(const char *text, int line_no);
860a9064fbSMasahiro Yamada void fill_window(WINDOW *win, const char *text);
870a9064fbSMasahiro Yamada int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...);
880a9064fbSMasahiro Yamada int dialog_inputbox(WINDOW *main_window,
890a9064fbSMasahiro Yamada 		const char *title, const char *prompt,
900a9064fbSMasahiro Yamada 		const char *init, char **resultp, int *result_len);
910a9064fbSMasahiro Yamada void refresh_all_windows(WINDOW *main_window);
920a9064fbSMasahiro Yamada void show_scroll_win(WINDOW *main_window,
930a9064fbSMasahiro Yamada 		const char *title,
940a9064fbSMasahiro Yamada 		const char *text);
95