Some more messing around with [osx]
This commit is contained in:
parent
4a1b4b7a30
commit
9406e649a3
|
@ -20,6 +20,6 @@
|
||||||
<key>NSPrincipalClass</key>
|
<key>NSPrincipalClass</key>
|
||||||
<string>NSApplication</string>
|
<string>NSApplication</string>
|
||||||
<key>LSBackgroundOnly</key>
|
<key>LSBackgroundOnly</key>
|
||||||
<true/>
|
<false/>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
298
SparkleShare/Mac/SparkleShare/Layout.cs
Normal file
298
SparkleShare/Mac/SparkleShare/Layout.cs
Normal file
|
@ -0,0 +1,298 @@
|
||||||
|
//
|
||||||
|
// Layout.cs
|
||||||
|
//
|
||||||
|
// Author:
|
||||||
|
// Michael Hutchinson <mhutchinson@novell.com>
|
||||||
|
//
|
||||||
|
// 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>, ILayout
|
||||||
|
{
|
||||||
|
List<ILayout> children = new List<ILayout> ();
|
||||||
|
|
||||||
|
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<ILayout> 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<LayoutRequest> ChildRequests = new List<LayoutRequest> ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,11 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.Timers;
|
||||||
using MonoMac.Foundation;
|
using MonoMac.Foundation;
|
||||||
using MonoMac.AppKit;
|
using MonoMac.AppKit;
|
||||||
using MonoMac.ObjCRuntime;
|
using MonoMac.ObjCRuntime;
|
||||||
using MonoMac.WebKit;
|
using MonoMac.WebKit;
|
||||||
|
using MonoMac.Growl;
|
||||||
|
|
||||||
namespace SparkleShare
|
namespace SparkleShare
|
||||||
{
|
{
|
||||||
|
@ -13,12 +15,13 @@ namespace SparkleShare
|
||||||
{
|
{
|
||||||
NSApplication.Init ();
|
NSApplication.Init ();
|
||||||
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
|
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
|
||||||
|
NSApplication.SharedApplication.applicationIconImage = NSImage.ImageNamed ("sparkleshare.icns");
|
||||||
NSApplication.Main (args);
|
NSApplication.Main (args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[MonoMac.Foundation.Register("AppDelegate")]
|
|
||||||
public partial class AppDelegate : NSApplicationDelegate
|
public partial class AppDelegate : NSApplicationDelegate
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -33,25 +36,37 @@ namespace SparkleShare
|
||||||
NSMenuItem AboutMenuItem;
|
NSMenuItem AboutMenuItem;
|
||||||
NSMenuItem QuitMenuItem;
|
NSMenuItem QuitMenuItem;
|
||||||
|
|
||||||
NSTextField text;
|
|
||||||
NSWindow window;
|
NSWindow window;
|
||||||
NSButton button;
|
NSButton button;
|
||||||
NSButton button2;
|
NSButton button2;
|
||||||
|
|
||||||
WebView web_view;
|
WebView web_view;
|
||||||
|
NSDockTile tile;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
|
||||||
|
/* public override NSMenu ApplicationDockMenu (NSApplication app)
|
||||||
|
{
|
||||||
|
|
||||||
|
return (NSMenu) Menu;
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
public AppDelegate ()
|
public AppDelegate ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public override void FinishedLaunching (NSObject notification)
|
public override void FinishedLaunching (NSObject notification)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/* tile = NSApplication.SharedApplication.DockTile;
|
||||||
|
tile.BadgeLabel = "!";
|
||||||
|
tile.Display ();
|
||||||
|
*/
|
||||||
// mainWindowController = new MainWindowController ();
|
// mainWindowController = new MainWindowController ();
|
||||||
// mainWindowController.Window.MakeKeyAndOrderFront (this);
|
// mainWindowController.Window.MakeKeyAndOrderFront (this);
|
||||||
|
|
||||||
|
@ -59,7 +74,7 @@ namespace SparkleShare
|
||||||
|
|
||||||
// SparkleRepo repo = new SparkleRepo ("/Users/hbons/SparkleShare/SparkleShare-Test");
|
// SparkleRepo repo = new SparkleRepo ("/Users/hbons/SparkleShare/SparkleShare-Test");
|
||||||
|
|
||||||
StatusItem = NSStatusBar.SystemStatusBar.CreateStatusItem (32);
|
StatusItem = NSStatusBar.SystemStatusBar.CreateStatusItem (28);
|
||||||
|
|
||||||
StatusItem.Enabled = true;
|
StatusItem.Enabled = true;
|
||||||
StatusItem.Image = NSImage.ImageNamed ("sparkleshare-idle.png");
|
StatusItem.Image = NSImage.ImageNamed ("sparkleshare-idle.png");
|
||||||
|
@ -75,11 +90,33 @@ namespace SparkleShare
|
||||||
Menu.AddItem (NSMenuItem.SeparatorItem);
|
Menu.AddItem (NSMenuItem.SeparatorItem);
|
||||||
|
|
||||||
|
|
||||||
|
Timer timer = new Timer () {
|
||||||
|
Interval = 500
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FolderMenuItem = new NSMenuItem () {
|
FolderMenuItem = new NSMenuItem () {
|
||||||
Title="SparkleShare", Enabled = true,
|
Title="SparkleShare", Enabled = true,
|
||||||
Action = new Selector ("ddd")
|
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 {
|
FolderMenuItem.Activated += delegate {
|
||||||
Console.WriteLine ("DDDD");
|
Console.WriteLine ("DDDD");
|
||||||
};
|
};
|
||||||
|
@ -90,7 +127,7 @@ namespace SparkleShare
|
||||||
Menu.AddItem (FolderMenuItem);
|
Menu.AddItem (FolderMenuItem);
|
||||||
|
|
||||||
FolderMenuItems = new NSMenuItem [2] {
|
FolderMenuItems = new NSMenuItem [2] {
|
||||||
new NSMenuItem () { Title = "gnome-design" },
|
new NSMenuItem () { Title = "gnome-design (2)" },
|
||||||
new NSMenuItem () { Title = "tango-icons" }
|
new NSMenuItem () { Title = "tango-icons" }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -139,17 +176,19 @@ window = new NSWindow (new RectangleF (0, 0, 480, 640),
|
||||||
window.Title = "Recent Events in 'gnome-design'";
|
window.Title = "Recent Events in 'gnome-design'";
|
||||||
|
|
||||||
window.HasShadow = true;
|
window.HasShadow = true;
|
||||||
window.DefaultButtonCell = button2.Cell;
|
//window.DefaultButtonCell = button2.Cell;
|
||||||
window.BackingType = NSBackingStore.Buffered;
|
window.BackingType = NSBackingStore.Buffered;
|
||||||
|
|
||||||
|
|
||||||
|
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
|
||||||
|
|
||||||
window.MakeKeyAndOrderFront (this);
|
window.MakeKeyAndOrderFront (this);
|
||||||
window.Center ();
|
window.Center ();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
item.Image = NSImage.ImageNamed ("NSFolder");
|
item.Image = NSImage.ImageNamed ("NSFolder");
|
||||||
|
@ -157,11 +196,16 @@ window = new NSWindow (new RectangleF (0, 0, 480, 640),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Menu.AddItem (NSMenuItem.SeparatorItem);
|
Menu.AddItem (NSMenuItem.SeparatorItem);
|
||||||
|
|
||||||
|
|
||||||
SyncMenuItem = new NSMenuItem () {
|
SyncMenuItem = new NSMenuItem () {
|
||||||
Title = "Sync Remote Folder..."
|
Title = "Add Remote Folder..."
|
||||||
};
|
};
|
||||||
|
|
||||||
SyncMenuItem.Activated += delegate {
|
SyncMenuItem.Activated += delegate {
|
||||||
|
@ -209,7 +253,7 @@ window = new NSWindow (new RectangleF (0, 0, 480, 640),
|
||||||
Menu.AddItem (AboutMenuItem);
|
Menu.AddItem (AboutMenuItem);
|
||||||
|
|
||||||
|
|
||||||
Menu.AddItem (NSMenuItem.SeparatorItem);
|
// Menu.AddItem (NSMenuItem.SeparatorItem);
|
||||||
|
|
||||||
|
|
||||||
QuitMenuItem = new NSMenuItem () {
|
QuitMenuItem = new NSMenuItem () {
|
||||||
|
@ -220,11 +264,20 @@ window = new NSWindow (new RectangleF (0, 0, 480, 640),
|
||||||
Environment.Exit (0);
|
Environment.Exit (0);
|
||||||
};
|
};
|
||||||
|
|
||||||
Menu.AddItem (QuitMenuItem);
|
//Menu.AddItem (QuitMenuItem);
|
||||||
|
|
||||||
StatusItem.Menu = Menu;
|
StatusItem.Menu = Menu;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -10,4 +10,9 @@
|
||||||
|
|
||||||
namespace SparkleShare {
|
namespace SparkleShare {
|
||||||
|
|
||||||
|
|
||||||
|
// Should subclass MonoMac.AppKit.NSResponder
|
||||||
|
[MonoMac.Foundation.Register("AppDelegate")]
|
||||||
|
public partial class AppDelegate {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
<Compile Include="MainMenu.xib.designer.cs">
|
<Compile Include="MainMenu.xib.designer.cs">
|
||||||
<DependentUpon>MainMenu.xib</DependentUpon>
|
<DependentUpon>MainMenu.xib</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Layout.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Page Include="MainMenu.xib" />
|
<Page Include="MainMenu.xib" />
|
||||||
|
@ -62,6 +63,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="sparkleshare-idle-focus.png" />
|
<Content Include="sparkleshare-idle-focus.png" />
|
||||||
<Content Include="sparkleshare-idle.png" />
|
<Content Include="sparkleshare-idle.png" />
|
||||||
|
<Content Include="sparkleshare.icns" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\..\SparkleLib\SparkleLib.csproj">
|
<ProjectReference Include="..\..\..\SparkleLib\SparkleLib.csproj">
|
||||||
|
|
BIN
SparkleShare/Mac/SparkleShare/sparkleshare.icns
Normal file
BIN
SparkleShare/Mac/SparkleShare/sparkleshare.icns
Normal file
Binary file not shown.
Loading…
Reference in a new issue