Re: New accelerator API
- From: "Padraig O'Briain" <Padraig Obriain Sun COM>
- To: otaylor redhat com
- Cc: gtk-devel-list gnome org, timj gtk org
- Subject: Re: New accelerator API
- Date: Thu, 15 Nov 2001 10:05:25 +0000 (GMT)
> To: "Padraig O'Briain" <Padraig Obriain Sun COM>
> Cc: gtk-devel-list gnome org, timj gtk org
> Subject: Re: New accelerator API
> User-Agent: Gnus/5.0807 (Gnus v5.8.7) Emacs/20.7
> MIME-Version: 1.0
>
>
> "Padraig O'Briain" <Padraig Obriain Sun COM> writes:
>
> > Is it possible to determine the accelerator associated with a menu item
using
> > the new API?
>
> Not quite - GtkAccelLabel uses a GtkWidget private function:
>
> _gtk_widget_get_accel_closures (accel_label->accel_widget);
>
> To do this. This lack most likely needs to be fixed.
>
> Regards,
> Owen
I have used the code snippet below to find the accelerator, if any, for a menu
item. It seems to produde the correct results for the menu items in testgtk.
Padraig
------------- Begin Included Message -------------
parent = gtk_widget_get_parent (item);
if (GTK_IS_MENU (parent))
{
GtkAccelGroup *group;
gint i;
group = gtk_menu_get_accel_group (GTK_MENU (parent));
for (i = 0; i < group->n_accels; i++)
{
GtkAccelGroupEntry *entry;
GClosure *closure;
entry = &group->priv_accels[i];
closure = entry->closure;
if (closure->data == item)
{
GtkAccelKey key;
key = entry->key;
accelerator = gtk_accelerator_name (key.accel_key,
key.accel_mods);
break;
}
}
}
------------- End Included Message -------------
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]