Initial commit, 3-52-19 alpha
[cls.git] / src / c / statinit.c
blobd6c390c119bfccaab8a578fa481af244d9c9ebe9
1 /* XLISP-STAT 2.1 Copyright (c) 1990, by Luke Tierney */
2 /* Additions to Xlisp 2.1, Copyright (c) 1989 by David Michael Betz */
3 /* You may give out copies of this software; for conditions see the */
4 /* file COPYING included with this distribution. */
6 #include "xlisp.h"
7 #include "xlstat.h"
8 #include "version.h"
10 /* symbols */
11 LVAL s_linked_plots;
12 LVAL s_selecting, s_brushing, s_user;
13 LVAL s_invisible, s_normal, s_hilited, s_selected, s_solid, s_dashed;
14 LVAL sk_point_labels;
15 LVAL s_left, s_center, s_right, s_top, s_bottom;
16 LVAL s_xor;
17 LVAL sk_allocate, sk_dispose, sk_resize, sk_redraw, sk_do_idle,
18 sk_do_click, sk_do_motion,
19 sk_do_key, sk_install, sk_remove, sk_update, sk_select,
20 sk_mark_points_in_rect, sk_adjust_screen,
21 s_hardware_address, s_number_of_variables, s_menu,
22 sk_draw, sk_redraw_background, sk_clear_content,
23 sk_redraw_content, sk_redraw_overlays,
24 sk_overlay_click, sk_resize_overlays, sk_new,
25 s_histogram_proto, sk_new_menu, sk_add_points, sk_add_lines,
26 s_black_on_white, sk_variable_labels, s_variable_labels,
27 s_scatterplot_proto, sk_adjust_to_data, sk_showing_labels,
28 s_showing_labels, sk_scale, s_spin_proto, s_scatmat_proto,
29 s_name_list_proto, s_depth_cuing,
30 s_showing_axes, sk_type, s_dotword,
31 s_title, s_items, s_id, s_menu_list, s_key,
32 s_mark, s_style, s_action, s_enabled, s_menu_proto, s_apple_menu_proto,
33 s_menu_item_proto, sk_do_action, s_bold, s_italic, s_underline,
34 s_outline, s_shadow, s_condense, s_extend,
35 sk_enabled, s_type, s_go_away, s_default_button,
36 s_text, s_location, s_size, s_dialog,
37 s_min_value, s_max_value, s_page_increment, s_editable,
38 s_list_data, s_columns, sk_scroll_action, s_dialog_proto, sk_go_away,
39 s_dialog_item_proto, s_button_item_proto, s_toggle_item_proto,
40 s_text_item_proto, sk_editable, s_choice_item_proto, s_scroll_item_proto,
41 sk_min_value, sk_max_value, sk_page_increment, s_list_item_proto,
42 sk_columns, s_modeless, s_modal, s_hardware_objects, s_bind_to_file,
43 sk_clobber, sk_own, sk_print, s_arrow, sk_activate, sk_close, s_value,
44 s_listener, s_input_stream,
45 sk_tolerance, sk_max_iters, sk_adjust_points_in_rect, sk_adjust_screen_point,
46 s_documentation,
47 s_compound_data_proto, sk_data_length, sk_data_seq, sk_make_data,
48 sk_select_data,
49 s_machine_epsilon, s_graph, s_instance_slots, s_proto_name,
50 s_content_variables, s_rotation_type, s_rotation_angle, s_rotation_controls,
51 s_histogram_internals, sk_adjust_depth_cuing, sk_draw_axes, s_mode_list,
52 s_scale_type, s_fixed, s_variable, sk_apply_transformation,
53 sk_unselect_all_points, s_set_slot_hook, s_message_hook, s_mouse_mode,
54 s_has_h_scroll, s_has_v_scroll, s_fixed_aspect, sk_width, sk_color,
55 sk_symbol, s_multiple, s_internals, s_color_index, s_cursor_index,
56 s_symbol_index, s_pitching, s_rolling, s_yawing, sk_basis,
57 sk_links, sk_linked, sk_show, sk_show_window, s_event_queue, s_text_length,
58 k_derivstep, k_set_mode_cursor, s_default_path;
59 #ifdef UNIX
60 LVAL s_plot_output;
61 #endif /* UNIX */
62 #ifdef MACINTOSH
63 LVAL k_initial, s_input_enabled, s_istream, s_ostream;
64 LVAL s_use_notifier;
65 #endif /* MACINTOSH */
66 #ifdef X11WINDOWS
67 LVAL s_window_id, sk_fast_lines, sk_fast_symbols, sk_motion_sync,
68 sk_do_clipping, sk_use_icccm, sk_wait_for_map;
69 #endif /* X11WINDOWS */
70 #ifdef _Windows
71 LVAL s_dll_list, s_msw_help_file, k_context, k_help,
72 k_index, k_quit;
73 #endif /* _Windows */
74 #ifdef FOREIGNCALL
75 LVAL k_fortran, k_libflags, s_cfun_table;
76 #endif /* FOREIGNCALL */
77 LVAL s_xls_major_release, s_xls_minor_release, s_xls_subminor_release;
78 extern char *defaultpath;
79 LVAL s_in_callback;
80 LVAL s_standard_division;
82 /* forward declarations */
83 LOCAL VOID statfinit _((void));
84 LOCAL VOID init_color _((int index, LVAL sym));
85 LOCAL VOID init_colors _((void));
86 LOCAL VOID init_cursor _((int index, LVAL sym));
87 LOCAL VOID init_cursors _((void));
88 LOCAL VOID init_plot_symbol _((int i1, int i2, LVAL sym));
89 LOCAL VOID init_plot_symbols _((void));
91 LOCAL VOID statfinit(V)
93 setvalue(s_linked_plots, NIL);
94 setvalue(s_hardware_objects, NIL);
95 setsvalue(s_input_stream, newustream());
96 defconstant(s_machine_epsilon, cvflonum((FLOTYPE) macheps()));
98 StInitGraphics();
99 init_colors();
100 init_cursors();
101 init_plot_symbols();
103 if (defaultpath == NULL) {
104 get_directory(buf);
105 setsvalue(s_default_path, cvstring(buf));
107 else setsvalue(s_default_path, cvstring(defaultpath));
108 #ifdef UNIX
109 setvalue(s_plot_output, getvalue(s_stdout));
110 #endif /* UNIX */
111 setsvalue(s_in_callback, NIL);
114 LOCAL VOID init_color P2C(int, index, LVAL, sym)
116 StGWSetColRefCon(index, (long) sym);
117 xlputprop(sym, cvfixnum((FIXTYPE) index), xlenter("color-index"));
120 LOCAL VOID init_colors(V)
122 init_color(0, xlenter("WHITE"));
123 init_color(1, xlenter("BLACK"));
124 init_color(2, xlenter("RED"));
125 init_color(3, xlenter("GREEN"));
126 init_color(4, xlenter("BLUE"));
127 init_color(5, xlenter("CYAN"));
128 init_color(6, xlenter("MAGENTA"));
129 init_color(7, xlenter("YELLOW"));
132 LOCAL VOID init_cursor P2C(int, index, LVAL, sym)
134 StGWSetCursRefCon(index, (long) sym);
135 xlputprop(sym, cvfixnum((FIXTYPE) index), xlenter("cursor-index"));
138 LOCAL VOID init_cursors(V)
140 init_cursor(0, xlenter("ARROW"));
141 init_cursor(1, xlenter("WATCH"));
142 init_cursor(2, xlenter("CROSS"));
143 init_cursor(3, xlenter("BRUSH"));
144 init_cursor(4, xlenter("HAND"));
145 init_cursor(5, xlenter("FINGER"));
146 init_cursor(6, xlenter("HOUR-GLASS"));
147 init_cursor(7, xlenter("TRASH-BAG"));
148 init_cursor(8, xlenter("TRASH-CAN"));
151 LOCAL VOID init_plot_symbol P3C(int, i1, int, i2, LVAL, sym)
153 StGWSetSymRefCon(i1, (long) sym);
154 xlputprop(sym, integer_list_2(i1, i2), xlenter("symbol-index"));
157 LOCAL VOID init_plot_symbols(V)
159 init_plot_symbol(0, 3, xlenter("DOT"));
160 init_plot_symbol(0, 5, xlenter("DOT1"));
161 init_plot_symbol(1, 5, xlenter("DOT2"));
162 init_plot_symbol(2, 5, xlenter("DOT3"));
163 init_plot_symbol(3, 5, xlenter("DOT4"));
164 init_plot_symbol(4, 5, xlenter("DISK"));
165 init_plot_symbol(6, 7, xlenter("DIAMOND"));
166 init_plot_symbol(8, 9, xlenter("CROSS"));
167 init_plot_symbol(10, 11, xlenter("SQUARE"));
168 init_plot_symbol(12, 13, xlenter("WEDGE1"));
169 init_plot_symbol(14, 15, xlenter("WEDGE2"));
170 init_plot_symbol(16, 17, xlenter("X"));
173 VOID statsymbols(V)
175 statobsymbols();
177 s_selecting = xlenter("SELECTING");
178 s_brushing = xlenter("BRUSHING");
179 s_user = xlenter("USER");
180 s_invisible = xlenter("INVISIBLE");
181 s_normal = xlenter("NORMAL");
182 s_hilited = xlenter("HILITED");
183 s_selected = xlenter("SELECTED");
184 s_solid = xlenter("SOLID");
185 s_dashed = xlenter("DASHED");
186 sk_point_labels = xlenter(":POINT-LABELS");
187 s_left = xlenter("LEFT");
188 s_center = xlenter("CENTER");
189 s_right = xlenter("RIGHT");
190 s_top = xlenter("TOP");
191 s_bottom = xlenter("BOTTOM");
192 s_xor = xlenter("XOR");
194 sk_allocate = xlenter(":ALLOCATE");
195 sk_dispose = xlenter(":DISPOSE");
196 sk_resize = xlenter(":RESIZE");
197 sk_redraw = xlenter(":REDRAW");
198 sk_do_idle = xlenter(":DO-IDLE");
199 sk_do_click = xlenter(":DO-CLICK");
200 sk_do_motion = xlenter(":DO-MOTION");
201 sk_do_key = xlenter(":DO-KEY");
202 sk_install = xlenter(":INSTALL");
203 sk_remove = xlenter(":REMOVE");
204 sk_update = xlenter(":UPDATE");
205 sk_select = xlenter(":SELECT");
206 sk_mark_points_in_rect = xlenter(":MARK-POINTS-IN-RECT");
207 sk_adjust_screen = xlenter(":ADJUST-SCREEN");
209 s_hardware_address = xlenter("HARDWARE-ADDRESS");
210 s_number_of_variables = xlenter("NUMBER-OF-VARIABLES");
211 s_menu = xlenter("MENU");
212 sk_draw = xlenter(":DRAW");
213 sk_redraw_background = xlenter(":REDRAW-BACKGROUND");
214 sk_clear_content = xlenter(":CLEAR-CONTENT");
215 sk_redraw_content = xlenter(":REDRAW-CONTENT");
216 sk_redraw_overlays = xlenter(":REDRAW-OVERLAYS");
217 sk_resize_overlays = xlenter(":RESIZE-OVERLAYS");
218 sk_overlay_click = xlenter(":OVERLAY-CLICK");
219 sk_new = xlenter(":NEW");
220 s_histogram_proto = xlenter("HISTOGRAM-PROTO");
221 sk_new_menu = xlenter(":NEW-MENU");
222 sk_add_points = xlenter(":ADD-POINTS");
223 sk_add_lines = xlenter(":ADD-LINES");
224 s_black_on_white = xlenter("BLACK-ON-WHITE");
225 sk_variable_labels = xlenter(":VARIABLE-LABELS");
226 s_variable_labels = xlenter("VARIABLE-LABELS");
227 s_scatterplot_proto = xlenter("SCATTERPLOT-PROTO");
228 sk_adjust_to_data = xlenter(":ADJUST-TO-DATA");
229 sk_showing_labels = xlenter(":SHOWING-LABELS");
230 s_showing_labels = xlenter("SHOWING-LABELS");
231 sk_scale = xlenter(":SCALE");
232 s_spin_proto = xlenter("SPIN-PROTO");
233 s_scatmat_proto = xlenter("SCATMAT-PROTO");
234 s_name_list_proto = xlenter("NAME-LIST-PROTO");
235 s_depth_cuing = xlenter("DEPTH-CUING");
236 s_showing_axes = xlenter("SHOWING-AXES");
237 sk_type = xlenter(":TYPE");
238 s_dotword = xlenter("DOT");
239 s_title = xlenter("TITLE");
240 s_items = xlenter("ITEMS");
241 s_enabled = xlenter("ENABLED");
242 s_id = xlenter("ID");
243 s_menu_list = xlenter("MENU-LIST");
244 s_title = xlenter("TITLE");
245 s_key = xlenter("KEY");
246 s_mark = xlenter("MARK");
247 s_style = xlenter("STYLE");
248 s_action = xlenter("ACTION");
249 s_menu_proto = xlenter("MENU-PROTO");
250 s_apple_menu_proto = xlenter("APPLE-MENU-PROTO");
251 s_menu_item_proto = xlenter("MENU-ITEM-PROTO");
252 sk_do_action = xlenter(":DO-ACTION");
253 s_bold = xlenter("BOLD");
254 s_italic = xlenter("ITALIC");
255 s_underline = xlenter("UNDERLINE");
256 s_outline = xlenter("OUTLINE");
257 s_shadow = xlenter("SHADOW");
258 s_condense = xlenter("CONDENSE");
259 s_extend = xlenter("EXTEND");
260 sk_enabled = xlenter(":ENABLED");
261 s_type = xlenter("TYPE");
262 s_go_away = xlenter("GO-AWAY");
263 s_default_button = xlenter("DEFAULT-BUTTON");
264 s_text = xlenter("TEXT");
265 s_location = xlenter("LOCATION");
266 s_size = xlenter("SIZE");
267 s_dialog = xlenter("DIALOG");
268 s_min_value = xlenter("MIN-VALUE");
269 s_max_value = xlenter("MAX-VALUE");
270 s_page_increment = xlenter("PAGE-INCREMENT");
271 s_editable = xlenter("EDITABLE");
272 s_list_data = xlenter("LIST-DATA");
273 s_columns = xlenter("COLUMNS");
274 sk_scroll_action = xlenter(":SCROLL-ACTION");
275 s_dialog_proto = xlenter("DIALOG-PROTO");
276 sk_go_away = xlenter(":GO-AWAY");
277 s_dialog_item_proto = xlenter("DIALOG-ITEM-PROTO");
278 s_button_item_proto = xlenter("BUTTON-ITEM-PROTO");
279 s_toggle_item_proto = xlenter("TOGGLE-ITEM-PROTO");
280 s_text_item_proto = xlenter("TEXT-ITEM-PROTO");
281 sk_editable = xlenter(":EDITABLE");
282 s_choice_item_proto = xlenter("CHOICE-ITEM-PROTO");
283 s_scroll_item_proto = xlenter("SCROLL-ITEM-PROTO");
284 sk_min_value = xlenter(":MIN-VALUE");
285 sk_max_value = xlenter(":MAX-VALUE");
286 sk_page_increment = xlenter(":PAGE-INCREMENT");
287 s_list_item_proto = xlenter("LIST-ITEM-PROTO");
288 sk_columns = xlenter(":COLUMNS");
289 s_modeless = xlenter("MODELESS");
290 s_modal = xlenter("MODAL");
291 s_hardware_objects = xlenter("*HARDWARE-OBJECTS*");
292 s_bind_to_file = xlenter("BIND-TO-FILE");
293 sk_clobber = xlenter(":CLOBBER");
294 sk_own = xlenter(":OWN");
295 sk_print = xlenter(":PRINT");
296 s_arrow = xlenter("ARROW");
297 sk_activate = xlenter(":ACTIVATE");
298 sk_close = xlenter(":CLOSE");
299 s_value = xlenter("VALUE");
300 s_listener = xlenter("*LISTENER*");
301 s_input_stream = xlenter("*INPUT-STREAM*");
302 sk_tolerance = xlenter(":TOLERANCE");
303 sk_max_iters = xlenter(":MAX-ITERS");
304 sk_adjust_points_in_rect = xlenter(":ADJUST-POINTS-IN-RECT");
305 sk_adjust_screen_point = xlenter(":ADJUST-SCREEN-POINT");
306 s_self = xlenter("SELF");
307 s_documentation = xlenter("DOCUMENTATION");
308 s_compound_data_proto = xlenter("COMPOUND-DATA-PROTO");
309 sk_data_length = xlenter(":DATA-LENGTH");
310 sk_data_seq = xlenter(":DATA-SEQ");
311 sk_make_data = xlenter(":MAKE-DATA");
312 sk_select_data = xlenter(":SELECT-DATA");
313 s_machine_epsilon = xlenter("MACHINE-EPSILON");
314 s_graph = xlenter("GRAPH");
315 s_instance_slots = xlenter("INSTANCE-SLOTS");
316 s_proto_name = xlenter("PROTO-NAME");
317 s_content_variables = xlenter("CONTENT-VARIABLES");
318 s_rotation_type = xlenter("ROTATION-TYPE");
319 s_rotation_angle = xlenter("ROTATION-ANGLE");
320 s_rotation_controls = xlenter("ROTATION-CONTROLS");
321 s_histogram_internals = xlenter("HISTOGRAM-INTERNALS");
322 sk_adjust_depth_cuing = xlenter(":ADJUST-DEPTH-CUING");
323 sk_draw_axes = xlenter(":DRAW-AXES");
324 s_mode_list = xlenter("MODE-LIST");
325 s_scale_type = xlenter("SCALE-TYPE");
326 s_fixed = xlenter("FIXED");
327 s_variable = xlenter("VARIABLE");
328 sk_apply_transformation = xlenter(":APPLY-TRANSFORMATION");
329 sk_unselect_all_points = xlenter(":UNSELECT-ALL-POINTS");
330 s_set_slot_hook = xlenter("*SET-SLOT-HOOK*");
331 s_message_hook = xlenter("*MESSAGE-HOOK*");
332 s_mouse_mode = xlenter("MOUSE-MODE");
333 s_has_h_scroll = xlenter("HAS-H-SCROLL");
334 s_has_v_scroll = xlenter("HAS-V-SCROLL");
335 s_fixed_aspect = xlenter("FIXED-ASPECT");
336 sk_width = xlenter(":WIDTH");
337 sk_color = xlenter(":COLOR");
338 sk_symbol = xlenter(":SYMBOL");
339 s_multiple = xlenter("MULTIPLE");
340 s_internals = xlenter("INTERNALS");
341 s_color_index = xlenter("color-index");
342 s_cursor_index = xlenter("cursor-index");
343 s_symbol_index = xlenter("symbol-index");
344 s_pitching = xlenter("PITCHING");
345 s_rolling = xlenter("ROLLING");
346 s_yawing = xlenter("YAWING");
347 sk_basis = xlenter(":BASIS");
348 sk_linked = xlenter(":LINKED");
349 sk_links = xlenter(":LINKS");
350 sk_show = xlenter(":SHOW");
351 sk_show_window = xlenter(":SHOW-WINDOW");
352 s_linked_plots = xlenter("_linked_plots_");
353 s_event_queue = xlenter("*EVENT-QUEUE*");
354 setsvalue(s_event_queue, NIL);
355 s_text_length = xlenter("TEXT-LENGTH");
356 k_derivstep = xlenter(":DERIVSTEP");
357 k_set_mode_cursor = xlenter(":SET-MODE-CURSOR");
358 s_default_path = xlenter("*DEFAULT-PATH*");
359 #ifdef UNIX
360 s_plot_output = xlenter("*PLOT-OUTPUT*");
361 setvalue(s_plot_output, getvalue(s_stdout));
362 #endif /* UNIX */
363 #ifdef MACINTOSH
364 k_initial = xlenter(":INITIAL");
365 s_input_enabled = xlenter("INPUT-ENABLED");
366 s_istream = xlenter("INPUT-STREAM");
367 s_ostream = xlenter("OUTPUT-STREAM");
368 s_use_notifier = xlenter("*USE-NOTIFIER*");
369 setsvalue(s_use_notifier, s_true);
370 #endif /* MACINTOSH */
371 #ifdef X11WINDOWS
372 s_window_id = xlenter("WINDOW-ID");
373 sk_fast_lines = xlenter(":FAST-LINES");
374 sk_fast_symbols = xlenter(":FAST-SYMBOLS");
375 sk_motion_sync = xlenter(":MOTION-SYNC");
376 sk_do_clipping = xlenter(":DO-CLIPPING");
377 sk_use_icccm = xlenter(":ICCCM");
378 sk_wait_for_map = xlenter(":WAIT-FOR-MAP");
379 #endif /* X11WINDOWS */
380 #ifdef _Windows
381 s_dll_list = xlenter("dll-list");
382 s_msw_help_file = xlenter("msw-help-file");
383 k_context = xlenter(":CONTEXT");
384 k_help = xlenter(":HELP");
385 k_index = xlenter(":INDEX");
386 k_quit = xlenter(":QUIT");
387 #endif /* _Windows */
388 #ifdef FOREIGNCALL
389 k_fortran = xlenter(":FORTRAN");
390 k_libflags = xlenter(":LIBFLAGS");
391 s_cfun_table = xlenter("__cfun_table__");
392 #endif /* FOREIGNCALL */
393 s_xls_major_release = xlenter("XLS-MAJOR-RELEASE");
394 defconstant(s_xls_major_release, cvfixnum((FIXTYPE) XLS_MAJOR_RELEASE));
395 s_xls_minor_release = xlenter("XLS-MINOR-RELEASE");
396 defconstant(s_xls_minor_release, cvfixnum((FIXTYPE) XLS_MINOR_RELEASE));
397 s_xls_subminor_release = xlenter("XLS-SUBMINOR-RELEASE");
398 defconstant(s_xls_subminor_release, cvfixnum((FIXTYPE) XLS_SUBMINOR_RELEASE));
399 s_in_callback = xlintern("*IN-CALLBACK*", xlisppack);
400 s_standard_division = xlenter("*STANDARD-DIVISION*");
401 setsvalue(s_standard_division, NIL);
403 statfinit();