Esempio n. 1
0
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);
	}
}
Esempio n. 2
0
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)));
	}
}
Esempio n. 3
0
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));
	}
}
Esempio n. 4
0
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));
}
Esempio n. 5
0
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);
}