1018 lines
31 KiB
C#
1018 lines
31 KiB
C#
using CPF.Mac.CoreGraphics;
|
|
using CPF.Mac.Foundation;
|
|
using CPF.Mac.ObjCRuntime;
|
|
using System;
|
|
using System.ComponentModel;
|
|
|
|
namespace CPF.Mac.AppKit
|
|
{
|
|
[Register("NSMenu", true)]
|
|
public class NSMenu : NSObject
|
|
{
|
|
private object __mt_items_var;
|
|
|
|
private static readonly IntPtr selNumberOfItemsHandle = Selector.GetHandle("numberOfItems");
|
|
|
|
private static readonly IntPtr selMenuBarHeightHandle = Selector.GetHandle("menuBarHeight");
|
|
|
|
private static readonly IntPtr selHighlightedItemHandle = Selector.GetHandle("highlightedItem");
|
|
|
|
private static readonly IntPtr selSizeHandle = Selector.GetHandle("size");
|
|
|
|
private static readonly IntPtr selIsTornOffHandle = Selector.GetHandle("isTornOff");
|
|
|
|
private static readonly IntPtr selTitleHandle = Selector.GetHandle("title");
|
|
|
|
private static readonly IntPtr selSetTitle_Handle = Selector.GetHandle("setTitle:");
|
|
|
|
private static readonly IntPtr selMenuBarVisibleHandle = Selector.GetHandle("menuBarVisible");
|
|
|
|
private static readonly IntPtr selSetMenuBarVisible_Handle = Selector.GetHandle("setMenuBarVisible:");
|
|
|
|
private static readonly IntPtr selSupermenuHandle = Selector.GetHandle("supermenu");
|
|
|
|
private static readonly IntPtr selSetSupermenu_Handle = Selector.GetHandle("setSupermenu:");
|
|
|
|
private static readonly IntPtr selAutoenablesItemsHandle = Selector.GetHandle("autoenablesItems");
|
|
|
|
private static readonly IntPtr selSetAutoenablesItems_Handle = Selector.GetHandle("setAutoenablesItems:");
|
|
|
|
private static readonly IntPtr selDelegateHandle = Selector.GetHandle("delegate");
|
|
|
|
private static readonly IntPtr selSetDelegate_Handle = Selector.GetHandle("setDelegate:");
|
|
|
|
private static readonly IntPtr selMinimumWidthHandle = Selector.GetHandle("minimumWidth");
|
|
|
|
private static readonly IntPtr selSetMinimumWidth_Handle = Selector.GetHandle("setMinimumWidth:");
|
|
|
|
private static readonly IntPtr selFontHandle = Selector.GetHandle("font");
|
|
|
|
private static readonly IntPtr selSetFont_Handle = Selector.GetHandle("setFont:");
|
|
|
|
private static readonly IntPtr selAllowsContextMenuPlugInsHandle = Selector.GetHandle("allowsContextMenuPlugIns");
|
|
|
|
private static readonly IntPtr selSetAllowsContextMenuPlugIns_Handle = Selector.GetHandle("setAllowsContextMenuPlugIns:");
|
|
|
|
private static readonly IntPtr selShowsStateColumnHandle = Selector.GetHandle("showsStateColumn");
|
|
|
|
private static readonly IntPtr selSetShowsStateColumn_Handle = Selector.GetHandle("setShowsStateColumn:");
|
|
|
|
private static readonly IntPtr selMenuChangedMessagesEnabledHandle = Selector.GetHandle("menuChangedMessagesEnabled");
|
|
|
|
private static readonly IntPtr selSetMenuChangedMessagesEnabled_Handle = Selector.GetHandle("setMenuChangedMessagesEnabled:");
|
|
|
|
private static readonly IntPtr selInitWithTitle_Handle = Selector.GetHandle("initWithTitle:");
|
|
|
|
private static readonly IntPtr selPopUpContextMenuWithEventForView_Handle = Selector.GetHandle("popUpContextMenu:withEvent:forView:");
|
|
|
|
private static readonly IntPtr selPopUpContextMenuWithEventForViewWithFont_Handle = Selector.GetHandle("popUpContextMenu:withEvent:forView:withFont:");
|
|
|
|
private static readonly IntPtr selPopUpMenuPositioningItemAtLocationInView_Handle = Selector.GetHandle("popUpMenuPositioningItem:atLocation:inView:");
|
|
|
|
private static readonly IntPtr selInsertItemAtIndex_Handle = Selector.GetHandle("insertItem:atIndex:");
|
|
|
|
private static readonly IntPtr selAddItem_Handle = Selector.GetHandle("addItem:");
|
|
|
|
private static readonly IntPtr selInsertItemWithTitleActionKeyEquivalentAtIndex_Handle = Selector.GetHandle("insertItemWithTitle:action:keyEquivalent:atIndex:");
|
|
|
|
private static readonly IntPtr selAddItemWithTitleActionKeyEquivalent_Handle = Selector.GetHandle("addItemWithTitle:action:keyEquivalent:");
|
|
|
|
private static readonly IntPtr selRemoveItemAtIndex_Handle = Selector.GetHandle("removeItemAtIndex:");
|
|
|
|
private static readonly IntPtr selRemoveItem_Handle = Selector.GetHandle("removeItem:");
|
|
|
|
private static readonly IntPtr selSetSubmenuForItem_Handle = Selector.GetHandle("setSubmenu:forItem:");
|
|
|
|
private static readonly IntPtr selRemoveAllItemsHandle = Selector.GetHandle("removeAllItems");
|
|
|
|
private static readonly IntPtr selItemArrayHandle = Selector.GetHandle("itemArray");
|
|
|
|
private static readonly IntPtr selItemAtIndex_Handle = Selector.GetHandle("itemAtIndex:");
|
|
|
|
private static readonly IntPtr selIndexOfItem_Handle = Selector.GetHandle("indexOfItem:");
|
|
|
|
private static readonly IntPtr selIndexOfItemWithTitle_Handle = Selector.GetHandle("indexOfItemWithTitle:");
|
|
|
|
private static readonly IntPtr selIndexOfItemWithTag_Handle = Selector.GetHandle("indexOfItemWithTag:");
|
|
|
|
private static readonly IntPtr selIndexOfItemWithRepresentedObject_Handle = Selector.GetHandle("indexOfItemWithRepresentedObject:");
|
|
|
|
private static readonly IntPtr selIndexOfItemWithSubmenu_Handle = Selector.GetHandle("indexOfItemWithSubmenu:");
|
|
|
|
private static readonly IntPtr selIndexOfItemWithTargetAndAction_Handle = Selector.GetHandle("indexOfItemWithTarget:andAction:");
|
|
|
|
private static readonly IntPtr selItemWithTitle_Handle = Selector.GetHandle("itemWithTitle:");
|
|
|
|
private static readonly IntPtr selItemWithTag_Handle = Selector.GetHandle("itemWithTag:");
|
|
|
|
private static readonly IntPtr selUpdateHandle = Selector.GetHandle("update");
|
|
|
|
private static readonly IntPtr selPerformKeyEquivalent_Handle = Selector.GetHandle("performKeyEquivalent:");
|
|
|
|
private static readonly IntPtr selItemChanged_Handle = Selector.GetHandle("itemChanged:");
|
|
|
|
private static readonly IntPtr selPerformActionForItemAtIndex_Handle = Selector.GetHandle("performActionForItemAtIndex:");
|
|
|
|
private static readonly IntPtr selCancelTrackingHandle = Selector.GetHandle("cancelTracking");
|
|
|
|
private static readonly IntPtr selCancelTrackingWithoutAnimationHandle = Selector.GetHandle("cancelTrackingWithoutAnimation");
|
|
|
|
private static readonly IntPtr selHelpRequested_Handle = Selector.GetHandle("helpRequested:");
|
|
|
|
private static readonly IntPtr selPropertiesToUpdateHandle = Selector.GetHandle("propertiesToUpdate");
|
|
|
|
private static readonly IntPtr class_ptr = Class.GetHandle("NSMenu");
|
|
|
|
private object __mt_HighlightedItem_var;
|
|
|
|
private object __mt_Supermenu_var;
|
|
|
|
private object __mt_WeakDelegate_var;
|
|
|
|
private object __mt_Font_var;
|
|
|
|
public override IntPtr ClassHandle => class_ptr;
|
|
|
|
public virtual long Count
|
|
{
|
|
[Export("numberOfItems")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Int64_objc_msgSend(base.Handle, selNumberOfItemsHandle);
|
|
}
|
|
return Messaging.Int64_objc_msgSendSuper(base.SuperHandle, selNumberOfItemsHandle);
|
|
}
|
|
}
|
|
|
|
public virtual double MenuBarHeight
|
|
{
|
|
[Export("menuBarHeight")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Double_objc_msgSend(base.Handle, selMenuBarHeightHandle);
|
|
}
|
|
return Messaging.Double_objc_msgSendSuper(base.SuperHandle, selMenuBarHeightHandle);
|
|
}
|
|
}
|
|
|
|
public virtual NSMenuItem HighlightedItem
|
|
{
|
|
[Export("highlightedItem")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
return (NSMenuItem)(__mt_HighlightedItem_var = ((!IsDirectBinding) ? ((NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selHighlightedItemHandle))) : ((NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selHighlightedItemHandle)))));
|
|
}
|
|
}
|
|
|
|
public virtual CGSize Size
|
|
{
|
|
[Export("size")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.CGSize_objc_msgSend(base.Handle, selSizeHandle);
|
|
}
|
|
return Messaging.CGSize_objc_msgSendSuper(base.SuperHandle, selSizeHandle);
|
|
}
|
|
}
|
|
|
|
public virtual bool IsTornOff
|
|
{
|
|
[Export("isTornOff")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend(base.Handle, selIsTornOffHandle);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsTornOffHandle);
|
|
}
|
|
}
|
|
|
|
public virtual string Title
|
|
{
|
|
[Export("title")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selTitleHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selTitleHandle));
|
|
}
|
|
[Export("setTitle:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (value == null)
|
|
{
|
|
throw new ArgumentNullException("value");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(value);
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetTitle_Handle, intPtr);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetTitle_Handle, intPtr);
|
|
}
|
|
NSString.ReleaseNative(intPtr);
|
|
}
|
|
}
|
|
|
|
public static bool MenuBarVisible
|
|
{
|
|
[Export("menuBarVisible")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
return Messaging.bool_objc_msgSend(class_ptr, selMenuBarVisibleHandle);
|
|
}
|
|
[Export("setMenuBarVisible:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
Messaging.void_objc_msgSend_bool(class_ptr, selSetMenuBarVisible_Handle, value);
|
|
}
|
|
}
|
|
|
|
public virtual NSMenu Supermenu
|
|
{
|
|
[Export("supermenu")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
return (NSMenu)(__mt_Supermenu_var = ((!IsDirectBinding) ? ((NSMenu)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selSupermenuHandle))) : ((NSMenu)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selSupermenuHandle)))));
|
|
}
|
|
[Export("setSupermenu:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (value == null)
|
|
{
|
|
throw new ArgumentNullException("value");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetSupermenu_Handle, value.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetSupermenu_Handle, value.Handle);
|
|
}
|
|
__mt_Supermenu_var = value;
|
|
}
|
|
}
|
|
|
|
public virtual bool AutoEnablesItems
|
|
{
|
|
[Export("autoenablesItems")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend(base.Handle, selAutoenablesItemsHandle);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selAutoenablesItemsHandle);
|
|
}
|
|
[Export("setAutoenablesItems:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_bool(base.Handle, selSetAutoenablesItems_Handle, value);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetAutoenablesItems_Handle, value);
|
|
}
|
|
}
|
|
}
|
|
|
|
public virtual NSObject WeakDelegate
|
|
{
|
|
[Export("delegate")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
return (NSObject)(__mt_WeakDelegate_var = ((!IsDirectBinding) ? Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selDelegateHandle)) : Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selDelegateHandle))));
|
|
}
|
|
[Export("setDelegate:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (value == null)
|
|
{
|
|
throw new ArgumentNullException("value");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetDelegate_Handle, value.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetDelegate_Handle, value.Handle);
|
|
}
|
|
__mt_WeakDelegate_var = value;
|
|
}
|
|
}
|
|
|
|
public NSMenuDelegate Delegate
|
|
{
|
|
get
|
|
{
|
|
return WeakDelegate as NSMenuDelegate;
|
|
}
|
|
set
|
|
{
|
|
WeakDelegate = value;
|
|
}
|
|
}
|
|
|
|
public virtual double MinimumWidth
|
|
{
|
|
[Export("minimumWidth")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Double_objc_msgSend(base.Handle, selMinimumWidthHandle);
|
|
}
|
|
return Messaging.Double_objc_msgSendSuper(base.SuperHandle, selMinimumWidthHandle);
|
|
}
|
|
[Export("setMinimumWidth:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_Double(base.Handle, selSetMinimumWidth_Handle, value);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_Double(base.SuperHandle, selSetMinimumWidth_Handle, value);
|
|
}
|
|
}
|
|
}
|
|
|
|
public virtual NSFont Font
|
|
{
|
|
[Export("font")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
return (NSFont)(__mt_Font_var = ((!IsDirectBinding) ? ((NSFont)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selFontHandle))) : ((NSFont)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selFontHandle)))));
|
|
}
|
|
[Export("setFont:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (value == null)
|
|
{
|
|
throw new ArgumentNullException("value");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetFont_Handle, value.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetFont_Handle, value.Handle);
|
|
}
|
|
__mt_Font_var = value;
|
|
}
|
|
}
|
|
|
|
public virtual bool AllowsContextMenuPlugIns
|
|
{
|
|
[Export("allowsContextMenuPlugIns")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend(base.Handle, selAllowsContextMenuPlugInsHandle);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selAllowsContextMenuPlugInsHandle);
|
|
}
|
|
[Export("setAllowsContextMenuPlugIns:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_bool(base.Handle, selSetAllowsContextMenuPlugIns_Handle, value);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetAllowsContextMenuPlugIns_Handle, value);
|
|
}
|
|
}
|
|
}
|
|
|
|
public virtual bool ShowsStateColumn
|
|
{
|
|
[Export("showsStateColumn")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend(base.Handle, selShowsStateColumnHandle);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selShowsStateColumnHandle);
|
|
}
|
|
[Export("setShowsStateColumn:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_bool(base.Handle, selSetShowsStateColumn_Handle, value);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetShowsStateColumn_Handle, value);
|
|
}
|
|
}
|
|
}
|
|
|
|
public virtual bool MenuChangedMessagesEnabled
|
|
{
|
|
[Export("menuChangedMessagesEnabled")]
|
|
get
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend(base.Handle, selMenuChangedMessagesEnabledHandle);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selMenuChangedMessagesEnabledHandle);
|
|
}
|
|
[Export("setMenuChangedMessagesEnabled:")]
|
|
set
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_bool(base.Handle, selSetMenuChangedMessagesEnabled_Handle, value);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetMenuChangedMessagesEnabled_Handle, value);
|
|
}
|
|
}
|
|
}
|
|
|
|
private NSMenuItem InsertItem(string title, string charCode, int index)
|
|
{
|
|
return InsertItem(title, null, charCode, index);
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
[Export("init")]
|
|
public NSMenu()
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend(base.Handle, Selector.Init);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, Selector.Init);
|
|
}
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
[Export("initWithCoder:")]
|
|
public NSMenu(NSCoder coder)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, Selector.InitWithCoder, coder.Handle);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, Selector.InitWithCoder, coder.Handle);
|
|
}
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
public NSMenu(NSObjectFlag t)
|
|
: base(t)
|
|
{
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
public NSMenu(IntPtr handle)
|
|
: base(handle)
|
|
{
|
|
}
|
|
|
|
[Export("initWithTitle:")]
|
|
public NSMenu(string aTitle)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (aTitle == null)
|
|
{
|
|
throw new ArgumentNullException("aTitle");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(aTitle);
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selInitWithTitle_Handle, intPtr);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selInitWithTitle_Handle, intPtr);
|
|
}
|
|
NSString.ReleaseNative(intPtr);
|
|
}
|
|
|
|
[Export("popUpContextMenu:withEvent:forView:")]
|
|
public static void PopUpContextMenu(NSMenu menu, NSEvent theEvent, NSView view)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (menu == null)
|
|
{
|
|
throw new ArgumentNullException("menu");
|
|
}
|
|
if (theEvent == null)
|
|
{
|
|
throw new ArgumentNullException("theEvent");
|
|
}
|
|
if (view == null)
|
|
{
|
|
throw new ArgumentNullException("view");
|
|
}
|
|
Messaging.void_objc_msgSend_IntPtr_IntPtr_IntPtr(class_ptr, selPopUpContextMenuWithEventForView_Handle, menu.Handle, theEvent.Handle, view.Handle);
|
|
}
|
|
|
|
[Export("popUpContextMenu:withEvent:forView:withFont:")]
|
|
public static void PopUpContextMenu(NSMenu menu, NSEvent theEvent, NSView view, NSFont font)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (menu == null)
|
|
{
|
|
throw new ArgumentNullException("menu");
|
|
}
|
|
if (theEvent == null)
|
|
{
|
|
throw new ArgumentNullException("theEvent");
|
|
}
|
|
if (view == null)
|
|
{
|
|
throw new ArgumentNullException("view");
|
|
}
|
|
Messaging.void_objc_msgSend_IntPtr_IntPtr_IntPtr_IntPtr(class_ptr, selPopUpContextMenuWithEventForViewWithFont_Handle, menu.Handle, theEvent.Handle, view.Handle, font?.Handle ?? IntPtr.Zero);
|
|
}
|
|
|
|
[Export("popUpMenuPositioningItem:atLocation:inView:")]
|
|
public virtual bool PopUpMenu(NSMenuItem item, CGPoint location, NSView view)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend_IntPtr_CGPoint_IntPtr(base.Handle, selPopUpMenuPositioningItemAtLocationInView_Handle, item?.Handle ?? IntPtr.Zero, location, view?.Handle ?? IntPtr.Zero);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper_IntPtr_CGPoint_IntPtr(base.SuperHandle, selPopUpMenuPositioningItemAtLocationInView_Handle, item?.Handle ?? IntPtr.Zero, location, view?.Handle ?? IntPtr.Zero);
|
|
}
|
|
|
|
[Export("insertItem:atIndex:")]
|
|
public virtual void InsertItem(NSMenuItem newItem, long index)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (newItem == null)
|
|
{
|
|
throw new ArgumentNullException("newItem");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr_Int64(base.Handle, selInsertItemAtIndex_Handle, newItem.Handle, index);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr_Int64(base.SuperHandle, selInsertItemAtIndex_Handle, newItem.Handle, index);
|
|
}
|
|
__mt_items_var = ItemArray();
|
|
}
|
|
|
|
[Export("addItem:")]
|
|
public virtual void AddItem(NSMenuItem newItem)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (newItem == null)
|
|
{
|
|
throw new ArgumentNullException("newItem");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selAddItem_Handle, newItem.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selAddItem_Handle, newItem.Handle);
|
|
}
|
|
__mt_items_var = ItemArray();
|
|
}
|
|
|
|
[Export("insertItemWithTitle:action:keyEquivalent:atIndex:")]
|
|
public virtual NSMenuItem InsertItem(string title, Selector action, string charCode, long index)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (title == null)
|
|
{
|
|
throw new ArgumentNullException("title");
|
|
}
|
|
if (charCode == null)
|
|
{
|
|
throw new ArgumentNullException("charCode");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(title);
|
|
IntPtr intPtr2 = NSString.CreateNative(charCode);
|
|
NSMenuItem result = (!IsDirectBinding) ? ((NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr_IntPtr_Int64(base.SuperHandle, selInsertItemWithTitleActionKeyEquivalentAtIndex_Handle, intPtr, (action == null) ? IntPtr.Zero : action.Handle, intPtr2, index))) : ((NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_IntPtr_Int64(base.Handle, selInsertItemWithTitleActionKeyEquivalentAtIndex_Handle, intPtr, (action == null) ? IntPtr.Zero : action.Handle, intPtr2, index)));
|
|
__mt_items_var = ItemArray();
|
|
NSString.ReleaseNative(intPtr);
|
|
NSString.ReleaseNative(intPtr2);
|
|
return result;
|
|
}
|
|
|
|
[Export("addItemWithTitle:action:keyEquivalent:")]
|
|
public virtual NSMenuItem AddItem(string title, Selector action, string charCode)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (title == null)
|
|
{
|
|
throw new ArgumentNullException("title");
|
|
}
|
|
if (charCode == null)
|
|
{
|
|
throw new ArgumentNullException("charCode");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(title);
|
|
IntPtr intPtr2 = NSString.CreateNative(charCode);
|
|
NSMenuItem result = (!IsDirectBinding) ? ((NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr_IntPtr(base.SuperHandle, selAddItemWithTitleActionKeyEquivalent_Handle, intPtr, (action == null) ? IntPtr.Zero : action.Handle, intPtr2))) : ((NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_IntPtr(base.Handle, selAddItemWithTitleActionKeyEquivalent_Handle, intPtr, (action == null) ? IntPtr.Zero : action.Handle, intPtr2)));
|
|
__mt_items_var = ItemArray();
|
|
NSString.ReleaseNative(intPtr);
|
|
NSString.ReleaseNative(intPtr2);
|
|
return result;
|
|
}
|
|
|
|
[Export("removeItemAtIndex:")]
|
|
public virtual void RemoveItemAt(long index)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_Int64(base.Handle, selRemoveItemAtIndex_Handle, index);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_Int64(base.SuperHandle, selRemoveItemAtIndex_Handle, index);
|
|
}
|
|
__mt_items_var = ItemArray();
|
|
}
|
|
|
|
[Export("removeItem:")]
|
|
public virtual void RemoveItem(NSMenuItem item)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (item == null)
|
|
{
|
|
throw new ArgumentNullException("item");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selRemoveItem_Handle, item.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selRemoveItem_Handle, item.Handle);
|
|
}
|
|
__mt_items_var = ItemArray();
|
|
}
|
|
|
|
[Export("setSubmenu:forItem:")]
|
|
public virtual void SetSubmenu(NSMenu aMenu, NSMenuItem anItem)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (aMenu == null)
|
|
{
|
|
throw new ArgumentNullException("aMenu");
|
|
}
|
|
if (anItem == null)
|
|
{
|
|
throw new ArgumentNullException("anItem");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr_IntPtr(base.Handle, selSetSubmenuForItem_Handle, aMenu.Handle, anItem.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selSetSubmenuForItem_Handle, aMenu.Handle, anItem.Handle);
|
|
}
|
|
}
|
|
|
|
[Export("removeAllItems")]
|
|
public virtual void RemoveAllItems()
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend(base.Handle, selRemoveAllItemsHandle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper(base.SuperHandle, selRemoveAllItemsHandle);
|
|
}
|
|
__mt_items_var = ItemArray();
|
|
}
|
|
|
|
[Export("itemArray")]
|
|
public virtual NSMenuItem[] ItemArray()
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSArray.ArrayFromHandle<NSMenuItem>(Messaging.IntPtr_objc_msgSend(base.Handle, selItemArrayHandle));
|
|
}
|
|
return NSArray.ArrayFromHandle<NSMenuItem>(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selItemArrayHandle));
|
|
}
|
|
|
|
[Export("itemAtIndex:")]
|
|
public virtual NSMenuItem ItemAt(long index)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_Int64(base.Handle, selItemAtIndex_Handle, index));
|
|
}
|
|
return (NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_Int64(base.SuperHandle, selItemAtIndex_Handle, index));
|
|
}
|
|
|
|
[Export("indexOfItem:")]
|
|
public virtual long IndexOf(NSMenuItem index)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (index == null)
|
|
{
|
|
throw new ArgumentNullException("index");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Int64_objc_msgSend_IntPtr(base.Handle, selIndexOfItem_Handle, index.Handle);
|
|
}
|
|
return Messaging.Int64_objc_msgSendSuper_IntPtr(base.SuperHandle, selIndexOfItem_Handle, index.Handle);
|
|
}
|
|
|
|
[Export("indexOfItemWithTitle:")]
|
|
public virtual long IndexOf(string aTitle)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (aTitle == null)
|
|
{
|
|
throw new ArgumentNullException("aTitle");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(aTitle);
|
|
long result = (!IsDirectBinding) ? Messaging.Int64_objc_msgSendSuper_IntPtr(base.SuperHandle, selIndexOfItemWithTitle_Handle, intPtr) : Messaging.Int64_objc_msgSend_IntPtr(base.Handle, selIndexOfItemWithTitle_Handle, intPtr);
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("indexOfItemWithTag:")]
|
|
public virtual long IndexOf(long itemTag)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Int64_objc_msgSend_Int64(base.Handle, selIndexOfItemWithTag_Handle, itemTag);
|
|
}
|
|
return Messaging.Int64_objc_msgSendSuper_Int64(base.SuperHandle, selIndexOfItemWithTag_Handle, itemTag);
|
|
}
|
|
|
|
[Export("indexOfItemWithRepresentedObject:")]
|
|
public virtual long IndexOfItem(NSObject obj)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (obj == null)
|
|
{
|
|
throw new ArgumentNullException("obj");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Int64_objc_msgSend_IntPtr(base.Handle, selIndexOfItemWithRepresentedObject_Handle, obj.Handle);
|
|
}
|
|
return Messaging.Int64_objc_msgSendSuper_IntPtr(base.SuperHandle, selIndexOfItemWithRepresentedObject_Handle, obj.Handle);
|
|
}
|
|
|
|
[Export("indexOfItemWithSubmenu:")]
|
|
public virtual long IndexOfItem(NSMenu submenu)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (submenu == null)
|
|
{
|
|
throw new ArgumentNullException("submenu");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Int64_objc_msgSend_IntPtr(base.Handle, selIndexOfItemWithSubmenu_Handle, submenu.Handle);
|
|
}
|
|
return Messaging.Int64_objc_msgSendSuper_IntPtr(base.SuperHandle, selIndexOfItemWithSubmenu_Handle, submenu.Handle);
|
|
}
|
|
|
|
[Export("indexOfItemWithTarget:andAction:")]
|
|
public virtual long IndexOfItem(NSObject target, Selector actionSelector)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (target == null)
|
|
{
|
|
throw new ArgumentNullException("target");
|
|
}
|
|
if (actionSelector == null)
|
|
{
|
|
throw new ArgumentNullException("actionSelector");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Int64_objc_msgSend_IntPtr_IntPtr(base.Handle, selIndexOfItemWithTargetAndAction_Handle, target.Handle, actionSelector.Handle);
|
|
}
|
|
return Messaging.Int64_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selIndexOfItemWithTargetAndAction_Handle, target.Handle, actionSelector.Handle);
|
|
}
|
|
|
|
[Export("itemWithTitle:")]
|
|
public virtual NSMenuItem ItemWithTitle(string title)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (title == null)
|
|
{
|
|
throw new ArgumentNullException("title");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(title);
|
|
NSMenuItem result = (!IsDirectBinding) ? ((NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selItemWithTitle_Handle, intPtr))) : ((NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selItemWithTitle_Handle, intPtr)));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("itemWithTag:")]
|
|
public virtual NSMenuItem ItemWithTag(long tag)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_Int64(base.Handle, selItemWithTag_Handle, tag));
|
|
}
|
|
return (NSMenuItem)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_Int64(base.SuperHandle, selItemWithTag_Handle, tag));
|
|
}
|
|
|
|
[Export("update")]
|
|
public virtual void Update()
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend(base.Handle, selUpdateHandle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper(base.SuperHandle, selUpdateHandle);
|
|
}
|
|
}
|
|
|
|
[Export("performKeyEquivalent:")]
|
|
public virtual bool PerformKeyEquivalent(NSEvent theEvent)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (theEvent == null)
|
|
{
|
|
throw new ArgumentNullException("theEvent");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend_IntPtr(base.Handle, selPerformKeyEquivalent_Handle, theEvent.Handle);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper_IntPtr(base.SuperHandle, selPerformKeyEquivalent_Handle, theEvent.Handle);
|
|
}
|
|
|
|
[Export("itemChanged:")]
|
|
public virtual void ItemChanged(NSMenuItem item)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (item == null)
|
|
{
|
|
throw new ArgumentNullException("item");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selItemChanged_Handle, item.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selItemChanged_Handle, item.Handle);
|
|
}
|
|
}
|
|
|
|
[Export("performActionForItemAtIndex:")]
|
|
public virtual void PerformActionForItem(long index)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_Int64(base.Handle, selPerformActionForItemAtIndex_Handle, index);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_Int64(base.SuperHandle, selPerformActionForItemAtIndex_Handle, index);
|
|
}
|
|
}
|
|
|
|
[Export("cancelTracking")]
|
|
public virtual void CancelTracking()
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend(base.Handle, selCancelTrackingHandle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper(base.SuperHandle, selCancelTrackingHandle);
|
|
}
|
|
}
|
|
|
|
[Export("cancelTrackingWithoutAnimation")]
|
|
public virtual void CancelTrackingWithoutAnimation()
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend(base.Handle, selCancelTrackingWithoutAnimationHandle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper(base.SuperHandle, selCancelTrackingWithoutAnimationHandle);
|
|
}
|
|
}
|
|
|
|
[Export("helpRequested:")]
|
|
public virtual void HelpRequested(NSEvent eventPtr)
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (eventPtr == null)
|
|
{
|
|
throw new ArgumentNullException("eventPtr");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selHelpRequested_Handle, eventPtr.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selHelpRequested_Handle, eventPtr.Handle);
|
|
}
|
|
}
|
|
|
|
[Export("propertiesToUpdate")]
|
|
public virtual NSMenuProperty PropertiesToUpdate()
|
|
{
|
|
NSApplication.EnsureUIThread();
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSMenuProperty)Messaging.UInt64_objc_msgSend(base.Handle, selPropertiesToUpdateHandle);
|
|
}
|
|
return (NSMenuProperty)Messaging.UInt64_objc_msgSendSuper(base.SuperHandle, selPropertiesToUpdateHandle);
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
__mt_items_var = null;
|
|
base.Dispose(disposing);
|
|
if (base.Handle == IntPtr.Zero)
|
|
{
|
|
__mt_HighlightedItem_var = null;
|
|
__mt_Supermenu_var = null;
|
|
__mt_WeakDelegate_var = null;
|
|
__mt_Font_var = null;
|
|
}
|
|
}
|
|
}
|
|
}
|