xamarin-macios/src/contactsui.cs

151 строка
4.7 KiB
C#

//
// Contacts bindings
//
// Authors:
// Alex Soto <alex.soto@xamarin.com>
//
// Copyright 2015 Xamarin Inc. All rights reserved.
//
using System;
using XamCore.ObjCRuntime;
using XamCore.Foundation;
using XamCore.Contacts;
using XamCore.UIKit;
namespace XamCore.ContactsUI {
#if XAMCORE_2_0 // The Contacts framework uses generics heavily, which is only supported in Unified (for now at least)
[iOS (9,0)]
[BaseType (typeof (UIViewController))]
interface CNContactPickerViewController {
[Export ("initWithNibName:bundle:")]
[PostGet ("NibBundle")]
IntPtr Constructor ([NullAllowed] string nibName, [NullAllowed] NSBundle bundle);
[NullAllowed] // TODO: Maybe we can Strongify this puppy
[Export ("displayedPropertyKeys")]
NSString [] DisplayedPropertyKeys { get; set; }
[Export ("delegate", ArgumentSemantic.Weak)][NullAllowed]
ICNContactPickerDelegate Delegate { get; set; }
[NullAllowed]
[Export ("predicateForEnablingContact", ArgumentSemantic.Copy)]
NSPredicate PredicateForEnablingContact { get; set; }
[NullAllowed]
[Export ("predicateForSelectionOfContact", ArgumentSemantic.Copy)]
NSPredicate PredicateForSelectionOfContact { get; set; }
[NullAllowed]
[Export ("predicateForSelectionOfProperty", ArgumentSemantic.Copy)]
NSPredicate PredicateForSelectionOfProperty { get; set; }
}
interface ICNContactPickerDelegate {}
[iOS (9,0)]
[Protocol, Model]
[BaseType (typeof (NSObject))]
interface CNContactPickerDelegate {
[Export ("contactPickerDidCancel:")]
void ContactPickerDidCancel (CNContactPickerViewController picker);
[Export ("contactPicker:didSelectContact:")]
void DidSelectContact (CNContactPickerViewController picker, CNContact contact);
[Export ("contactPicker:didSelectContactProperty:")]
void DidSelectContactProperty (CNContactPickerViewController picker, CNContactProperty contactProperty);
[Export ("contactPicker:didSelectContacts:")]
void DidSelectContacts (CNContactPickerViewController picker, CNContact [] contacts);
[Export ("contactPicker:didSelectContactProperties:")]
void DidSelectContactProperties (CNContactPickerViewController picker, CNContactProperty [] contactProperties);
}
[iOS (9,0)]
[BaseType (typeof (UIViewController))]
interface CNContactViewController {
[Export ("initWithNibName:bundle:")]
[PostGet ("NibBundle")]
IntPtr Constructor ([NullAllowed] string nibName, [NullAllowed] NSBundle bundle);
[Static]
[Export ("descriptorForRequiredKeys")]
ICNKeyDescriptor DescriptorForRequiredKeys { get; }
[Static]
[Export ("viewControllerForContact:")]
CNContactViewController FromContact (CNContact contact);
[Static]
[Export ("viewControllerForUnknownContact:")]
CNContactViewController FromUnknownContact (CNContact contact);
[Static]
[Export ("viewControllerForNewContact:")]
CNContactViewController FromNewContact ([NullAllowed] CNContact contact);
[Export ("contact", ArgumentSemantic.Strong)]
CNContact Contact { get; }
[NullAllowed] // TODO: Maybe we can Strongify this puppy
[Export ("displayedPropertyKeys")]
NSString [] DisplayedPropertyKeys { get; set; }
[Export ("delegate", ArgumentSemantic.Weak)][NullAllowed]
ICNContactViewControllerDelegate Delegate { get; set; }
[NullAllowed]
[Export ("contactStore", ArgumentSemantic.Strong)]
CNContactStore ContactStore { get; set; }
[NullAllowed]
[Export ("parentGroup", ArgumentSemantic.Strong)]
CNGroup ParentGroup { get; set; }
[NullAllowed]
[Export ("parentContainer", ArgumentSemantic.Strong)]
CNContainer ParentContainer { get; set; }
[NullAllowed]
[Export ("alternateName")]
string AlternateName { get; set; }
[NullAllowed]
[Export ("message")]
string Message { get; set; }
[Export ("allowsEditing", ArgumentSemantic.Assign)]
bool AllowsEditing { get; set; }
[Export ("allowsActions", ArgumentSemantic.Assign)]
bool AllowsActions { get; set; }
[Export ("shouldShowLinkedContacts", ArgumentSemantic.Assign)]
bool ShouldShowLinkedContacts { get; set; }
[Export ("highlightPropertyWithKey:identifier:")] //TODO: Maybe we can mNullallowedake a strongly type version
void HighlightProperty (NSString key, [NullAllowed] string identifier);
}
interface ICNContactViewControllerDelegate {}
[iOS (9,0)]
[Protocol, Model]
[BaseType (typeof (NSObject))]
interface CNContactViewControllerDelegate {
[Export ("contactViewController:shouldPerformDefaultActionForContactProperty:")]
bool ShouldPerformDefaultAction (CNContactViewController viewController, CNContactProperty property);
[Export ("contactViewController:didCompleteWithContact:")]
void DidComplete (CNContactViewController viewController, [NullAllowed] CNContact contact);
}
#endif // XAMCORE_2_0
}