/// <inheritdoc/> public override Surface2D LoadIcon() { var bundle = NSBundle.MainBundle; if (bundle == null) { return(null); } var icon = default(NSImage); try { try { if (String.Equals(Path.GetExtension(bundle.BundlePath), ".app", StringComparison.OrdinalIgnoreCase)) { icon = NSWorkspace.SharedWorkspace.IconForFile(bundle.BundlePath); if (icon == null) { throw new InvalidOperationException(); } } else { using (var stream = typeof(UltravioletContext).Assembly.GetManifestResourceStream("TwistedLogik.Ultraviolet.uv.ico")) { icon = NSImage.FromStream(stream); } } } catch (FileNotFoundException) { return(null); } using (var source = new OSXSurfaceSource(icon)) { return(Surface2D.Create(source)); } } finally { if (icon != null) { icon.Dispose(); } } }
/// <inheritdoc/> public override Surface2D LoadIcon() { var bundle = NSBundle.MainBundle; if (bundle == null) return null; var icon = default(NSImage); try { try { if (String.Equals(Path.GetExtension(bundle.BundlePath), ".app", StringComparison.OrdinalIgnoreCase)) { icon = NSWorkspace.SharedWorkspace.IconForFile(bundle.BundlePath); if (icon == null) { throw new InvalidOperationException(); } } else { using (var stream = typeof(UltravioletContext).Assembly.GetManifestResourceStream("TwistedLogik.Ultraviolet.uv.ico")) { icon = NSImage.FromStream(stream); } } } catch (FileNotFoundException) { return null; } using (var source = new OSXSurfaceSource(icon)) { return Surface2D.Create(source); } } finally { if (icon != null) { icon.Dispose(); } } }