API differences between XamMac.1.0 and XamMac.1.2

This document describes the API additions from XamMac 1.0 to Xammac 1.2. Most of the changes are new APIs that bring the AppKit support in line with Lion and Mountain Lion features.

There are a few changes that are source-code compatible and were introduced in preparation for our 64 bit support.

Namespace: MonoMac

Type Changed: MonoMac.Constants

Added:

 	public const string CoreServicesLibrary = "/System/Library/Frameworks/CoreServices.framework/CoreServices";

Namespace: MonoMac.AppKit

Type Changed: MonoMac.AppKit.NSAnimationContext

Added:

 	public virtual bool AllowsImplicitAnimation {
 		get;
 		set;
 	}

New Type: MonoMac.AppKit.NSCharacterCollection

[Serializable]
public enum NSCharacterCollection {
	IdentityMapping,
	AdobeCns1,
	AdobeGb1,
	AdobeJapan1,
	AdobeJapan2,
	AdobeKorea1
}

Type Changed: MonoMac.AppKit.NSCollectionViewDelegate

Added:

 	public virtual void DraggingSessionEnded (NSCollectionView collectionView, NSDraggingSession draggingSession, System.Drawing.PointF screenPoint, NSDragOperation dragOperation);
 	public virtual void DraggingSessionWillBegin (NSCollectionView collectionView, NSDraggingSession draggingSession, System.Drawing.PointF screenPoint, MonoMac.Foundation.NSIndexSet indexes);
 	public virtual NSPasteboardWriting PasteboardWriterForItemAtIndex (NSCollectionView collectionView, uint index);
 	public virtual void UpdateDraggingItemsForDrag (NSCollectionView collectionView, NSDraggingInfo draggingInfo);

Type Changed: MonoMac.AppKit.NSColor

Added:

 	public static NSColor FromCGColor (MonoMac.CoreGraphics.CGColor cgColor);
 	public static NSColor FromGamma22White (float white, float alpha);
 	public static NSColor FromSrgb (float red, float green, float blue, float alpha);
 	public static NSColor UnderPageBackgroundColor {
 		get;
 	}
 	public virtual MonoMac.CoreGraphics.CGColor CGColor {
 		get;
 	}

Type Changed: MonoMac.AppKit.NSControl

Added:

 	public virtual bool AllowsExpansionToolTips {
 		get;
 		set;
 	}

New Type: MonoMac.AppKit.NSControlEditingSupport

public static class NSControlEditingSupport {
	
	public static bool ValidateProposedFirstResponder (NSResponder This, NSResponder responder, NSEvent forEvent);
}

New Type: MonoMac.AppKit.NSCorrectionIndicatorType

[Serializable]
public enum NSCorrectionIndicatorType {
	Default,
	Reversion,
	Guesses
}

New Type: MonoMac.AppKit.NSCorrectionResponse

[Serializable]
public enum NSCorrectionResponse {
	None,
	Accepted,
	Rejected,
	Ignored,
	Edited,
	Reverted
}

Type Changed: MonoMac.AppKit.NSCustomImageRep

Added:

 	public NSCustomImageRep (System.Drawing.SizeF size, bool flipped, NSCustomImageRepDrawingHandler drawingHandler);
 	public virtual NSCustomImageRepDrawingHandler DrawingHandler {
 		get;
 	}

New Type: MonoMac.AppKit.NSCustomImageRepDrawingHandler

[Serializable]
public delegate bool NSCustomImageRepDrawingHandler (System.Drawing.RectangleF dstRect);

Type Changed: MonoMac.AppKit.NSDocument

Added:

 	public virtual void BrowseDocumentVersions (MonoMac.Foundation.NSObject sender);
 	public virtual void LockDocument (MonoMac.Foundation.NSObject sender);
 	public virtual void LockDocumentWithCompletionHandler (NSDocumentLockDocumentCompletionHandler completionHandler);
 	public virtual void LockWithCompletionHandler (NSDocumentLockCompletionHandler completionHandler);
 	public virtual void MoveDocument (MonoMac.Foundation.NSObject sender);
 	public virtual void MoveDocumentToUbiquityContainer (MonoMac.Foundation.NSObject sender);
 	public virtual void MoveDocumentWithCompletionHandler (NSDocumentMoveCompletionHandler completionHandler);
 	public virtual void MoveToUrl (MonoMac.Foundation.NSUrl url, NSDocumentMoveToUrlCompletionHandler completionHandler);
 	public virtual void RenameDocument (MonoMac.Foundation.NSObject sender);
 	public virtual void UnlockDocument (MonoMac.Foundation.NSObject sender);
 	public virtual void UnlockDocumentWithCompletionHandler (NSDocumentUnlockDocumentCompletionHandler completionHandler);
 	public virtual void UnlockWithCompletionHandler (NSDocumentUnlockCompletionHandler completionHandler);
 	public static bool AutoSavesDrafts {
 		get;
 	}
 	public static bool UsesUbiquitousStorage {
 		get;
 	}
 	public virtual MonoMac.Foundation.NSUrl BackupFileUrl {
 		get;
 	}
 	public virtual string DefaultDraftName {
 		get;
 	}
 	public virtual bool IsDraft {
 		get;
 		set;
 	}
 	public virtual bool IsLocked {
 		get;
 	}

Type Changed: MonoMac.AppKit.NSDocumentController

