CPF/CPF.Mac/Mac/AppKit/NSTableColumn.cs
2023-11-21 23:05:03 +08:00

553 lines
15 KiB
C#

using CPF.Mac.Foundation;
using CPF.Mac.ObjCRuntime;
using System;
using System.ComponentModel;
namespace CPF.Mac.AppKit
{
[Register("NSTableColumn", true)]
public class NSTableColumn : NSObject
{
private static readonly IntPtr selTableViewHandle = Selector.GetHandle("tableView");
private static readonly IntPtr selSetTableView_Handle = Selector.GetHandle("setTableView:");
private static readonly IntPtr selWidthHandle = Selector.GetHandle("width");
private static readonly IntPtr selSetWidth_Handle = Selector.GetHandle("setWidth:");
private static readonly IntPtr selMinWidthHandle = Selector.GetHandle("minWidth");
private static readonly IntPtr selSetMinWidth_Handle = Selector.GetHandle("setMinWidth:");
private static readonly IntPtr selMaxWidthHandle = Selector.GetHandle("maxWidth");
private static readonly IntPtr selSetMaxWidth_Handle = Selector.GetHandle("setMaxWidth:");
private static readonly IntPtr selHeaderCellHandle = Selector.GetHandle("headerCell");
private static readonly IntPtr selSetHeaderCell_Handle = Selector.GetHandle("setHeaderCell:");
private static readonly IntPtr selDataCellHandle = Selector.GetHandle("dataCell");
private static readonly IntPtr selSetDataCell_Handle = Selector.GetHandle("setDataCell:");
private static readonly IntPtr selIsEditableHandle = Selector.GetHandle("isEditable");
private static readonly IntPtr selSetEditable_Handle = Selector.GetHandle("setEditable:");
private static readonly IntPtr selSortDescriptorPrototypeHandle = Selector.GetHandle("sortDescriptorPrototype");
private static readonly IntPtr selSetSortDescriptorPrototype_Handle = Selector.GetHandle("setSortDescriptorPrototype:");
private static readonly IntPtr selResizingMaskHandle = Selector.GetHandle("resizingMask");
private static readonly IntPtr selSetResizingMask_Handle = Selector.GetHandle("setResizingMask:");
private static readonly IntPtr selHeaderToolTipHandle = Selector.GetHandle("headerToolTip");
private static readonly IntPtr selSetHeaderToolTip_Handle = Selector.GetHandle("setHeaderToolTip:");
private static readonly IntPtr selIsHiddenHandle = Selector.GetHandle("isHidden");
private static readonly IntPtr selSetHidden_Handle = Selector.GetHandle("setHidden:");
private static readonly IntPtr selIdentifierHandle = Selector.GetHandle("identifier");
private static readonly IntPtr selSetIdentifier_Handle = Selector.GetHandle("setIdentifier:");
private static readonly IntPtr selInitWithIdentifier_Handle = Selector.GetHandle("initWithIdentifier:");
private static readonly IntPtr selDataCellForRow_Handle = Selector.GetHandle("dataCellForRow:");
private static readonly IntPtr selSizeToFitHandle = Selector.GetHandle("sizeToFit");
private static readonly IntPtr class_ptr = Class.GetHandle("NSTableColumn");
private object __mt_TableView_var;
private object __mt_HeaderCell_var;
private object __mt_DataCell_var;
private object __mt_SortDescriptorPrototype_var;
public override IntPtr ClassHandle => class_ptr;
public virtual NSTableView TableView
{
[Export("tableView")]
get
{
NSApplication.EnsureUIThread();
return (NSTableView)(__mt_TableView_var = ((!IsDirectBinding) ? ((NSTableView)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selTableViewHandle))) : ((NSTableView)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selTableViewHandle)))));
}
[Export("setTableView:")]
set
{
NSApplication.EnsureUIThread();
if (value == null)
{
throw new ArgumentNullException("value");
}
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetTableView_Handle, value.Handle);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetTableView_Handle, value.Handle);
}
__mt_TableView_var = value;
}
}
public virtual double Width
{
[Export("width")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.Double_objc_msgSend(base.Handle, selWidthHandle);
}
return Messaging.Double_objc_msgSendSuper(base.SuperHandle, selWidthHandle);
}
[Export("setWidth:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_Double(base.Handle, selSetWidth_Handle, value);
}
else
{
Messaging.void_objc_msgSendSuper_Double(base.SuperHandle, selSetWidth_Handle, value);
}
}
}
public virtual double MinWidth
{
[Export("minWidth")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.Double_objc_msgSend(base.Handle, selMinWidthHandle);
}
return Messaging.Double_objc_msgSendSuper(base.SuperHandle, selMinWidthHandle);
}
[Export("setMinWidth:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_Double(base.Handle, selSetMinWidth_Handle, value);
}
else
{
Messaging.void_objc_msgSendSuper_Double(base.SuperHandle, selSetMinWidth_Handle, value);
}
}
}
public virtual double MaxWidth
{
[Export("maxWidth")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.Double_objc_msgSend(base.Handle, selMaxWidthHandle);
}
return Messaging.Double_objc_msgSendSuper(base.SuperHandle, selMaxWidthHandle);
}
[Export("setMaxWidth:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_Double(base.Handle, selSetMaxWidth_Handle, value);
}
else
{
Messaging.void_objc_msgSendSuper_Double(base.SuperHandle, selSetMaxWidth_Handle, value);
}
}
}
public virtual NSCell HeaderCell
{
[Export("headerCell")]
get
{
NSApplication.EnsureUIThread();
return (NSCell)(__mt_HeaderCell_var = ((!IsDirectBinding) ? ((NSCell)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selHeaderCellHandle))) : ((NSCell)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selHeaderCellHandle)))));
}
[Export("setHeaderCell:")]
set
{
NSApplication.EnsureUIThread();
if (value == null)
{
throw new ArgumentNullException("value");
}
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetHeaderCell_Handle, value.Handle);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetHeaderCell_Handle, value.Handle);
}
__mt_HeaderCell_var = value;
}
}
public virtual NSCell DataCell
{
[Export("dataCell")]
get
{
NSApplication.EnsureUIThread();
return (NSCell)(__mt_DataCell_var = ((!IsDirectBinding) ? ((NSCell)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selDataCellHandle))) : ((NSCell)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selDataCellHandle)))));
}
[Export("setDataCell:")]
set
{
NSApplication.EnsureUIThread();
if (value == null)
{
throw new ArgumentNullException("value");
}
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetDataCell_Handle, value.Handle);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetDataCell_Handle, value.Handle);
}
__mt_DataCell_var = value;
}
}
public virtual bool Editable
{
[Export("isEditable")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.bool_objc_msgSend(base.Handle, selIsEditableHandle);
}
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsEditableHandle);
}
[Export("setEditable:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_bool(base.Handle, selSetEditable_Handle, value);
}
else
{
Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetEditable_Handle, value);
}
}
}
public virtual NSSortDescriptor SortDescriptorPrototype
{
[Export("sortDescriptorPrototype")]
get
{
NSApplication.EnsureUIThread();
return (NSSortDescriptor)(__mt_SortDescriptorPrototype_var = ((!IsDirectBinding) ? ((NSSortDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selSortDescriptorPrototypeHandle))) : ((NSSortDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selSortDescriptorPrototypeHandle)))));
}
[Export("setSortDescriptorPrototype:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetSortDescriptorPrototype_Handle, value?.Handle ?? IntPtr.Zero);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetSortDescriptorPrototype_Handle, value?.Handle ?? IntPtr.Zero);
}
__mt_SortDescriptorPrototype_var = value;
}
}
public virtual NSTableColumnResizing ResizingMask
{
[Export("resizingMask")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return (NSTableColumnResizing)Messaging.UInt64_objc_msgSend(base.Handle, selResizingMaskHandle);
}
return (NSTableColumnResizing)Messaging.UInt64_objc_msgSendSuper(base.SuperHandle, selResizingMaskHandle);
}
[Export("setResizingMask:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_UInt64(base.Handle, selSetResizingMask_Handle, (ulong)value);
}
else
{
Messaging.void_objc_msgSendSuper_UInt64(base.SuperHandle, selSetResizingMask_Handle, (ulong)value);
}
}
}
public virtual string HeaderToolTip
{
[Export("headerToolTip")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selHeaderToolTipHandle));
}
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selHeaderToolTipHandle));
}
[Export("setHeaderToolTip:")]
set
{
NSApplication.EnsureUIThread();
if (value == null)
{
throw new ArgumentNullException("value");
}
IntPtr intPtr = NSString.CreateNative(value);
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetHeaderToolTip_Handle, intPtr);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetHeaderToolTip_Handle, intPtr);
}
NSString.ReleaseNative(intPtr);
}
}
public virtual bool Hidden
{
[Export("isHidden")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.bool_objc_msgSend(base.Handle, selIsHiddenHandle);
}
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsHiddenHandle);
}
[Export("setHidden:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_bool(base.Handle, selSetHidden_Handle, value);
}
else
{
Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetHidden_Handle, value);
}
}
}
public virtual string Identifier
{
[Export("identifier")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selIdentifierHandle));
}
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selIdentifierHandle));
}
[Export("setIdentifier:")]
set
{
NSApplication.EnsureUIThread();
if (value == null)
{
throw new ArgumentNullException("value");
}
IntPtr intPtr = NSString.CreateNative(value);
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetIdentifier_Handle, intPtr);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetIdentifier_Handle, intPtr);
}
NSString.ReleaseNative(intPtr);
}
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
[Export("init")]
public NSTableColumn()
: 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 NSTableColumn(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 NSTableColumn(NSObjectFlag t)
: base(t)
{
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public NSTableColumn(IntPtr handle)
: base(handle)
{
}
[Export("initWithIdentifier:")]
public NSTableColumn(string identifier)
: base(NSObjectFlag.Empty)
{
NSApplication.EnsureUIThread();
if (identifier == null)
{
throw new ArgumentNullException("identifier");
}
IntPtr intPtr = NSString.CreateNative(identifier);
if (IsDirectBinding)
{
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selInitWithIdentifier_Handle, intPtr);
}
else
{
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selInitWithIdentifier_Handle, intPtr);
}
NSString.ReleaseNative(intPtr);
}
[Export("initWithIdentifier:")]
public NSTableColumn(NSString identifier)
: base(NSObjectFlag.Empty)
{
NSApplication.EnsureUIThread();
if (identifier == null)
{
throw new ArgumentNullException("identifier");
}
if (IsDirectBinding)
{
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selInitWithIdentifier_Handle, identifier.Handle);
}
else
{
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selInitWithIdentifier_Handle, identifier.Handle);
}
}
[Export("initWithIdentifier:")]
[Obsolete("", false)]
public NSTableColumn(NSObject identifier)
: base(NSObjectFlag.Empty)
{
NSApplication.EnsureUIThread();
if (identifier == null)
{
throw new ArgumentNullException("identifier");
}
if (IsDirectBinding)
{
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selInitWithIdentifier_Handle, identifier.Handle);
}
else
{
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selInitWithIdentifier_Handle, identifier.Handle);
}
}
[Export("dataCellForRow:")]
public virtual NSCell DataCellForRow(long row)
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return (NSCell)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_Int64(base.Handle, selDataCellForRow_Handle, row));
}
return (NSCell)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_Int64(base.SuperHandle, selDataCellForRow_Handle, row));
}
[Export("sizeToFit")]
public virtual void SizeToFit()
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend(base.Handle, selSizeToFitHandle);
}
else
{
Messaging.void_objc_msgSendSuper(base.SuperHandle, selSizeToFitHandle);
}
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (base.Handle == IntPtr.Zero)
{
__mt_TableView_var = null;
__mt_HeaderCell_var = null;
__mt_DataCell_var = null;
__mt_SortDescriptorPrototype_var = null;
}
}
}
}