From 2c464b6b4c16d4dc32090706ecfc7c198d68c84e Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 9 Jun 2010 20:39:21 -0500 Subject: Switching things around to expose the key and modifier more as it's more useful. --- libdbusmenu-gtk/menuitem.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'libdbusmenu-gtk/menuitem.c') diff --git a/libdbusmenu-gtk/menuitem.c b/libdbusmenu-gtk/menuitem.c index 1ae4817..0f09483 100644 --- a/libdbusmenu-gtk/menuitem.c +++ b/libdbusmenu-gtk/menuitem.c @@ -142,7 +142,7 @@ dbusmenu_menuitem_property_get_image (DbusmenuMenuitem * menuitem, const gchar * Return value: Whether it was successful at setting the property. */ gboolean -dbusmenu_menuitem_property_set_shortcut (DbusmenuMenuitem * menuitem, const gchar * shortcut) +dbusmenu_menuitem_property_set_shortcut_string (DbusmenuMenuitem * menuitem, const gchar * shortcut) { g_return_val_if_fail(DBUSMENU_IS_MENUITEM(menuitem), FALSE); g_return_val_if_fail(shortcut != NULL, FALSE); @@ -157,6 +157,14 @@ dbusmenu_menuitem_property_set_shortcut (DbusmenuMenuitem * menuitem, const gcha return FALSE; } + return dbusmenu_menuitem_property_set_shortcut(menuitem, key, modifier); +} + +gboolean +dbusmenu_menuitem_property_set_shortcut (DbusmenuMenuitem * menuitem, guint key, GdkModifierType modifier) +{ + g_return_val_if_fail(DBUSMENU_IS_MENUITEM(menuitem), FALSE); + GPtrArray * array = g_ptr_array_new(); if (modifier & GDK_CONTROL_MASK) { @@ -172,8 +180,7 @@ dbusmenu_menuitem_property_set_shortcut (DbusmenuMenuitem * menuitem, const gcha g_ptr_array_add(array, g_strdup(DBUSMENU_MENUITEM_SHORTCUT_SUPER)); } - gint len = g_utf8_strlen(shortcut, -1); - g_ptr_array_add(array, g_strdup(shortcut + len - 1)); + g_ptr_array_add(array, g_strdup(gdk_keyval_name(key))); GPtrArray * wrapper = g_ptr_array_new(); g_ptr_array_add(wrapper, array); @@ -190,17 +197,16 @@ dbusmenu_menuitem_property_set_shortcut (DbusmenuMenuitem * menuitem, const gcha /** dbusmenu_menuitem_property_get_shortcut: @menuitem: The #DbusmenuMenuitem to get the shortcut off + @key: Location to put the key value + @modifier: Location to put the modifier mask - This function gets a GTK shortcut string as defined in - #gtk_accelerator_parse from the data that is transferred - over DBusmenu. - - Return value: Either the string or #NULL if there is none. + This function gets a GTK shortcut as a key and a mask + for use to set the accelerators. */ -gchar * -dbusmenu_menuitem_property_get_shortcut (DbusmenuMenuitem * menuitem) +void +dbusmenu_menuitem_property_get_shortcut (DbusmenuMenuitem * menuitem, guint * key, GdkModifierType * modifier) { - g_return_val_if_fail(DBUSMENU_IS_MENUITEM(menuitem), FALSE); + g_return_if_fail(DBUSMENU_IS_MENUITEM(menuitem)); - return NULL; + return; } -- cgit v1.2.3