static void menu_evaluate_modify(const gchar *expr, const char *value, const gchar *title, gint hb_mode, gint mr_mode, const char *prefix) { gchar *display = parse_get_display_from_7bit(value, hb_mode, mr_mode); gchar *text = g_strdup_printf("%s = %s", expr, display ? display : ""); GtkTextIter iter; g_free(display); gtk_window_set_title(GTK_WINDOW(modify_dialog), title); gtk_widget_grab_focus(modify_value); gtk_text_buffer_set_text(modify_text, text, -1); g_free(text); gtk_text_buffer_get_iter_at_offset(modify_text, &iter, g_utf8_strlen(expr, -1) + 3); gtk_text_buffer_place_cursor(modify_text, &iter); modify_dialog_update_state(debug_state()); if (gtk_dialog_run(GTK_DIALOG(modify_dialog)) == GTK_RESPONSE_ACCEPT) { text = utils_text_buffer_get_text(modify_text, -1); utils_strchrepl(text, '\n', ' '); if (validate_column(text, TRUE)) { char *locale = utils_get_locale_from_display(text, hb_mode); debug_send_format(F, "%s-gdb-set var %s", prefix ? prefix : "", locale); g_free(locale); } g_free(text); } }
void on_tooltip_value(GArray *nodes) { if (atoi(parse_grab_token(nodes)) == scid_gen) { tooltip_set(parse_get_display_from_7bit(parse_lead_value(nodes), parse_mode_get(input, MODE_HBIT), parse_mode_get(input, MODE_MEMBER))); } }
void on_tooltip_value(GArray *nodes) { if (atoi(parse_grab_token(nodes)) == scid_gen) { const ParseMode *pm = parse_mode_find(input); tooltip_set(parse_get_display_from_7bit(parse_lead_value(nodes), pm->hb_mode, pm->mr_mode)); } }
static void on_display_editing_started(G_GNUC_UNUSED GtkCellRenderer *cell, GtkCellEditable *editable, const gchar *path_str, ScpTreeStore *store) { GtkTreeIter iter; const char *value; gint hb_mode; g_assert(GTK_IS_EDITABLE(editable)); scp_tree_store_get_iter_from_string(store, &iter, path_str); scp_tree_store_get(store, &iter, COLUMN_VALUE, &value, COLUMN_HB_MODE, &hb_mode, -1); /* scrolling editable to the proper position is left as an exercise for the reader */ g_signal_connect(editable, "map-event", G_CALLBACK(on_display_editable_map_event), parse_get_display_from_7bit(value, hb_mode, MR_EDITVC)); }
static void menu_mode_update_iter(ScpTreeStore *store, GtkTreeIter *iter, gint new_mode, gboolean hbit) { gint hb_mode, mr_mode; const char *value; gchar *display; scp_tree_store_get(store, iter, COLUMN_VALUE, &value, COLUMN_HB_MODE, &hb_mode, COLUMN_MR_MODE, &mr_mode, -1); if (hbit) hb_mode = new_mode; else mr_mode = new_mode; display = parse_get_display_from_7bit(value, hb_mode, mr_mode); scp_tree_store_set(store, iter, COLUMN_HB_MODE, hb_mode, COLUMN_MR_MODE, mr_mode, value ? COLUMN_DISPLAY : -1, display, -1); g_free(display); }