summaryrefslogtreecommitdiff
path: root/libnautilus-extension
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2008-04-04 15:51:47 +0000
committerCosimo Cecchi <cosimoc@src.gnome.org>2008-04-04 15:51:47 +0000
commit957f93fd3720ee3eca0a55b9a51246b1a944527a (patch)
tree82890f7fdba0aaa4eb5436bb40a7651449fdaa29 /libnautilus-extension
parent00a42fe81d10c8aec34afd1f9ebf5551ee51a44b (diff)
downloadnautilus-957f93fd3720ee3eca0a55b9a51246b1a944527a.tar.gz
Add new APIs for extensions to NautilusFileInfo (can_write, get_mount and
2008-04-04 Cosimo Cecchi <cosimoc@gnome.org> * libnautilus-extension/nautilus-file-info.c: (nautilus_file_info_get_parent_info), (nautilus_file_info_get_mount), (nautilus_file_info_can_write): * libnautilus-extension/nautilus-file-info.h: * libnautilus-private/nautilus-file.c: (nautilus_file_info_iface_init): Add new APIs for extensions to NautilusFileInfo (can_write, get_mount and get_parent_info). (#521612). svn path=/trunk/; revision=14036
Diffstat (limited to 'libnautilus-extension')
-rw-r--r--libnautilus-extension/nautilus-file-info.c27
-rw-r--r--libnautilus-extension/nautilus-file-info.h9
2 files changed, 36 insertions, 0 deletions
diff --git a/libnautilus-extension/nautilus-file-info.c b/libnautilus-extension/nautilus-file-info.c
index c4345ae13..942677036 100644
--- a/libnautilus-extension/nautilus-file-info.c
+++ b/libnautilus-extension/nautilus-file-info.c
@@ -152,6 +152,24 @@ nautilus_file_info_get_parent_uri (NautilusFileInfo *file)
return NAUTILUS_FILE_INFO_GET_IFACE (file)->get_parent_uri (file);
}
+NautilusFileInfo *
+nautilus_file_info_get_parent_info (NautilusFileInfo *file)
+{
+ g_return_val_if_fail (NAUTILUS_IS_FILE_INFO (file), NULL);
+ g_return_val_if_fail (NAUTILUS_FILE_INFO_GET_IFACE (file)->get_parent_info != NULL, NULL);
+
+ return NAUTILUS_FILE_INFO_GET_IFACE (file)->get_parent_info (file);
+}
+
+GMount *
+nautilus_file_info_get_mount (NautilusFileInfo *file)
+{
+ g_return_val_if_fail (NAUTILUS_IS_FILE_INFO (file), NULL);
+ g_return_val_if_fail (NAUTILUS_FILE_INFO_GET_IFACE (file)->get_mount != NULL, NULL);
+
+ return NAUTILUS_FILE_INFO_GET_IFACE (file)->get_mount (file);
+}
+
char *
nautilus_file_info_get_uri_scheme (NautilusFileInfo *file)
{
@@ -191,6 +209,15 @@ nautilus_file_info_is_directory (NautilusFileInfo *file)
return NAUTILUS_FILE_INFO_GET_IFACE (file)->is_directory (file);
}
+gboolean
+nautilus_file_info_can_write (NautilusFileInfo *file)
+{
+ g_return_val_if_fail (NAUTILUS_IS_FILE_INFO (file), FALSE);
+ g_return_val_if_fail (NAUTILUS_FILE_INFO_GET_IFACE (file)->can_write != NULL, FALSE);
+
+ return NAUTILUS_FILE_INFO_GET_IFACE (file)->can_write (file);
+}
+
void
nautilus_file_info_add_emblem (NautilusFileInfo *file,
const char *emblem_name)
diff --git a/libnautilus-extension/nautilus-file-info.h b/libnautilus-extension/nautilus-file-info.h
index 29002a94c..d7a7278b5 100644
--- a/libnautilus-extension/nautilus-file-info.h
+++ b/libnautilus-extension/nautilus-file-info.h
@@ -78,6 +78,9 @@ struct _NautilusFileInfoIface
GFileType (*get_file_type) (NautilusFileInfo *file);
GFile * (*get_location) (NautilusFileInfo *file);
GFile * (*get_parent_location) (NautilusFileInfo *file);
+ NautilusFileInfo* (*get_parent_info) (NautilusFileInfo *file);
+ GMount * (*get_mount) (NautilusFileInfo *file);
+ gboolean (*can_write) (NautilusFileInfo *file);
};
@@ -96,13 +99,19 @@ char * nautilus_file_info_get_uri (NautilusFileInfo *fil
char * nautilus_file_info_get_activation_uri (NautilusFileInfo *file);
GFile * nautilus_file_info_get_parent_location (NautilusFileInfo *file);
char * nautilus_file_info_get_parent_uri (NautilusFileInfo *file);
+GMount * nautilus_file_info_get_mount (NautilusFileInfo *file);
char * nautilus_file_info_get_uri_scheme (NautilusFileInfo *file);
+/* It's not safe to call this recursively multiple times, as it works
+ * only for files already cached by Nautilus.
+ */
+NautilusFileInfo* nautilus_file_info_get_parent_info (NautilusFileInfo *file);
/* File Type */
char * nautilus_file_info_get_mime_type (NautilusFileInfo *file);
gboolean nautilus_file_info_is_mime_type (NautilusFileInfo *file,
const char *mime_type);
gboolean nautilus_file_info_is_directory (NautilusFileInfo *file);
+gboolean nautilus_file_info_can_write (NautilusFileInfo *file);
/* Modifying the NautilusFileInfo */