Added:

 	public virtual void BeginOpenPanel (NSOpenPanel openPanel, MonoMac.Foundation.NSArray inTypes, NSDocumentControllerOpenPanelResultHandler completionHandler);
 	public virtual void BeginOpenPanelWithCompletionHandler (NSDocumentControllerOpenPanelWithCompletionHandler completionHandler);
 	public virtual NSDocument DuplicateDocumentWithContentsOfUrl (MonoMac.Foundation.NSUrl url, bool duplicateByCopying, string displayName, out MonoMac.Foundation.NSError error);
 	public virtual void OpenDocumentWithContentsOfUrl (MonoMac.Foundation.NSUrl url, bool displayDocument, OpenDocumentCompletionHandler completionHandler);
 	public virtual void ReopenDocumentForUrl (MonoMac.Foundation.NSUrl url, MonoMac.Foundation.NSUrl contentsUrl, bool displayDocument, OpenDocumentCompletionHandler completionHandler);

New Type: MonoMac.AppKit.NSDocumentControllerOpenPanelResultHandler

[Serializable]
public delegate void NSDocumentControllerOpenPanelResultHandler (int result);

New Type: MonoMac.AppKit.NSDocumentControllerOpenPanelWithCompletionHandler

[Serializable]
public delegate void NSDocumentControllerOpenPanelWithCompletionHandler (MonoMac.Foundation.NSArray urlsToOpen);

New Type: MonoMac.AppKit.NSDocumentLockCompletionHandler

[Serializable]
public delegate void NSDocumentLockCompletionHandler (MonoMac.Foundation.NSError error);

New Type: MonoMac.AppKit.NSDocumentLockDocumentCompletionHandler

[Serializable]
public delegate void NSDocumentLockDocumentCompletionHandler (bool didLock);

New Type: MonoMac.AppKit.NSDocumentMoveCompletionHandler

[Serializable]
public delegate void NSDocumentMoveCompletionHandler (bool didMove);

New Type: MonoMac.AppKit.NSDocumentMoveToUrlCompletionHandler

[Serializable]
public delegate void NSDocumentMoveToUrlCompletionHandler (MonoMac.Foundation.NSError error);

New Type: MonoMac.AppKit.NSDocumentUnlockCompletionHandler

[Serializable]
public delegate void NSDocumentUnlockCompletionHandler (MonoMac.Foundation.NSError error);

New Type: MonoMac.AppKit.NSDocumentUnlockDocumentCompletionHandler

[Serializable]
public delegate void NSDocumentUnlockDocumentCompletionHandler (bool didUnlock);

Type Changed: MonoMac.AppKit.NSForm

Added:

 	public virtual float PreferredTextFieldWidth {
 		get;
 		set;
 	}

Type Changed: MonoMac.AppKit.NSFormCell

Added:

 	public virtual float PreferredTextFieldWidth {
 		get;
 		set;
 	}

New Type: MonoMac.AppKit.NSGlyphInfo

public class NSGlyphInfo : MonoMac.Foundation.NSObject {
	
	public NSGlyphInfo ();
	public NSGlyphInfo (MonoMac.Foundation.NSCoder coder);
	public NSGlyphInfo (MonoMac.Foundation.NSObjectFlag t);
	public NSGlyphInfo (IntPtr handle);
	
	public static NSGlyphInfo Get (string glyphName, NSFont forFont, string baseString);
	public static NSGlyphInfo Get (uint characterIdentifier, NSCharacterCollection characterCollection, string baseString);
	public static NSGlyphInfo Get (uint glyph, NSFont forFont, string baseString);
	
	public virtual NSCharacterCollection CharacterCollection {
		get;
	}
	public virtual uint CharacterIdentifier {
		get;
	}
	public override IntPtr ClassHandle {
		get;
	}
	public virtual string GlyphName {
		get;
	}
}

Type Changed: MonoMac.AppKit.NSImage

Added:

 	public static MonoMac.Foundation.NSObject ImageWithSize (System.Drawing.SizeF size, bool flipped, NSCustomImageRepDrawingHandler drawingHandler);

Type Changed: MonoMac.AppKit.NSMatrix

Added:

 	public virtual bool AutoRecalculatesCellSize {
 		get;
 		set;
 	}

Type Changed: MonoMac.AppKit.NSNib

Added:

 	public NSNib (MonoMac.Foundation.NSData nibData, MonoMac.Foundation.NSBundle bundle);

Type Changed: MonoMac.AppKit.NSOutlineView

Added:

 	public virtual void InsertItems (MonoMac.Foundation.NSIndexSet indexes, MonoMac.Foundation.NSObject parent, NSTableViewAnimationOptions animationOptions);
 	public virtual void InsertRows (MonoMac.Foundation.NSIndexSet indexes, NSTableViewAnimationOptions animationOptions);
 	public virtual void MoveItem (int fromIndex, MonoMac.Foundation.NSObject oldParent, int toIndex, MonoMac.Foundation.NSObject newParent);
 	public virtual void MoveRow (int oldIndex, int newIndex);
 	public virtual void RemoveItems (MonoMac.Foundation.NSIndexSet indexes, MonoMac.Foundation.NSObject parent, NSTableViewAnimationOptions animationOptions);
 	public virtual void RemoveRows (MonoMac.Foundation.NSIndexSet indexes, NSTableViewAnimationOptions animationOptions);

Type Changed: MonoMac.AppKit.NSOutlineViewDataSource

