2 * nautilus-file-info.h - Information about a file
4 * Copyright (C) 2003 Novell, Inc.
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the Free
18 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 /* NautilusFileInfo is an interface to the NautilusFile object. It
23 * provides access to the asynchronous data in the NautilusFile.
24 * Extensions are passed objects of this type for operations. */
26 #ifndef NAUTILUS_FILE_INFO_H
27 #define NAUTILUS_FILE_INFO_H
29 #include <glib-object.h>
34 #define NAUTILUS_TYPE_FILE_INFO (nautilus_file_info_get_type ())
35 #define NAUTILUS_FILE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_FILE_INFO, NautilusFileInfo))
36 #define NAUTILUS_IS_FILE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_FILE_INFO))
37 #define NAUTILUS_FILE_INFO_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), NAUTILUS_TYPE_FILE_INFO, NautilusFileInfoIface))
40 #ifndef NAUTILUS_FILE_DEFINED
41 #define NAUTILUS_FILE_DEFINED
42 /* Using NautilusFile for the vtable to make implementing this in
43 * NautilusFile easier */
44 typedef struct NautilusFile NautilusFile
;
47 typedef NautilusFile NautilusFileInfo
;
48 typedef struct _NautilusFileInfoIface NautilusFileInfoIface
;
51 struct _NautilusFileInfoIface
53 GTypeInterface g_iface
;
55 gboolean (*is_gone
) (NautilusFileInfo
*file
);
57 char * (*get_name
) (NautilusFileInfo
*file
);
58 char * (*get_uri
) (NautilusFileInfo
*file
);
59 char * (*get_parent_uri
) (NautilusFileInfo
*file
);
60 char * (*get_uri_scheme
) (NautilusFileInfo
*file
);
62 char * (*get_mime_type
) (NautilusFileInfo
*file
);
63 gboolean (*is_mime_type
) (NautilusFileInfo
*file
,
64 const char *mime_Type
);
65 gboolean (*is_directory
) (NautilusFileInfo
*file
);
67 void (*add_emblem
) (NautilusFileInfo
*file
,
68 const char *emblem_name
);
69 char * (*get_string_attribute
) (NautilusFileInfo
*file
,
70 const char *attribute_name
);
71 void (*add_string_attribute
) (NautilusFileInfo
*file
,
72 const char *attribute_name
,
74 void (*invalidate_extension_info
) (NautilusFileInfo
*file
);
76 char * (*get_activation_uri
) (NautilusFileInfo
*file
);
78 GFileType (*get_file_type
) (NautilusFileInfo
*file
);
79 GFile
* (*get_location
) (NautilusFileInfo
*file
);
80 GFile
* (*get_parent_location
) (NautilusFileInfo
*file
);
81 NautilusFileInfo
* (*get_parent_info
) (NautilusFileInfo
*file
);
82 GMount
* (*get_mount
) (NautilusFileInfo
*file
);
83 gboolean (*can_write
) (NautilusFileInfo
*file
);
87 GList
*nautilus_file_info_list_copy (GList
*files
);
88 void nautilus_file_info_list_free (GList
*files
);
89 GType
nautilus_file_info_get_type (void);
91 /* Return true if the file has been deleted */
92 gboolean
nautilus_file_info_is_gone (NautilusFileInfo
*file
);
94 /* Name and Location */
95 GFileType
nautilus_file_info_get_file_type (NautilusFileInfo
*file
);
96 GFile
* nautilus_file_info_get_location (NautilusFileInfo
*file
);
97 char * nautilus_file_info_get_name (NautilusFileInfo
*file
);
98 char * nautilus_file_info_get_uri (NautilusFileInfo
*file
);
99 char * nautilus_file_info_get_activation_uri (NautilusFileInfo
*file
);
100 GFile
* nautilus_file_info_get_parent_location (NautilusFileInfo
*file
);
101 char * nautilus_file_info_get_parent_uri (NautilusFileInfo
*file
);
102 GMount
* nautilus_file_info_get_mount (NautilusFileInfo
*file
);
103 char * nautilus_file_info_get_uri_scheme (NautilusFileInfo
*file
);
104 /* It's not safe to call this recursively multiple times, as it works
105 * only for files already cached by Nautilus.
107 NautilusFileInfo
* nautilus_file_info_get_parent_info (NautilusFileInfo
*file
);
110 char * nautilus_file_info_get_mime_type (NautilusFileInfo
*file
);
111 gboolean
nautilus_file_info_is_mime_type (NautilusFileInfo
*file
,
112 const char *mime_type
);
113 gboolean
nautilus_file_info_is_directory (NautilusFileInfo
*file
);
114 gboolean
nautilus_file_info_can_write (NautilusFileInfo
*file
);
117 /* Modifying the NautilusFileInfo */
118 void nautilus_file_info_add_emblem (NautilusFileInfo
*file
,
119 const char *emblem_name
);
120 char * nautilus_file_info_get_string_attribute (NautilusFileInfo
*file
,
121 const char *attribute_name
);
122 void nautilus_file_info_add_string_attribute (NautilusFileInfo
*file
,
123 const char *attribute_name
,
126 /* Invalidating file info */
127 void nautilus_file_info_invalidate_extension_info (NautilusFileInfo
*file
);