Add katze_strip_mnemonics (formerly known as elide_underscores)
This commit is contained in:
parent
35f11238a4
commit
25da412215
2 changed files with 61 additions and 0 deletions
|
@ -624,6 +624,64 @@ katze_tree_view_get_selected_iter (GtkTreeView* treeview,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* katze_strip_mnemonics:
|
||||||
|
* @original: a string with mnemonics
|
||||||
|
*
|
||||||
|
* Parses the given string for mnemonics in the form
|
||||||
|
* "B_utton" or "Button (_U)" and returns a string
|
||||||
|
* without any mnemonics.
|
||||||
|
*
|
||||||
|
* Return value: a newly allocated string without mnemonics
|
||||||
|
*
|
||||||
|
* Since: 0.1.8
|
||||||
|
**/
|
||||||
|
gchar*
|
||||||
|
katze_strip_mnemonics (const gchar* original)
|
||||||
|
{
|
||||||
|
/* A copy of _gtk_toolbar_elide_underscores
|
||||||
|
Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
Copied from GTK+ 2.17.1 */
|
||||||
|
gchar *q, *result;
|
||||||
|
const gchar *p, *end;
|
||||||
|
gsize len;
|
||||||
|
gboolean last_underscore;
|
||||||
|
|
||||||
|
if (!original)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
len = strlen (original);
|
||||||
|
q = result = g_malloc (len + 1);
|
||||||
|
last_underscore = FALSE;
|
||||||
|
|
||||||
|
end = original + len;
|
||||||
|
for (p = original; p < end; p++)
|
||||||
|
{
|
||||||
|
if (!last_underscore && *p == '_')
|
||||||
|
last_underscore = TRUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
last_underscore = FALSE;
|
||||||
|
if (original + 2 <= p && p + 1 <= end &&
|
||||||
|
p[-2] == '(' && p[-1] == '_' && p[0] != '_' && p[1] == ')')
|
||||||
|
{
|
||||||
|
q--;
|
||||||
|
*q = '\0';
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*q++ = *p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (last_underscore)
|
||||||
|
*q++ = '_';
|
||||||
|
|
||||||
|
*q = '\0';
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* katze_object_has_property:
|
* katze_object_has_property:
|
||||||
* @object: a #GObject
|
* @object: a #GObject
|
||||||
|
|
|
@ -106,6 +106,9 @@ katze_tree_view_get_selected_iter (GtkTreeView* treeview,
|
||||||
GtkTreeModel** model,
|
GtkTreeModel** model,
|
||||||
GtkTreeIter* iter);
|
GtkTreeIter* iter);
|
||||||
|
|
||||||
|
gchar*
|
||||||
|
katze_strip_mnemonics (const gchar* original);
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
katze_object_has_property (gpointer object,
|
katze_object_has_property (gpointer object,
|
||||||
const gchar* property);
|
const gchar* property);
|
||||||
|
|
Loading…
Reference in a new issue