1 /*
2  * Calcoo: input.c
3  *
4  * Copyright (C) 2001-2005 Alexei Kaminski
5  *
6  */
7 
8 #include "codes.h"
9 #include "cpu.h"
10 #include "io_headers.h"
11 #include "c_headers.h"
12 #include "b_headers.h"
13 #include "aux_headers.h"
14 
15 /* most of the call_foo() functions are in the cpu part, though
16  * some of them are in the body part */
17 
18 /* digit keys */
19 
clicked_code_0(void)20 void clicked_code_0(void)
21 {
22 	call_digit(CODE_0);
23 }
24 
clicked_code_1(void)25 void clicked_code_1(void)
26 {
27 	call_digit(CODE_1);
28 }
29 
clicked_code_2(void)30 void clicked_code_2(void)
31 {
32 	call_digit(CODE_2);
33 }
34 
clicked_code_3(void)35 void clicked_code_3(void)
36 {
37 	call_digit(CODE_3);
38 }
39 
clicked_code_4(void)40 void clicked_code_4(void)
41 {
42 	call_digit(CODE_4);
43 }
44 
clicked_code_5(void)45 void clicked_code_5(void)
46 {
47 	call_digit(CODE_5);
48 }
49 
clicked_code_6(void)50 void clicked_code_6(void)
51 {
52 	call_digit(CODE_6);
53 }
54 
clicked_code_7(void)55 void clicked_code_7(void)
56 {
57 	call_digit(CODE_7);
58 }
59 
clicked_code_8(void)60 void clicked_code_8(void)
61 {
62 	call_digit(CODE_8);
63 }
64 
clicked_code_9(void)65 void clicked_code_9(void)
66 {
67 	call_digit(CODE_9);
68 }
69 
70 
71 /* other input keys */
72 
clicked_code_dot(void)73 void clicked_code_dot(void)
74 {
75 	call_dot();
76 }
77 
clicked_code_sign(void)78 void clicked_code_sign(void)
79 {
80 	call_sign();
81 }
82 
clicked_code_exp(void)83 void clicked_code_exp(void)
84 {
85 	call_exp();
86 }
87 
clicked_code_exp_sign(void)88 void clicked_code_exp_sign(void)
89 {
90 	call_exp_sign();
91 }
92 
clicked_code_clear_x(void)93 void clicked_code_clear_x(void)
94 {
95 	call_clear_x();
96 }
97 
98 /* 3.1415 */
99 
clicked_code_pi(void)100 void clicked_code_pi(void)
101 {
102 	call_pi();
103 }
104 
105 /* binary operation keys */
106 
clicked_code_add(void)107 void clicked_code_add(void)
108 {
109 	call_binary_op(CODE_ADD);
110 }
111 
clicked_code_sub(void)112 void clicked_code_sub(void)
113 {
114 	call_binary_op(CODE_SUB);
115 }
116 
clicked_code_mul(void)117 void clicked_code_mul(void)
118 {
119 	call_binary_op(CODE_MUL);
120 }
121 
clicked_code_div(void)122 void clicked_code_div(void)
123 {
124 	call_binary_op(CODE_DIV);
125 }
126 
clicked_code_pow(void)127 void clicked_code_pow(void)
128 {
129 	call_binary_op(CODE_POW);
130 }
131 
132 /* memory operation keys */
133 
clicked_code_mem_plus(void)134 void clicked_code_mem_plus(void)
135 {
136 	call_mem_op(CODE_MEM_PLUS);
137 }
138 
clicked_code_mem_to_x(void)139 void clicked_code_mem_to_x(void)
140 {
141 	call_mem_op(CODE_MEM_TO_X);
142 }
143 
clicked_code_x_to_mem(void)144 void clicked_code_x_to_mem(void)
145 {
146 	call_mem_op(CODE_X_TO_MEM);
147 }
148 
clicked_code_exch_xmem(void)149 void clicked_code_exch_xmem(void)
150 {
151 	call_mem_op(CODE_EXCH_XMEM);
152 }
153 
clicked_code_switch_to_mem0(void)154 void clicked_code_switch_to_mem0(void)
155 {
156 	call_switch_to_mem(0);
157 }
158 
clicked_code_switch_to_mem1(void)159 void clicked_code_switch_to_mem1(void)
160 {
161 	call_switch_to_mem(1);
162 }
163 
164 /* unary operation keys */
165 
clicked_code_10tox(void)166 void clicked_code_10tox(void)
167 {
168 	call_unary_op(CODE_10TOX);
169 }
170 
clicked_code_log(void)171 void clicked_code_log(void)
172 {
173 	call_unary_op(CODE_LOG);
174 }
175 
clicked_code_etox(void)176 void clicked_code_etox(void)
177 {
178 	call_unary_op(CODE_ETOX);
179 }
180 
clicked_code_ln(void)181 void clicked_code_ln(void)
182 {
183 	call_unary_op(CODE_LN);
184 }
185 
clicked_code_sqr(void)186 void clicked_code_sqr(void)
187 {
188 	call_unary_op(CODE_SQR);
189 }
190 
clicked_code_sqrt(void)191 void clicked_code_sqrt(void)
192 {
193 	call_unary_op(CODE_SQRT);
194 }
195 
clicked_code_invx(void)196 void clicked_code_invx(void)
197 {
198 	call_unary_op(CODE_INVX);
199 }
200 
clicked_code_fact(void)201 void clicked_code_fact(void)
202 {
203 	call_unary_op(CODE_FACT);
204 }
205 
206 /* equals key */
207 
clicked_code_eq(void)208 void clicked_code_eq(void)
209 {
210 	call_eq ();
211 }
212 
213 /* CA key */
214 
clicked_code_clear_all(void)215 void clicked_code_clear_all(void)
216 {
217 	call_clear_all ();
218 }
219 
clicked_code_exch_xy(void)220 void clicked_code_exch_xy(void)
221 {
222 	call_exch_xy ();
223 }
224 
clicked_code_stack_up(void)225 void clicked_code_stack_up(void)
226 {
227 	call_stack_up ();
228 }
229 
clicked_code_stack_down(void)230 void clicked_code_stack_down(void)
231 {
232 	call_stack_down ();
233 }
234 
235 /* trigonometry keys */
236 
clicked_code_sin(void)237 void clicked_code_sin(void)
238 {
239 	if (!get_hyp_state())
240 		if (!get_arc_state())
241 			call_unary_op(CODE_SIN);
242 		else
243 			call_unary_op(CODE_ASIN);
244 	else
245 		if (!get_arc_state())
246 			call_unary_op(CODE_SINH);
247 		else
248 			call_unary_op(CODE_ASINH);
249 
250 	raise_arc_hyp();
251 }
252 
clicked_code_cos(void)253 void clicked_code_cos(void)
254 {
255 	if (!get_hyp_state())
256 		if (!get_arc_state())
257 			call_unary_op(CODE_COS);
258 		else
259 			call_unary_op(CODE_ACOS);
260 	else
261 		if (!get_arc_state())
262 			call_unary_op(CODE_COSH);
263 		else
264 			call_unary_op(CODE_ACOSH);
265 
266 	raise_arc_hyp();
267 }
268 
clicked_code_tan(void)269 void clicked_code_tan(void)
270 {
271 	if (!get_hyp_state())
272 		if (!get_arc_state())
273 			call_unary_op(CODE_TAN);
274 		else
275 			call_unary_op(CODE_ATAN);
276 	else
277 		if (!get_arc_state())
278 			call_unary_op(CODE_TANH);
279 		else
280 			call_unary_op(CODE_ATANH);
281 
282 	raise_arc_hyp();
283 }
284 
clicked_change_display_format(void)285 void clicked_change_display_format(void)
286 {
287 	call_change_display_format();
288 }
289 
clicked_code_undo(void)290 void clicked_code_undo(void)
291 {
292 	call_undo ();
293 }
294 
clicked_code_redo(void)295 void clicked_code_redo(void)
296 {
297 	call_redo ();
298 }
299 
clicked_code_info(void)300 void clicked_code_info(void)
301 {
302 	call_info (); /* call_info() is in b_info.c */
303 }
304 
clicked_code_settings(void)305 void clicked_code_settings(void)
306 {
307 	call_settings (); /* call_settings() is in b_settings.c */
308 }
309 
clicked_code_left_paren(void)310 void clicked_code_left_paren(void)
311 {
312 	call_left_paren();
313 }
314 
clicked_code_right_paren(void)315 void clicked_code_right_paren(void)
316 {
317 	call_right_paren();
318 }
319 
clicked_code_enter(void)320 void clicked_code_enter(void)
321 {
322 	call_enter();
323 }
324 
clicked_code_paste(double x)325 void clicked_code_paste(double x)
326 {
327 	call_import_paste(x);
328 }
329 
330 /* void clicked_code_copy(void) */
331 /* No such function. The Copy button is connected
332  * to special GTK functions, see b_buttons.c */
333 
clicked_change_angle_units(void)334 void clicked_change_angle_units(void)
335 {
336 	call_change_angle_units();
337 	save_settings();
338 }
339 
clicked_set_angle_units(int a)340 void clicked_set_angle_units(int a)
341 {
342 	call_set_angle_units(a);
343 }
344 
requested_angle_units(void)345 int requested_angle_units(void)
346 {
347 	int a;
348 	a = call_get_angle_units();
349 	return a;
350 }
351 
352 
clicked_set_rpn_mode(int a)353 void clicked_set_rpn_mode(int a)
354 {
355 	call_set_rpn_mode(a);
356 }
357 
requested_rpn_mode(void)358 int requested_rpn_mode(void)
359 {
360 	int a;
361 	a = call_get_rpn_mode();
362 	return a;
363 }
364 
clicked_set_enter_mode(int a)365 void clicked_set_enter_mode(int a)
366 {
367 	call_set_enter_mode(a);
368 }
369 
requested_enter_mode(void)370 int requested_enter_mode(void)
371 {
372 	int a;
373 	a = call_get_enter_mode();
374 	return a;
375 }
376 
clicked_set_rounding_mode(int a)377 void clicked_set_rounding_mode(int a)
378 {
379 	call_set_rounding_mode(a);
380 }
381 
requested_rounding_mode(void)382 int requested_rounding_mode(void)
383 {
384 	int a;
385 	a = call_get_rounding_mode();
386 	return a;
387 }
388 
clicked_set_trunc_zeros_mode(int a)389 void clicked_set_trunc_zeros_mode(int a)
390 {
391 	call_set_trunc_zeros_mode(a);
392 }
393 
requested_trunc_zeros_mode(void)394 int requested_trunc_zeros_mode(void)
395 {
396 	int a;
397 	a = call_get_trunc_zeros_mode();
398 	return a;
399 }
400 
clicked_set_stack_mode(int a)401 void clicked_set_stack_mode(int a)
402 {
403 	call_set_stack_mode(a);
404 }
405 
requested_stack_mode(void)406 int requested_stack_mode(void)
407 {
408 	int a;
409 	a = call_get_stack_mode();
410 	return a;
411 }
412 
413 /* void clicked_code_exit(void) */
414 /* { */
415 /* 	call_exit();  */
416 /* } */
417 /* call_exit() is in b_main.c */
418