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)20void clicked_code_0(void) 21 { 22 call_digit(CODE_0); 23 } 24 clicked_code_1(void)25void clicked_code_1(void) 26 { 27 call_digit(CODE_1); 28 } 29 clicked_code_2(void)30void clicked_code_2(void) 31 { 32 call_digit(CODE_2); 33 } 34 clicked_code_3(void)35void clicked_code_3(void) 36 { 37 call_digit(CODE_3); 38 } 39 clicked_code_4(void)40void clicked_code_4(void) 41 { 42 call_digit(CODE_4); 43 } 44 clicked_code_5(void)45void clicked_code_5(void) 46 { 47 call_digit(CODE_5); 48 } 49 clicked_code_6(void)50void clicked_code_6(void) 51 { 52 call_digit(CODE_6); 53 } 54 clicked_code_7(void)55void clicked_code_7(void) 56 { 57 call_digit(CODE_7); 58 } 59 clicked_code_8(void)60void clicked_code_8(void) 61 { 62 call_digit(CODE_8); 63 } 64 clicked_code_9(void)65void clicked_code_9(void) 66 { 67 call_digit(CODE_9); 68 } 69 70 71 /* other input keys */ 72 clicked_code_dot(void)73void clicked_code_dot(void) 74 { 75 call_dot(); 76 } 77 clicked_code_sign(void)78void clicked_code_sign(void) 79 { 80 call_sign(); 81 } 82 clicked_code_exp(void)83void clicked_code_exp(void) 84 { 85 call_exp(); 86 } 87 clicked_code_exp_sign(void)88void clicked_code_exp_sign(void) 89 { 90 call_exp_sign(); 91 } 92 clicked_code_clear_x(void)93void clicked_code_clear_x(void) 94 { 95 call_clear_x(); 96 } 97 98 /* 3.1415 */ 99 clicked_code_pi(void)100void clicked_code_pi(void) 101 { 102 call_pi(); 103 } 104 105 /* binary operation keys */ 106 clicked_code_add(void)107void clicked_code_add(void) 108 { 109 call_binary_op(CODE_ADD); 110 } 111 clicked_code_sub(void)112void clicked_code_sub(void) 113 { 114 call_binary_op(CODE_SUB); 115 } 116 clicked_code_mul(void)117void clicked_code_mul(void) 118 { 119 call_binary_op(CODE_MUL); 120 } 121 clicked_code_div(void)122void clicked_code_div(void) 123 { 124 call_binary_op(CODE_DIV); 125 } 126 clicked_code_pow(void)127void clicked_code_pow(void) 128 { 129 call_binary_op(CODE_POW); 130 } 131 132 /* memory operation keys */ 133 clicked_code_mem_plus(void)134void clicked_code_mem_plus(void) 135 { 136 call_mem_op(CODE_MEM_PLUS); 137 } 138 clicked_code_mem_to_x(void)139void clicked_code_mem_to_x(void) 140 { 141 call_mem_op(CODE_MEM_TO_X); 142 } 143 clicked_code_x_to_mem(void)144void clicked_code_x_to_mem(void) 145 { 146 call_mem_op(CODE_X_TO_MEM); 147 } 148 clicked_code_exch_xmem(void)149void clicked_code_exch_xmem(void) 150 { 151 call_mem_op(CODE_EXCH_XMEM); 152 } 153 clicked_code_switch_to_mem0(void)154void clicked_code_switch_to_mem0(void) 155 { 156 call_switch_to_mem(0); 157 } 158 clicked_code_switch_to_mem1(void)159void clicked_code_switch_to_mem1(void) 160 { 161 call_switch_to_mem(1); 162 } 163 164 /* unary operation keys */ 165 clicked_code_10tox(void)166void clicked_code_10tox(void) 167 { 168 call_unary_op(CODE_10TOX); 169 } 170 clicked_code_log(void)171void clicked_code_log(void) 172 { 173 call_unary_op(CODE_LOG); 174 } 175 clicked_code_etox(void)176void clicked_code_etox(void) 177 { 178 call_unary_op(CODE_ETOX); 179 } 180 clicked_code_ln(void)181void clicked_code_ln(void) 182 { 183 call_unary_op(CODE_LN); 184 } 185 clicked_code_sqr(void)186void clicked_code_sqr(void) 187 { 188 call_unary_op(CODE_SQR); 189 } 190 clicked_code_sqrt(void)191void clicked_code_sqrt(void) 192 { 193 call_unary_op(CODE_SQRT); 194 } 195 clicked_code_invx(void)196void clicked_code_invx(void) 197 { 198 call_unary_op(CODE_INVX); 199 } 200 clicked_code_fact(void)201void clicked_code_fact(void) 202 { 203 call_unary_op(CODE_FACT); 204 } 205 206 /* equals key */ 207 clicked_code_eq(void)208void clicked_code_eq(void) 209 { 210 call_eq (); 211 } 212 213 /* CA key */ 214 clicked_code_clear_all(void)215void clicked_code_clear_all(void) 216 { 217 call_clear_all (); 218 } 219 clicked_code_exch_xy(void)220void clicked_code_exch_xy(void) 221 { 222 call_exch_xy (); 223 } 224 clicked_code_stack_up(void)225void clicked_code_stack_up(void) 226 { 227 call_stack_up (); 228 } 229 clicked_code_stack_down(void)230void clicked_code_stack_down(void) 231 { 232 call_stack_down (); 233 } 234 235 /* trigonometry keys */ 236 clicked_code_sin(void)237void 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)253void 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)269void 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)285void clicked_change_display_format(void) 286 { 287 call_change_display_format(); 288 } 289 clicked_code_undo(void)290void clicked_code_undo(void) 291 { 292 call_undo (); 293 } 294 clicked_code_redo(void)295void clicked_code_redo(void) 296 { 297 call_redo (); 298 } 299 clicked_code_info(void)300void clicked_code_info(void) 301 { 302 call_info (); /* call_info() is in b_info.c */ 303 } 304 clicked_code_settings(void)305void clicked_code_settings(void) 306 { 307 call_settings (); /* call_settings() is in b_settings.c */ 308 } 309 clicked_code_left_paren(void)310void clicked_code_left_paren(void) 311 { 312 call_left_paren(); 313 } 314 clicked_code_right_paren(void)315void clicked_code_right_paren(void) 316 { 317 call_right_paren(); 318 } 319 clicked_code_enter(void)320void clicked_code_enter(void) 321 { 322 call_enter(); 323 } 324 clicked_code_paste(double x)325void 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)334void clicked_change_angle_units(void) 335 { 336 call_change_angle_units(); 337 save_settings(); 338 } 339 clicked_set_angle_units(int a)340void clicked_set_angle_units(int a) 341 { 342 call_set_angle_units(a); 343 } 344 requested_angle_units(void)345int 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)353void clicked_set_rpn_mode(int a) 354 { 355 call_set_rpn_mode(a); 356 } 357 requested_rpn_mode(void)358int 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)365void clicked_set_enter_mode(int a) 366 { 367 call_set_enter_mode(a); 368 } 369 requested_enter_mode(void)370int 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)377void clicked_set_rounding_mode(int a) 378 { 379 call_set_rounding_mode(a); 380 } 381 requested_rounding_mode(void)382int 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)389void clicked_set_trunc_zeros_mode(int a) 390 { 391 call_set_trunc_zeros_mode(a); 392 } 393 requested_trunc_zeros_mode(void)394int 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)401void clicked_set_stack_mode(int a) 402 { 403 call_set_stack_mode(a); 404 } 405 requested_stack_mode(void)406int 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