summaryrefslogtreecommitdiff
path: root/scripts/lxdialog/dialog.h
authorkergoth <kergoth>2002-10-31 17:11:35 (UTC)
committer kergoth <kergoth>2002-10-31 17:11:35 (UTC)
commitd955226c2197578f69c510282a4e9ad1ea8fe771 (patch) (unidiff)
tree0d8f210dd012559df4e3432ccc8ce96e9bd15853 /scripts/lxdialog/dialog.h
parent16fcb285f9ba7c514fc3f2695768a82feeb7182b (diff)
downloadopie-d955226c2197578f69c510282a4e9ad1ea8fe771.zip
opie-d955226c2197578f69c510282a4e9ad1ea8fe771.tar.gz
opie-d955226c2197578f69c510282a4e9ad1ea8fe771.tar.bz2
Initial bits to start work on revamping the buildsystem
Diffstat (limited to 'scripts/lxdialog/dialog.h') (more/less context) (ignore whitespace changes)
-rw-r--r--scripts/lxdialog/dialog.h184
1 files changed, 184 insertions, 0 deletions
diff --git a/scripts/lxdialog/dialog.h b/scripts/lxdialog/dialog.h
new file mode 100644
index 0000000..0e30d00
--- a/dev/null
+++ b/scripts/lxdialog/dialog.h
@@ -0,0 +1,184 @@
1
2/*
3 * dialog.h -- common declarations for all dialog modules
4 *
5 * AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 */
21
22#include <sys/types.h>
23#include <fcntl.h>
24#include <unistd.h>
25#include <ctype.h>
26#include <stdlib.h>
27#include <string.h>
28
29#include CURSES_LOC
30
31/*
32 * Colors in ncurses 1.9.9e do not work properly since foreground and
33 * background colors are OR'd rather than separately masked. This version
34 * of dialog was hacked to work with ncurses 1.9.9e, making it incompatible
35 * with standard curses. The simplest fix (to make this work with standard
36 * curses) uses the wbkgdset() function, not used in the original hack.
37 * Turn it off if we're building with 1.9.9e, since it just confuses things.
38 */
39#if defined(NCURSES_VERSION) && defined(_NEED_WRAP) && !defined(GCC_PRINTFLIKE)
40#define OLD_NCURSES 1
41#undef wbkgdset
42#define wbkgdset(w,p) /*nothing*/
43#else
44#define OLD_NCURSES 0
45#endif
46
47#define TR(params) _tracef params
48
49#define ESC 27
50#define TAB 9
51#define MAX_LEN 2048
52#define BUF_SIZE (10*1024)
53#define MIN(x,y) (x < y ? x : y)
54#define MAX(x,y) (x > y ? x : y)
55
56
57#ifndef ACS_ULCORNER
58#define ACS_ULCORNER '+'
59#endif
60#ifndef ACS_LLCORNER
61#define ACS_LLCORNER '+'
62#endif
63#ifndef ACS_URCORNER
64#define ACS_URCORNER '+'
65#endif
66#ifndef ACS_LRCORNER
67#define ACS_LRCORNER '+'
68#endif
69#ifndef ACS_HLINE
70#define ACS_HLINE '-'
71#endif
72#ifndef ACS_VLINE
73#define ACS_VLINE '|'
74#endif
75#ifndef ACS_LTEE
76#define ACS_LTEE '+'
77#endif
78#ifndef ACS_RTEE
79#define ACS_RTEE '+'
80#endif
81#ifndef ACS_UARROW
82#define ACS_UARROW '^'
83#endif
84#ifndef ACS_DARROW
85#define ACS_DARROW 'v'
86#endif
87
88/*
89 * Attribute names
90 */
91#define screen_attr attributes[0]
92#define shadow_attr attributes[1]
93#define dialog_attr attributes[2]
94#define title_attr attributes[3]
95#define border_attr attributes[4]
96#define button_active_attr attributes[5]
97#define button_inactive_attr attributes[6]
98#define button_key_active_attr attributes[7]
99#define button_key_inactive_attr attributes[8]
100#define button_label_active_attr attributes[9]
101#define button_label_inactive_attr attributes[10]
102#define inputbox_attr attributes[11]
103#define inputbox_border_attr attributes[12]
104#define searchbox_attr attributes[13]
105#define searchbox_title_attr attributes[14]
106#define searchbox_border_attr attributes[15]
107#define position_indicator_attr attributes[16]
108#define menubox_attr attributes[17]
109#define menubox_border_attr attributes[18]
110#define item_attr attributes[19]
111#define item_selected_attr attributes[20]
112#define tag_attr attributes[21]
113#define tag_selected_attr attributes[22]
114#define tag_key_attr attributes[23]
115#define tag_key_selected_attr attributes[24]
116#define check_attr attributes[25]
117#define check_selected_attr attributes[26]
118#define uarrow_attr attributes[27]
119#define darrow_attr attributes[28]
120
121/* number of attributes */
122#define ATTRIBUTE_COUNT 29
123
124/*
125 * Global variables
126 */
127extern bool use_colors;
128extern bool use_shadow;
129
130extern chtype attributes[];
131
132extern const char *backtitle;
133
134/*
135 * Function prototypes
136 */
137extern void create_rc (const char *filename);
138extern int parse_rc (void);
139
140
141void init_dialog (void);
142void end_dialog (void);
143void attr_clear (WINDOW * win, int height, int width, chtype attr);
144void dialog_clear (void);
145void color_setup (void);
146void print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x);
147void print_button (WINDOW * win, const char *label, int y, int x, int selected);
148void draw_box (WINDOW * win, int y, int x, int height, int width, chtype box,
149 chtype border);
150void draw_shadow (WINDOW * win, int y, int x, int height, int width);
151
152int first_alpha (const char *string, const char *exempt);
153int dialog_yesno (const char *title, const char *prompt, int height, int width);
154int dialog_msgbox (const char *title, const char *prompt, int height,
155 int width, int pause);
156int dialog_textbox (const char *title, const char *file, int height, int width);
157int dialog_menu (const char *title, const char *prompt, int height, int width,
158 int menu_height, const char *choice, int item_no,
159 const char * const * items);
160int dialog_checklist (const char *title, const char *prompt, int height,
161 int width, int list_height, int item_no,
162 const char * const * items, int flag);
163extern unsigned char dialog_input_result[];
164int dialog_inputbox (const char *title, const char *prompt, int height,
165 int width, const char *init);
166
167/*
168 * This is the base for fictitious keys, which activate
169 * the buttons.
170 *
171 * Mouse-generated keys are the following:
172 * -- the first 32 are used as numbers, in addition to '0'-'9'
173 * -- the lowercase are used to signal mouse-enter events (M_EVENT + 'o')
174 * -- uppercase chars are used to invoke the button (M_EVENT + 'O')
175 */
176#define M_EVENT (KEY_MAX+1)
177
178
179/*
180 * The `flag' parameter in checklist is used to select between
181 * radiolist and checklist
182 */
183#define FLAG_CHECK 1
184#define FLAG_RADIO 0