static GList *gtkhash_properties_get_pages( #if IN_NAUTILUS_EXTENSION G_GNUC_UNUSED NautilusPropertyPageProvider *provider, #elif IN_CAJA_EXTENSION G_GNUC_UNUSED CajaPropertyPageProvider *provider, #elif IN_NEMO_EXTENSION G_GNUC_UNUSED NemoPropertyPageProvider *provider, #elif IN_THUNAR_EXTENSION G_GNUC_UNUSED ThunarxPropertyPageProvider *provider, #endif GList *files) { // Only display page for a single file if (!files || files->next) return NULL; #if IN_NAUTILUS_EXTENSION GFileType type = nautilus_file_info_get_file_type(files->data); char *uri = nautilus_file_info_get_uri(files->data); #elif IN_CAJA_EXTENSION GFileType type = caja_file_info_get_file_type(files->data); char *uri = caja_file_info_get_uri(files->data); #elif IN_NEMO_EXTENSION GFileType type = nemo_file_info_get_file_type(files->data); char *uri = nemo_file_info_get_uri(files->data); #elif IN_THUNAR_EXTENSION GFileInfo *info = thunarx_file_info_get_file_info(files->data); GFileType type = g_file_info_get_file_type(info); g_object_unref(info); char *uri = thunarx_file_info_get_uri(files->data); #endif // Only display page for regular files if (type != G_FILE_TYPE_REGULAR) return NULL; struct page_s *page = gtkhash_properties_new_page(uri); if (!page) return NULL; #if IN_NAUTILUS_EXTENSION NautilusPropertyPage *ppage = nautilus_property_page_new( "GtkHash::properties", gtk_label_new(_("Digests")), page->box); #elif IN_CAJA_EXTENSION CajaPropertyPage *ppage = caja_property_page_new( "GtkHash::properties", gtk_label_new(_("Digests")), page->box); #elif IN_NEMO_EXTENSION NemoPropertyPage *ppage = nemo_property_page_new( "GtkHash::properties", gtk_label_new(_("Digests")), page->box); #elif IN_THUNAR_EXTENSION GtkWidget *ppage = thunarx_property_page_new(_("Digests")); gtk_container_add(GTK_CONTAINER(ppage), page->box); #endif GList *pages = g_list_append(NULL, ppage); return pages; }
static GList *mate_mplayer_properties_get_pages(NemoPropertyPageProvider * provider, GList * files) { GList *pages = NULL; NemoFileInfo *file; GtkWidget *page, *label; NemoPropertyPage *property_page; guint i; gboolean found = FALSE; gchar *uri; /* only add properties page if a single file is selected */ if (files == NULL || files->next != NULL) return pages; file = files->data; /* only add the properties page to these mime types */ for (i = 0; i < G_N_ELEMENTS(mime_types); i++) { if (nemo_file_info_is_mime_type(file, mime_types[i])) { found = TRUE; break; } } if (found) { uri = nemo_file_info_get_uri(file); label = gtk_label_new(dgettext(GETTEXT_PACKAGE, "Audio/Video")); page = gtk_table_new(20, 2, FALSE); gtk_container_set_border_width(GTK_CONTAINER(page), 6); if (get_properties(page, uri)) { gtk_widget_show_all(page); property_page = nemo_property_page_new("video-properties", label, page); pages = g_list_prepend(pages, property_page); } g_free(uri); } return pages; }
/* nemo_property_page_provider_get_pages * * This function is called by Nemo when it wants property page * items from the extension. * * This function is called in the main thread before a property page * is shown, so it should return quickly. * * The function should return a GList of allocated NemoPropertyPage * items. */ static GList * nemo_share_get_property_pages (NemoPropertyPageProvider *provider, GList *files) { PropertyPage *page; GList *pages; NemoPropertyPage *np_page; NemoFileInfo *fileinfo; ShareInfo *share_info; gboolean is_shareable; /* Only show the property page if 1 file is selected */ if (!files || files->next != NULL) { return NULL; } fileinfo = NEMO_FILE_INFO (files->data); get_share_info_for_file_info (fileinfo, &share_info, &is_shareable); if (!is_shareable) return NULL; page = create_property_page (fileinfo); gtk_widget_hide (page->button_cancel); if (share_info) shares_free_share_info (share_info); pages = NULL; np_page = nemo_property_page_new ("NemoShare::property_page", gtk_label_new (_("Share")), page->main); pages = g_list_append (pages, np_page); return pages; }