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