1 /* 2 Qalculate (GTK+ UI) 3 4 Copyright (C) 2003-2007, 2008, 2016-2020 Hanna Knutsson (hanna.knutsson@protonmail.com) 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 */ 11 12 #ifndef CALLBACKS_H 13 #define CALLBACKS_H 14 15 #include <gtk/gtk.h> 16 17 #define EXPAND_TO_ITER(model, view, iter) GtkTreePath *path = gtk_tree_model_get_path(model, &iter); \ 18 gtk_tree_view_expand_to_path(GTK_TREE_VIEW(view), path); \ 19 gtk_tree_path_free(path); 20 #define SCROLL_TO_ITER(model, view, iter) GtkTreePath *path2 = gtk_tree_model_get_path(model, &iter); \ 21 gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(view), path2, NULL, FALSE, 0, 0); \ 22 gtk_tree_path_free(path2); 23 #define EXPAND_ITER(model, view, iter) GtkTreePath *path = gtk_tree_model_get_path(model, &iter); \ 24 gtk_tree_view_expand_row(GTK_TREE_VIEW(view), path, FALSE); \ 25 gtk_tree_path_free(path); 26 27 #include "main.h" 28 29 enum { 30 PROGRAMMING_KEYPAD = 1, 31 HIDE_LEFT_KEYPAD = 2, 32 HIDE_RIGHT_KEYPAD = 4 33 }; 34 35 struct mode_struct { 36 PrintOptions po; 37 EvaluationOptions eo; 38 AssumptionType at; 39 AssumptionSign as; 40 Number custom_output_base; 41 Number custom_input_base; 42 int precision; 43 std::string name; 44 bool rpn_mode; 45 bool interval; 46 bool adaptive_interval_display; 47 bool variable_units_enabled; 48 int keypad; 49 bool autocalc; 50 bool chain_mode; 51 bool complex_angle_form; 52 }; 53 54 enum { 55 QALCULATE_HISTORY_EXPRESSION, 56 QALCULATE_HISTORY_TRANSFORMATION, 57 QALCULATE_HISTORY_RESULT, 58 QALCULATE_HISTORY_RESULT_APPROXIMATE, 59 QALCULATE_HISTORY_PARSE_WITHEQUALS, 60 QALCULATE_HISTORY_PARSE, 61 QALCULATE_HISTORY_PARSE_APPROXIMATE, 62 QALCULATE_HISTORY_WARNING, 63 QALCULATE_HISTORY_ERROR, 64 QALCULATE_HISTORY_OLD, 65 QALCULATE_HISTORY_REGISTER_MOVED, 66 QALCULATE_HISTORY_RPN_OPERATION, 67 QALCULATE_HISTORY_BOOKMARK, 68 QALCULATE_HISTORY_MESSAGE 69 }; 70 71 enum { 72 SHORTCUT_TYPE_FUNCTION, 73 SHORTCUT_TYPE_FUNCTION_WITH_DIALOG, 74 SHORTCUT_TYPE_VARIABLE, 75 SHORTCUT_TYPE_UNIT, 76 SHORTCUT_TYPE_TEXT, 77 SHORTCUT_TYPE_DATE, 78 SHORTCUT_TYPE_VECTOR, 79 SHORTCUT_TYPE_MATRIX, 80 SHORTCUT_TYPE_SMART_PARENTHESES, 81 SHORTCUT_TYPE_CONVERT, 82 SHORTCUT_TYPE_CONVERT_ENTRY, 83 SHORTCUT_TYPE_OPTIMAL_UNIT, 84 SHORTCUT_TYPE_BASE_UNITS, 85 SHORTCUT_TYPE_OPTIMAL_PREFIX, 86 SHORTCUT_TYPE_TO_NUMBER_BASE, 87 SHORTCUT_TYPE_FACTORIZE, 88 SHORTCUT_TYPE_EXPAND, 89 SHORTCUT_TYPE_PARTIAL_FRACTIONS, 90 SHORTCUT_TYPE_SET_UNKNOWNS, 91 SHORTCUT_TYPE_RPN_UP, 92 SHORTCUT_TYPE_RPN_DOWN, 93 SHORTCUT_TYPE_RPN_SWAP, 94 SHORTCUT_TYPE_RPN_COPY, 95 SHORTCUT_TYPE_RPN_LASTX, 96 SHORTCUT_TYPE_RPN_DELETE, 97 SHORTCUT_TYPE_RPN_CLEAR, 98 SHORTCUT_TYPE_META_MODE, 99 SHORTCUT_TYPE_OUTPUT_BASE, 100 SHORTCUT_TYPE_INPUT_BASE, 101 SHORTCUT_TYPE_EXACT_MODE, 102 SHORTCUT_TYPE_DEGREES, 103 SHORTCUT_TYPE_RADIANS, 104 SHORTCUT_TYPE_GRADIANS, 105 SHORTCUT_TYPE_FRACTIONS, 106 SHORTCUT_TYPE_MIXED_FRACTIONS, 107 SHORTCUT_TYPE_SCIENTIFIC_NOTATION, 108 SHORTCUT_TYPE_SIMPLE_NOTATION, 109 SHORTCUT_TYPE_RPN_MODE, 110 SHORTCUT_TYPE_AUTOCALC, 111 SHORTCUT_TYPE_PROGRAMMING, 112 SHORTCUT_TYPE_KEYPAD, 113 SHORTCUT_TYPE_HISTORY, 114 SHORTCUT_TYPE_HISTORY_SEARCH, 115 SHORTCUT_TYPE_CONVERSION, 116 SHORTCUT_TYPE_STACK, 117 SHORTCUT_TYPE_MINIMAL, 118 SHORTCUT_TYPE_MANAGE_VARIABLES, 119 SHORTCUT_TYPE_MANAGE_FUNCTIONS, 120 SHORTCUT_TYPE_MANAGE_UNITS, 121 SHORTCUT_TYPE_MANAGE_DATA_SETS, 122 SHORTCUT_TYPE_STORE, 123 SHORTCUT_TYPE_MEMORY_CLEAR, 124 SHORTCUT_TYPE_MEMORY_RECALL, 125 SHORTCUT_TYPE_MEMORY_STORE, 126 SHORTCUT_TYPE_MEMORY_ADD, 127 SHORTCUT_TYPE_MEMORY_SUBTRACT, 128 SHORTCUT_TYPE_NEW_VARIABLE, 129 SHORTCUT_TYPE_NEW_FUNCTION, 130 SHORTCUT_TYPE_PLOT, 131 SHORTCUT_TYPE_NUMBER_BASES, 132 SHORTCUT_TYPE_FLOATING_POINT, 133 SHORTCUT_TYPE_CALENDARS, 134 SHORTCUT_TYPE_PERCENTAGE_TOOL, 135 SHORTCUT_TYPE_PERIODIC_TABLE, 136 SHORTCUT_TYPE_UPDATE_EXRATES, 137 SHORTCUT_TYPE_COPY_RESULT, 138 SHORTCUT_TYPE_SAVE_IMAGE, 139 SHORTCUT_TYPE_HELP, 140 SHORTCUT_TYPE_QUIT, 141 SHORTCUT_TYPE_CHAIN_MODE 142 }; 143 144 struct keyboard_shortcut { 145 guint key; 146 guint modifier; 147 int type; 148 std::string value; 149 }; 150 151 struct custom_button { 152 int type[3]; 153 std::string value[3], text; custom_buttoncustom_button154 custom_button() {type[0] = -1; type[1] = -1; type[2] = -1;} 155 }; 156 157 std::string shortcut_to_text(guint key, guint state); 158 const gchar *shortcut_type_text(int type, bool return_null = false); 159 void update_accels(); 160 161 DECLARE_BUILTIN_FUNCTION(AnswerFunction, 0) 162 DECLARE_BUILTIN_FUNCTION(ExpressionFunction, 0) 163 DECLARE_BUILTIN_FUNCTION(SetTitleFunction, 0) 164 165 class ViewThread : public Thread { 166 protected: 167 virtual void run(); 168 }; 169 170 class CommandThread : public Thread { 171 protected: 172 virtual void run(); 173 }; 174 175 class FetchExchangeRatesThread : public Thread { 176 protected: 177 virtual void run(); 178 }; 179 180 bool string_is_less(std::string str1, std::string str2); 181 182 bool can_display_unicode_string_function(const char *str, void *w); 183 bool can_display_unicode_string_function_exact(const char *str, void *w); 184 void set_unicode_buttons(); 185 void set_operator_symbols(); 186 187 bool update_window_title(const char *str = NULL, bool is_result = false); 188 189 cairo_surface_t *draw_structure(MathStructure &m, PrintOptions po = default_print_options, bool caf = false, InternalPrintStruct ips = top_ips, gint *point_central = NULL, int scaledown = 0, GdkRGBA *color = NULL, gint *x_offset = NULL, gint *w_offset = NULL, gint max_width = -1); 190 191 void update_status_text(); 192 193 void clearresult(); 194 195 void set_result_size_request(); 196 void set_expression_size_request(); 197 198 void create_umenu(void); 199 void create_umenu2(void); 200 void create_vmenu(void); 201 void create_fmenu(void); 202 void create_pmenu(GtkWidget *item); 203 void create_pmenu2(void); 204 205 void update_vmenu(); 206 void update_fmenu(); 207 void update_umenu(); 208 209 void update_completion(); 210 211 void generate_functions_tree_struct(); 212 void generate_variables_tree_struct(); 213 void generate_units_tree_struct(); 214 215 gboolean on_display_errors_timeout(gpointer data); 216 gboolean on_check_version_idle(gpointer data); 217 218 void update_functions_tree(); 219 void update_variables_tree(); 220 void update_units_tree(); 221 void update_unit_selector_tree(); 222 void update_datasets_tree(); 223 void on_tFunctions_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 224 void on_tFunctionCategories_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 225 void on_tVariables_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 226 void on_tVariableCategories_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 227 void on_tUnits_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 228 void on_tUnitCategories_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 229 void on_tDataObjects_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 230 void on_tDatasets_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 231 void on_tDataProperties_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 232 void on_tUnitSelector_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 233 void on_tUnitSelectorCategories_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 234 235 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, std::string execute_str = std::string(), std::string str = std::string(), bool check_exrates = true); 236 void setResult(Prefix *prefix = NULL, bool update_history = true, bool update_parse = false, bool force = false, std::string transformation = "", size_t stack_index = 0, bool register_moved = false, bool supress_dialog = false); 237 void execute_from_file(std::string file_name); 238 239 void set_rpn_mode(bool b); 240 void calculateRPN(int op); 241 void calculateRPN(MathFunction *f); 242 void RPNRegisterAdded(std::string text, gint index = 0); 243 void RPNRegisterRemoved(gint index); 244 void RPNRegisterChanged(std::string text, gint index); 245 246 void result_display_updated(); 247 void result_format_updated(); 248 void result_action_executed(); 249 void result_prefix_changed(Prefix *prefix = NULL); 250 void expression_calculation_updated(); 251 void expression_format_updated(bool recalculate = false); 252 253 254 void insert_text(const gchar *name); 255 256 void recreate_recent_functions(); 257 void recreate_recent_variables(); 258 void recreate_recent_units(); 259 void function_inserted(MathFunction *object); 260 void variable_inserted(Variable *object); 261 void unit_inserted(Unit *object); 262 263 void on_tPlotFunctions_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 264 265 void on_tSubfunctions_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 266 void on_tFunctionArguments_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 267 void update_function_arguments_list(MathFunction *f); 268 269 void on_tNames_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 270 271 void convert_in_wUnits(int toFrom = -1); 272 273 void convert_to_unit(GtkMenuItem *w, gpointer user_data); 274 275 void save_defs(); 276 void save_mode(); 277 278 void load_preferences(); 279 void save_preferences(bool mode = false); 280 void edit_preferences(); 281 282 gint completion_sort_func(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data); 283 gint string_sort_func(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data); 284 gint int_string_sort_func(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data); 285 286 void set_prefix(GtkMenuItem *w, gpointer user_data); 287 288 void manage_variables(); 289 void manage_functions(); 290 void manage_units(); 291 292 void set_clean_mode(GtkMenuItem *w, gpointer user_data); 293 void set_functions_enabled(GtkMenuItem *w, gpointer user_data); 294 void set_variables_enabled(GtkMenuItem *w, gpointer user_data); 295 void set_donot_calcvars(GtkMenuItem *w, gpointer user_data); 296 void set_unknownvariables_enabled(GtkMenuItem *w, gpointer user_data); 297 void set_units_enabled(GtkMenuItem *w, gpointer user_data); 298 void apply_function(GtkMenuItem *w, gpointer user_data); 299 void insert_function(GtkMenuItem *w, gpointer user_data); 300 void insert_variable(GtkMenuItem *w, gpointer user_data); 301 void insert_prefix(GtkMenuItem *w, gpointer user_data); 302 void insert_unit(GtkMenuItem *w, gpointer user_data); 303 304 void insert_button_function(GtkMenuItem *w, gpointer user_data); 305 void insert_function_operator(GtkMenuItem *w, gpointer user_data); 306 void insert_button_function_norpn(GtkMenuItem *w, gpointer user_data); 307 void insert_button_variable(GtkWidget *w, gpointer user_data); 308 void insert_button_unit(GtkMenuItem *w, gpointer user_data); 309 void insert_button_currency(GtkMenuItem *w, gpointer user_data); 310 311 void new_function(GtkMenuItem *w, gpointer user_data); 312 void new_unknown(GtkMenuItem *w, gpointer user_data); 313 void new_variable(GtkMenuItem *w, gpointer user_data); 314 void new_matrix(GtkMenuItem *w, gpointer user_data); 315 void new_vector(GtkMenuItem *w, gpointer user_data); 316 void new_unit(GtkMenuItem *w, gpointer user_data); 317 void add_as_variable(); 318 319 void fetch_exchange_rates(int timeout, int n = -1); 320 321 bool edit_argument(Argument *arg = NULL); 322 323 void edit_unknown(const char *category = "", Variable *v = NULL, GtkWidget *win = NULL); 324 void edit_variable(const char *category = "", Variable *v = NULL, MathStructure *mstruct_ = NULL, GtkWidget *win = NULL); 325 void edit_matrix(const char *category = "", Variable *v = NULL, MathStructure *mstruct_ = NULL, GtkWidget *win = NULL, gboolean create_vector = FALSE); 326 void insert_matrix(const MathStructure *initial_value = NULL, GtkWidget *win = NULL, gboolean create_vector = FALSE, bool is_text_struct = false, bool is_result = false, GtkEntry *entry = NULL); 327 void import_csv_file(GtkWidget *win = NULL); 328 void export_csv_file(KnownVariable *v = NULL, GtkWidget *win = NULL); 329 330 void edit_dataobject(DataSet *ds, DataObject *o = NULL, GtkWidget *win = NULL); 331 void edit_dataset(DataSet *ds = NULL, GtkWidget *win = NULL); 332 333 void edit_names(ExpressionItem *item = NULL, const gchar *namestr = NULL, GtkWidget *win = NULL, bool is_dp = false, DataProperty *dp = NULL); 334 335 gchar *font_name_to_css(const char *font_name, const char *w = "*"); 336 337 void reload_history(gint from_index = -1); 338 void set_status_bottom_border_visible(bool); 339 340 #ifdef __cplusplus 341 extern "C" { 342 #endif 343 344 void update_menu_base(); 345 346 void memory_recall(); 347 void memory_store(); 348 void memory_add(); 349 void memory_subtract(); 350 void memory_clear(); 351 352 gboolean on_math_entry_key_press_event(GtkWidget *o, GdkEventKey *event, gpointer); 353 354 void hide_tooltip(GtkWidget*); 355 356 void on_tShortcuts_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 357 void on_tShortcutsType_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 358 359 void on_tButtonsEdit_selection_changed(GtkTreeSelection *treeselection, gpointer); 360 void on_tButtonsEdit_update_selection(GtkTreeSelection *treeselection, bool update_label_entry); 361 void on_tButtonsEditType_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 362 void on_buttonsedit_button_clicked(GtkButton *w, gpointer user_data); 363 void on_buttonsedit_defaults_clicked(GtkButton *w, gpointer user_data); 364 void on_buttonsedit_label_changed(GtkEditable *w, gpointer user_data); 365 366 void insert_left_shift(); 367 void insert_right_shift(); 368 void insert_bitwise_and(); 369 void insert_bitwise_or(); 370 void insert_bitwise_xor(); 371 void insert_bitwise_not(); 372 void insert_angle_symbol(); 373 374 void update_mb_fx_menu(); 375 void update_mb_sto_menu(); 376 void update_mb_units_menu(); 377 void update_mb_pi_menu(); 378 void update_mb_to_menu(); 379 void update_mb_angles(AngleUnit angle_unit); 380 381 void on_completion_match_selected(GtkTreeView*, GtkTreePath *path, GtkTreeViewColumn*, gpointer); 382 void on_units_convert_view_row_activated(GtkTreeView*, GtkTreePath *path, GtkTreeViewColumn*, gpointer); 383 void units_convert_resize_popup(); 384 385 void *view_proc(void*); 386 void *command_proc(void*); 387 void on_history_resize(GtkWidget*, GdkRectangle*, gpointer); 388 void on_message_bar_response(GtkInfoBar *w, gint response_id, gpointer); 389 void on_expressiontext_populate_popup(GtkTextView *w, GtkMenu *menu, gpointer user_data); 390 void on_combobox_base_changed(GtkComboBox *w, gpointer user_data); 391 void on_combobox_numerical_display_changed(GtkComboBox *w, gpointer user_data); 392 void on_button_fraction_toggled(GtkToggleButton *w, gpointer user_data); 393 void on_button_exact_toggled(GtkToggleButton *w, gpointer user_data); 394 void on_expander_keypad_expanded(GObject *o, GParamSpec *param_spec, gpointer user_data); 395 void on_expander_history_expanded(GObject *o, GParamSpec *param_spec, gpointer user_data); 396 void on_expander_stack_expanded(GObject *o, GParamSpec *param_spec, gpointer user_data); 397 void on_expander_convert_expanded(GObject *o, GParamSpec *param_spec, gpointer user_data); 398 gboolean on_menu_item_meta_mode_popup_menu(GtkWidget*, gpointer data); 399 gboolean on_menu_item_meta_mode_button_press(GtkWidget *widget, GdkEventButton *event, gpointer data); 400 void on_menu_item_meta_mode_activate(GtkMenuItem *w, gpointer user_data); 401 void on_menu_item_meta_mode_save_activate(GtkMenuItem *w, gpointer user_data); 402 void on_menu_item_meta_mode_delete_activate(GtkMenuItem *w, gpointer user_data); 403 void on_menu_item_quit_activate(GtkMenuItem *w, gpointer user_data); 404 void on_colorbutton_status_error_color_color_set(GtkColorButton *w, gpointer user_data); 405 void on_colorbutton_status_warning_color_color_set(GtkColorButton *w, gpointer user_data); 406 void on_preferences_checkbutton_persistent_keypad_toggled(GtkToggleButton *w, gpointer user_data); 407 void on_preferences_checkbutton_copy_separator_toggled(GtkToggleButton *w, gpointer user_data); 408 void on_preferences_checkbutton_lower_case_numbers_toggled(GtkToggleButton *w, gpointer user_data); 409 void on_preferences_checkbutton_e_notation_toggled(GtkToggleButton *w, gpointer user_data); 410 void on_preferences_checkbutton_lower_case_e_toggled(GtkToggleButton *w, gpointer user_data); 411 void on_preferences_checkbutton_alternative_base_prefixes_toggled(GtkToggleButton *w, gpointer user_data); 412 void on_preferences_checkbutton_spell_out_logical_operators_toggled(GtkToggleButton *w, gpointer user_data); 413 void on_preferences_checkbutton_unicode_signs_toggled(GtkToggleButton *w, gpointer user_data); 414 void on_preferences_checkbutton_display_expression_status_toggled(GtkToggleButton *w, gpointer user_data); 415 void on_preferences_checkbutton_fetch_exchange_rates_toggled(GtkToggleButton *w, gpointer user_data); 416 void on_preferences_checkbutton_save_defs_toggled(GtkToggleButton *w, gpointer user_data); 417 void on_preferences_checkbutton_save_mode_toggled(GtkToggleButton *w, gpointer user_data); 418 void on_preferences_checkbutton_rpn_keys_only_toggled(GtkToggleButton *w, gpointer); 419 void on_preferences_checkbutton_dot_as_separator_toggled(GtkToggleButton *w, gpointer); 420 void on_preferences_checkbutton_load_defs_toggled(GtkToggleButton *w, gpointer user_data); 421 void on_preferences_checkbutton_custom_result_font_toggled(GtkToggleButton *w, gpointer user_data); 422 void on_preferences_checkbutton_custom_expression_font_toggled(GtkToggleButton *w, gpointer user_data); 423 void on_preferences_checkbutton_custom_status_font_toggled(GtkToggleButton *w, gpointer user_data); 424 void on_preferences_radiobutton_dot_toggled(GtkToggleButton *w, gpointer user_data); 425 void on_preferences_radiobutton_ex_toggled(GtkToggleButton *w, gpointer user_data); 426 void on_preferences_radiobutton_asterisk_toggled(GtkToggleButton *w, gpointer user_data); 427 void on_preferences_radiobutton_slash_toggled(GtkToggleButton *w, gpointer user_data); 428 void on_preferences_radiobutton_division_slash_toggled(GtkToggleButton *w, gpointer user_data); 429 void on_preferences_radiobutton_division_toggled(GtkToggleButton *w, gpointer user_data); 430 void on_preferences_radiobutton_digit_grouping_none_toggled(GtkToggleButton *w, gpointer user_data); 431 void on_preferences_radiobutton_digit_grouping_standard_toggled(GtkToggleButton *w, gpointer user_data); 432 void on_preferences_radiobutton_digit_grouping_locale_toggled(GtkToggleButton *w, gpointer user_data); 433 void on_preferences_button_result_font_toggled(GtkButton *w, gpointer user_data); 434 void on_preferences_button_expression_font_toggled(GtkButton *w, gpointer user_data); 435 void on_preferences_button_status_font_toggled(GtkButton *w, gpointer user_data); 436 void on_units_togglebutton_from_toggled(GtkToggleButton *togglebutton, gpointer user_data); 437 void on_units_button_convert_clicked(GtkButton *button, gpointer user_data); 438 void on_units_togglebutton_to_toggled(GtkToggleButton *togglebutton, gpointer user_data); 439 void on_units_entry_from_val_activate(GtkEntry *entry, gpointer user_data); 440 void on_units_entry_to_val_activate(GtkEntry *entry, gpointer user_data); 441 gboolean on_units_entry_from_val_focus_out_event(GtkEntry *entry, GdkEventFocus *event, gpointer user_data); 442 gboolean on_units_entry_to_val_focus_out_event(GtkEntry *entry, GdkEventFocus *event, gpointer user_data); 443 void on_units_button_close_clicked(GtkButton *button, gpointer user_data); 444 void on_radiobutton_radians_toggled(GtkToggleButton *togglebutton, gpointer user_data); 445 void on_radiobutton_degrees_toggled(GtkToggleButton *togglebutton, gpointer user_data); 446 void on_radiobutton_gradians_toggled(GtkToggleButton *togglebutton, gpointer user_data); 447 void on_radiobutton_no_default_angle_unit_toggled(GtkToggleButton *togglebutton, gpointer user_data); 448 gboolean on_gcalc_exit(GtkWidget *widget, GdkEvent *event, gpointer user_data); 449 void on_expression_activate(GtkEntry *entry, gpointer user_data); 450 void on_button_execute_clicked(GtkButton *button, gpointer user_data); 451 void on_button_del_clicked(GtkButton *w, gpointer user_data); 452 void on_button_ac_clicked(GtkButton *w, gpointer user_data); 453 void on_button_hyp_toggled(GtkToggleButton *w, gpointer user_data); 454 void on_button_inv_toggled(GtkToggleButton *w, gpointer user_data); 455 void on_button_tan_clicked(GtkButton *w, gpointer user_data); 456 void on_button_sine_clicked(GtkButton *w, gpointer user_data); 457 void on_button_cosine_clicked(GtkButton *w, gpointer user_data); 458 void on_button_store_clicked(GtkButton *w, gpointer user_data); 459 void on_button_mod_clicked(GtkButton *w, gpointer user_data); 460 void on_button_reciprocal_clicked(GtkButton *w, gpointer user_data); 461 void on_togglebutton_expression_toggled(GtkToggleButton *togglebutton, gpointer user_data); 462 void on_togglebutton_result_toggled(GtkToggleButton *togglebutton, gpointer user_data); 463 void on_expression_changed(GtkEditable *w, gpointer user_data); 464 void on_expression_move_cursor(GtkEntry*, GtkMovementStep, gint, gboolean, gpointer); 465 void on_button_zero_clicked(GtkButton *w, gpointer user_data); 466 void on_button_one_clicked(GtkButton *w, gpointer user_data); 467 void on_button_two_clicked(GtkButton *w, gpointer user_data); 468 void on_button_three_clicked(GtkButton *w, gpointer user_data); 469 void on_button_four_clicked(GtkButton *w, gpointer user_data); 470 void on_button_five_clicked(GtkButton *w, gpointer user_data); 471 void on_button_six_clicked(GtkButton *w, gpointer user_data); 472 void on_button_seven_clicked(GtkButton *w, gpointer user_data); 473 void on_button_eight_clicked(GtkButton *w, gpointer user_data); 474 void on_button_nine_clicked(GtkButton *w, gpointer user_data); 475 void on_button_dot_clicked(GtkButton *w, gpointer user_data); 476 void on_button_brace_open_clicked(GtkButton *w, gpointer user_data); 477 void on_button_brace_close_clicked(GtkButton *w, gpointer user_data); 478 void on_button_times_clicked(GtkButton *w, gpointer user_data); 479 void on_button_add_clicked(GtkButton *w, gpointer user_data); 480 void on_button_sub_clicked(GtkButton *w, gpointer user_data); 481 void on_button_divide_clicked(GtkButton *w, gpointer user_data); 482 void on_button_ans_clicked(GtkButton *w, gpointer user_data); 483 void on_button_exp_clicked(GtkButton *w, gpointer user_data); 484 void on_button_xy_clicked(GtkButton *w, gpointer user_data); 485 void on_button_square_clicked(); 486 void on_button_sqrt_clicked(GtkButton *w, gpointer user_data); 487 void on_button_log_clicked(GtkButton *w, gpointer user_data); 488 void on_button_ln_clicked(GtkButton *w, gpointer user_data); 489 void on_menu_item_manage_variables_activate(GtkMenuItem *w, gpointer user_data); 490 void on_menu_item_manage_functions_activate(GtkMenuItem *w, gpointer user_data); 491 void on_menu_item_manage_units_activate(GtkMenuItem *w, gpointer user_data); 492 void on_menu_item_datasets_activate(GtkMenuItem *w, gpointer user_data); 493 void on_menu_item_import_csv_file_activate(GtkMenuItem *w, gpointer user_data); 494 void on_menu_item_export_csv_file_activate(GtkMenuItem *w, gpointer user_data); 495 void on_menu_item_convert_to_unit_expression_activate(GtkMenuItem *w, gpointer user_data); 496 void on_menu_item_convert_to_base_units_activate(GtkMenuItem *w, gpointer user_data); 497 void on_menu_item_convert_to_best_unit_activate(GtkMenuItem *w, gpointer user_data); 498 void on_menu_item_set_prefix_activate(GtkMenuItem*, gpointer user_data); 499 void on_menu_item_insert_date_activate(GtkMenuItem *w, gpointer user_data); 500 void on_menu_item_insert_matrix_activate(GtkMenuItem *w, gpointer user_data); 501 void on_menu_item_insert_vector_activate(GtkMenuItem *w, gpointer user_data); 502 void on_menu_item_enable_variables_activate(GtkMenuItem *w, gpointer user_data); 503 void on_menu_item_enable_functions_activate(GtkMenuItem *w, gpointer user_data); 504 void on_menu_item_enable_units_activate(GtkMenuItem *w, gpointer user_data); 505 void on_menu_item_enable_unknown_variables_activate(GtkMenuItem *w, gpointer user_data); 506 void on_menu_item_calculate_variables_activate(GtkMenuItem *w, gpointer user_data); 507 void on_menu_item_enable_variable_units_activate(GtkMenuItem *w, gpointer user_data); 508 void on_menu_item_allow_complex_activate(GtkMenuItem *w, gpointer user_data); 509 void on_menu_item_allow_infinite_activate(GtkMenuItem *w, gpointer user_data); 510 void on_menu_item_new_unknown_activate(GtkMenuItem *w, gpointer user_data); 511 void on_menu_item_new_variable_activate(GtkMenuItem *w, gpointer user_data); 512 void on_menu_item_new_matrix_activate(GtkMenuItem *w, gpointer user_data); 513 void on_menu_item_new_vector_activate(GtkMenuItem *w, gpointer user_data); 514 void on_menu_item_new_function_activate(GtkMenuItem *w, gpointer user_data); 515 void on_menu_item_new_dataset_activate(GtkMenuItem *w, gpointer user_data); 516 void on_menu_item_new_unit_activate(GtkMenuItem *w, gpointer user_data); 517 void on_menu_item_autocalc_activate(GtkMenuItem *w, gpointer user_data); 518 void on_menu_item_chain_mode_activate(GtkMenuItem *w, gpointer user_data); 519 void on_menu_item_rpn_mode_activate(GtkMenuItem *w, gpointer user_data); 520 void on_menu_item_rpn_syntax_activate(GtkMenuItem *w, gpointer user_data); 521 void on_menu_item_limit_implicit_multiplication_activate(GtkMenuItem *w, gpointer user_data); 522 void on_menu_item_adaptive_parsing_activate(GtkMenuItem *w, gpointer user_data); 523 void on_menu_item_ignore_whitespace_activate(GtkMenuItem *w, gpointer user_data); 524 void on_menu_item_no_special_implicit_multiplication_activate(GtkMenuItem *w, gpointer user_data); 525 void on_menu_item_fetch_exchange_rates_activate(GtkMenuItem *w, gpointer user_data); 526 void on_menu_item_save_defs_activate(GtkMenuItem *w, gpointer user_data); 527 void on_menu_item_save_mode_activate(GtkMenuItem *w, gpointer user_data); 528 void on_menu_item_edit_prefs_activate(GtkMenuItem *w, gpointer user_data); 529 void on_menu_item_degrees_activate(GtkMenuItem *w, gpointer user_data); 530 void on_menu_item_radians_activate(GtkMenuItem *w, gpointer user_data); 531 void on_menu_item_gradians_activate(GtkMenuItem *w, gpointer user_data); 532 void on_menu_item_no_default_angle_unit_activate(GtkMenuItem *w, gpointer user_data); 533 void on_menu_item_read_precision_activate(GtkMenuItem *w, gpointer user_data); 534 void on_menu_item_rpn_syntax_activate(GtkMenuItem *w, gpointer user_data); 535 void set_output_base_from_dialog(int base); 536 void output_base_updated_from_menu(); 537 void input_base_updated_from_menu(); 538 void update_keypad_bases(); 539 void on_menu_item_binary_activate(GtkMenuItem *w, gpointer user_data); 540 void on_menu_item_octal_activate(GtkMenuItem *w, gpointer user_data); 541 void on_menu_item_decimal_activate(GtkMenuItem *w, gpointer user_data); 542 void on_menu_item_duodecimal_activate(GtkMenuItem *w, gpointer user_data); 543 void on_menu_item_hexadecimal_activate(GtkMenuItem *w, gpointer user_data); 544 void on_number_base_spinbutton_base_value_changed(GtkSpinButton *w, gpointer user_data); 545 void on_menu_item_custom_base_activate(GtkMenuItem *w, gpointer user_data); 546 void on_menu_item_roman_activate(GtkMenuItem *w, gpointer user_data); 547 void on_menu_item_sexagesimal_activate(GtkMenuItem *w, gpointer user_data); 548 void on_menu_item_time_format_activate(GtkMenuItem *w, gpointer user_data); 549 void on_menu_item_set_base_activate(GtkMenuItem *w, gpointer user_data); 550 void on_set_base_radiobutton_output_binary_toggled(GtkToggleButton *w, gpointer user_data); 551 void on_set_base_radiobutton_output_octal_toggled(GtkToggleButton *w, gpointer user_data); 552 void on_set_base_radiobutton_output_decimal_toggled(GtkToggleButton *w, gpointer user_data); 553 void on_set_base_radiobutton_output_duodecimal_toggled(GtkToggleButton *w, gpointer user_data); 554 void on_set_base_radiobutton_output_hexadecimal_toggled(GtkToggleButton *w, gpointer user_data); 555 void on_set_base_radiobutton_output_other_toggled(GtkToggleButton *w, gpointer user_data); 556 void on_set_base_radiobutton_output_sexagesimal_toggled(GtkToggleButton *w, gpointer user_data); 557 void on_set_base_radiobutton_output_time_toggled(GtkToggleButton *w, gpointer user_data); 558 void on_set_base_radiobutton_output_roman_toggled(GtkToggleButton *w, gpointer user_data); 559 void on_set_base_combo_output_other_changed(GtkComboBox *w, gpointer user_data); 560 void on_set_base_entry_output_other_activate(GtkEntry *w, gpointer user_data); 561 void on_set_base_radiobutton_input_binary_toggled(GtkToggleButton *w, gpointer user_data); 562 void on_set_base_radiobutton_input_octal_toggled(GtkToggleButton *w, gpointer user_data); 563 void on_set_base_radiobutton_input_decimal_toggled(GtkToggleButton *w, gpointer user_data); 564 void on_set_base_radiobutton_input_duodecimal_toggled(GtkToggleButton *w, gpointer user_data); 565 void on_set_base_radiobutton_input_hexadecimal_toggled(GtkToggleButton *w, gpointer user_data); 566 void on_set_base_radiobutton_input_other_toggled(GtkToggleButton *w, gpointer user_data); 567 void on_set_base_radiobutton_input_roman_toggled(GtkToggleButton *w, gpointer user_data); 568 void on_set_base_combo_input_other_changed(GtkComboBox *w, gpointer user_data); 569 void on_set_base_entry_input_other_activate(GtkEntry *w, gpointer user_data); 570 void convert_number_bases(const gchar *initial_expression, bool b_result = false); 571 void on_menu_item_convert_number_bases_activate(GtkMenuItem *w, gpointer user_data); 572 void on_menu_item_periodic_table_activate(GtkMenuItem *w, gpointer user_data); 573 void on_menu_item_assumptions_integer_activate(GtkMenuItem *w, gpointer user_data); 574 void on_menu_item_assumptions_rational_activate(GtkMenuItem *w, gpointer user_data); 575 void on_menu_item_assumptions_real_activate(GtkMenuItem *w, gpointer user_data); 576 void on_menu_item_assumptions_complex_activate(GtkMenuItem *w, gpointer user_data); 577 void on_menu_item_assumptions_number_activate(GtkMenuItem *w, gpointer user_data); 578 void on_menu_item_assumptions_nonmatrix_activate(GtkMenuItem *w, gpointer user_data); 579 void on_menu_item_assumptions_none_activate(GtkMenuItem *w, gpointer user_data); 580 void on_menu_item_assumptions_nonzero_activate(GtkMenuItem *w, gpointer user_data); 581 void on_menu_item_assumptions_positive_activate(GtkMenuItem *w, gpointer user_data); 582 void on_menu_item_assumptions_nonnegative_activate(GtkMenuItem *w, gpointer user_data); 583 void on_menu_item_assumptions_negative_activate(GtkMenuItem *w, gpointer user_data); 584 void on_menu_item_assumptions_nonpositive_activate(GtkMenuItem *w, gpointer user_data); 585 void on_menu_item_assumptions_unknown_activate(GtkMenuItem *w, gpointer user_data); 586 void on_popup_menu_item_exact_activate(GtkMenuItem *w, gpointer user_data); 587 void on_popup_menu_item_assume_nonzero_denominators_activate(GtkMenuItem *w, gpointer user_data); 588 void on_popup_menu_item_abort_activate(GtkMenuItem *w, gpointer user_data); 589 void on_popup_menu_item_clear_activate(GtkMenuItem *w, gpointer user_data); 590 void on_popup_menu_item_display_normal_activate(GtkMenuItem *w, gpointer user_data); 591 void on_popup_menu_item_display_engineering_activate(GtkMenuItem *w, gpointer user_data); 592 void on_popup_menu_item_display_scientific_activate(GtkMenuItem *w, gpointer user_data); 593 void on_popup_menu_item_display_purely_scientific_activate(GtkMenuItem *w, gpointer user_data); 594 void on_popup_menu_item_display_non_scientific_activate(GtkMenuItem *w, gpointer user_data); 595 void on_popup_menu_item_display_no_prefixes_activate(GtkMenuItem *w, gpointer user_data); 596 void on_popup_menu_item_display_prefixes_for_selected_units_activate(GtkMenuItem *w, gpointer user_data); 597 void on_popup_menu_item_display_prefixes_for_currencies_activate(GtkMenuItem *w, gpointer user_data); 598 void on_popup_menu_item_display_prefixes_for_all_units_activate(GtkMenuItem *w, gpointer user_data); 599 void on_popup_menu_item_mixed_units_conversion_activate(GtkMenuItem *w, gpointer user_data); 600 void on_popup_menu_item_fraction_decimal_activate(GtkMenuItem *w, gpointer user_data); 601 void on_popup_menu_item_fraction_decimal_exact_activate(GtkMenuItem *w, gpointer user_data); 602 void on_popup_menu_item_fraction_combined_activate(GtkMenuItem *w, gpointer user_data); 603 void on_popup_menu_item_fraction_fraction_activate(GtkMenuItem *w, gpointer user_data); 604 void on_popup_menu_item_binary_activate(GtkMenuItem *w, gpointer user_data); 605 void on_popup_menu_item_roman_activate(GtkMenuItem *w, gpointer user_data); 606 void on_popup_menu_item_sexagesimal_activate(GtkMenuItem *w, gpointer user_data); 607 void on_popup_menu_item_time_format_activate(GtkMenuItem *w, gpointer user_data); 608 void on_popup_menu_item_octal_activate(GtkMenuItem *w, gpointer user_data); 609 void on_popup_menu_item_decimal_activate(GtkMenuItem *w, gpointer user_data); 610 void on_popup_menu_item_duodecimal_activate(GtkMenuItem *w, gpointer user_data); 611 void on_popup_menu_item_hexadecimal_activate(GtkMenuItem *w, gpointer user_data); 612 void on_popup_menu_item_custom_base_activate(GtkMenuItem *w, gpointer user_data); 613 void on_popup_menu_item_abbreviate_names_activate(GtkMenuItem *w, gpointer user_data); 614 void on_popup_menu_item_all_prefixes_activate(GtkMenuItem *w, gpointer user_data); 615 void on_popup_menu_item_denominator_prefixes_activate(GtkMenuItem *w, gpointer user_data); 616 void on_popup_menu_item_view_matrix_activate(GtkMenuItem *w, gpointer user_data); 617 void on_popup_menu_item_view_vector_activate(GtkMenuItem *w, gpointer user_data); 618 void on_popup_menu_item_complex_rectangular_activate(GtkMenuItem *w, gpointer user_data); 619 void on_popup_menu_item_complex_exponential_activate(GtkMenuItem *w, gpointer user_data); 620 void on_popup_menu_item_complex_polar_activate(GtkMenuItem *w, gpointer user_data); 621 void on_popup_menu_item_complex_angle_activate(GtkMenuItem *w, gpointer user_data); 622 void on_popup_menu_item_persistent_keypad_toggled(GtkCheckMenuItem *w, gpointer user_data); 623 void on_menu_item_complex_rectangular_activate(GtkMenuItem *w, gpointer user_data); 624 void on_menu_item_complex_exponential_activate(GtkMenuItem *w, gpointer user_data); 625 void on_menu_item_complex_polar_activate(GtkMenuItem *w, gpointer user_data); 626 void on_menu_item_complex_angle_activate(GtkMenuItem *w, gpointer user_data); 627 void on_menu_item_display_normal_activate(GtkMenuItem *w, gpointer user_data); 628 void on_menu_item_display_engineering_activate(GtkMenuItem *w, gpointer user_data); 629 void on_menu_item_display_scientific_activate(GtkMenuItem *w, gpointer user_data); 630 void on_menu_item_display_purely_scientific_activate(GtkMenuItem *w, gpointer user_data); 631 void on_menu_item_display_non_scientific_activate(GtkMenuItem *w, gpointer user_data); 632 void on_menu_item_display_no_prefixes_activate(GtkMenuItem *w, gpointer user_data); 633 void on_menu_item_display_prefixes_for_selected_activate(GtkMenuItem *w, gpointer user_data); 634 void on_menu_item_display_prefixes_for_currencies_activate(GtkMenuItem *w, gpointer user_data); 635 void on_menu_item_display_prefixes_for_all_units_activate(GtkMenuItem *w, gpointer user_data); 636 void on_menu_item_indicate_infinite_series_activate(GtkMenuItem *w, gpointer user_data); 637 void on_menu_item_show_ending_zeroes_activate(GtkMenuItem *w, gpointer user_data); 638 void on_menu_item_round_halfway_to_even_activate(GtkMenuItem *w, gpointer user_data); 639 void on_menu_item_negative_exponents_activate(GtkMenuItem *w, gpointer user_data); 640 void on_menu_item_sort_minus_last_activate(GtkMenuItem *w, gpointer user_data); 641 void on_menu_item_fraction_decimal_activate(GtkMenuItem *w, gpointer user_data); 642 void on_menu_item_fraction_decimal_exact_activate(GtkMenuItem *w, gpointer user_data); 643 void on_menu_item_fraction_combined_activate(GtkMenuItem *w, gpointer user_data); 644 void on_menu_item_fraction_fraction_activate(GtkMenuItem *w, gpointer user_data); 645 void on_menu_item_interval_adaptive_activate(GtkMenuItem *w, gpointer user_data); 646 void on_menu_item_interval_significant_activate(GtkMenuItem *w, gpointer user_data); 647 void on_menu_item_interval_interval_activate(GtkMenuItem *w, gpointer user_data); 648 void on_menu_item_interval_plusminus_activate(GtkMenuItem *w, gpointer user_data); 649 void on_menu_item_interval_midpoint_activate(GtkMenuItem *w, gpointer user_data); 650 void on_menu_item_all_prefixes_activate(GtkMenuItem *w, gpointer user_data); 651 void on_menu_item_denominator_prefixes_activate(GtkMenuItem *w, gpointer user_data); 652 void on_menu_item_place_units_separately_activate(GtkMenuItem *w, gpointer user_data); 653 void on_menu_item_post_conversion_none_activate(GtkMenuItem *w, gpointer user_data); 654 void on_menu_item_post_conversion_base_activate(GtkMenuItem *w, gpointer user_data); 655 void on_menu_item_post_conversion_optimal_activate(GtkMenuItem *w, gpointer user_data); 656 void on_menu_item_post_conversion_optimal_si_activate(GtkMenuItem *w, gpointer user_data); 657 void on_menu_item_abbreviate_names_activate(GtkMenuItem *w, gpointer user_data); 658 void on_menu_item_always_exact_activate(GtkMenuItem *w, gpointer user_data); 659 void on_menu_item_try_exact_activate(GtkMenuItem *w, gpointer user_data); 660 void on_menu_item_approximate_activate(GtkMenuItem *w, gpointer user_data); 661 void on_menu_item_interval_arithmetic_activate(GtkMenuItem *w, gpointer user_data); 662 void on_menu_item_ic_none(GtkMenuItem *w, gpointer user_data); 663 void on_menu_item_ic_variance_activate(GtkMenuItem *w, gpointer user_data); 664 void on_menu_item_ic_interval_arithmetic_activate(GtkMenuItem *w, gpointer user_data); 665 void on_menu_item_ic_simple(GtkMenuItem *w, gpointer user_data); 666 void on_menu_item_save_activate(GtkMenuItem *w, gpointer user_data); 667 void on_menu_item_save_image_activate(GtkMenuItem *w, gpointer user_data); 668 void on_menu_item_copy_activate(GtkMenuItem *w, gpointer user_data); 669 void on_menu_item_precision_activate(GtkMenuItem *w, gpointer user_data); 670 void on_menu_item_decimals_activate(GtkMenuItem *w, gpointer user_data); 671 void on_menu_item_plot_functions_activate(GtkMenuItem *w, gpointer user_data); 672 void on_menu_item_factorize_activate(GtkMenuItem *w, gpointer user_data); 673 void on_menu_item_simplify_activate(GtkMenuItem *w, gpointer user_data); 674 void on_menu_item_expand_partial_fractions_activate(GtkMenuItem *w, gpointer user_data); 675 void on_menu_item_set_unknowns_activate(GtkMenuItem *w, gpointer user_data); 676 void on_menu_item_assume_nonzero_denominators_activate(GtkMenuItem *w, gpointer user_data); 677 void on_menu_item_algebraic_mode_simplify_activate(GtkMenuItem *w, gpointer user_data); 678 void on_menu_item_algebraic_mode_factorize_activate(GtkMenuItem *w, gpointer user_data); 679 void on_menu_item_algebraic_mode_hybrid_activate(GtkMenuItem *w, gpointer user_data); 680 gboolean on_main_window_focus_in_event(GtkWidget *w, GdkEventFocus *e, gpointer user_data); 681 682 void on_button_registerup_clicked(GtkButton *button, gpointer user_data); 683 void on_button_registerdown_clicked(GtkButton *button, gpointer user_data); 684 void on_button_registerswap_clicked(GtkButton *button, gpointer user_data); 685 void on_button_editregister_clicked(GtkButton *button, gpointer user_data); 686 void on_button_deleteregister_clicked(GtkButton *button, gpointer user_data); 687 void on_button_copyregister_clicked(GtkButton *button, gpointer user_data); 688 void on_button_clearstack_clicked(GtkButton *button, gpointer user_data); 689 void on_stackview_selection_changed(GtkTreeSelection *treeselection, gpointer user_data); 690 void on_stackview_item_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data); 691 void on_stackview_item_editing_started(GtkCellRenderer *renderer, GtkCellEditable *editable, gchar *path, gpointer user_data); 692 void on_stackview_item_editing_canceled(GtkCellRenderer *renderer, gpointer user_data); 693 void on_stackstore_row_inserted(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data); 694 void on_stackstore_row_deleted(GtkTreeModel *model, GtkTreePath *path, gpointer user_data); 695 696 void on_historyview_selection_changed(GtkTreeSelection *select, gpointer); 697 698 void on_unit_edit_entry_name_changed(GtkEditable *editable, gpointer user_data); 699 void on_unit_edit_combobox_class_changed(GtkComboBox *om, gpointer user_data); 700 void on_unit_edit_checkbutton_mix_toggled(GtkToggleButton *w, gpointer); 701 void on_unit_edit_combo_system_changed(GtkComboBox *om, gpointer user_data); 702 void on_units_button_new_clicked(GtkButton *button, gpointer user_data); 703 void on_units_button_edit_clicked(GtkButton *button, gpointer user_data); 704 void on_units_button_insert_clicked(GtkButton *button, gpointer user_data); 705 void on_units_button_convert_to_clicked(GtkButton *button, gpointer user_data); 706 void on_units_button_delete_clicked(GtkButton *button, gpointer user_data); 707 void on_units_combobox_to_unit_changed(GtkComboBox *w, gpointer user_data); 708 void on_variables_button_new_clicked(GtkButton *button, gpointer user_data); 709 void on_variables_button_edit_clicked(GtkButton *button, gpointer user_data); 710 void on_variables_button_insert_clicked(GtkButton *button, gpointer user_data); 711 void on_variables_button_delete_clicked(GtkButton *button, gpointer user_data); 712 void on_variables_button_export_clicked(GtkButton *button, gpointer user_data); 713 void on_variables_button_close_clicked(GtkButton *button, gpointer user_data); 714 void on_functions_button_new_clicked(GtkButton *button, gpointer user_data); 715 void on_functions_button_edit_clicked(GtkButton *button, gpointer user_data); 716 void on_functions_button_insert_clicked(GtkButton *button, gpointer user_data); 717 void on_functions_button_apply_clicked(GtkButton *button, gpointer user_data); 718 void on_functions_button_delete_clicked(GtkButton *button, gpointer user_data); 719 void on_functions_button_close_clicked(GtkButton *button, gpointer user_data); 720 void on_datasets_button_close_clicked(GtkButton *button, gpointer user_data); 721 void on_function_edit_entry_name_changed(GtkEditable *editable, gpointer user_data); 722 void on_variable_edit_entry_name_changed(GtkEditable *editable, gpointer user_data); 723 void on_unknown_edit_checkbutton_custom_assumptions_toggled(GtkToggleButton *w, gpointer user_data); 724 void on_unknown_edit_combobox_type_changed(GtkComboBox *om, gpointer user_data); 725 void on_unknown_edit_combobox_sign_changed(GtkComboBox *om, gpointer user_data); 726 727 void on_function_changed(); 728 void on_simple_function_changed(); 729 void on_argument_changed(); 730 void on_unit_changed(); 731 void on_variable_changed(); 732 void on_dataset_changed(); 733 void on_dataobject_changed(); 734 void on_dataproperty_changed(); 735 void on_matrix_changed(); 736 void on_unknown_changed(); 737 void on_name_changed(); 738 739 void on_dataset_edit_entry_name_changed(GtkEditable *editable, gpointer user_data); 740 void on_dataset_edit_button_new_property_clicked(GtkButton *button, gpointer user_data); 741 void on_dataset_edit_button_edit_property_clicked(GtkButton *button, gpointer user_data); 742 void on_dataset_edit_button_del_property_clicked(GtkButton *button, gpointer user_data); 743 void on_dataset_edit_button_names_clicked(GtkButton *button, gpointer user_data); 744 745 void on_datasets_button_newset_clicked(GtkButton *button, gpointer user_data); 746 void on_datasets_button_editset_clicked(GtkButton *button, gpointer user_data); 747 void on_datasets_button_delset_clicked(GtkButton *button, gpointer user_data); 748 void on_datasets_button_newobject_clicked(GtkButton *button, gpointer user_data); 749 void on_datasets_button_editobject_clicked(GtkButton *button, gpointer user_data); 750 void on_datasets_button_delobject_clicked(GtkButton *button, gpointer user_data); 751 752 void on_nbases_button_close_clicked(GtkButton *button, gpointer user_data); 753 void on_nbases_entry_decimal_changed(GtkEditable *editable, gpointer user_data); 754 void on_nbases_entry_binary_changed(GtkEditable *editable, gpointer user_data); 755 void on_nbases_entry_octal_changed(GtkEditable *editable, gpointer user_data); 756 void on_nbases_entry_hexadecimal_changed(GtkEditable *editable, gpointer user_data); 757 void on_nbases_entry_duo_changed(GtkEditable *editable, gpointer user_data); 758 void on_nbases_entry_roman_changed(GtkEditable *editable, gpointer user_data); 759 void on_nbases_entry_sexa_changed(GtkEditable *editable, gpointer user_data); 760 761 void on_fp_entry_dec_changed(GtkEditable *editable, gpointer user_data); 762 void on_fp_buffer_bin_changed(GtkTextBuffer *w, gpointer user_data); 763 void on_fp_entry_hex_changed(GtkEditable *editable, gpointer user_data); 764 765 void on_percentage_button_clear_clicked(GtkWidget*, gpointer); 766 767 void on_menu_item_show_percentage_dialog_activate(GtkMenuItem *w, gpointer user_data); 768 769 void on_menu_item_show_calendarconversion_dialog_activate(GtkMenuItem *w, gpointer user_data); 770 void on_popup_menu_item_calendarconversion_activate(GtkMenuItem *w, gpointer user_data); 771 void on_popup_menu_item_to_utc_activate(GtkMenuItem *w, gpointer user_data); 772 773 void calendar_changed(GtkWidget*, gpointer); 774 775 void on_button_functions_clicked(GtkButton *button, gpointer user_data); 776 void on_button_variables_clicked(GtkButton *button, gpointer user_data); 777 void on_button_units_clicked(GtkButton *button, gpointer user_data); 778 void on_button_convert_clicked(GtkButton *button, gpointer user_data); 779 780 void on_menu_item_about_activate(GtkMenuItem *w, gpointer user_data); 781 void on_menu_item_help_activate(GtkMenuItem *w, gpointer user_data); 782 783 void on_precision_dialog_spinbutton_precision_value_changed(GtkSpinButton *w, gpointer user_data); 784 void on_precision_dialog_button_recalculate_clicked(GtkButton *w, gpointer user_data); 785 void on_decimals_dialog_spinbutton_max_value_changed(GtkSpinButton *w, gpointer user_data); 786 void on_decimals_dialog_spinbutton_min_value_changed(GtkSpinButton *w, gpointer user_data); 787 void on_decimals_dialog_checkbutton_max_toggled(GtkToggleButton *w, gpointer user_data); 788 void on_decimals_dialog_checkbutton_min_toggled(GtkToggleButton *w, gpointer user_data); 789 790 gboolean on_expressiontext_button_press_event(GtkWidget *w, GdkEventButton *event, gpointer user_data); 791 792 gboolean on_resultview_button_press_event(GtkWidget *w, GdkEventButton *event, gpointer user_data); 793 gboolean on_resultview_popup_menu(GtkWidget *w, gpointer user_data); 794 795 gboolean on_expressiontext_key_press_event(GtkWidget *w, GdkEventKey *event, gpointer user_data); 796 797 void on_expressionbuffer_cursor_position_notify(); 798 799 gboolean on_resultview_draw(GtkWidget *w, cairo_t *cr, gpointer user_data); 800 801 gboolean on_tMatrixEdit_key_press_event(GtkWidget *w, GdkEventKey *event, gpointer user_data); 802 gboolean on_tMatrixEdit_button_press_event(GtkWidget *w, GdkEventButton *event, gpointer user_data); 803 gboolean on_tMatrixEdit_cursor_changed(GtkTreeView *w, gpointer user_data); 804 805 void on_matrix_edit_spinbutton_columns_value_changed(GtkSpinButton *w, gpointer user_data); 806 void on_matrix_edit_spinbutton_rows_value_changed(GtkSpinButton *w, gpointer user_data); 807 808 void on_matrix_edit_radiobutton_matrix_toggled(GtkToggleButton *w, gpointer user_data); 809 void on_matrix_edit_radiobutton_vector_toggled(GtkToggleButton *w, gpointer user_data); 810 811 gboolean on_tMatrix_key_press_event(GtkWidget *w, GdkEventKey *event, gpointer user_data); 812 gboolean on_tMatrix_button_press_event(GtkWidget *w, GdkEventButton *event, gpointer user_data); 813 gboolean on_tMatrix_cursor_changed(GtkTreeView *w, gpointer user_data); 814 815 void on_matrix_spinbutton_columns_value_changed(GtkSpinButton *w, gpointer user_data); 816 void on_matrix_spinbutton_rows_value_changed(GtkSpinButton *w, gpointer user_data); 817 818 void on_matrix_radiobutton_matrix_toggled(GtkToggleButton *w, gpointer user_data); 819 void on_matrix_radiobutton_vector_toggled(GtkToggleButton *w, gpointer user_data); 820 821 void on_csv_import_radiobutton_matrix_toggled(GtkToggleButton *w, gpointer user_data); 822 void on_csv_import_radiobutton_vectors_toggled(GtkToggleButton *w, gpointer user_data); 823 void on_csv_import_combobox_delimiter_changed(GtkComboBox *w, gpointer user_data); 824 void on_csv_import_button_file_clicked(GtkButton *button, gpointer user_data); 825 826 void on_csv_export_combobox_delimiter_changed(GtkComboBox *w, gpointer user_data); 827 void on_csv_export_button_file_clicked(GtkButton *button, gpointer user_data); 828 void on_csv_export_radiobutton_current_toggled(GtkToggleButton *w, gpointer user_data); 829 void on_csv_export_radiobutton_matrix_toggled(GtkToggleButton *w, gpointer user_data); 830 831 void on_type_label_date_clicked(GtkButton *w, gpointer user_data); 832 void on_type_label_file_clicked(GtkButton *w, gpointer user_data); 833 void on_type_label_vector_clicked(GtkButton *w, gpointer user_data); 834 void on_type_label_matrix_clicked(GtkButton *w, gpointer user_data); 835 836 void on_functions_button_deactivate_clicked(GtkButton *w, gpointer user_data); 837 void on_variables_button_deactivate_clicked(GtkButton *w, gpointer user_data); 838 void on_units_button_deactivate_clicked(GtkButton *w, gpointer user_data); 839 840 void on_function_edit_button_subfunctions_clicked(GtkButton *w, gpointer user_data); 841 void on_function_edit_button_add_subfunction_clicked(GtkButton *w, gpointer user_data); 842 void on_function_edit_button_modify_subfunction_clicked(GtkButton *w, gpointer user_data); 843 void on_function_edit_button_remove_subfunction_clicked(GtkButton *w, gpointer user_data); 844 void on_function_edit_entry_subexpression_activate(GtkEntry *entry, gpointer user_data); 845 void on_function_edit_button_add_argument_clicked(GtkButton *w, gpointer user_data); 846 void on_function_edit_button_remove_argument_clicked(GtkButton *w, gpointer user_data); 847 void on_function_edit_button_modify_argument_clicked(GtkButton *w, gpointer user_data); 848 void on_function_edit_entry_argument_name_activate(GtkEntry *entry, gpointer user_data); 849 void on_function_edit_button_rules_clicked(GtkButton *w, gpointer user_data); 850 void on_argument_rules_checkbutton_enable_min_toggled(GtkToggleButton *w, gpointer user_data); 851 void on_argument_rules_checkbutton_enable_max_toggled(GtkToggleButton *w, gpointer user_data); 852 void on_argument_rules_checkbutton_enable_condition_toggled(GtkToggleButton *w, gpointer user_data); 853 854 void on_variable_edit_button_names_clicked(GtkButton *w, gpointer user_data); 855 void on_unknown_edit_button_names_clicked(GtkButton *w, gpointer user_data); 856 void on_matrix_edit_button_names_clicked(GtkButton *w, gpointer user_data); 857 void on_function_edit_button_names_clicked(GtkButton *w, gpointer user_data); 858 void on_unit_edit_button_names_clicked(GtkButton *w, gpointer user_data); 859 860 void on_names_edit_checkbutton_abbreviation_toggled(GtkToggleButton *w, gpointer user_data); 861 void on_names_edit_button_add_clicked(GtkButton *w, gpointer user_data); 862 void on_names_edit_button_modify_clicked(GtkButton *w, gpointer user_data); 863 void on_names_edit_button_remove_clicked(GtkButton *w, gpointer user_data); 864 void on_names_edit_entry_name_activate(GtkEntry *w, gpointer user_data); 865 void on_names_edit_entry_name_changed(GtkEditable *editable, gpointer user_data); 866 867 void on_plot_button_save_clicked(GtkButton *w, gpointer user_data); 868 void on_plot_button_add_clicked(GtkButton *w, gpointer user_data); 869 void on_plot_button_modify_clicked(GtkButton *w, gpointer user_data); 870 void on_plot_button_remove_clicked(GtkButton *w, gpointer user_data); 871 void on_plot_checkbutton_xlog_toggled(GtkToggleButton *w, gpointer user_data); 872 void on_plot_checkbutton_ylog_toggled(GtkToggleButton *w, gpointer user_data); 873 void on_plot_radiobutton_step_toggled(GtkToggleButton *w, gpointer user_data); 874 void on_plot_radiobutton_steps_toggled(GtkToggleButton *w, gpointer user_data); 875 void on_plot_entry_expression_activate(GtkEntry *entry, gpointer user_data); 876 877 void on_unit_dialog_button_apply_clicked(GtkButton *w, gpointer user_data); 878 void on_unit_dialog_button_ok_clicked(GtkButton *w, gpointer user_data); 879 void on_unit_dialog_entry_unit_activate(GtkEntry *entry, gpointer user_data); 880 881 void convert_from_convert_entry_unit(); 882 void on_convert_button_convert_clicked(GtkButton *w, gpointer user_data); 883 void on_convert_entry_unit_activate(GtkEntry *entry, gpointer user_data); 884 885 void on_element_button_clicked(GtkButton *w, gpointer user_data); 886 887 void on_convert_entry_search_changed(GtkEntry *w, gpointer user_data); 888 void on_units_entry_search_changed(GtkEntry *w, gpointer user_data); 889 void on_units_convert_search_changed(GtkEntry *w, gpointer user_data); 890 void on_functions_entry_search_changed(GtkEntry *w, gpointer user_data); 891 void on_variables_entry_search_changed(GtkEntry *w, gpointer user_data); 892 893 gboolean on_menu_key_press(GtkWidget *widget, GdkEventKey *event); 894 895 #ifdef __cplusplus 896 } 897 #endif 898 899 #endif 900 901