diff options
author | Lluis Sanchez <lluis@xamarin.com> | 2013-11-28 23:46:53 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@xamarin.com> | 2013-11-28 23:46:53 +0400 |
commit | 5b1f32a80ec4d8e98d26441d29ee1def2494d34b (patch) | |
tree | e6e1e37834e6e9112c026c6cd6dee99886d6a595 /Xwt.Mac | |
parent | 0c3884d56dbec17bcc7d0ae285036963e8b2acfd (diff) |
Add support for 9-patch images
Diffstat (limited to 'Xwt.Mac')
-rw-r--r-- | Xwt.Mac/Xwt.Mac/ContextBackendHandler.cs | 5 | ||||
-rw-r--r-- | Xwt.Mac/Xwt.Mac/ImageHandler.cs | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Xwt.Mac/Xwt.Mac/ContextBackendHandler.cs b/Xwt.Mac/Xwt.Mac/ContextBackendHandler.cs index c71b5d2e..850801e1 100644 --- a/Xwt.Mac/Xwt.Mac/ContextBackendHandler.cs +++ b/Xwt.Mac/Xwt.Mac/ContextBackendHandler.cs @@ -54,6 +54,11 @@ namespace Xwt.Mac { const double degrees = System.Math.PI / 180d; + public override double GetScaleFactor (object backend) + { + return 1; + } + public override void Save (object backend) { var ct = (CGContextBackend) backend; diff --git a/Xwt.Mac/Xwt.Mac/ImageHandler.cs b/Xwt.Mac/Xwt.Mac/ImageHandler.cs index 141187a2..a9498ab7 100644 --- a/Xwt.Mac/Xwt.Mac/ImageHandler.cs +++ b/Xwt.Mac/Xwt.Mac/ImageHandler.cs @@ -207,7 +207,17 @@ namespace Xwt.Mac public override object CropBitmap (object backend, int srcX, int srcY, int width, int height) { - throw new NotImplementedException (); + NSImage img = (NSImage)backend; + NSBitmapImageRep bitmap = img.Representations ().OfType<NSBitmapImageRep> ().FirstOrDefault (); + if (bitmap != null) { + RectangleF empty = RectangleF.Empty; + var cgi = bitmap.AsCGImage (ref empty, null, null).WithImageInRect (new RectangleF (srcX, srcY, width, height)); + NSImage res = new NSImage (cgi, new SizeF (width, height)); + cgi.Dispose (); + return res; + } + else + throw new InvalidOperationException ("Not a bitmnap image"); } static NSImage FromResource (string res) |