diff --git a/SparkleShare/Mac/SparkleShare/Info.plist b/SparkleShare/Mac/SparkleShare/Info.plist
index f2caa9e3..553e5dec 100644
--- a/SparkleShare/Mac/SparkleShare/Info.plist
+++ b/SparkleShare/Mac/SparkleShare/Info.plist
@@ -20,6 +20,6 @@
NSPrincipalClass
NSApplication
LSBackgroundOnly
-
+
diff --git a/SparkleShare/Mac/SparkleShare/Layout.cs b/SparkleShare/Mac/SparkleShare/Layout.cs
new file mode 100644
index 00000000..56bccafd
--- /dev/null
+++ b/SparkleShare/Mac/SparkleShare/Layout.cs
@@ -0,0 +1,298 @@
+//
+// Layout.cs
+//
+// Author:
+// Michael Hutchinson
+//
+// Copyright (c) 2010 Novell, 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;
+using System.Collections.Generic;
+using System.Drawing;
+using MonoMac.AppKit;
+using System.Linq;
+namespace MonoDevelop.Platform.Mac
+{
+ interface ILayout
+ {
+ LayoutRequest BeginLayout ();
+ void EndLayout (LayoutRequest request, PointF origin, SizeF allocation);
+ }
+
+ class LayoutRequest
+ {
+ public SizeF Size { get; set; }
+ public bool Visible { get; set; }
+ public bool ExpandWidth { get; set; }
+ public bool ExpandHeight { get; set; }
+ }
+
+ abstract class LayoutBox : IEnumerable, ILayout
+ {
+ List children = new List ();
+
+ public float Spacing { get; set; }
+ public float PadLeft { get; set; }
+ public float PadRight { get; set; }
+ public float PadTop { get; set; }
+ public float PadBottom { get; set; }
+ public LayoutAlign Align { get; set; }
+
+ public LayoutDirection Direction { get; set; }
+
+ public LayoutBox (LayoutDirection direction, float spacing) : this (direction, spacing, 0)
+ {
+ }
+
+ public LayoutBox (LayoutDirection direction, float spacing, float padding)
+ {
+ PadLeft = PadRight = PadTop = PadBottom = padding;
+ this.Direction = direction;
+ this.Spacing = spacing;
+ this.Align = LayoutAlign.Center;
+ }
+
+ public int Count { get { return children.Count; } }
+
+ bool IsHorizontal { get { return Direction == LayoutDirection.Horizontal; } }
+
+ public IEnumerator GetEnumerator ()
+ {
+ return children.GetEnumerator ();
+ }
+
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()
+ {
+ return children.GetEnumerator ();
+ }
+
+ public void Add (ILayout child)
+ {
+ children.Add (child);
+ OnChildAdded (child);
+ }
+
+ ContainerLayoutRequest request = new ContainerLayoutRequest ();
+
+ public virtual LayoutRequest BeginLayout ()
+ {
+ float width = 0;
+ float height = 0;
+
+ request.ChildRequests.Clear ();
+ request.ChildRequests.AddRange (children.Select (c => c.BeginLayout ()));
+
+ foreach (var r in request.ChildRequests) {
+ if (!r.Visible)
+ continue;
+ request.Visible = true;
+ if (r.ExpandWidth)
+ request.ExpandWidth = true;
+ if (r.ExpandHeight)
+ request.ExpandHeight = true;
+
+ if (IsHorizontal) {
+ if (width != 0)
+ width += Spacing;
+ width += r.Size.Width;
+ height = Math.Max (height, r.Size.Height);
+ } else {
+ if (height != 0)
+ height += Spacing;
+ height += r.Size.Height;
+ width = Math.Max (width, r.Size.Width);
+ }
+ }
+
+ request.Size = new SizeF (width + PadLeft + PadRight, height + PadTop + PadBottom);
+ return request;
+ }
+
+ public virtual void EndLayout (LayoutRequest request, PointF origin, SizeF allocation)
+ {
+ var childRequests = ((ContainerLayoutRequest) request).ChildRequests;
+
+ allocation = new SizeF (allocation.Width - PadLeft - PadRight, allocation.Height - PadBottom - PadTop);
+ origin = new PointF (origin.X + PadLeft, origin.Y + PadBottom);
+
+ var size = request.Size;
+ size.Height -= (PadTop + PadBottom);
+ size.Width -= (PadLeft + PadRight);
+
+ int wExpandCount = 0;
+ int hExpandCount = 0;
+ int visibleCount = 0;
+ foreach (var childRequest in childRequests) {
+ if (childRequest.Visible)
+ visibleCount++;
+ else
+ continue;
+ if (childRequest.ExpandWidth)
+ wExpandCount++;
+ if (childRequest.ExpandHeight)
+ hExpandCount++;
+ }
+
+ float wExpand = 0;
+ if (allocation.Width > size.Width) {
+ wExpand = allocation.Width - size.Width;
+ if (wExpandCount > 0)
+ wExpand /= wExpandCount;
+ }
+ float hExpand = 0;
+ if (allocation.Height > size.Height) {
+ hExpand = allocation.Height - size.Height;
+ if (hExpandCount > 0)
+ hExpand /= hExpandCount;
+ }
+
+ if (Direction == LayoutDirection.Horizontal) {
+ float pos = PadLeft;
+ if (wExpandCount == 0) {
+ if (Align == LayoutAlign.End)
+ pos += wExpand;
+ else if (Align == LayoutAlign.Center)
+ pos += wExpand / 2;
+ }
+ for (int i = 0; i < childRequests.Count; i++) {
+ var child = children[i];
+ var childReq = childRequests[i];
+ if (!childReq.Visible)
+ continue;
+
+ var childSize = new SizeF (childReq.Size.Width, allocation.Height);
+ if (childReq.ExpandWidth) {
+ childSize.Width += wExpand;
+ } else if (hExpandCount == 0 && Align == LayoutAlign.Fill) {
+ childSize.Width += wExpand / visibleCount;
+ }
+
+ child.EndLayout (childReq, new PointF (pos, origin.Y), childSize);
+ pos += childSize.Width + Spacing;
+ }
+ } else {
+ float pos = PadBottom;
+ if (hExpandCount == 0) {
+ if (Align == LayoutAlign.End)
+ pos += hExpand;
+ else if (Align == LayoutAlign.Center)
+ pos += hExpand / 2;
+ }
+ for (int i = 0; i < childRequests.Count; i++) {
+ var child = children[i];
+ var childReq = childRequests[i];
+ if (!childReq.Visible)
+ continue;
+
+ var childSize = new SizeF (allocation.Width, childReq.Size.Height);
+ if (childReq.ExpandHeight) {
+ childSize.Height += hExpand;
+ } else if (hExpandCount == 0 && Align == LayoutAlign.Fill) {
+ childSize.Height += hExpand / visibleCount;
+ }
+
+ child.EndLayout (childReq, new PointF (origin.X, pos), childSize);
+ pos += childSize.Height + Spacing;
+ }
+ }
+ }
+
+ protected abstract void OnChildAdded (ILayout child);
+
+ class ContainerLayoutRequest : LayoutRequest
+ {
+ public List ChildRequests = new List ();
+ }
+ }
+
+ public enum LayoutAlign
+ {
+ Begin, Center, End, Fill
+ }
+
+ public enum LayoutDirection
+ {
+ Horizontal, Vertical
+ }
+
+ abstract class LayoutAlignment : ILayout
+ {
+ public LayoutAlignment ()
+ {
+ XAlign = YAlign = LayoutAlign.Center;
+ }
+
+ public LayoutAlign XAlign { get; set; }
+ public LayoutAlign YAlign { get; set; }
+ public bool ExpandHeight { get; set; }
+ public bool ExpandWidth { get; set; }
+ public float MinHeight { get; set; }
+ public float MinWidth { get; set; }
+ public float PadLeft { get; set; }
+ public float PadRight { get; set; }
+ public float PadTop { get; set; }
+ public float PadBottom { get; set; }
+ public bool Visible { get; set; }
+
+ LayoutRequest request = new LayoutRequest ();
+
+ public virtual LayoutRequest BeginLayout ()
+ {
+ request.Size = new SizeF (MinWidth + PadLeft + PadRight, MinHeight + PadTop + PadBottom);
+ request.ExpandHeight = this.ExpandHeight;
+ request.ExpandWidth = this.ExpandWidth;
+ request.Visible = this.Visible;
+ return request;
+ }
+
+ public virtual void EndLayout (LayoutRequest request, PointF origin, SizeF allocation)
+ {
+ var frame = new RectangleF (origin.X + PadLeft, origin.Y + PadBottom,
+ allocation.Width - PadLeft - PadRight, allocation.Height - PadTop - PadBottom);
+
+ if (allocation.Height > request.Size.Height) {
+ if (YAlign != LayoutAlign.Fill) {
+ frame.Height = request.Size.Height - PadTop - PadBottom;
+ if (YAlign == LayoutAlign.Center) {
+ frame.Y += (allocation.Height - request.Size.Height) / 2;
+ } else if (YAlign == LayoutAlign.End) {
+ frame.Y += (allocation.Height - request.Size.Height);
+ }
+ }
+ }
+
+ if (allocation.Width > request.Size.Width) {
+ if (XAlign != LayoutAlign.Fill) {
+ frame.Width = request.Size.Width - PadLeft - PadRight;
+ if (XAlign == LayoutAlign.Center) {
+ frame.X += (allocation.Width - request.Size.Width) / 2;
+ } else if (XAlign == LayoutAlign.End) {
+ frame.X += (allocation.Width - request.Size.Width);
+ }
+ }
+ }
+
+ OnLayoutEnded (frame);
+ }
+
+ protected abstract void OnLayoutEnded (RectangleF frame);
+ }
+}
\ No newline at end of file
diff --git a/SparkleShare/Mac/SparkleShare/Main.cs b/SparkleShare/Mac/SparkleShare/Main.cs
index 515ac15b..c97dd14c 100644
--- a/SparkleShare/Mac/SparkleShare/Main.cs
+++ b/SparkleShare/Mac/SparkleShare/Main.cs
@@ -1,9 +1,11 @@
using System;
using System.Drawing;
+using System.Timers;
using MonoMac.Foundation;
using MonoMac.AppKit;
using MonoMac.ObjCRuntime;
using MonoMac.WebKit;
+using MonoMac.Growl;
namespace SparkleShare
{
@@ -13,15 +15,16 @@ namespace SparkleShare
{
NSApplication.Init ();
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
+ NSApplication.SharedApplication.applicationIconImage = NSImage.ImageNamed ("sparkleshare.icns");
NSApplication.Main (args);
}
}
- [MonoMac.Foundation.Register("AppDelegate")]
+
public partial class AppDelegate : NSApplicationDelegate
{
-
+
//MainWindowController mainWindowController;
NSStatusItem StatusItem;
@@ -33,25 +36,37 @@ namespace SparkleShare
NSMenuItem AboutMenuItem;
NSMenuItem QuitMenuItem;
- NSTextField text;
+
NSWindow window;
NSButton button;
NSButton button2;
WebView web_view;
+ NSDockTile tile;
+ int i = 0;
+ /* public override NSMenu ApplicationDockMenu (NSApplication app)
+ {
+
+ return (NSMenu) Menu;
+
+ }
+ */
public AppDelegate ()
{
}
+
+
+
public override void FinishedLaunching (NSObject notification)
{
-
-
-
-
+ /* tile = NSApplication.SharedApplication.DockTile;
+ tile.BadgeLabel = "!";
+tile.Display ();
+ */
// mainWindowController = new MainWindowController ();
// mainWindowController.Window.MakeKeyAndOrderFront (this);
@@ -59,7 +74,7 @@ namespace SparkleShare
// SparkleRepo repo = new SparkleRepo ("/Users/hbons/SparkleShare/SparkleShare-Test");
- StatusItem = NSStatusBar.SystemStatusBar.CreateStatusItem (32);
+ StatusItem = NSStatusBar.SystemStatusBar.CreateStatusItem (28);
StatusItem.Enabled = true;
StatusItem.Image = NSImage.ImageNamed ("sparkleshare-idle.png");
@@ -75,11 +90,33 @@ namespace SparkleShare
Menu.AddItem (NSMenuItem.SeparatorItem);
+ Timer timer = new Timer () {
+ Interval = 500
+ };
+
+
+
FolderMenuItem = new NSMenuItem () {
Title="SparkleShare", Enabled = true,
Action = new Selector ("ddd")
};
+
+ timer.Elapsed += delegate {
+ FolderMenuItem.InvokeOnMainThread (delegate {
+
+ if (i == 0){
+ StatusItem.Image = NSImage.ImageNamed ("sparkleshare-idle-focus.png");
+ i = 1;
+ }else{
+ StatusItem.Image = NSImage.ImageNamed ("sparkleshare-idle.png");
+ i = 0;
+ }
+
+ /*FolderMenuItem.Title+="Z";Menu.Update ();*/});
+ };
+
+ timer.Start ();
FolderMenuItem.Activated += delegate {
Console.WriteLine ("DDDD");
};
@@ -90,7 +127,7 @@ namespace SparkleShare
Menu.AddItem (FolderMenuItem);
FolderMenuItems = new NSMenuItem [2] {
- new NSMenuItem () { Title = "gnome-design" },
+ new NSMenuItem () { Title = "gnome-design (2)" },
new NSMenuItem () { Title = "tango-icons" }
};
@@ -139,29 +176,36 @@ window = new NSWindow (new RectangleF (0, 0, 480, 640),
window.Title = "Recent Events in 'gnome-design'";
window.HasShadow = true;
- window.DefaultButtonCell = button2.Cell;
+ //window.DefaultButtonCell = button2.Cell;
window.BackingType = NSBackingStore.Buffered;
-
+ NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
window.MakeKeyAndOrderFront (this);
window.Center ();
+
+
};
item.Image = NSImage.ImageNamed ("NSFolder");
Menu.AddItem (item);
};
+
+
+
+
+
Menu.AddItem (NSMenuItem.SeparatorItem);
SyncMenuItem = new NSMenuItem () {
- Title = "Sync Remote Folder..."
+ Title = "Add Remote Folder..."
};
SyncMenuItem.Activated += delegate {
@@ -209,7 +253,7 @@ window = new NSWindow (new RectangleF (0, 0, 480, 640),
Menu.AddItem (AboutMenuItem);
- Menu.AddItem (NSMenuItem.SeparatorItem);
+ // Menu.AddItem (NSMenuItem.SeparatorItem);
QuitMenuItem = new NSMenuItem () {
@@ -220,11 +264,20 @@ window = new NSWindow (new RectangleF (0, 0, 480, 640),
Environment.Exit (0);
};
- Menu.AddItem (QuitMenuItem);
+ //Menu.AddItem (QuitMenuItem);
StatusItem.Menu = Menu;
-
+
+
+
+ NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
+
+
}
+
+
+
+
}
}
diff --git a/SparkleShare/Mac/SparkleShare/MainMenu.xib b/SparkleShare/Mac/SparkleShare/MainMenu.xib
index 0a42fa19..ed428a77 100644
--- a/SparkleShare/Mac/SparkleShare/MainMenu.xib
+++ b/SparkleShare/Mac/SparkleShare/MainMenu.xib
@@ -2,7 +2,7 @@
1060
- 10D573
+ 10D2162
762
1038.29
460.00
@@ -61,45 +61,6 @@
MacCocoaApp
-
-
-
-
39
-
-
-
- runPageLayout:
-
-
-
- 87
-
-
-
- clearRecentDocuments:
-
-
-
- 127
-
-
-
- orderFrontStandardAboutPanel:
-
-
-
- 142
-
-
-
- performClose:
-
-
-
- 193
-
-
-
- toggleContinuousSpellChecking:
-
-
-
- 222
-
-
-
- undo:
-
-
-
- 223
-
-
-
- copy:
-
-
-
- 224
-
-
-
- checkSpelling:
-
-
-
- 225
-
-
-
- paste:
-
-
-
- 226
-
-
-
- stopSpeaking:
-
-
-
- 227
-
-
-
- cut:
-
-
-
- 228
-
-
-
- showGuessPanel:
-
-
-
- 230
-
-
-
- redo:
-
-
-
- 231
-
-
-
- selectAll:
-
-
-
- 232
-
-
-
- startSpeaking:
-
-
-
- 233
-
-
-
- delete:
-
-
-
- 235
-
performZoom:
@@ -1484,94 +257,6 @@
240
-
-
- performFindPanelAction:
-
-
-
- 241
-
-
-
- centerSelectionInVisibleArea:
-
-
-
- 245
-
-
-
- toggleGrammarChecking:
-
-
-
- 347
-
-
-
- toggleSmartInsertDelete:
-
-
-
- 355
-
-
-
- toggleAutomaticQuoteSubstitution:
-
-
-
- 356
-
-
-
- toggleAutomaticLinkDetection:
-
-
-
- 357
-
-
-
- saveDocument:
-
-
-
- 362
-
-
-
- saveDocumentAs:
-
-
-
- 363
-
-
-
- revertDocumentToSaved:
-
-
-
- 364
-
-
-
- runToolbarCustomizationPalette:
-
-
-
- 365
-
-
-
- toggleToolbarShown:
-
-
-
- 366
-
hide:
@@ -1596,190 +281,6 @@
370
-
-
- newDocument:
-
-
-
- 373
-
-
-
- openDocument:
-
-
-
- 374
-
-
-
- addFontTrait:
-
-
-
- 421
-
-
-
- addFontTrait:
-
-
-
- 422
-
-
-
- modifyFont:
-
-
-
- 423
-
-
-
- orderFrontFontPanel:
-
-
-
- 424
-
-
-
- modifyFont:
-
-
-
- 425
-
-
-
- raiseBaseline:
-
-
-
- 426
-
-
-
- lowerBaseline:
-
-
-
- 427
-
-
-
- copyFont:
-
-
-
- 428
-
-
-
- subscript:
-
-
-
- 429
-
-
-
- superscript:
-
-
-
- 430
-
-
-
- tightenKerning:
-
-
-
- 431
-
-
-
- underline:
-
-
-
- 432
-
-
-
- orderFrontColorPanel:
-
-
-
- 433
-
-
-
- useAllLigatures:
-
-
-
- 434
-
-
-
- loosenKerning:
-
-
-
- 435
-
-
-
- pasteFont:
-
-
-
- 436
-
-
-
- unscript:
-
-
-
- 437
-
-
-
- useStandardKerning:
-
-
-
- 438
-
-
-
- useStandardLigatures:
-
-
-
- 439
-
-
-
- turnOffLigatures:
-
-
-
- 440
-
-
-
- turnOffKerning:
-
-
-
- 441
-
terminate:
@@ -1788,94 +289,6 @@
449
-
-
- toggleAutomaticSpellingCorrection:
-
-
-
- 456
-
-
-
- orderFrontSubstitutionsPanel:
-
-
-
- 458
-
-
-
- toggleAutomaticDashSubstitution:
-
-
-
- 461
-
-
-
- toggleAutomaticTextReplacement:
-
-
-
- 463
-
-
-
- uppercaseWord:
-
-
-
- 464
-
-
-
- capitalizeWord:
-
-
-
- 467
-
-
-
- lowercaseWord:
-
-
-
- 468
-
-
-
- pasteAsPlainText:
-
-
-
- 486
-
-
-
- performFindPanelAction:
-
-
-
- 487
-
-
-
- performFindPanelAction:
-
-
-
- 488
-
-
-
- performFindPanelAction:
-
-
-
- 489
-
showHelp:
@@ -1884,110 +297,6 @@
493
-
-
- alignCenter:
-
-
-
- 518
-
-
-
- pasteRuler:
-
-
-
- 519
-
-
-
- toggleRuler:
-
-
-
- 520
-
-
-
- alignRight:
-
-
-
- 521
-
-
-
- copyRuler:
-
-
-
- 522
-
-
-
- alignJustified:
-
-
-
- 523
-
-
-
- alignLeft:
-
-
-
- 524
-
-
-
- makeBaseWritingDirectionNatural:
-
-
-
- 525
-
-
-
- makeBaseWritingDirectionLeftToRight:
-
-
-
- 526
-
-
-
- makeBaseWritingDirectionRightToLeft:
-
-
-
- 527
-
-
-
- makeTextWritingDirectionNatural:
-
-
-
- 528
-
-
-
- makeTextWritingDirectionLeftToRight:
-
-
-
- 529
-
-
-
- makeTextWritingDirectionRightToLeft:
-
-
-
- 530
-
delegate
@@ -2029,25 +338,12 @@
YES
-
-
-
-
-
+
-
- 19
-
-
- YES
-
-
-
-
56
@@ -2057,326 +353,39 @@
-
- 217
-
-
- YES
-
-
-
-
-
- 83
-
-
- YES
-
-
-
-
-
- 81
-
-
- YES
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 75
-
-
-
-
- 80
-
-
-
-
- 78
-
-
-
-
- 72
-
-
-
-
- 82
-
-
-
-
- 124
-
-
- YES
-
-
-
-
-
- 77
-
-
-
-
- 73
-
-
-
-
- 79
-
-
-
-
- 112
-
-
-
-
- 74
-
-
-
-
- 125
-
-
- YES
-
-
-
-
-
- 126
-
-
-
-
- 205
-
-
- YES
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 202
-
-
-
-
- 198
-
-
-
-
- 207
-
-
-
-
- 214
-
-
-
-
- 199
-
-
-
-
- 203
-
-
-
-
- 197
-
-
-
-
- 206
-
-
-
-
- 215
-
-
-
-
- 218
-
-
- YES
-
-
-
-
-
- 216
-
-
- YES
-
-
-
-
-
- 200
-
-
- YES
-
-
-
-
-
-
-
-
-
-
- 219
-
-
-
-
- 201
-
-
-
-
- 204
-
-
-
-
- 220
-
-
- YES
-
-
-
-
-
-
-
-
-
- 213
-
-
-
-
- 210
-
-
-
-
- 221
-
-
-
-
- 208
-
-
-
-
- 209
-
-
-
57
YES
-
-
-
-
-
-
-
-
+
+
+
+
-
- 58
-
-
-
-
- 134
-
-
-
-
- 150
-
-
-
136
- 144
-
-
+ 420
+
+
- 129
-
-
+ 533
+
+
- 143
-
-
-
-
- 236
-
+ 149
+
@@ -2389,8 +398,13 @@
- 149
-
+ 144
+
+
+
+
+ 150
+
@@ -2398,460 +412,16 @@
+
+ 134
+
+
+
130
-
- 24
-
-
- YES
-
-
-
-
-
-
-
-
- 92
-
-
-
-
- 5
-
-
-
-
- 239
-
-
-
-
- 23
-
-
-
-
- 295
-
-
- YES
-
-
-
-
-
- 296
-
-
- YES
-
-
-
-
-
-
- 297
-
-
-
-
- 298
-
-
-
-
- 211
-
-
- YES
-
-
-
-
-
- 212
-
-
- YES
-
-
-
-
-
-
- 195
-
-
-
-
- 196
-
-
-
-
- 346
-
-
-
-
- 348
-
-
- YES
-
-
-
-
-
- 349
-
-
- YES
-
-
-
-
-
-
-
-
-
-
-
- 350
-
-
-
-
- 351
-
-
-
-
- 354
-
-
-
-
- 375
-
-
- YES
-
-
-
-
-
- 376
-
-
- YES
-
-
-
-
-
-
- 377
-
-
- YES
-
-
-
-
-
- 388
-
-
- YES
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 389
-
-
-
-
- 390
-
-
-
-
- 391
-
-
-
-
- 392
-
-
-
-
- 393
-
-
-
-
- 394
-
-
-
-
- 395
-
-
-
-
- 396
-
-
-
-
- 397
-
-
- YES
-
-
-
-
-
- 398
-
-
- YES
-
-
-
-
-
- 399
-
-
- YES
-
-
-
-
-
- 400
-
-
-
-
- 401
-
-
-
-
- 402
-
-
-
-
- 403
-
-
-
-
- 404
-
-
-
-
- 405
-
-
- YES
-
-
-
-
-
-
-
-
-
- 406
-
-
-
-
- 407
-
-
-
-
- 408
-
-
-
-
- 409
-
-
-
-
- 410
-
-
-
-
- 411
-
-
- YES
-
-
-
-
-
-
-
- 412
-
-
-
-
- 413
-
-
-
-
- 414
-
-
-
-
- 415
-
-
- YES
-
-
-
-
-
-
-
-
- 416
-
-
-
-
- 417
-
-
-
-
- 418
-
-
-
-
- 419
-
-
-
-
- 420
-
-
-
-
- 450
-
-
- YES
-
-
-
-
-
- 451
-
-
- YES
-
-
-
-
-
-
-
- 452
-
-
-
-
- 453
-
-
-
-
- 454
-
-
-
-
- 457
-
-
-
-
- 459
-
-
-
-
- 460
-
-
-
-
- 462
-
-
-
-
- 465
-
-
-
-
- 466
-
-
-
-
- 485
-
-
-
490
@@ -2861,6 +431,47 @@
+
+ 19
+
+
+ YES
+
+
+
+
+
+ 24
+
+
+ YES
+
+
+
+
+
+
+
+
+ 23
+
+
+
+
+ 239
+
+
+
+
+ 5
+
+
+
+
+ 92
+
+
+
491
@@ -2875,154 +486,6 @@
-
- 496
-
-
- YES
-
-
-
-
-
- 497
-
-
- YES
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 498
-
-
-
-
- 499
-
-
-
-
- 500
-
-
-
-
- 501
-
-
-
-
- 502
-
-
-
-
- 503
-
-
- YES
-
-
-
-
-
- 504
-
-
-
-
- 505
-
-
-
-
- 506
-
-
-
-
- 507
-
-
-
-
- 508
-
-
- YES
-
-
-
-
-
-
-
-
-
-
-
-
-
- 509
-
-
-
-
- 510
-
-
-
-
- 511
-
-
-
-
- 512
-
-
-
-
- 513
-
-
-
-
- 514
-
-
-
-
- 515
-
-
-
-
- 516
-
-
-
-
- 517
-
-
-
-
- 533
-
-
-
@@ -3030,17 +493,7 @@
YES
-3.IBPluginDependency
- 112.IBPluginDependency
- 112.ImportedFromIB2
- 124.IBPluginDependency
- 124.ImportedFromIB2
- 125.IBPluginDependency
- 125.ImportedFromIB2
- 125.editorWindowContentRectSynchronizationRect
- 126.IBPluginDependency
- 126.ImportedFromIB2
- 129.IBPluginDependency
- 129.ImportedFromIB2
+ 130.IBEditorWindowLastContentRect
130.IBPluginDependency
130.ImportedFromIB2
130.editorWindowContentRectSynchronizationRect
@@ -3050,8 +503,6 @@
134.ImportedFromIB2
136.IBPluginDependency
136.ImportedFromIB2
- 143.IBPluginDependency
- 143.ImportedFromIB2
144.IBPluginDependency
144.ImportedFromIB2
145.IBPluginDependency
@@ -3062,71 +513,8 @@
150.ImportedFromIB2
19.IBPluginDependency
19.ImportedFromIB2
- 195.IBPluginDependency
- 195.ImportedFromIB2
- 196.IBPluginDependency
- 196.ImportedFromIB2
- 197.IBPluginDependency
- 197.ImportedFromIB2
- 198.IBPluginDependency
- 198.ImportedFromIB2
- 199.IBPluginDependency
- 199.ImportedFromIB2
- 200.IBEditorWindowLastContentRect
- 200.IBPluginDependency
- 200.ImportedFromIB2
- 200.editorWindowContentRectSynchronizationRect
- 201.IBPluginDependency
- 201.ImportedFromIB2
- 202.IBPluginDependency
- 202.ImportedFromIB2
- 203.IBPluginDependency
- 203.ImportedFromIB2
- 204.IBPluginDependency
- 204.ImportedFromIB2
- 205.IBEditorWindowLastContentRect
- 205.IBPluginDependency
- 205.ImportedFromIB2
- 205.editorWindowContentRectSynchronizationRect
- 206.IBPluginDependency
- 206.ImportedFromIB2
- 207.IBPluginDependency
- 207.ImportedFromIB2
- 208.IBPluginDependency
- 208.ImportedFromIB2
- 209.IBPluginDependency
- 209.ImportedFromIB2
- 210.IBPluginDependency
- 210.ImportedFromIB2
- 211.IBPluginDependency
- 211.ImportedFromIB2
- 212.IBPluginDependency
- 212.ImportedFromIB2
- 212.editorWindowContentRectSynchronizationRect
- 213.IBPluginDependency
- 213.ImportedFromIB2
- 214.IBPluginDependency
- 214.ImportedFromIB2
- 215.IBPluginDependency
- 215.ImportedFromIB2
- 216.IBPluginDependency
- 216.ImportedFromIB2
- 217.IBPluginDependency
- 217.ImportedFromIB2
- 218.IBPluginDependency
- 218.ImportedFromIB2
- 219.IBPluginDependency
- 219.ImportedFromIB2
- 220.IBEditorWindowLastContentRect
- 220.IBPluginDependency
- 220.ImportedFromIB2
- 220.editorWindowContentRectSynchronizationRect
- 221.IBPluginDependency
- 221.ImportedFromIB2
23.IBPluginDependency
23.ImportedFromIB2
- 236.IBPluginDependency
- 236.ImportedFromIB2
239.IBPluginDependency
239.ImportedFromIB2
24.IBEditorWindowLastContentRect
@@ -3138,155 +526,25 @@
29.ImportedFromIB2
29.WindowOrigin
29.editorWindowContentRectSynchronizationRect
- 295.IBPluginDependency
- 296.IBEditorWindowLastContentRect
- 296.IBPluginDependency
- 296.editorWindowContentRectSynchronizationRect
- 297.IBPluginDependency
- 298.IBPluginDependency
- 346.IBPluginDependency
- 346.ImportedFromIB2
- 348.IBPluginDependency
- 348.ImportedFromIB2
- 349.IBEditorWindowLastContentRect
- 349.IBPluginDependency
- 349.ImportedFromIB2
- 349.editorWindowContentRectSynchronizationRect
- 350.IBPluginDependency
- 350.ImportedFromIB2
- 351.IBPluginDependency
- 351.ImportedFromIB2
- 354.IBPluginDependency
- 354.ImportedFromIB2
- 375.IBPluginDependency
- 376.IBEditorWindowLastContentRect
- 376.IBPluginDependency
- 377.IBPluginDependency
- 388.IBEditorWindowLastContentRect
- 388.IBPluginDependency
- 389.IBPluginDependency
- 390.IBPluginDependency
- 391.IBPluginDependency
- 392.IBPluginDependency
- 393.IBPluginDependency
- 394.IBPluginDependency
- 395.IBPluginDependency
- 396.IBPluginDependency
- 397.IBPluginDependency
- 398.IBPluginDependency
- 399.IBPluginDependency
- 400.IBPluginDependency
- 401.IBPluginDependency
- 402.IBPluginDependency
- 403.IBPluginDependency
- 404.IBPluginDependency
- 405.IBPluginDependency
- 406.IBPluginDependency
- 407.IBPluginDependency
- 408.IBPluginDependency
- 409.IBPluginDependency
- 410.IBPluginDependency
- 411.IBPluginDependency
- 412.IBPluginDependency
- 413.IBPluginDependency
- 414.IBPluginDependency
- 415.IBPluginDependency
- 416.IBPluginDependency
- 417.IBPluginDependency
- 418.IBPluginDependency
- 419.IBPluginDependency
- 450.IBPluginDependency
- 451.IBEditorWindowLastContentRect
- 451.IBPluginDependency
- 452.IBPluginDependency
- 453.IBPluginDependency
- 454.IBPluginDependency
- 457.IBPluginDependency
- 459.IBPluginDependency
- 460.IBPluginDependency
- 462.IBPluginDependency
- 465.IBPluginDependency
- 466.IBPluginDependency
- 485.IBPluginDependency
490.IBPluginDependency
491.IBEditorWindowLastContentRect
491.IBPluginDependency
492.IBPluginDependency
- 496.IBPluginDependency
- 497.IBEditorWindowLastContentRect
- 497.IBPluginDependency
- 498.IBPluginDependency
- 499.IBPluginDependency
5.IBPluginDependency
5.ImportedFromIB2
- 500.IBPluginDependency
- 501.IBPluginDependency
- 502.IBPluginDependency
- 503.IBPluginDependency
- 504.IBPluginDependency
- 505.IBPluginDependency
- 506.IBPluginDependency
- 507.IBPluginDependency
- 508.IBEditorWindowLastContentRect
- 508.IBPluginDependency
- 509.IBPluginDependency
- 510.IBPluginDependency
- 511.IBPluginDependency
- 512.IBPluginDependency
- 513.IBPluginDependency
- 514.IBPluginDependency
- 515.IBPluginDependency
- 516.IBPluginDependency
- 517.IBPluginDependency
56.IBPluginDependency
56.ImportedFromIB2
57.IBEditorWindowLastContentRect
57.IBPluginDependency
57.ImportedFromIB2
57.editorWindowContentRectSynchronizationRect
- 58.IBPluginDependency
- 58.ImportedFromIB2
- 72.IBPluginDependency
- 72.ImportedFromIB2
- 73.IBPluginDependency
- 73.ImportedFromIB2
- 74.IBPluginDependency
- 74.ImportedFromIB2
- 75.IBPluginDependency
- 75.ImportedFromIB2
- 77.IBPluginDependency
- 77.ImportedFromIB2
- 78.IBPluginDependency
- 78.ImportedFromIB2
- 79.IBPluginDependency
- 79.ImportedFromIB2
- 80.IBPluginDependency
- 80.ImportedFromIB2
- 81.IBEditorWindowLastContentRect
- 81.IBPluginDependency
- 81.ImportedFromIB2
- 81.editorWindowContentRectSynchronizationRect
- 82.IBPluginDependency
- 82.ImportedFromIB2
- 83.IBPluginDependency
- 83.ImportedFromIB2
92.IBPluginDependency
92.ImportedFromIB2
YES
com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{522, 812}, {146, 23}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
+ {{581, 686}, {64, 6}}
com.apple.InterfaceBuilder.CocoaPlugin
{{436, 809}, {64, 6}}
@@ -3310,214 +568,29 @@
com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{753, 187}, {275, 113}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{608, 612}, {275, 83}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{453, 408}, {254, 283}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{187, 434}, {243, 243}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{608, 612}, {167, 43}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{753, 217}, {238, 103}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{608, 612}, {241, 103}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{613, 618}, {194, 73}}
+ {{470, 649}, {194, 73}}
com.apple.InterfaceBuilder.CocoaPlugin
{{525, 802}, {197, 73}}
- {{346, 722}, {402, 20}}
+ {{346, 722}, {256, 20}}
com.apple.InterfaceBuilder.CocoaPlugin
{74, 862}
{{6, 978}, {478, 20}}
com.apple.InterfaceBuilder.CocoaPlugin
- {{563, 648}, {231, 43}}
- com.apple.InterfaceBuilder.CocoaPlugin
- {{475, 832}, {234, 43}}
+ {{541, 699}, {194, 23}}
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
- {{746, 287}, {220, 133}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{608, 612}, {215, 63}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
- {{497, 648}, {83, 43}}
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- {{580, 408}, {175, 283}}
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- {{753, 197}, {170, 63}}
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- {{684, 668}, {142, 23}}
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- {{674, 260}, {204, 183}}
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- {{878, 180}, {164, 173}}
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{355, 508}, {183, 183}}
+ {{358, 599}, {213, 123}}
com.apple.InterfaceBuilder.CocoaPlugin
{{23, 794}, {245, 183}}
com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{411, 488}, {196, 203}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{145, 474}, {199, 203}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
@@ -3595,83 +668,6 @@
AppKit.framework/Headers/NSUserInterfaceItemSearching.h
-
- NSBrowser
- NSControl
-
- IBFrameworkSource
- AppKit.framework/Headers/NSBrowser.h
-
-
-
- NSControl
- NSView
-
- IBFrameworkSource
- AppKit.framework/Headers/NSControl.h
-
-
-
- NSDocument
- NSObject
-
- YES
-
- YES
- printDocument:
- revertDocumentToSaved:
- runPageLayout:
- saveDocument:
- saveDocumentAs:
- saveDocumentTo:
-
-
- YES
- id
- id
- id
- id
- id
- id
-
-
-
- IBFrameworkSource
- AppKit.framework/Headers/NSDocument.h
-
-
-
- NSDocument
-
- IBFrameworkSource
- AppKit.framework/Headers/NSDocumentScripting.h
-
-
-
- NSDocumentController
- NSObject
-
- YES
-
- YES
- clearRecentDocuments:
- newDocument:
- openDocument:
- saveAllDocuments:
-
-
- YES
- id
- id
- id
- id
-
-
-
- IBFrameworkSource
- AppKit.framework/Headers/NSDocumentController.h
-
-
NSFontManager
NSObject
@@ -3680,22 +676,6 @@
AppKit.framework/Headers/NSFontManager.h
-
- NSFormatter
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFormatter.h
-
-
-
- NSMatrix
- NSControl
-
- IBFrameworkSource
- AppKit.framework/Headers/NSMatrix.h
-
-
NSMenu
NSObject
@@ -3712,14 +692,6 @@
AppKit.framework/Headers/NSMenuItem.h
-
- NSMovieView
- NSView
-
- IBFrameworkSource
- AppKit.framework/Headers/NSMovieView.h
-
-
NSObject
@@ -3741,7 +713,10 @@
NSObject
-
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSControl.h
+
NSObject
@@ -3809,7 +784,7 @@
NSObject
-
+
IBFrameworkSource
AppKit.framework/Headers/NSTableView.h
@@ -3976,27 +951,6 @@
AppKit.framework/Headers/NSResponder.h
-
- NSTableView
- NSControl
-
-
-
- NSText
- NSView
-
- IBFrameworkSource
- AppKit.framework/Headers/NSText.h
-
-
-
- NSTextView
- NSText
-
- IBFrameworkSource
- AppKit.framework/Headers/NSTextView.h
-
-
NSView
@@ -4072,4 +1026,3 @@
-
diff --git a/SparkleShare/Mac/SparkleShare/MainMenu.xib.designer.cs b/SparkleShare/Mac/SparkleShare/MainMenu.xib.designer.cs
index 93a0d735..01952cd1 100644
--- a/SparkleShare/Mac/SparkleShare/MainMenu.xib.designer.cs
+++ b/SparkleShare/Mac/SparkleShare/MainMenu.xib.designer.cs
@@ -10,4 +10,9 @@
namespace SparkleShare {
+
+ // Should subclass MonoMac.AppKit.NSResponder
+ [MonoMac.Foundation.Register("AppDelegate")]
+ public partial class AppDelegate {
+ }
}
diff --git a/SparkleShare/Mac/SparkleShare/SparkleShare.csproj b/SparkleShare/Mac/SparkleShare/SparkleShare.csproj
index 3780b5b2..71fcd61c 100644
--- a/SparkleShare/Mac/SparkleShare/SparkleShare.csproj
+++ b/SparkleShare/Mac/SparkleShare/SparkleShare.csproj
@@ -50,6 +50,7 @@
MainMenu.xib
+
@@ -62,6 +63,7 @@
+
diff --git a/SparkleShare/Mac/SparkleShare/sparkleshare.icns b/SparkleShare/Mac/SparkleShare/sparkleshare.icns
new file mode 100644
index 00000000..c5501667
Binary files /dev/null and b/SparkleShare/Mac/SparkleShare/sparkleshare.icns differ