Added:

 	public virtual void DraggingSessionEnded (NSOutlineView outlineView, NSDraggingSession session, System.Drawing.PointF screenPoint, NSDragOperation operation);
 	public virtual void DraggingSessionWillBegin (NSOutlineView outlineView, NSDraggingSession session, System.Drawing.PointF screenPoint, MonoMac.Foundation.NSArray draggedItems);
 	public virtual NSPasteboardWriting PasteboardWriterForItem (NSOutlineView outlineView, MonoMac.Foundation.NSObject item);
 	public virtual void UpdateDraggingItemsForDrag (NSOutlineView outlineView, NSDraggingInfo draggingInfo);

Type Changed: MonoMac.AppKit.NSOutlineViewDelegate

Added:

 	public virtual void DidAddRowView (NSOutlineView outlineView, NSTableRowView rowView, int row);
 	public virtual void DidRemoveRowView (NSOutlineView outlineView, NSTableRowView rowView, int row);
 	public virtual NSTableRowView RowViewForItem (NSOutlineView outlineView, MonoMac.Foundation.NSObject item);
 	public virtual NSView ViewForTableColumn (NSOutlineView outlineView, NSTableColumn tableColumn, MonoMac.Foundation.NSObject item);

Type Changed: MonoMac.AppKit.NSPasteboard

Added:

 	public static MonoMac.Foundation.NSString PasteboardTypeTextFinderOptions {
 		get;
 	}

Type Changed: MonoMac.AppKit.NSPredicateEditorRowTemplate

Added:

 	public NSPredicateEditorRowTemplate (params MonoMac.Foundation.NSCompoundPredicateType[] compoundTypes);
 	public NSPredicateEditorRowTemplate (System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSExpression> leftExpressions, System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSExpression> rightExpressions, System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSPredicateOperatorType> operators, MonoMac.Foundation.NSComparisonPredicateModifier modifier, MonoMac.Foundation.NSComparisonPredicateOptions options);
 	public NSPredicateEditorRowTemplate (System.Collections.Generic.IEnumerable<string> leftExpressionsFromKeyPaths, System.Collections.Generic.IEnumerable<string> rightExpressionsFromConstants, System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSPredicateOperatorType> operators, MonoMac.Foundation.NSComparisonPredicateModifier modifier, MonoMac.Foundation.NSComparisonPredicateOptions options);
 	public NSPredicateEditorRowTemplate (string leftExpressionFromKeyPath, string rightExpressionFromConstant, System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSPredicateOperatorType> operators, MonoMac.Foundation.NSComparisonPredicateModifier modifier, MonoMac.Foundation.NSComparisonPredicateOptions options);
 	public NSPredicateEditorRowTemplate (string leftExpressionFromKeyPath, System.Collections.Generic.IEnumerable<string> rightExpressionsFromConstants, System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSPredicateOperatorType> operators, MonoMac.Foundation.NSComparisonPredicateModifier modifier, MonoMac.Foundation.NSComparisonPredicateOptions options);
 	public NSPredicateEditorRowTemplate (System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSExpression> leftExpressions, MonoMac.CoreData.NSAttributeType attributeType, System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSPredicateOperatorType> operators, MonoMac.Foundation.NSComparisonPredicateModifier modifier, MonoMac.Foundation.NSComparisonPredicateOptions options);
 	public NSPredicateEditorRowTemplate (System.Collections.Generic.IEnumerable<string> leftExpressionsFromKeyPaths, MonoMac.CoreData.NSAttributeType attributeType, System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSPredicateOperatorType> operators, MonoMac.Foundation.NSComparisonPredicateModifier modifier, MonoMac.Foundation.NSComparisonPredicateOptions options);
 	public NSPredicateEditorRowTemplate (string leftExpressionFromKeyPath, MonoMac.CoreData.NSAttributeType attributeType, System.Collections.Generic.IEnumerable<MonoMac.Foundation.NSPredicateOperatorType> operators, MonoMac.Foundation.NSComparisonPredicateModifier modifier, MonoMac.Foundation.NSComparisonPredicateOptions options);

Type Changed: MonoMac.AppKit.NSPrintOperation

Added:

 	public virtual NSPrintRenderingQuality PreferredRenderingQuality {
 		get;
 	}

New Type: MonoMac.AppKit.NSPrintRenderingQuality

[Serializable]
public enum NSPrintRenderingQuality {
	Best,
	Responsive
}

New Type: MonoMac.AppKit.NSRemoteNotifications_NSApplication

public static class NSRemoteNotifications_NSApplication {
	
	public static MonoMac.Foundation.NSString NSApplicationLaunchUserNotificationKey {
		get;
	}
}

Type Changed: MonoMac.AppKit.NSResponder

Added:

 	public virtual void QuickLook (NSEvent withEvent);
 	public virtual void SmartMagnify (NSEvent withEvent);
 	public virtual MonoMac.Foundation.NSObject SupplementalTargetForAction (MonoMac.ObjCRuntime.Selector action, MonoMac.Foundation.NSObject sender);
 	public virtual bool WantsScrollEventsForSwipeTrackingOnAxis (NSEventGestureAxis axis);

New Type: MonoMac.AppKit.NSRulerMarkerClientViewDelegation

public static class NSRulerMarkerClientViewDelegation {
	
	public static float RulerViewLocation (NSView This, NSRulerView ruler, System.Drawing.PointF locationForPoint);
	public static System.Drawing.PointF RulerViewPoint (NSView This, NSRulerView ruler, float pointForLocation);
}

