Пример #1
0
        public override bool PrepareSavePanel(NSSavePanel savePanel)
        {
            workbookSaveOperation = Session.CreateWorkbookSaveOperation();
            if (workbookSaveOperation.SupportedOptions == WorkbookSaveOptions.None)
            {
                return(true);
            }

            var stackView = new NSStackView {
                Orientation = NSUserInterfaceLayoutOrientation.Vertical,
                Spacing     = 8,
                EdgeInsets  = new NSEdgeInsets(12, 12, 12, 12)
            };

            Action <NSView> addRow = row => {
                stackView.AddView(row, NSStackViewGravity.Top);
                stackView.AddConstraint(NSLayoutConstraint.Create(
                                            row,
                                            NSLayoutAttribute.Width,
                                            NSLayoutRelation.Equal,
                                            stackView,
                                            NSLayoutAttribute.Width,
                                            1,
                                            0));
            };

            if (workbookSaveOperation.SupportedOptions.HasFlag(WorkbookSaveOptions.Archive))
            {
                addRow(CreateRow(
                           Catalog.GetString("Workbook Format:"),
                           new [] {
                    Catalog.GetString("Package Directory"),
                    Catalog.GetString("Archive")
                },
                           workbookSaveOperation.Options.HasFlag(WorkbookSaveOptions.Archive) ? 1 : 0,
                           index => {
                    switch (index)
                    {
                    case 0:
                        workbookSaveOperation.Options &= ~WorkbookSaveOptions.Archive;
                        break;

                    case 1:
                        workbookSaveOperation.Options |= WorkbookSaveOptions.Archive;
                        break;

                    default:
                        throw new IndexOutOfRangeException();
                    }
                }));
            }

            #if false
            // stubbed UI for signing is unused for now
            if (workbookSaveOperation.SupportedOptions.HasFlag(WorkbookSaveOptions.Sign))
            {
                addRow(CreateRow(
                           Catalog.GetString("Signing Key:"),
                           new [] {
                    Catalog.GetString("None")
                },
                           0,
                           index => { }));
            }
            #endif

            savePanel.AccessoryView = stackView;

            return(true);
        }