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

655 lines
20 KiB
C#

using CPF.Mac.CoreGraphics;
using CPF.Mac.Foundation;
using CPF.Mac.ObjCRuntime;
using System;
using System.ComponentModel;
namespace CPF.Mac.AppKit
{
[Register("NSPrintOperation", true)]
public class NSPrintOperation : NSObject
{
private static readonly IntPtr selIsCopyingOperationHandle = Selector.GetHandle("isCopyingOperation");
private static readonly IntPtr selViewHandle = Selector.GetHandle("view");
private static readonly IntPtr selContextHandle = Selector.GetHandle("context");
private static readonly IntPtr selPageRangeHandle = Selector.GetHandle("pageRange");
private static readonly IntPtr selCurrentPageHandle = Selector.GetHandle("currentPage");
private static readonly IntPtr selCurrentOperationHandle = Selector.GetHandle("currentOperation");
private static readonly IntPtr selSetCurrentOperation_Handle = Selector.GetHandle("setCurrentOperation:");
private static readonly IntPtr selJobTitleHandle = Selector.GetHandle("jobTitle");
private static readonly IntPtr selSetJobTitle_Handle = Selector.GetHandle("setJobTitle:");
private static readonly IntPtr selShowsPrintPanelHandle = Selector.GetHandle("showsPrintPanel");
private static readonly IntPtr selSetShowsPrintPanel_Handle = Selector.GetHandle("setShowsPrintPanel:");
private static readonly IntPtr selShowsProgressPanelHandle = Selector.GetHandle("showsProgressPanel");
private static readonly IntPtr selSetShowsProgressPanel_Handle = Selector.GetHandle("setShowsProgressPanel:");
private static readonly IntPtr selPrintPanelHandle = Selector.GetHandle("printPanel");
private static readonly IntPtr selSetPrintPanel_Handle = Selector.GetHandle("setPrintPanel:");
private static readonly IntPtr selCanSpawnSeparateThreadHandle = Selector.GetHandle("canSpawnSeparateThread");
private static readonly IntPtr selSetCanSpawnSeparateThread_Handle = Selector.GetHandle("setCanSpawnSeparateThread:");
private static readonly IntPtr selPageOrderHandle = Selector.GetHandle("pageOrder");
private static readonly IntPtr selSetPageOrder_Handle = Selector.GetHandle("setPageOrder:");
private static readonly IntPtr selPrintInfoHandle = Selector.GetHandle("printInfo");
private static readonly IntPtr selSetPrintInfo_Handle = Selector.GetHandle("setPrintInfo:");
private static readonly IntPtr selPrintOperationWithViewPrintInfo_Handle = Selector.GetHandle("printOperationWithView:printInfo:");
private static readonly IntPtr selPDFOperationWithViewInsideRectToDataPrintInfo_Handle = Selector.GetHandle("PDFOperationWithView:insideRect:toData:printInfo:");
private static readonly IntPtr selPDFOperationWithViewInsideRectToPathPrintInfo_Handle = Selector.GetHandle("PDFOperationWithView:insideRect:toPath:printInfo:");
private static readonly IntPtr selEPSOperationWithViewInsideRectToDataPrintInfo_Handle = Selector.GetHandle("EPSOperationWithView:insideRect:toData:printInfo:");
private static readonly IntPtr selEPSOperationWithViewInsideRectToPathPrintInfo_Handle = Selector.GetHandle("EPSOperationWithView:insideRect:toPath:printInfo:");
private static readonly IntPtr selPrintOperationWithView_Handle = Selector.GetHandle("printOperationWithView:");
private static readonly IntPtr selPDFOperationWithViewInsideRectToData_Handle = Selector.GetHandle("PDFOperationWithView:insideRect:toData:");
private static readonly IntPtr selEPSOperationWithViewInsideRectToData_Handle = Selector.GetHandle("EPSOperationWithView:insideRect:toData:");
private static readonly IntPtr selRunOperationModalForWindowDelegateDidRunSelectorContextInfo_Handle = Selector.GetHandle("runOperationModalForWindow:delegate:didRunSelector:contextInfo:");
private static readonly IntPtr selRunOperationHandle = Selector.GetHandle("runOperation");
private static readonly IntPtr selCreateContextHandle = Selector.GetHandle("createContext");
private static readonly IntPtr selDestroyContextHandle = Selector.GetHandle("destroyContext");
private static readonly IntPtr selDeliverResultHandle = Selector.GetHandle("deliverResult");
private static readonly IntPtr selCleanUpOperationHandle = Selector.GetHandle("cleanUpOperation");
private static readonly IntPtr class_ptr = Class.GetHandle("NSPrintOperation");
private object __mt_View_var;
private object __mt_Context_var;
private static object __mt_CurrentOperation_var_static;
private object __mt_PrintPanel_var;
private object __mt_PrintInfo_var;
public override IntPtr ClassHandle => class_ptr;
public virtual bool IsCopyingOperation
{
[Export("isCopyingOperation")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.bool_objc_msgSend(base.Handle, selIsCopyingOperationHandle);
}
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsCopyingOperationHandle);
}
}
public virtual NSView View
{
[Export("view")]
get
{
NSApplication.EnsureUIThread();
return (NSView)(__mt_View_var = ((!IsDirectBinding) ? ((NSView)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selViewHandle))) : ((NSView)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selViewHandle)))));
}
}
public virtual NSGraphicsContext Context
{
[Export("context")]
get
{
NSApplication.EnsureUIThread();
return (NSGraphicsContext)(__mt_Context_var = ((!IsDirectBinding) ? ((NSGraphicsContext)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selContextHandle))) : ((NSGraphicsContext)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selContextHandle)))));
}
}
public virtual NSRange PageRange
{
[Export("pageRange")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.NSRange_objc_msgSend(base.Handle, selPageRangeHandle);
}
return Messaging.NSRange_objc_msgSendSuper(base.SuperHandle, selPageRangeHandle);
}
}
public virtual long CurrentPage
{
[Export("currentPage")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.Int64_objc_msgSend(base.Handle, selCurrentPageHandle);
}
return Messaging.Int64_objc_msgSendSuper(base.SuperHandle, selCurrentPageHandle);
}
}
public static NSPrintOperation CurrentOperation
{
[Export("currentOperation")]
get
{
NSApplication.EnsureUIThread();
return (NSPrintOperation)(__mt_CurrentOperation_var_static = (NSPrintOperation)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selCurrentOperationHandle)));
}
[Export("setCurrentOperation:")]
set
{
NSApplication.EnsureUIThread();
if (value == null)
{
throw new ArgumentNullException("value");
}
Messaging.void_objc_msgSend_IntPtr(class_ptr, selSetCurrentOperation_Handle, value.Handle);
}
}
public virtual string JobTitle
{
[Export("jobTitle")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selJobTitleHandle));
}
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selJobTitleHandle));
}
[Export("setJobTitle:")]
set
{
NSApplication.EnsureUIThread();
if (value == null)
{
throw new ArgumentNullException("value");
}
IntPtr intPtr = NSString.CreateNative(value);
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetJobTitle_Handle, intPtr);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetJobTitle_Handle, intPtr);
}
NSString.ReleaseNative(intPtr);
}
}
public virtual bool ShowsPrintPanel
{
[Export("showsPrintPanel")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.bool_objc_msgSend(base.Handle, selShowsPrintPanelHandle);
}
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selShowsPrintPanelHandle);
}
[Export("setShowsPrintPanel:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_bool(base.Handle, selSetShowsPrintPanel_Handle, value);
}
else
{
Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetShowsPrintPanel_Handle, value);
}
}
}
public virtual bool ShowsProgressPanel
{
[Export("showsProgressPanel")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.bool_objc_msgSend(base.Handle, selShowsProgressPanelHandle);
}
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selShowsProgressPanelHandle);
}
[Export("setShowsProgressPanel:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_bool(base.Handle, selSetShowsProgressPanel_Handle, value);
}
else
{
Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetShowsProgressPanel_Handle, value);
}
}
}
public virtual NSPrintPanel PrintPanel
{
[Export("printPanel")]
get
{
NSApplication.EnsureUIThread();
return (NSPrintPanel)(__mt_PrintPanel_var = ((!IsDirectBinding) ? ((NSPrintPanel)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selPrintPanelHandle))) : ((NSPrintPanel)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selPrintPanelHandle)))));
}
[Export("setPrintPanel:")]
set
{
NSApplication.EnsureUIThread();
if (value == null)
{
throw new ArgumentNullException("value");
}
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetPrintPanel_Handle, value.Handle);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetPrintPanel_Handle, value.Handle);
}
__mt_PrintPanel_var = value;
}
}
public virtual bool CanSpawnSeparateThread
{
[Export("canSpawnSeparateThread")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.bool_objc_msgSend(base.Handle, selCanSpawnSeparateThreadHandle);
}
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selCanSpawnSeparateThreadHandle);
}
[Export("setCanSpawnSeparateThread:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_bool(base.Handle, selSetCanSpawnSeparateThread_Handle, value);
}
else
{
Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetCanSpawnSeparateThread_Handle, value);
}
}
}
public virtual NSPrintingPageOrder PageOrder
{
[Export("pageOrder")]
get
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return (NSPrintingPageOrder)Messaging.Int64_objc_msgSend(base.Handle, selPageOrderHandle);
}
return (NSPrintingPageOrder)Messaging.Int64_objc_msgSendSuper(base.SuperHandle, selPageOrderHandle);
}
[Export("setPageOrder:")]
set
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_Int64(base.Handle, selSetPageOrder_Handle, (long)value);
}
else
{
Messaging.void_objc_msgSendSuper_Int64(base.SuperHandle, selSetPageOrder_Handle, (long)value);
}
}
}
public virtual NSPrintInfo PrintInfo
{
[Export("printInfo")]
get
{
NSApplication.EnsureUIThread();
return (NSPrintInfo)(__mt_PrintInfo_var = ((!IsDirectBinding) ? ((NSPrintInfo)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selPrintInfoHandle))) : ((NSPrintInfo)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selPrintInfoHandle)))));
}
[Export("setPrintInfo:")]
set
{
NSApplication.EnsureUIThread();
if (value == null)
{
throw new ArgumentNullException("value");
}
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetPrintInfo_Handle, value.Handle);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetPrintInfo_Handle, value.Handle);
}
__mt_PrintInfo_var = value;
}
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
[Export("init")]
public NSPrintOperation()
: 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 NSPrintOperation(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 NSPrintOperation(NSObjectFlag t)
: base(t)
{
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public NSPrintOperation(IntPtr handle)
: base(handle)
{
}
[Export("printOperationWithView:printInfo:")]
public static NSPrintOperation FromView(NSView view, NSPrintInfo printInfo)
{
NSApplication.EnsureUIThread();
if (view == null)
{
throw new ArgumentNullException("view");
}
if (printInfo == null)
{
throw new ArgumentNullException("printInfo");
}
return (NSPrintOperation)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(class_ptr, selPrintOperationWithViewPrintInfo_Handle, view.Handle, printInfo.Handle));
}
[Export("PDFOperationWithView:insideRect:toData:printInfo:")]
public static NSPrintOperation PdfFromView(NSView view, CGRect rect, NSMutableData data, NSPrintInfo printInfo)
{
NSApplication.EnsureUIThread();
if (view == null)
{
throw new ArgumentNullException("view");
}
if (data == null)
{
throw new ArgumentNullException("data");
}
if (printInfo == null)
{
throw new ArgumentNullException("printInfo");
}
return (NSPrintOperation)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_CGRect_IntPtr_IntPtr(class_ptr, selPDFOperationWithViewInsideRectToDataPrintInfo_Handle, view.Handle, rect, data.Handle, printInfo.Handle));
}
[Export("PDFOperationWithView:insideRect:toPath:printInfo:")]
public static NSPrintOperation PdfFromView(NSView view, CGRect rect, string path, NSPrintInfo printInfo)
{
NSApplication.EnsureUIThread();
if (view == null)
{
throw new ArgumentNullException("view");
}
if (path == null)
{
throw new ArgumentNullException("path");
}
if (printInfo == null)
{
throw new ArgumentNullException("printInfo");
}
IntPtr intPtr = NSString.CreateNative(path);
NSPrintOperation result = (NSPrintOperation)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_CGRect_IntPtr_IntPtr(class_ptr, selPDFOperationWithViewInsideRectToPathPrintInfo_Handle, view.Handle, rect, intPtr, printInfo.Handle));
NSString.ReleaseNative(intPtr);
return result;
}
[Export("EPSOperationWithView:insideRect:toData:printInfo:")]
public static NSPrintOperation EpsFromView(NSView view, CGRect rect, NSMutableData data, NSPrintInfo printInfo)
{
NSApplication.EnsureUIThread();
if (view == null)
{
throw new ArgumentNullException("view");
}
if (data == null)
{
throw new ArgumentNullException("data");
}
if (printInfo == null)
{
throw new ArgumentNullException("printInfo");
}
return (NSPrintOperation)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_CGRect_IntPtr_IntPtr(class_ptr, selEPSOperationWithViewInsideRectToDataPrintInfo_Handle, view.Handle, rect, data.Handle, printInfo.Handle));
}
[Export("EPSOperationWithView:insideRect:toPath:printInfo:")]
public static NSPrintOperation EpsFromView(NSView view, CGRect rect, string path, NSPrintInfo printInfo)
{
NSApplication.EnsureUIThread();
if (view == null)
{
throw new ArgumentNullException("view");
}
if (path == null)
{
throw new ArgumentNullException("path");
}
if (printInfo == null)
{
throw new ArgumentNullException("printInfo");
}
IntPtr intPtr = NSString.CreateNative(path);
NSPrintOperation result = (NSPrintOperation)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_CGRect_IntPtr_IntPtr(class_ptr, selEPSOperationWithViewInsideRectToPathPrintInfo_Handle, view.Handle, rect, intPtr, printInfo.Handle));
NSString.ReleaseNative(intPtr);
return result;
}
[Export("printOperationWithView:")]
public static NSPrintOperation FromView(NSView view)
{
NSApplication.EnsureUIThread();
if (view == null)
{
throw new ArgumentNullException("view");
}
return (NSPrintOperation)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(class_ptr, selPrintOperationWithView_Handle, view.Handle));
}
[Export("PDFOperationWithView:insideRect:toData:")]
public static NSPrintOperation PdfFromView(NSView view, CGRect rect, NSMutableData data)
{
NSApplication.EnsureUIThread();
if (view == null)
{
throw new ArgumentNullException("view");
}
if (data == null)
{
throw new ArgumentNullException("data");
}
return (NSPrintOperation)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_CGRect_IntPtr(class_ptr, selPDFOperationWithViewInsideRectToData_Handle, view.Handle, rect, data.Handle));
}
[Export("EPSOperationWithView:insideRect:toData:")]
public static NSPrintOperation EpsFromView(NSView view, CGRect rect, NSMutableData data)
{
NSApplication.EnsureUIThread();
if (view == null)
{
throw new ArgumentNullException("view");
}
if (data == null)
{
throw new ArgumentNullException("data");
}
return (NSPrintOperation)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_CGRect_IntPtr(class_ptr, selEPSOperationWithViewInsideRectToData_Handle, view.Handle, rect, data.Handle));
}
[Export("runOperationModalForWindow:delegate:didRunSelector:contextInfo:")]
public virtual void RunOperationModal(NSWindow docWindow, NSObject del, Selector didRunSelector, IntPtr contextInfo)
{
NSApplication.EnsureUIThread();
if (docWindow == null)
{
throw new ArgumentNullException("docWindow");
}
if (del == null)
{
throw new ArgumentNullException("del");
}
if (didRunSelector == null)
{
throw new ArgumentNullException("didRunSelector");
}
if (IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr_IntPtr_IntPtr_IntPtr(base.Handle, selRunOperationModalForWindowDelegateDidRunSelectorContextInfo_Handle, docWindow.Handle, del.Handle, didRunSelector.Handle, contextInfo);
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr_IntPtr_IntPtr_IntPtr(base.SuperHandle, selRunOperationModalForWindowDelegateDidRunSelectorContextInfo_Handle, docWindow.Handle, del.Handle, didRunSelector.Handle, contextInfo);
}
}
[Export("runOperation")]
public virtual bool RunOperation()
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.bool_objc_msgSend(base.Handle, selRunOperationHandle);
}
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selRunOperationHandle);
}
[Export("createContext")]
public virtual NSGraphicsContext CreateContext()
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return (NSGraphicsContext)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selCreateContextHandle));
}
return (NSGraphicsContext)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selCreateContextHandle));
}
[Export("destroyContext")]
public virtual void DestroyContext()
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend(base.Handle, selDestroyContextHandle);
}
else
{
Messaging.void_objc_msgSendSuper(base.SuperHandle, selDestroyContextHandle);
}
}
[Export("deliverResult")]
public virtual bool DeliverResult()
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
return Messaging.bool_objc_msgSend(base.Handle, selDeliverResultHandle);
}
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selDeliverResultHandle);
}
[Export("cleanUpOperation")]
public virtual void CleanUpOperation()
{
NSApplication.EnsureUIThread();
if (IsDirectBinding)
{
Messaging.void_objc_msgSend(base.Handle, selCleanUpOperationHandle);
}
else
{
Messaging.void_objc_msgSendSuper(base.SuperHandle, selCleanUpOperationHandle);
}
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (base.Handle == IntPtr.Zero)
{
__mt_View_var = null;
__mt_Context_var = null;
__mt_PrintPanel_var = null;
__mt_PrintInfo_var = null;
}
}
}
}