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