public DialogResult ShowDialog(Window parent) { int ret; var docHandler = Document != null ? Document.Handler as PrintDocumentHandler : null; if (docHandler != null) { Control.Options |= NSPrintPanelOptions.ShowsPreview; ret = docHandler.Print(true, parent, Control) ? 1 : 0; } else { var printInfo = settings.ToNS(); if (parent != null) { var parentHandler = (IMacWindow)parent.Handler; var closeSheet = new SheetHelper(); Control.BeginSheet(printInfo, parentHandler.Control, closeSheet, new Selector("printPanelDidEnd:returnCode:contextInfo:"), IntPtr.Zero); ret = (int)NSApplication.SharedApplication.RunModalForWindow(parentHandler.Control); } else { ret = (int)Control.RunModalWithPrintInfo(printInfo); } } return(ret == 1 ? DialogResult.Ok : DialogResult.Cancel); }
public DialogResult ShowDialog(Window parent) { int ret; var printInfo = settings.ToNS(); if (parent != null) { var parentHandler = parent.Handler as IMacWindow; var closeSheet = new SheetHelper(); Control.BeginSheet(printInfo, parentHandler.Control, closeSheet, new Selector("printPanelDidEnd:returnCode:contextInfo:"), IntPtr.Zero); ret = NSApplication.SharedApplication.RunModalForWindow(parentHandler.Control); } else { ret = Control.RunModalWithPrintInfo(printInfo); } Console.WriteLine(printInfo.PrintSettings); return(ret == 1 ? DialogResult.Ok : DialogResult.Cancel); }
public bool Print(bool showPanel, Window parent, NSPrintPanel panel) { var op = NSPrintOperation.FromView(Control); if (printSettings != null) { op.PrintInfo = printSettings.ToNS(); } if (panel != null) { op.PrintPanel = panel; } op.ShowsPrintPanel = showPanel; if (parent != null) { var parentHandler = (IMacWindow)parent.Handler; var closeSheet = new SheetHelper(); op.RunOperationModal(parentHandler.Control, closeSheet, new Selector("printOperationDidRun:success:contextInfo:"), IntPtr.Zero); NSApplication.SharedApplication.RunModalForWindow(parentHandler.Control); return(closeSheet.Success); } return(op.RunOperation()); }