diff options
Diffstat (limited to 'libnautilus-extension/nautilus-menu-item.c')
-rw-r--r-- | libnautilus-extension/nautilus-menu-item.c | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/libnautilus-extension/nautilus-menu-item.c b/libnautilus-extension/nautilus-menu-item.c index dfe3e2712..a76e9ca4c 100644 --- a/libnautilus-extension/nautilus-menu-item.c +++ b/libnautilus-extension/nautilus-menu-item.c @@ -37,7 +37,8 @@ enum { PROP_TIP, PROP_ICON, PROP_SENSITIVE, - PROP_PRIORITY, + PROP_MENU_NAME, + PROP_SECTION_NAME, PROP_MENU, LAST_PROP }; @@ -47,6 +48,8 @@ struct _NautilusMenuItemDetails { char *label; char *tip; char *icon; + char *menu_name; + char *section_name; NautilusMenu *menu; gboolean sensitive; gboolean priority; @@ -71,7 +74,9 @@ NautilusMenuItem * nautilus_menu_item_new (const char *name, const char *label, const char *tip, - const char *icon) + const char *icon, + const char *menu_name, + const char *section_name) { NautilusMenuItem *item; @@ -84,6 +89,8 @@ nautilus_menu_item_new (const char *name, "label", label, "tip", tip, "icon", icon, + "menu_name", menu_name, + "section_name", section_name, NULL); return item; @@ -140,8 +147,11 @@ nautilus_menu_item_get_property (GObject *object, case PROP_SENSITIVE : g_value_set_boolean (value, item->details->sensitive); break; - case PROP_PRIORITY : - g_value_set_boolean (value, item->details->priority); + case PROP_MENU_NAME : + g_value_set_string (value, item->details->menu_name); + break; + case PROP_SECTION_NAME : + g_value_set_string (value, item->details->section_name); break; case PROP_MENU : g_value_set_object (value, item->details->menu); @@ -187,9 +197,15 @@ nautilus_menu_item_set_property (GObject *object, item->details->sensitive = g_value_get_boolean (value); g_object_notify (object, "sensitive"); break; - case PROP_PRIORITY : - item->details->priority = g_value_get_boolean (value); - g_object_notify (object, "priority"); + case PROP_MENU_NAME : + g_free (item->details->menu_name); + item->details->menu_name = g_strdup (g_value_get_string (value)); + g_object_notify (object, "menu_name"); + break; + case PROP_SECTION_NAME : + g_free (item->details->section_name); + item->details->section_name = g_strdup (g_value_get_string (value)); + g_object_notify (object, "section_name"); break; case PROP_MENU : if (item->details->menu) { @@ -215,6 +231,8 @@ nautilus_menu_item_finalize (GObject *object) g_free (item->details->label); g_free (item->details->tip); g_free (item->details->icon); + g_free (item->details->section_name); + g_free (item->details->menu_name); if (item->details->menu) { g_object_unref (item->details->menu); } @@ -288,12 +306,19 @@ nautilus_menu_item_class_init (NautilusMenuItemClass *class) TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (class), - PROP_PRIORITY, - g_param_spec_boolean ("priority", - "Priority", - "Show priority text in toolbars", - TRUE, - G_PARAM_READWRITE)); + PROP_MENU_NAME, + g_param_spec_string ("menu_name", + "Menu name", + "The name of the menu to for inserting the item. It can be 'background' or 'selection'", + NULL, + G_PARAM_READWRITE)); + g_object_class_install_property (G_OBJECT_CLASS (class), + PROP_SECTION_NAME, + g_param_spec_string ("section_name", + "Section name", + "The name of the section to be the insertion point for the item", + NULL, + G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (class), PROP_MENU, g_param_spec_object ("menu", |