1 #ifndef TRUE
2 #define TRUE 1
3 #endif
4 
5 #ifndef FALSE
6 #define FALSE 0
7 #endif
8 
9 #include "version.h"
10 
11 typedef struct preferences_t {
12     int leading; /* leading width */
13     int marginx, marginy; /* margin around text */
14     char *font[NUMFONTS];
15     unsigned long forecolor;
16     unsigned long backcolor;
17     unsigned long textcolor[NUMFONTS];
18     unsigned long greycolor;
19     int paging; /* flag: use "[MORE]" and pause while paging? */
20     int inputattr; /* style for input (absolute, not additive) */
21     int fulljustify; /* flag: full-justify text window? */
22     int autoresize; /* flag: automatically resize status window? */
23     int resizeupward; /* flag: resize status window upward rather than down? */
24     int autoclear; /* flag: automatically clear anything below status line? */
25     int historylength; /* lines in command history */
26     long buffersize; /* how much stuff to save, minimum */
27     long bufferslack; /* how much to save (over the minumum) before trimming */
28     int winx, winy; /* geometry stuff */
29     int winw, winh; /* geometry stuff */
30     int statwinx, statwiny;
31     int statwid, stathgt; /* in chars */
32 } preferences;
33 
34 #ifdef __STDC__
35 typedef void (*cmdfunc_ptr)(int operand);
36 #else
37 typedef void (*cmdfunc_ptr)();
38 #endif
39 
40 typedef struct cmdentry_t {
41     cmdfunc_ptr func;
42     int operand;
43     int ignoremods;
44     char *name;
45 } cmdentry;
46 
47 extern int xioscn;
48 extern Display *xiodpy;
49 extern Window xiowin, xioswin;
50 extern int xiodepth;
51 extern int xiobackstore;
52 extern GC gcblack, gcwhite, gcgrey, gcflip;
53 extern GC gcfont[NUMFONTS];
54 extern GC gcsblack, gcsflip;
55 extern GC gcsfont[NUMFONTS], gcsnegfont[NUMFONTS];
56 extern XFontStruct *fontstr[NUMFONTS];
57 extern int spacewidth[NUMFONTS];
58 extern int lineheight, lineheightoff;
59 extern preferences prefs;
60 
61 extern cmdentry *keycmds[];
62 extern char *keycmdargs[];
63 
64 #define keytype_main (0)
65 #define keytype_meta (256)
66 #define keytype_sym  (512)
67 #define keytype_Mask (768)
68 
69 #ifdef __STDC__
70 
71 extern void xinit_openconnection();
72 extern void xio_pause();
73 
74 extern void xtext_init();
75 extern void xtext_add(char ch, long pos);
76 extern void xtext_replace(long pos, long oldlen, char *buf, long newlen);
77 extern void xtext_setstyle(long pos, int attr);
78 extern void xtext_layout();
79 extern void xtext_resize(int xpos, int ypos, int width, int height);
80 extern void xtext_redraw();
81 extern void xtext_hitdown(int xpos, int ypos, unsigned int button, unsigned int mods, int clicknum);
82 extern void xtext_hitmove(int xpos, int ypos, unsigned int button, unsigned int mods, int clicknum);
83 extern void xtext_hitup(int xpos, int ypos, unsigned int button, unsigned int mods, int clicknum);
84 extern void xtext_end_visible();
85 extern void xtext_set_lastseen();
86 extern void xtext_clear_window();
87 extern void xtext_line_timeout();
88 
89 extern void xkey_init();
90 extern char *xkey_get_key_name(int key);
91 extern void xkey_parse_bindings(char *str);
92 extern cmdentry *xkey_find_cmd_by_name(char *str);
93 
94 extern void xmess_init();
95 extern void xmess_resize(int xpos, int ypos, int width, int height);
96 extern void xmess_redraw();
97 extern void xmess_set_message(char *str, int sticky);
98 extern void xmess_check_timeout();
99 
100 extern void xstat_init(int cols, int rows, int xpos, int ypos);
101 extern void xstat_redraw();
102 extern void xstat_layout();
103 extern void xstat_insert(int ch);
104 extern void xstat_setattr(int attr);
105 extern void xstat_newline();
106 extern void xstat_getpos(int *row, int *col);
107 extern void xstat_setpos(int row, int col);
108 extern void xstat_set_window_size(int lines);
109 extern void xstat_clear_window();
110 extern void xstat_newgeometry(int newx, int newy, int newwid, int newhgt);
111 extern void xstat_set_dot_active(int visible);
112 
113 #else
114 
115 extern void xinit_openconnection();
116 extern void xio_pause();
117 
118 extern void xtext_init();
119 extern void xtext_add();
120 extern void xtext_replace();
121 extern void xtext_setstyle();
122 extern void xtext_layout();
123 extern void xtext_resize();
124 extern void xtext_redraw();
125 extern void xtext_hitdown();
126 extern void xtext_hitmove();
127 extern void xtext_hitup();
128 extern void xtext_end_visible();
129 extern void xtext_set_lastseen();
130 extern void xtext_clear_window();
131 extern void xtext_line_timeout();
132 
133 extern void xkey_init();
134 extern char *xkey_get_key_name();
135 extern void xkey_parse_bindings();
136 extern cmdentry *xkey_find_cmd_by_name();
137 
138 extern void xmess_init();
139 extern void xmess_resize();
140 extern void xmess_redraw();
141 extern void xmess_set_message();
142 extern void xmess_check_timeout();
143 
144 extern void xstat_init();
145 extern void xstat_redraw();
146 extern void xstat_layout();
147 extern void xstat_insert();
148 extern void xstat_setattr();
149 extern void xstat_newline();
150 extern void xstat_getpos();
151 extern void xstat_setpos();
152 extern void xstat_set_window_size();
153 extern void xstat_clear_window();
154 extern void xstat_newgeometry();
155 extern void xstat_set_dot_active();
156 
157 #endif
158 
159 /* for cutbuf */
160 #define op_Yank 1
161 #define op_Wipe 2
162 #define op_Copy 3
163 #define op_YankReplace 4
164 #define op_Kill 5
165 #define op_Untype 6
166 
167 /* for movecursor and delete */
168 #define op_ForeChar 1
169 #define op_BackChar 2
170 #define op_ForeWord 3
171 #define op_BackWord 4
172 #define op_ForeLine 5
173 #define op_BackLine 6
174 #define op_BeginLine 7
175 #define op_EndLine 8
176 
177 /* for scroll */
178 #define op_UpLine 1
179 #define op_DownLine 2
180 #define op_UpPage 3
181 #define op_DownPage 4
182 #define op_ToTop 5
183 #define op_ToBottom 6
184 
185 #define op_Enter 1
186 /* for redraw */
187 #define op_TextWin 1
188 /* for meta */
189 #define op_Cancel 1
190 #define op_Escape 2
191 #define op_DefineMacro 3
192 #define op_ExplainKey 4
193 /* for redraw */
194 #define op_Screen 1
195 #define op_Status 2
196 #define op_AllWindows 3
197 /* for status window */
198 #define op_Shrink 1
199 #define op_Zoom 2
200 #define op_Clear 3
201 
202 #ifdef __STDC__
203 
204 extern void xted_init(int buflen, char *buffer, int *readpos, int *killflag,
205   int firsttime);
206 extern void xted_insert(int ch);
207 extern void xted_delete(int op);
208 extern void xted_enter(int op);
209 extern void xted_scroll(int op);
210 extern void xted_movecursor(int op);
211 extern void xted_cutbuf(int op);
212 extern void xted_history(int op);
213 extern void xted_noop(int op);
214 extern void xtexted_redraw(int op);
215 extern void xtexted_meta(int op);
216 extern void xted_macro(int op);
217 extern void xted_define_macro(int keynum);
218 extern void xstat_reset_window_size(int op);
219 extern void xtexted_modify(int keynum, int op);
220 
221 #else
222 
223 extern void xted_init();
224 extern void xted_insert();
225 extern void xted_delete();
226 extern void xted_enter();
227 extern void xted_scroll();
228 extern void xted_movecursor();
229 extern void xted_cutbuf();
230 extern void xted_history();
231 extern void xted_noop();
232 extern void xtexted_redraw();
233 extern void xtexted_meta();
234 extern void xted_macro();
235 extern void xted_define_macro();
236 extern void xstat_reset_window_size();
237 extern void xtexted_modify();
238 
239 #endif
240