xref: /openbmc/linux/scripts/kconfig/nconf.h (revision 1ba67cd3)
10c874100SMasahiro Yamada /* SPDX-License-Identifier: GPL-2.0 */
2692d97c3Snir.tzachar@gmail.com /*
30c874100SMasahiro Yamada  * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com>
4692d97c3Snir.tzachar@gmail.com  *
5692d97c3Snir.tzachar@gmail.com  * Derived from menuconfig.
6692d97c3Snir.tzachar@gmail.com  */
7692d97c3Snir.tzachar@gmail.com 
8692d97c3Snir.tzachar@gmail.com #include <ctype.h>
9692d97c3Snir.tzachar@gmail.com #include <errno.h>
10692d97c3Snir.tzachar@gmail.com #include <fcntl.h>
11692d97c3Snir.tzachar@gmail.com #include <limits.h>
12692d97c3Snir.tzachar@gmail.com #include <stdarg.h>
13692d97c3Snir.tzachar@gmail.com #include <stdlib.h>
14692d97c3Snir.tzachar@gmail.com #include <string.h>
15692d97c3Snir.tzachar@gmail.com #include <unistd.h>
1626561514SMasahiro Yamada #include <ncurses.h>
17692d97c3Snir.tzachar@gmail.com #include <menu.h>
18692d97c3Snir.tzachar@gmail.com #include <panel.h>
19692d97c3Snir.tzachar@gmail.com #include <form.h>
20692d97c3Snir.tzachar@gmail.com 
21692d97c3Snir.tzachar@gmail.com #include <stdio.h>
22692d97c3Snir.tzachar@gmail.com #include <time.h>
23692d97c3Snir.tzachar@gmail.com #include <sys/time.h>
24692d97c3Snir.tzachar@gmail.com 
25692d97c3Snir.tzachar@gmail.com #define max(a, b) ({\
26692d97c3Snir.tzachar@gmail.com 		typeof(a) _a = a;\
27692d97c3Snir.tzachar@gmail.com 		typeof(b) _b = b;\
28692d97c3Snir.tzachar@gmail.com 		_a > _b ? _a : _b; })
29692d97c3Snir.tzachar@gmail.com 
30692d97c3Snir.tzachar@gmail.com #define min(a, b) ({\
31692d97c3Snir.tzachar@gmail.com 		typeof(a) _a = a;\
32692d97c3Snir.tzachar@gmail.com 		typeof(b) _b = b;\
33692d97c3Snir.tzachar@gmail.com 		_a < _b ? _a : _b; })
34692d97c3Snir.tzachar@gmail.com 
3593487b17SMasahiro Yamada extern int attr_normal;
3693487b17SMasahiro Yamada extern int attr_main_heading;
3793487b17SMasahiro Yamada extern int attr_main_menu_box;
3893487b17SMasahiro Yamada extern int attr_main_menu_fore;
3993487b17SMasahiro Yamada extern int attr_main_menu_back;
4093487b17SMasahiro Yamada extern int attr_main_menu_grey;
4193487b17SMasahiro Yamada extern int attr_main_menu_heading;
4293487b17SMasahiro Yamada extern int attr_scrollwin_text;
4393487b17SMasahiro Yamada extern int attr_scrollwin_heading;
4493487b17SMasahiro Yamada extern int attr_scrollwin_box;
4593487b17SMasahiro Yamada extern int attr_dialog_text;
4693487b17SMasahiro Yamada extern int attr_dialog_menu_fore;
4793487b17SMasahiro Yamada extern int attr_dialog_menu_back;
4893487b17SMasahiro Yamada extern int attr_dialog_box;
4993487b17SMasahiro Yamada extern int attr_input_box;
5093487b17SMasahiro Yamada extern int attr_input_heading;
5193487b17SMasahiro Yamada extern int attr_input_text;
5293487b17SMasahiro Yamada extern int attr_input_field;
5393487b17SMasahiro Yamada extern int attr_function_text;
5493487b17SMasahiro Yamada extern int attr_function_highlight;
55692d97c3Snir.tzachar@gmail.com 
56692d97c3Snir.tzachar@gmail.com typedef enum {
57692d97c3Snir.tzachar@gmail.com 	F_HELP = 1,
58692d97c3Snir.tzachar@gmail.com 	F_SYMBOL = 2,
59692d97c3Snir.tzachar@gmail.com 	F_INSTS = 3,
60692d97c3Snir.tzachar@gmail.com 	F_CONF = 4,
61692d97c3Snir.tzachar@gmail.com 	F_BACK = 5,
62692d97c3Snir.tzachar@gmail.com 	F_SAVE = 6,
63692d97c3Snir.tzachar@gmail.com 	F_LOAD = 7,
64a72f3e2bSNir Tzachar 	F_SEARCH = 8,
65a72f3e2bSNir Tzachar 	F_EXIT = 9,
66692d97c3Snir.tzachar@gmail.com } function_key;
67692d97c3Snir.tzachar@gmail.com 
68692d97c3Snir.tzachar@gmail.com void set_colors(void);
69692d97c3Snir.tzachar@gmail.com 
70*1ba67cd3SJesse Taube typedef int (*extra_key_cb_fn)(int, size_t, size_t, void *);
71*1ba67cd3SJesse Taube 
72692d97c3Snir.tzachar@gmail.com /* this changes the windows attributes !!! */
7308718745SMasahiro Yamada void print_in_middle(WINDOW *win, int y, int width, const char *str, int attrs);
74692d97c3Snir.tzachar@gmail.com int get_line_length(const char *line);
75692d97c3Snir.tzachar@gmail.com int get_line_no(const char *text);
76692d97c3Snir.tzachar@gmail.com const char *get_line(const char *text, int line_no);
77692d97c3Snir.tzachar@gmail.com void fill_window(WINDOW *win, const char *text);
78692d97c3Snir.tzachar@gmail.com int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...);
79692d97c3Snir.tzachar@gmail.com int dialog_inputbox(WINDOW *main_window,
80692d97c3Snir.tzachar@gmail.com 		const char *title, const char *prompt,
815ea9f64fSCheng Renquan 		const char *init, char **resultp, int *result_len);
82692d97c3Snir.tzachar@gmail.com void refresh_all_windows(WINDOW *main_window);
83*1ba67cd3SJesse Taube int show_scroll_win_ext(WINDOW *main_window, const char *title, char *text,
84*1ba67cd3SJesse Taube 			int *vscroll, int *hscroll,
85*1ba67cd3SJesse Taube 			extra_key_cb_fn extra_key_cb, void *data);
86692d97c3Snir.tzachar@gmail.com void show_scroll_win(WINDOW *main_window,
87692d97c3Snir.tzachar@gmail.com 		const char *title,
88692d97c3Snir.tzachar@gmail.com 		const char *text);
89