A game framework written with osu! in mind.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 39 lines 1.9 kB view raw
1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence. 2// See the LICENCE file in the repository root for full licence text. 3 4using System; 5 6namespace osu.Framework.Platform.MacOS.Native 7{ 8 internal readonly struct NSPasteboard 9 { 10 internal IntPtr Handle { get; } 11 12 private static readonly IntPtr class_pointer = Class.Get("NSPasteboard"); 13 private static readonly IntPtr sel_general_pasteboard = Selector.Get("generalPasteboard"); 14 private static readonly IntPtr sel_clear_contents = Selector.Get("clearContents"); 15 private static readonly IntPtr sel_can_read_object_for_classes = Selector.Get("canReadObjectForClasses:options:"); 16 private static readonly IntPtr sel_read_objects_for_classes = Selector.Get("readObjectsForClasses:options:"); 17 private static readonly IntPtr sel_write_objects = Selector.Get("writeObjects:"); 18 19 internal NSPasteboard(IntPtr handle) 20 { 21 Handle = handle; 22 } 23 24 internal static NSPasteboard GeneralPasteboard() => new NSPasteboard(Cocoa.SendIntPtr(class_pointer, sel_general_pasteboard)); 25 26 internal int ClearContents() => Cocoa.SendInt(Handle, sel_clear_contents); 27 28 internal bool CanReadObjectForClasses(NSArray classArray, NSDictionary? optionDict) => 29 Cocoa.SendBool(Handle, sel_can_read_object_for_classes, classArray.Handle, optionDict?.Handle ?? IntPtr.Zero); 30 31 internal NSArray? ReadObjectsForClasses(NSArray classArray, NSDictionary? optionDict) 32 { 33 var result = Cocoa.SendIntPtr(Handle, sel_read_objects_for_classes, classArray.Handle, optionDict?.Handle ?? IntPtr.Zero); 34 return result == IntPtr.Zero ? (NSArray?)null : new NSArray(result); 35 } 36 37 internal bool WriteObjects(NSArray objects) => Cocoa.SendBool(Handle, sel_write_objects, objects.Handle); 38 } 39}