internal static void Store(NSPasteboard pboard, object data, int id) { if (id == 0) { pboard.ClearContents(); managed.Clear(); providers.Clear(); return; } if (data == null) { return; } var name = DataFormats.GetFormat(id)?.Name ?? String.Empty; if (name == Clipboard.IDataObjectFormat) { managed[name] = data; var provider = new DataObjectProvider((IDataObject)data); var item = new NSPasteboardItem(); item.SetDataProviderForTypes(provider, provider.Types); pboard.WriteObject(item); providers.Add(provider); // Set flag that clipboard contains our data // Do it as the last step, to avoid fooling the FileMaker (and possibly other apps). pboard.SetStringForType(name, name); } }
public static void SetDataObject(object data, bool copy) { if (data is DataObject dataObject) { pasteboard.ClearContents(); foreach (var item in dataObject.Items) { switch (item.Data) { case string stringData: pasteboard.SetStringForType( stringData, item.Format); break; case bool boolItem: pasteboard.SetDataForType( NSData.FromArray(new byte[] { boolItem ? (byte)1 : (byte)0 }), item.Format); break; } } } }
partial void OnButtonCopy(Foundation.NSObject sender) { NSPasteboard pb = NSPasteboard.GeneralPasteboard; pb.DeclareTypes(new string [] { NSPasteboard.NSStringType }, null); pb.SetStringForType(GuiGeneratedEmailField.StringValue, NSPasteboard.NSStringType); }
// copy a string to the pasteboard public static void CopyString(string text) { if (text != null) { NSPasteboard clipboard = NSPasteboard.GeneralPasteboard; string[] types = { "NSStringPboardType" }; clipboard.DeclareTypes(types, null); clipboard.SetStringForType(text, types[0]); } }
public void WriteToPasteBoard(NSPasteboard pb) { // Copy data to the pasteboard pb.ClearContents(); pb.DeclareTypes(pboardTypes, null); pb.SetStringForType(mLetter, pboardTypes[0]); CGRect r = this.Bounds; NSData data = this.DataWithPdfInsideRect(r); pb.SetDataForType(data, pboardTypes[1]); }
void InitPasteboard(NSPasteboard pb, TransferDataSource data) { pb.ClearContents(); foreach (var t in data.DataTypes) { if (t == TransferDataType.Text) { pb.AddTypes(new string[] { NSPasteboard.NSStringType }, null); pb.SetStringForType((string)data.GetValue(t), NSPasteboard.NSStringType); } } }
public void Copy(string data) { NSPasteboard glob = NSPasteboard.GeneralPasteboard; NSMutableArray types = new NSMutableArray(); types.Add(NSPasteboard.NSStringPboardType); glob.DeclareTypesOwner(types, null); glob.SetStringForType(data, NSPasteboard.NSStringPboardType); }
/// <summary> /// Copies to clipboard selected item password. /// </summary> private void CopyToClipboardSelectedItemPassword() { EntriesDataSource ds = (EntriesTableView.DataSource as EntriesDataSource); EntryModel selected = ds.Items[EntriesTableView.SelectedRow]; string passwordToCopy = selected.Password; NSPasteboard pasteBoard = NSPasteboard.GeneralPasteboard; pasteBoard.DeclareTypes(new string[] { NSPasteboard.NSStringType }, null); pasteBoard.SetStringForType(passwordToCopy, NSPasteboard.NSStringType); //Console.WriteLine("Pasted: " + pasteBoard.GetStringForType(NSPasteboard.NSStringType)); }
partial void OnCopy(Foundation.NSObject sender) { int row = (int)GuiTableEmails.SelectedRow; if (row < 0) { return; } PrivateEmailInfo email = __Model.PrivateEmails [row]; NSPasteboard pb = NSPasteboard.GeneralPasteboard; pb.DeclareTypes(new string [] { NSPasteboard.NSStringType }, null); pb.SetStringForType(email.Email, NSPasteboard.NSStringType); }
private void CreateShare(Account account, string path) { GettProvider.Instance.CreateShare( "test1", account.AccessToken, path, (url) => { BeginInvokeOnMainThread(() => { // placing link into clipboard NSPasteboard pb = NSPasteboard.GeneralPasteboard; pb.DeclareTypes(new string[] { NSPasteboard.NSStringType }, null); pb.SetStringForType(url, NSPasteboard.NSStringType); Console.WriteLine("File will be available for download from {0}", url); }); } ); }
private static async Task SetToNativeAsync(DataPackage content, NSPasteboard pasteboard) { if (pasteboard is null) { throw new ArgumentException(nameof(pasteboard)); } var data = content?.GetView(); var declaredTypes = new List <string>(); string?uri = null; /* Note that order is somewhat important here. * * According to the docs: * "types should be ordered according to the preference of the source application, * with the most preferred type coming first" * https://developer.apple.com/documentation/appkit/nspasteboard/1533561-declaretypes?language=objc * * This means we want to process certain types like HTML/RTF before general plain text * as they are more specific. * * Types are also declared before setting */ // Declare types if (data?.Contains(StandardDataFormats.Html) ?? false) { declaredTypes.Add(NSPasteboard.NSPasteboardTypeHTML); } if (data?.Contains(StandardDataFormats.Rtf) ?? false) { // Use `NSPasteboardTypeRTF` instead of `NSPasteboardTypeRTFD` for max compatibility declaredTypes.Add(NSPasteboard.NSPasteboardTypeRTF); } if (data?.Contains(StandardDataFormats.Text) ?? false) { declaredTypes.Add(NSPasteboard.NSPasteboardTypeString); } if (data != null) { uri = DataPackage.CombineUri( data.Contains(StandardDataFormats.WebLink) ? (await data.GetWebLinkAsync()).ToString() : null, data.Contains(StandardDataFormats.ApplicationLink) ? (await data.GetApplicationLinkAsync()).ToString() : null, data.Contains(StandardDataFormats.Uri) ? (await data.GetUriAsync()).ToString() : null); if (string.IsNullOrEmpty(uri) == false) { declaredTypes.Add(NSPasteboard.NSPasteboardTypeUrl); } } pasteboard.DeclareTypes(declaredTypes.ToArray(), null); // Set content if (data?.Contains(StandardDataFormats.Html) ?? false) { var html = await data.GetHtmlFormatAsync(); pasteboard.SetStringForType(html ?? string.Empty, NSPasteboard.NSPasteboardTypeHTML); } if (data?.Contains(StandardDataFormats.Rtf) ?? false) { var rtf = await data.GetRtfAsync(); pasteboard.SetStringForType(rtf ?? string.Empty, NSPasteboard.NSPasteboardTypeRTF); } if (data?.Contains(StandardDataFormats.Text) ?? false) { var text = await data.GetTextAsync(); pasteboard.SetStringForType(text ?? string.Empty, NSPasteboard.NSPasteboardTypeString); } if (string.IsNullOrEmpty(uri) == false) { pasteboard.SetStringForType(uri !.ToString(), NSPasteboard.NSPasteboardTypeUrl); } return; }
public override void Apply(NSPasteboard pasteboard, string type) => pasteboard.SetStringForType(Value, type);
void ItemDropped(string item) { Console.WriteLine("Item dropped: {0}", item); //var provider = ProviderFactory.GetInstance(); //if (provider.IsAuthenticated) { //} var provider = new FtpProvider(); if (provider.Authenticated) { Console.WriteLine("Uploading..."); provider.Upload(item, "asdf", (url) => { Console.WriteLine("very nice => " + url); }); } else { Console.WriteLine("authenticating..."); var username = ConfigurationSettings.AppSettings["FtpUsername"]; var password = ConfigurationSettings.AppSettings["FtpPassword"]; provider.Authenticate(username, password, account => { Console.WriteLine("cool. got: " + account); var fileInfo = new System.IO.FileInfo(item); provider.Upload(item, fileInfo.Name, (url) => { Console.WriteLine("very nice => " + url); BeginInvokeOnMainThread(() => { // placing link into clipboard NSPasteboard pb = NSPasteboard.GeneralPasteboard; pb.DeclareTypes(new string[] { NSPasteboard.NSStringType }, null); pb.SetStringForType(url, NSPasteboard.NSStringType); Console.WriteLine("File will be available for download from {0}", url); var sound = NSSound.FromName("Pop"); sound.Play(); }); }); }, err => { Console.WriteLine("not cool -- failed with: " + err); }); } //if (Account.IsAuthenticated) { // CreateShare(Account, item.Replace("file://localhost", "").Replace("%20", " ")); //} //else { // GettProvider.Instance.Authenticate(Account.Email, Account.Password, (account) => { // // user is logged in // // store retrieved access token for future requests // Account.AccessToken = account.AccessToken; // CreateShare(account, item.Replace("file://localhost", "").Replace("%20", " ")); // }, (error) => { // // TODO: handle error message when uploading // Console.WriteLine("Got an error: {0}", error); // }); //} }
private static async Task SetToNativeAsync(DataPackage content, NSPasteboard pasteboard) { if (pasteboard is null) { throw new ArgumentException(nameof(pasteboard)); } var data = content?.GetView(); var declaredTypes = new List <string>(); // Note that order is somewhat important here. // // According to the docs: // "types should be ordered according to the preference of the source application, // with the most preferred type coming first" // https://developer.apple.com/documentation/appkit/nspasteboard/1533561-declaretypes?language=objc // // This means we want to process certain types like HTML/RTF before general plain text // as they are more specific. // Types are also declared before setting // Declare types if (data?.Contains(StandardDataFormats.Html) ?? false) { declaredTypes.Add(NSPasteboard.NSPasteboardTypeHTML); } if (data?.Contains(StandardDataFormats.Rtf) ?? false) { // Use `NSPasteboardTypeRTF` instead of `NSPasteboardTypeRTFD` for max compatiblity declaredTypes.Add(NSPasteboard.NSPasteboardTypeRTF); } if (data?.Contains(StandardDataFormats.Text) ?? false) { declaredTypes.Add(NSPasteboard.NSPasteboardTypeString); } pasteboard.DeclareTypes(declaredTypes.ToArray(), null); // Set content if (data?.Contains(StandardDataFormats.Html) ?? false) { var html = await data.GetHtmlFormatAsync(); pasteboard.SetStringForType(html ?? string.Empty, NSPasteboard.NSPasteboardTypeHTML); } if (data?.Contains(StandardDataFormats.Rtf) ?? false) { var rtf = await data.GetRtfAsync(); pasteboard.SetStringForType(rtf ?? string.Empty, NSPasteboard.NSPasteboardTypeRTF); } if (data?.Contains(StandardDataFormats.Text) ?? false) { var text = await data.GetTextAsync(); pasteboard.SetStringForType(text ?? string.Empty, NSPasteboard.NSPasteboardTypeString); } }
public override void Apply(NSPasteboard pasteboard, string type) { //pasteboard.DeclareTypes(new[] { type }, null); pasteboard.SetStringForType(Value, type); }