gboolean nemo_desktop_item_properties_should_show (GList *files) { NemoFileInfo *info; if (!files || files->next) { return FALSE; } info = NEMO_FILE_INFO (files->data); if (!nemo_file_info_is_mime_type (info, "application/x-desktop")) { return FALSE; } return TRUE; }
GtkWidget * nemo_desktop_item_properties_make_box (GtkSizeGroup *label_size_group, GList *files) { NemoFileInfo *info; char *uri; GtkWidget *box; g_assert (nemo_desktop_item_properties_should_show (files)); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); g_object_set_data_full (G_OBJECT (box), "label-size-group", label_size_group, (GDestroyNotify) g_object_unref); info = NEMO_FILE_INFO (files->data); uri = nemo_file_info_get_uri (info); nemo_desktop_item_properties_create_begin (uri, box); g_free (uri); return box; }
/* 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; }