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