- GString *gstring;
- gboolean seen_mod = FALSE;
-
- gstring = g_string_new (accel_label->accel_string);
- g_string_append (gstring, gstring->len ? class->accel_seperator : " ");
-
- if (key->accel_mods & GDK_SHIFT_MASK)
- {
- g_string_append (gstring, class->mod_name_shift);
- seen_mod = TRUE;
- }
- if (key->accel_mods & GDK_CONTROL_MASK)
- {
- if (seen_mod)
- g_string_append (gstring, class->mod_separator);
- g_string_append (gstring, class->mod_name_control);
- seen_mod = TRUE;
- }
- if (key->accel_mods & GDK_MOD1_MASK)
- {
- if (seen_mod)
- g_string_append (gstring, class->mod_separator);
- g_string_append (gstring, class->mod_name_alt);
- seen_mod = TRUE;
- }
- if (seen_mod)
- g_string_append (gstring, class->mod_separator);
- if (key->accel_key < 0x80 ||
- (key->accel_key > 0x80 &&
- key->accel_key <= 0xff &&
- class->latin1_to_char))
- {
- switch (key->accel_key)
- {
- case ' ':
- g_string_append (gstring, "Space");
- break;
- case '\\':
- g_string_append (gstring, "Backslash");
- break;
- default:
- g_string_append_c (gstring, toupper (key->accel_key));
- break;
- }
- }
- else
- {
- gchar *tmp;
-
- tmp = gtk_accelerator_name (key->accel_key, 0);
- if (tmp[0] != 0 && tmp[1] == 0)
- tmp[0] = toupper (tmp[0]);
- g_string_append (gstring, tmp);
- g_free (tmp);
- }
- g_free (accel_label->accel_string);
- accel_label->accel_string = gstring->str;
- g_string_free (gstring, FALSE);
+ GtkAccelLabelClass *klass;
+ gchar *tmp;
+
+ klass = GTK_ACCEL_LABEL_GET_CLASS (accel_label);
+ tmp = _gtk_accel_label_class_get_accelerator_label (klass,
+ key->accel_key,
+ key->accel_mods);
+ accel_label->accel_string = g_strconcat (" ", tmp, NULL);
+ g_free (tmp);