示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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());
        }