nemo_extension_sys/
lib.rs1#![deny(bare_trait_objects)]
2
3extern crate gio_sys as gio_ffi;
4extern crate glib_sys as glib_ffi;
5extern crate gobject_sys as gobject_ffi;
6extern crate gtk_sys as gtk_ffi;
7extern crate libc;
8
9use gio_ffi::{GFile, GFileType, GMount};
10use glib_ffi::{GList, GType, gboolean, gpointer};
11use gobject_ffi::{GClosure, GTypeInterface};
12use gtk_ffi::GtkWidget;
13use libc::c_char;
14
15#[repr(C)]
16pub struct NemoFileInfo {
17 g_iface: GTypeInterface,
18 is_gone: Option<extern fn(*mut NemoFileInfo) -> gboolean>,
19 get_name: Option<extern fn(*mut NemoFileInfo) -> *mut c_char>,
20 get_uri: Option<extern fn(*mut NemoFileInfo) -> *mut c_char>,
21 get_parent_uri: Option<extern fn(*mut NemoFileInfo) -> *mut c_char>,
22 get_uri_scheme: Option<extern fn(*mut NemoFileInfo) -> *mut c_char>,
23 get_mime_type: Option<extern fn(*mut NemoFileInfo) -> *mut c_char>,
24 is_mime_type: Option<extern fn(*mut NemoFileInfo) -> gboolean>,
25 is_directory: Option<extern fn(*mut NemoFileInfo) -> gboolean>,
26 add_emblem: Option<extern fn(*mut NemoFileInfo)>,
27 get_string_attribute: Option<extern fn(*mut NemoFileInfo) -> *mut c_char>,
28 add_string_attribute: Option<extern fn(*mut NemoFileInfo)>,
29 invalidate_extension_info: Option<extern fn(*mut NemoFileInfo)>,
30 get_activation_uri: Option<extern fn(*mut NemoFileInfo) -> *mut c_char>,
31 get_file_type: Option<extern fn(*mut NemoFileInfo) -> GFileType>,
32 get_location: Option<extern fn(*mut NemoFileInfo) -> *mut GFile>,
33 get_parent_location: Option<extern fn(*mut NemoFileInfo) -> *mut GFile>,
34 get_parent_info: Option<extern fn(*mut NemoFileInfo) -> *mut NemoFileInfo>,
35 get_mount: Option<extern fn(*mut NemoFileInfo) -> *mut GMount>,
36 can_write: Option<extern fn(*mut NemoFileInfo) -> gboolean>,
37}
38
39#[repr(C)]
40pub struct NemoColumnProviderIface {
41 g_iface: GTypeInterface,
42 pub get_columns: Option<extern fn(gpointer) -> *mut GList>
43}
44
45#[repr(C)]
46pub struct NemoInfoProviderIface {
47 g_iface: GTypeInterface,
48 pub update_file_info: Option<extern fn(*mut NemoInfoProvider, *mut NemoFileInfo, *mut GClosure, *mut *mut NemoOperationHandle) -> NemoOperationResult>,
49 pub cancel_update: Option<extern fn(*mut NemoInfoProvider, *mut NemoOperationHandle)>
50}
51
52#[repr(C)]
53pub struct NemoLocationWidgetProviderIface {
54 g_iface: GTypeInterface,
55 get_widget: Option<extern fn(*mut NemoLocationWidgetProvider, *const c_char, *mut GtkWidget) -> *mut GtkWidget>
56}
57
58#[repr(C)]
59pub struct NemoMenuProviderIface {
60 g_iface: GTypeInterface,
61 pub get_file_items: Option<extern fn(gpointer, *mut GtkWidget, *mut GList) -> *mut GList>,
62 pub get_background_items: Option<extern fn(gpointer, *mut GtkWidget, *mut NemoFileInfo) -> *mut GList>,
63}
64
65#[repr(C)]
66pub struct NemoPropertyPageProviderIface {
67 g_iface: GTypeInterface,
68 pub get_pages: Option<extern fn(*mut NemoPropertyPageProvider, *mut GList) -> *mut GList>
69}
70
71pub enum NemoColumn {}
72pub enum NemoInfoProvider {}
73pub enum NemoLocationWidgetProvider {}
74pub enum NemoMenu {}
75pub enum NemoMenuItem {}
76pub enum NemoOperationHandle {}
77pub enum NemoPropertyPage {}
78pub enum NemoPropertyPageProvider {}
79
80#[link(name = "nemo-extension")]
81extern {
82 pub fn nemo_column_new(name: *const c_char, attribute: *const c_char, label: *const c_char, description: *const c_char) -> *mut NemoColumn;
83 pub fn nemo_column_provider_get_type() -> GType;
84 pub fn nemo_file_info_add_string_attribute(file: *mut NemoFileInfo, attribute_name: *const c_char, value: *const c_char);
85 pub fn nemo_file_info_get_uri(file_info: *mut NemoFileInfo) -> *mut c_char;
86 pub fn nemo_file_info_get_uri_scheme(file_info: *mut NemoFileInfo) -> *mut c_char;
87 pub fn nemo_file_info_invalidate_extension_info(file: *mut NemoFileInfo);
88 pub fn nemo_file_info_list_copy(files: *mut GList) -> *mut GList;
89 pub fn nemo_info_provider_get_type() -> GType;
90 pub fn nemo_info_provider_update_complete_invoke(update_complete: *mut GClosure,
91 provider: *mut NemoInfoProvider,
92 handle: *mut NemoOperationHandle,
93 result: NemoOperationResult);
94 pub fn nemo_menu_append_item(menu: *mut NemoMenu, item: *mut NemoMenuItem);
95 pub fn nemo_menu_item_new(name: *const c_char, label: *const c_char, tip: *const c_char, icon: *const c_char) -> *mut NemoMenuItem;
96 pub fn nemo_menu_item_set_submenu(item: *mut NemoMenuItem, menu: *mut NemoMenu);
97 pub fn nemo_menu_new() -> *mut NemoMenu;
98 pub fn nemo_menu_provider_get_type() -> GType;
99 pub fn nemo_property_page_new(name: *const c_char, label: *mut GtkWidget, page: *mut GtkWidget) -> *mut NemoPropertyPage;
100 pub fn nemo_property_page_provider_get_type() -> GType;
101}
102
103#[repr(C)]
104pub enum NemoOperationResult {
105 NemoOperationComplete,
106 NemoOperationFailed,
107 NemoOperationInProgress,
108}
109
110#[cfg(test)]
111mod tests {
112 #[test]
113 fn it_works() {
114 }
115}