summaryrefslogtreecommitdiff
path: root/libnautilus-extension/nautilus-menu-item.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnautilus-extension/nautilus-menu-item.c')
-rw-r--r--libnautilus-extension/nautilus-menu-item.c51
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",