static gboolean key_press_cb(MathWindow *window, GdkEventKey *event) { gboolean result; g_signal_emit_by_name(window->priv->display, "key-press-event", event, &result); if (math_buttons_get_mode (window->priv->buttons) == PROGRAMMING && (event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK) { switch(event->keyval) { /* Binary */ case GDK_KEY_b: math_equation_set_base (window->priv->equation, 2); return TRUE; /* Octal */ case GDK_KEY_o: math_equation_set_base (window->priv->equation, 8); return TRUE; /* Decimal */ case GDK_KEY_d: math_equation_set_base (window->priv->equation, 10); return TRUE; /* Hexdecimal */ case GDK_KEY_h: math_equation_set_base (window->priv->equation, 16); return TRUE; } } return result; }
static void button_mode_changed_cb(MathButtons *buttons, GParamSpec *spec, MathWindow *window) { GtkWidget *menu; switch (math_buttons_get_mode(buttons)) { default: case BASIC: menu = window->priv->mode_basic_menu_item; break; case ADVANCED: menu = window->priv->mode_advanced_menu_item; break; case FINANCIAL: menu = window->priv->mode_financial_menu_item; break; case PROGRAMMING: menu = window->priv->mode_programming_menu_item; break; } gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE); g_settings_set_enum(g_settings_var, "button-mode", math_buttons_get_mode(buttons)); }
static void quit_cb(MathWindow *window) { MathEquation *equation; MathButtons *buttons; equation = math_window_get_equation(window); buttons = math_window_get_buttons(window); g_settings_set_int(settings, "accuracy", math_equation_get_accuracy(equation)); g_settings_set_int(settings, "word-size", math_equation_get_word_size(equation)); g_settings_set_int(settings, "base", math_buttons_get_programming_base(buttons)); g_settings_set_boolean(settings, "show-thousands", math_equation_get_show_thousands_separators(equation)); g_settings_set_boolean(settings, "show-zeroes", math_equation_get_show_trailing_zeroes(equation)); g_settings_set_enum(settings, "number-format", math_equation_get_number_format(equation)); g_settings_set_enum(settings, "angle-units", math_equation_get_angle_units(equation)); g_settings_set_enum(settings, "button-mode", math_buttons_get_mode(buttons)); g_settings_set_string(settings, "source-currency", math_equation_get_source_currency(equation)); g_settings_set_string(settings, "target-currency", math_equation_get_target_currency(equation)); g_settings_sync(); currency_free_resources(); gtk_main_quit(); }
static void mode_cb(MathButtons *buttons, GParamSpec *spec) { g_settings_set_enum(settings, "button-mode", math_buttons_get_mode(buttons)); }