Type Changed: MonoMac.AppKit.NSRunningApplication

Added:

 	public static void TerminateAutomaticallyTerminableApplications ();

Type Changed: MonoMac.AppKit.NSScrollView

Added:

 	public virtual void MagnifyToFitRect (System.Drawing.RectangleF rect);
 	public virtual void SetMagnification (float magnification, System.Drawing.PointF centeredAtPoint);
 	public static MonoMac.Foundation.NSString DidEndLiveMagnifyNotification {
 		get;
 	}
 	public static MonoMac.Foundation.NSString WillStartLiveMagnifyNotification {
 		get;
 	}
 	public virtual bool AllowsMagnification {
 		get;
 		set;
 	}
 	public virtual float Magnification {
 		get;
 		set;
 	}
 	public virtual float MaxMagnification {
 		get;
 		set;
 	}
 	public virtual float MinMagnification {
 		get;
 		set;
 	}
 	
 	public static class Notifications {
 		
 		public static MonoMac.Foundation.NSObject ObserveDidEndLiveMagnify (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillStartLiveMagnify (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 	}

New Type: MonoMac.AppKit.NSSegmentBackgroundStyle_NSSegmentedCell

public static class NSSegmentBackgroundStyle_NSSegmentedCell {
	
	public static MonoMac.Foundation.NSString SharingServiceNameAddToAperture {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNameAddToIPhoto {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNameAddToSafariReadingList {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNameComposeEmail {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNameComposeMessage {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNamePostImageOnFlickr {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNamePostOnFacebook {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNamePostOnSinaWeibo {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNamePostOnTwitter {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNamePostVideoOnTudou {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNamePostVideoOnVimeo {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNamePostVideoOnYouku {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNameSendViaAirDrop {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNameUseAsDesktopPicture {
		get;
	}
	public static MonoMac.Foundation.NSString SharingServiceNameUseAsTwitterProfileImage {
		get;
	}
}

Type Changed: MonoMac.AppKit.NSSpellChecker

Added:

 	public virtual void DismissCorrectionIndicator (NSView forView);
 	public virtual string GetCorrection (MonoMac.Foundation.NSRange forWordRange, string inString, string language, int inSpellDocumentWithTag);
 	public virtual string GetLanguage (MonoMac.Foundation.NSRange forWordRange, string inString, MonoMac.Foundation.NSOrthography orthography);
 	public virtual void RecordResponse (NSCorrectionResponse response, string toCorrection, string forWord, string language, int inSpellDocumentWithTag);
 	public virtual void ShowCorrectionIndicatorOfType (NSCorrectionIndicatorType type, string primaryString, string [] alternativeStrings, System.Drawing.RectangleF forStringInRect, NSRulerView view, NSSpellCheckerShowCorrectionIndicatorOfTypeHandler completionHandler);
 	public static MonoMac.Foundation.NSString DidChangeAutomaticSpellingCorrectionNotification {
 		get;
 	}
 	public static MonoMac.Foundation.NSString DidChangeAutomaticTextReplacementNotification {
 		get;
 	}
 	public static bool IsAutomaticSpellingCorrectionEnabled {
 		get;
 	}
 	public static bool IsAutomaticTextReplacementEnabled {
 		get;
 	}
 	public static MonoMac.Foundation.NSString TextCheckingDocumentAuthorKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString TextCheckingDocumentTitleKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString TextCheckingDocumentURLKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString TextCheckingOrthographyKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString TextCheckingQuotesKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString TextCheckingReferenceDateKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString TextCheckingReferenceTimeZoneKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString TextCheckingRegularExpressionsKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString TextCheckingReplacementsKey {
 		get;
 	}
 	
 	public static class Notifications {
 		
 		public static MonoMac.Foundation.NSObject ObserveDidChangeAutomaticSpellingCorrection (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidChangeAutomaticTextReplacement (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 	}

New Type: MonoMac.AppKit.NSSpellCheckerShowCorrectionIndicatorOfTypeHandler

[Serializable]
public delegate void NSSpellCheckerShowCorrectionIndicatorOfTypeHandler (string acceptedString);

New Type: MonoMac.AppKit.NSSpellingState

[Serializable]
[Flags]
public enum NSSpellingState {
	None,
	Spelling,
	Grammar
}

Type Changed: MonoMac.AppKit.NSSplitView

Added:

 	public virtual float HoldingPriorityForSubviewAtIndex (int subviewIndex);
 	public virtual void SetHoldingPriority (float priority, int subviewIndex);

New Type: MonoMac.AppKit.NSStandardKeyBindingMethods

public static class NSStandardKeyBindingMethods {
	
	public static void QuickLookPreviewItems (NSResponder This, MonoMac.Foundation.NSObject sender);
}

Type Changed: MonoMac.AppKit.NSStatusBar

Added:

 	public NSStatusItem CreateStatusItem (NSStatusItemLength length);

New Type: MonoMac.AppKit.NSStatusItemLength

[Serializable]
public enum NSStatusItemLength {
	Variable,
	Square
}

New Type: MonoMac.AppKit.NSStringAttributes

public class NSStringAttributes : MonoMac.Foundation.DictionaryContainer {
	
	public NSStringAttributes ();
	public NSStringAttributes (MonoMac.Foundation.NSDictionary dictionary);
	
	public int SetStrikethroughStyle (NSUnderlineStyle style, NSUnderlinePattern pattern, bool byWord);
	public int SetUnderlineStyle (NSUnderlineStyle style, NSUnderlinePattern pattern, bool byWord);
	
	public NSTextAttachment Attachment {
		get;
		set;
	}
	public NSColor BackgroundColor {
		get;
		set;
	}
	public Nullable BaselineOffset {
		get;
		set;
	}
	public Nullable CharacterShape {
		get;
		set;
	}
	public NSCursor Cursor {
		get;
		set;
	}
	public Nullable Expansion {
		get;
		set;
	}
	public NSFont Font {
		get;
		set;
	}
	public NSColor ForegroundColor {
		get;
		set;
	}
	public NSGlyphInfo GlyphInfo {
		get;
		set;
	}
	public Nullable KerningAdjustment {
		get;
		set;
	}
	public System.Nullable Ligature {
		get;
		set;
	}
	public MonoMac.Foundation.NSString LinkString {
		get;
		set;
	}
	public MonoMac.Foundation.NSUrl LinkUrl {
		get;
		set;
	}
	public Nullable MarkedClauseSegment {
		get;
		set;
	}
	public Nullable Obliqueness {
		get;
		set;
	}
	public NSParagraphStyle ParagraphStyle {
		get;
		set;
	}
	public NSShadow Shadow {
		get;
		set;
	}
	public Nullable SpellingState {
		get;
		set;
	}
	public NSColor StrikethroughColor {
		get;
		set;
	}
	public Nullable StrikethroughStyle {
		get;
		set;
	}
	public NSColor StrokeColor {
		get;
		set;
	}
	public Nullable StrokeWidth {
		get;
		set;
	}
	public Nullable Superscript {
		get;
		set;
	}
	public NSTextAlternatives TextAlternatives {
		get;
		set;
	}
	public string ToolTip {
		get;
		set;
	}
	public NSColor UnderlineColor {
		get;
		set;
	}
	public Nullable UnderlineStyle {
		get;
		set;
	}
	public Nullable VerticalGlyphForm {
		get;
		set;
	}
	public MonoMac.Foundation.NSArray WritingDirection {
		get;
		set;
	}
}

Type Changed: MonoMac.AppKit.NSTableView

Added:

 	public NSTableViewToolTip GetToolTip {
 		get;
 		set;
 	}

New Type: MonoMac.AppKit.NSTableViewAnimationOptions

[Serializable]
[Flags]
public enum NSTableViewAnimationOptions {
	EffectFade,
	EffectGap,
	SlideUp,
	SlideDown,
	SlideLeft,
	SlideRight
}

Type Changed: MonoMac.AppKit.NSTableViewDelegate

Added:

 	public virtual MonoMac.Foundation.NSString GetToolTip (NSTableView tableView, NSCell cell, ref System.Drawing.RectangleF rect, NSTableColumn tableColumn, int row, System.Drawing.PointF mouseLocation);

New Type: MonoMac.AppKit.NSTableViewToolTip

[Serializable]
public delegate MonoMac.Foundation.NSString NSTableViewToolTip (NSTableView tableView, NSCell cell, ref System.Drawing.RectangleF rect, NSTableColumn tableColumn, int row, System.Drawing.PointF mouseLocation);

New Type: MonoMac.AppKit.NSTextAlternatives

public class NSTextAlternatives : MonoMac.Foundation.NSObject {
	
	public NSTextAlternatives ();
	public NSTextAlternatives (MonoMac.Foundation.NSCoder coder);
	public NSTextAlternatives (MonoMac.Foundation.NSObjectFlag t);
	public NSTextAlternatives (IntPtr handle);
	public NSTextAlternatives (string primaryString, MonoMac.Foundation.NSArray alternativeStrings);
	
	protected override void Dispose (bool disposing);
	public virtual void NoteSelectedAlternativeString (string alternativeString);
	
	public static MonoMac.Foundation.NSString SelectedAlternativeStringNotification {
		get;
	}
	public virtual MonoMac.Foundation.NSArray AlternativeStrings {
		get;
	}
	public override IntPtr ClassHandle {
		get;
	}
	public virtual string PrimaryString {
		get;
	}
	
	public static class Notifications {
		
		public static MonoMac.Foundation.NSObject ObserveSelectedAlternativeString (System.EventHandler handler);
	}
}

Type Changed: MonoMac.AppKit.NSTextContainer

Added:

 	public virtual NSTextLayoutOrientation LayoutOrientation {
 		get;
 	}

Type Changed: MonoMac.AppKit.NSTextField

Added:

 	public virtual float PreferredMaxLayoutWidth {
 		get;
 		set;
 	}

New Type: MonoMac.AppKit.NSTextFinderMatchingType

[Serializable]
public enum NSTextFinderMatchingType {
	Contains,
	StartsWith,
	FullWord,
	EndsWith
}

New Type: MonoMac.AppKit.NSTextFinderSupport

public static class NSTextFinderSupport {
	
	public static void PerformTextFinderAction (NSResponder This, MonoMac.Foundation.NSObject sender);
}

New Type: MonoMac.AppKit.NSTextLayoutOrientation

[Serializable]
public enum NSTextLayoutOrientation {
	Horizontal,
	Vertical
}

Type Changed: MonoMac.AppKit.NSTextView

Added:

 	public virtual void ChangeLayoutOrientation (MonoMac.Foundation.NSObject sender);
 	public virtual MonoMac.Foundation.NSArray QuickLookPreviewableItemsInRanges (MonoMac.Foundation.NSArray ranges);
 	public virtual void SetLayoutOrientation (NSTextLayoutOrientation theOrientation);
 	public virtual void UpdateQuickLookPreviewPanel ();
 	public virtual bool IsIncrementalSearchingEnabled {
 		get;
 		set;
 	}
 	public virtual NSTextLayoutOrientation LayoutOrientation {
 		get;
 	}
 	public virtual bool UsesFindBar {
 		get;
 		set;
 	}
 	public virtual bool UsesInspectorBar {
 		get;
 		set;
 	}

New Type: MonoMac.AppKit.NSTextView_SharingService

public static class NSTextView_SharingService {
	
	public static void OrderFrontSharingServicePicker (NSTextView This, MonoMac.Foundation.NSObject sender);
}

Type Changed: MonoMac.AppKit.NSTypesetter

Removed:

 	public virtual void LayoutGlyphs (NSLayoutManager layoutManager, uint startGlyphIndex, uint maxLineFragments, uint nextGlyph);

Added:

 	public virtual void LayoutGlyphs (NSLayoutManager layoutManager, uint startGlyphIndex, uint maxLineFragments, out uint nextGlyph);

Type Changed: MonoMac.AppKit.NSView

Added:

 	public virtual System.Drawing.RectangleF RectForSmartMagnificationAtPoint (System.Drawing.PointF atPoint, System.Drawing.RectangleF inRect);
 	public virtual void UpdateLayer ();
 	public virtual bool WantsUpdateLayer {
 		get;
 	}

Type Changed: MonoMac.AppKit.NSWindow

Added:

 	public static MonoMac.Foundation.NSString DidChangeBackingPropertiesNotification {
 		get;
 	}
 	
 	public static class Notifications {
 		
 		public static MonoMac.Foundation.NSObject ObserveDidBecomeKey (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidBecomeMain (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidChangeBackingProperties (EventHandler<NSWindowBackingPropertiesEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidChangeScreen (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidChangeScreenProfile (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidDeminiaturize (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidEndLiveResize (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidEndSheet (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidEnterFullScreen (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidEnterVersionBrowser (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidExitFullScreen (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidExitVersionBrowser (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidExpose (EventHandler<NSWindowExposeEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidMiniaturize (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidMove (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidResignKey (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidResignMain (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidResize (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveDidUpdate (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillBeginSheet (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillClose (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillEnterFullScreen (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillEnterVersionBrowser (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillExitFullScreen (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillExitVersionBrowser (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillMiniaturize (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillMove (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 		public static MonoMac.Foundation.NSObject ObserveWillStartLiveResize (System.EventHandler<MonoMac.Foundation.NSNotificationEventArgs> handler);
 	}

New Type: MonoMac.AppKit.NSWindowBackingPropertiesEventArgs

public class NSWindowBackingPropertiesEventArgs : MonoMac.Foundation.NSNotificationEventArgs {
	
	public NSWindowBackingPropertiesEventArgs (MonoMac.Foundation.NSNotification notification);
	
	public NSColorSpace OldColorSpace {
		get;
	}
	public int OldScaleFactor {
		get;
	}
}

New Type: MonoMac.AppKit.NSWindowExposeEventArgs

public class NSWindowExposeEventArgs : MonoMac.Foundation.NSNotificationEventArgs {
	
	public NSWindowExposeEventArgs (MonoMac.Foundation.NSNotification notification);
	
	public System.Drawing.RectangleF ExposedRect {
		get;
	}
}

Namespace: MonoMac.CoreServices

New Type: MonoMac.CoreServices.FSEvent

public struct FSEvent {
	
	public static ulong GetLastEventIdForDeviceBeforeTime (ulong device, double timeInSecondsSinceEpoch);
	public static Guid GetUuidForDevice (ulong device);
	public static bool PurgeEventsForDeviceUpToEventId (ulong device, ulong eventId);
	public override string ToString ();
	
	public static ulong CurrentEventId {
		get;
	}
	public FSEventStreamEventFlags Flags {
		get;
	}
	public ulong Id {
		get;
	}
	public string Path {
		get;
	}
	
	public const ulong SinceNowId = 18446744073709551615;
}

New Type: MonoMac.CoreServices.FSEventStream

public class FSEventStream : IDisposable, MonoMac.ObjCRuntime.INativeObject {
	
	public FSEventStream (MonoMac.CoreFoundation.CFAllocator allocator, MonoMac.Foundation.NSArray pathsToWatch, ulong sinceWhenId, TimeSpan latency, FSEventStreamCreateFlags flags);
	public FSEventStream (string [] pathsToWatch, TimeSpan latency, FSEventStreamCreateFlags flags);
	
	public void Dispose ();
	protected virtual void Dispose (bool disposing);
	protected override void Finalize ();
	public uint FlushAsync ();
	public void FlushSync ();
	public void Invalidate ();
	protected virtual void OnEvents (FSEvent[] events);
	public void ScheduleWithRunLoop (MonoMac.CoreFoundation.CFRunLoop runLoop);
	public void ScheduleWithRunLoop (MonoMac.CoreFoundation.CFRunLoop runLoop, MonoMac.Foundation.NSString runLoopMode);
	public void ScheduleWithRunLoop (MonoMac.Foundation.NSRunLoop runLoop);
	public void ScheduleWithRunLoop (MonoMac.Foundation.NSRunLoop runLoop, MonoMac.Foundation.NSString runLoopMode);
	public void Show ();
	public bool Start ();
	public void Stop ();
	public override string ToString ();
	
	public string Description {
		get;
	}
	public IntPtr Handle {
		get;
	}
	public ulong LatestEventId {
		get;
	}
	public string [] PathsBeingWatched {
		get;
	}
	
	public event FSEventStreamEventsHandler Events;
}

New Type: MonoMac.CoreServices.FSEventStreamCreateFlags

[Serializable]
[Flags]
public enum FSEventStreamCreateFlags : uint {
	None,
	NoDefer,
	WatchRoot,
	IgnoreSelf,
	FileEvents
}

New Type: MonoMac.CoreServices.FSEventStreamEventFlags

[Serializable]
[Flags]
public enum FSEventStreamEventFlags : uint {
	None,
	MustScanSubDirs,
	UserDropped,
	KernelDropped,
	EventIdsWrapped,
	HistoryDone,
	RootChanged,
	Mount,
	Unmount,
	ItemCreated,
	ItemRemoved,
	ItemInodeMetaMod,
	ItemRenamed,
	ItemModified,
	ItemFinderInfoMod,
	ItemChangeOwner,
	ItemXattrMod,
	ItemIsFile,
	ItemIsDir,
	ItemIsSymlink
}

New Type: MonoMac.CoreServices.FSEventStreamEventsArgs

public sealed class FSEventStreamEventsArgs : EventArgs {
	
	public FSEvent[] Events {
		get;
	}
}

New Type: MonoMac.CoreServices.FSEventStreamEventsHandler

[Serializable]
public delegate void FSEventStreamEventsHandler (object sender, FSEventStreamEventsArgs args);

Namespace: MonoMac.Foundation

Type Changed: MonoMac.Foundation.NSAttributedString

Added:

 	public NSAttributedString (string str, MonoMac.AppKit.NSStringAttributes attributes);
 	public NSAttributedString (string str, MonoMac.AppKit.NSFont font, MonoMac.AppKit.NSColor foregroundColor, MonoMac.AppKit.NSColor backgroundColor, MonoMac.AppKit.NSColor strokeColor, MonoMac.AppKit.NSColor underlineColor, MonoMac.AppKit.NSColor strikethroughColor, MonoMac.AppKit.NSUnderlineStyle underlineStyle, MonoMac.AppKit.NSUnderlineStyle strikethroughStyle, MonoMac.AppKit.NSParagraphStyle paragraphStyle, float strokeWidth, MonoMac.AppKit.NSShadow shadow, NSUrl link, bool superscript, MonoMac.AppKit.NSTextAttachment attachment, NSLigatureType ligature, float baselineOffset, float kerningAdjustment, float obliqueness, float expansion, MonoMac.AppKit.NSCursor cursor, string toolTip, int characterShape, MonoMac.AppKit.NSGlyphInfo glyphInfo, NSArray writingDirection, bool markedClauseSegment, MonoMac.AppKit.NSTextLayoutOrientation verticalGlyphForm, MonoMac.AppKit.NSTextAlternatives textAlternatives, MonoMac.AppKit.NSSpellingState spellingState);
 	public MonoMac.AppKit.NSStringAttributes GetAppKitAttributes (int location, out NSRange effectiveRange);
 	public MonoMac.AppKit.NSStringAttributes GetAppKitAttributes (int location, out NSRange longestEffectiveRange, NSRange rangeLimit);
 	public static NSString CharacterShapeAttributeName {
 		get;
 	}
 	public static NSString GlyphInfoAttributeName {
 		get;
 	}
 	public static NSString SpellingStateAttributeName {
 		get;
 	}
 	public static NSString TextAlternativesAttributeName {
 		get;
 	}
 	public static NSString TextLayoutSectionOrientation {
 		get;
 	}
 	public static NSString TextLayoutSectionRange {
 		get;
 	}
 	public static NSString TextLayoutSectionsAttribute {
 		get;
 	}
 	public static int UnderlineByWordMaskAttributeName {
 		get;
 	}

Type Changed: MonoMac.Foundation.NSBundle

Added:

 	public virtual MonoMac.AppKit.NSImage ImageForResource (string name);

Type Changed: MonoMac.Foundation.NSFileManager

Added:

 	public virtual bool TrashItem (NSUrl url, out NSUrl resultingItemUrl, out NSError error);

Type Changed: MonoMac.Foundation.NSFilePresenter

Added:

 	public virtual NSUrl PrimaryPresentedItemUrl {
 		get;
 	}

Type Changed: MonoMac.Foundation.NSThread

Added:

 	public static NSThread Start (NSAction action);

Type Changed: MonoMac.Foundation.NSValue

Added:

 	public static NSValue FromVector (MonoMac.SceneKit.SCNVector3 vector);
 	public static NSValue FromVector (MonoMac.SceneKit.SCNVector4 vector);
 	public virtual MonoMac.SceneKit.SCNVector3 Vector3Value {
 		get;
 	}
 	public virtual MonoMac.SceneKit.SCNVector4 Vector4Value {
 		get;
 	}

Namespace: MonoMac.SceneKit

The majority of the changes are related to the move from OpenGL.Vector3 to SCNVector3 in preparation for 64-bit support.

To preserve source code compatibility, we now have implicit operators that convert between those types.

Type Changed: MonoMac.SceneKit.SCNGeometry

Removed:

 	public virtual bool GetBoundingBoxMinmax (MonoMac.OpenGL.Vector3 min, MonoMac.OpenGL.Vector3 max);
 	public virtual bool GetBoundingSphereCenterradius (MonoMac.OpenGL.Vector3 center, float radius);

Added:

 	public virtual bool GetBoundingBox (ref SCNVector3 min, ref SCNVector3 max);
 	public virtual bool GetBoundingSphere (ref SCNVector3 center, ref float radius);

Type Changed: MonoMac.SceneKit.SCNGeometryElement

Removed:

 	public virtual SCNGeometryElement FromData (MonoMac.Foundation.NSData data, SCNGeometryPrimitiveType primitiveType, int primitiveCount, int bytesPerIndex);

Added:

 	public static SCNGeometryElement FromData (MonoMac.Foundation.NSData data, SCNGeometryPrimitiveType primitiveType, int primitiveCount, int bytesPerIndex);

Type Changed: MonoMac.SceneKit.SCNGeometrySource

Removed:

 	public static SCNGeometrySource FromNormals (MonoMac.OpenGL.Vector3[] normals);
 	public static SCNGeometrySource FromVertices (MonoMac.OpenGL.Vector3[] vertices);

Added:

 	public static SCNGeometrySource FromNormals (SCNVector3[] normals);
 	public static SCNGeometrySource FromVertices (SCNVector3[] vertices);

Type Changed: MonoMac.SceneKit.SCNHitTestResult

Removed:

 	public virtual MonoMac.OpenGL.Vector3 LocalCoordinates {
 	public virtual MonoMac.OpenGL.Vector3 LocalNormal {
 	public virtual MonoMac.OpenGL.Vector3 WorldCoordinates {
 	public virtual MonoMac.OpenGL.Vector3 WorldNormal {

Added:

 	public virtual SCNVector3 LocalCoordinates {
 	public virtual SCNVector3 LocalNormal {
 	public virtual SCNVector3 WorldCoordinates {
 	public virtual SCNVector3 WorldNormal {

Type Changed: MonoMac.SceneKit.SCNMaterialProperty

Added:

 		set;

Type Changed: MonoMac.SceneKit.SCNNode

Removed:

 	public virtual bool GetBoundingBoxMinmax (MonoMac.OpenGL.Vector3 min, MonoMac.OpenGL.Vector3 max);
 	public virtual bool GetBoundingSphereCenterradius (MonoMac.OpenGL.Vector3 center, float radius);
 	public virtual MonoMac.OpenGL.Vector3 Position {
 	public SCNNodeRendererDelegate RenderDelegate {
 	public virtual MonoMac.OpenGL.Vector4 Rotation {
 	public virtual MonoMac.OpenGL.Vector3 Scale {
 	public virtual MonoMac.Foundation.NSObject WeakRenderDelegate {

Added:

 	public virtual bool GetBoundingBox (ref SCNVector3 min, ref SCNVector3 max);
 	public virtual bool GetBoundingSphere (ref SCNVector3 center, ref float radius);
 	public virtual SCNVector3 Position {
 	public SCNNodeRendererDelegate RendererDelegate {
 	public virtual SCNVector4 Rotation {
 	public virtual SCNVector3 Scale {
 	public virtual MonoMac.Foundation.NSObject WeakRendererDelegate {

Type Changed: MonoMac.SceneKit.SCNScene

Removed:

 	public virtual MonoMac.Foundation.NSObject SetAttribute (MonoMac.Foundation.NSObject attribute, MonoMac.Foundation.NSString key);

Added:

 	public virtual void SetAttribute (MonoMac.Foundation.NSObject attribute, MonoMac.Foundation.NSString key);

New Type: MonoMac.SceneKit.SCNVector3

public struct SCNVector3 {
	
	public SCNVector3 (MonoMac.OpenGL.Vector3 vector);
	
	public static implicit operator SCNVector3 (MonoMac.OpenGL.Vector3 vector);
	public static explicit operator MonoMac.OpenGL.Vector3 (SCNVector3 source);
	
	public float X;
	public float Y;
	public float Z;
}

New Type: MonoMac.SceneKit.SCNVector4

public struct SCNVector4 {
	
	public SCNVector4 (MonoMac.OpenGL.Vector4 vector);
	
	public static implicit operator SCNVector4 (MonoMac.OpenGL.Vector4 vector);
	public static explicit operator MonoMac.OpenGL.Vector4 (SCNVector4 source);
	
	public float X;
	public float Y;
	public float Z;
	public float W;
}

Namespace: MonoMac.WebKit

New Type: MonoMac.WebKit.WebActionMouseButton

[Serializable]
public enum WebActionMouseButton {
	None,
	Left,
	Middle,
	Right
}

Type Changed: MonoMac.WebKit.WebNavigationPolicyEventArgs

Added:

 	public MonoMac.Foundation.NSDictionary ElementInfo {
 		get;
 	}
 	public uint Flags {
 		get;
 	}
 	public WebActionMouseButton MouseButton {
 		get;
 	}
 	public WebNavigationType NavigationType {
 		get;
 	}
 	public MonoMac.Foundation.NSUrl OriginalUrl {
 		get;
 	}

Type Changed: MonoMac.WebKit.WebPolicyDelegate

Added:

 	
 	public static MonoMac.Foundation.NSString WebActionButtonKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString WebActionElementKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString WebActionModifierFlagsKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString WebActionNavigationTypeKey {
 		get;
 	}
 	public static MonoMac.Foundation.NSString WebActionOriginalUrlKey {
 		get;
 	}

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.