Branch: refs/heads/master
Home:
https://github.com/mono/monomac
Compare:
https://github.com/mono/monomac/compare/3162f8d50517...6227e5764d6d
Commit: 068f7a6892752947a664eb4c2ba70447348fa121
Author: Rolf Bjarne Kvinge <
ro...@xamarin.com> (rolfbjarne)
Date: 2013-04-23 23:58:08 GMT
URL:
https://github.com/mono/monomac/commit/068f7a6892752947a664eb4c2ba70447348fa121
Add support for marshalling native exceptions to Xamarin.Mac.
Changed paths:
M src/Makefile
Added paths:
A src/Foundation/MonoMacException.cs
Added: src/Foundation/MonoMacException.cs
===================================================================
@@ -0,0 +1,69 @@
+//
+// Copyright 2013, Xamarin Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace MonoMac.Foundation {
+ public class MonoMacException : Exception {
+ NSException native_exc;
+
+ public MonoMacException () : base ()
+ {
+ native_exc = new NSException ("default", String.Empty, null);
+ }
+
+ public MonoMacException (NSException exc) : base ()
+ {
+ native_exc = exc;
+ }
+
+ internal static void Throw (IntPtr handle)
+ {
+ throw new MonoMacException (new NSException (handle));
+ }
+
+ public NSException NSException {
+ get {
+ return native_exc;
+ }
+ }
+
+ public string Reason {
+ get {
+ return native_exc.Reason;
+ }
+ }
+
+ public string Name {
+ get {
+ return native_exc.Name;
+ }
+ }
+
+ public override string Message {
+ get {
+ return string.Format ("Objective-C exception thrown. Name: {0} Reason: {1}", Name, Reason);
+ }
+ }
+ }
+}
Modified: src/Makefile
===================================================================
@@ -92,6 +92,7 @@ MONOMAC_SOURCES = $(EXTRA_MONOMAC_SOURCES) \
./AppKit/NSTreeController.cs \
./AppKit/NSWindow.cs \
./CoreVideo/CVDisplayLink.cs \
+ ./Foundation/MonoMacException.cs \
./QTKit/QTCaptureDevice.cs \
./QTKit/QTMovie.cs \
./WebKit/DomNode.cs \
Commit: 6227e5764d6dfd7b1bad26edd1a841a195d686d6
Author: Rolf Bjarne Kvinge <
ro...@xamarin.com> (rolfbjarne)
Date: 2013-04-23 23:58:08 GMT
URL:
https://github.com/mono/monomac/commit/6227e5764d6dfd7b1bad26edd1a841a195d686d6
Marshal native exceptions for NSColor.BlackComponent.
Changed paths:
M src/appkit.cs
Modified: src/appkit.cs
===================================================================
@@ -2676,7 +2676,7 @@ public partial interface NSColor {
float YellowComponent { get; }
[Export ("blackComponent")]
- float BlackComponent { get; }
+ float BlackComponent { [MarshalNativeExceptions] get; }
[Export ("getCyan:magenta:yellow:black:alpha:")]
void GetCmyka (out float cyan, out float magenta, out float yellow, out float black, out float alpha);