Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Karlaš <david.karlas@xamarin.com>2014-06-30 11:35:41 +0400
committerDavid Karlaš <david.karlas@xamarin.com>2014-06-30 11:35:41 +0400
commite7872760072c03ee447ae25de3cc0974f639e172 (patch)
tree03bbad31a806eaef9e81a4de40717d2c09b9e03a /main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters
parent3a04588fc03e125dc591596b1ce519ebd4b26007 (diff)
[Debugger] Preview now supports UIImage
Diffstat (limited to 'main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters')
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs23
1 files changed, 17 insertions, 6 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs
index 7122cb19fe..24e1062704 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs
@@ -36,18 +36,29 @@ namespace MonoDevelop.Debugger.Converters
public override bool CanGetValue (ObjectValue val)
{
- return val.TypeName == "Gdk.Pixbuf";
+ return val.TypeName == "Gdk.Pixbuf" ||
+ val.TypeName.EndsWith ("UIKit.UIImage");
}
public override Image GetValue (ObjectValue val)
{
var ops = DebuggingService.DebuggerSession.EvaluationOptions.Clone ();
ops.AllowTargetInvoke = true;
- var pix = (RawValue)val.GetRawValue (ops);
- var arrayObject = (RawValueArray)pix.CallMethod ("SaveToBuffer", "png");
- var bytes = (byte[])(arrayObject).GetValues (0, arrayObject.Length);
- var ms = new MemoryStream (bytes, false);
- return Image.FromStream (ms);
+ var rawVal = (RawValue)val.GetRawValue (ops);
+ if (val.TypeName == "Gdk.Pixbuf") {
+ var arrayObject = (RawValueArray)rawVal.CallMethod ("SaveToBuffer", "png");
+ var bytes = (byte[])(arrayObject).GetValues (0, arrayObject.Length);
+ var ms = new MemoryStream (bytes, false);
+ return Image.FromStream (ms);
+ } else if (val.TypeName.EndsWith ("UIKit.UIImage")) {
+ RawValue nsData = (RawValue)rawVal.CallMethod ("AsPNG");
+ var arrayObject = (RawValueArray)nsData.CallMethod ("ToArray");
+ var bytes = (byte[])(arrayObject).GetValues (0, arrayObject.Length);
+ var ms = new MemoryStream (bytes, false);
+ return Image.FromStream (ms);
+ } else {
+ throw new NotSupportedException ();
+ }
}
#endregion