private void SwapSplitViewItem(int position, NSViewController vc)
        {
            try
            {
                if (vc != null && position < 2)
                {
                    var sv = this.SplitViewItems[position];
                    if (sv != null)
                    {
                        var splitView = new NSSplitViewItem {
                            ViewController = vc
                        };

                        this.InsertSplitViewItem(splitView, position);
                        this.RemoveSplitViewItem(sv);

                        //clean up memory
                        sv.Dispose();
                        sv = null;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message} \n\nStack Trace: {ex.StackTrace}");
            }
        }
예제 #2
0
        public void NSSplitViewItemShouldCreateFromViewController()
        {
            var viewController = new NSViewController();
            var splitViewItem  = NSSplitViewItem.FromViewController(viewController);

            Assert.IsFalse(splitViewItem == null, "NSSplitViewItemShouldCreateFromViewController - Returned null");
            Assert.IsTrue(splitViewItem.ViewController == viewController, "NSSplitViewItemShouldCreateFromViewController - ViewController property not set correctly");
        }
        public void NSSplitViewControllerShouldAddSplitViewItem()
        {
            var item = new NSSplitViewItem {
                ViewController = new NSViewController()
            };

            controller.AddSplitViewItem(item);

            Assert.IsTrue(controller.SplitViewItems.Contains(item), "NSSplitViewControllerShouldAddSplitViewItem - Failed to add item");
        }
        private void SetupCenterSplitViewItem()
        {
            NSSplitViewItem splitViewItem = new NSSplitViewItem()
            {
                ViewController   = MyAppsContentViewController,
                MinimumThickness = 12,
            };

            AddSplitViewItem(splitViewItem);
        }
        internal void ToggleTrailingSidebar()
        {
            NSSplitViewItem splitViewItem = (NSSplitViewItem)SplitViewItems.Last().Animator;

            TrailingSidebarViewWidthLayoutConstraint !.Active = false;
            NSAnimationContext.RunAnimation(changes: context => {
                context.Duration        = 3;
                splitViewItem.Collapsed = !splitViewItem.Collapsed;
            }, completionHandler: () => {
                TrailingSidebarViewWidthLayoutConstraint.Active = true;
            });
        }
        private void SetupLeadingSplitViewItem()
        {
            NSSplitViewItem splitViewItem = NSSplitViewItem.CreateContentList(LeadingContentListViewController);

            splitViewItem.CanCollapse      = true;
            splitViewItem.MaximumThickness = 400;
            AddSplitViewItem(splitViewItem);

            Disposables.Add(splitViewItem.AddObserver(KeyPath.NSSplitViewItem.Collapsed.String(), New, change => {
                NSDictionary userInfo = new NSDictionary
                                        (
                    ToggleCollapsed.UserInfoKey.IsCollapsed.String(), change.NewValue,
                    ToggleCollapsed.UserInfoKey.SegmentIndex.String(), 0
                                        );
                NotificationCenter.PostNotificationName(ToggleCollapsed.Name, null, userInfo);
            }));
        }
        public void NSSplitViewControllerShouldInsertSplitViewItem()
        {
            controller.AddSplitViewItem(new NSSplitViewItem {
                ViewController = new NSViewController()
            });
            controller.AddSplitViewItem(new NSSplitViewItem {
                ViewController = new NSViewController()
            });
            controller.AddSplitViewItem(new NSSplitViewItem {
                ViewController = new NSViewController()
            });
            var item = new NSSplitViewItem {
                ViewController = new NSViewController()
            };

            controller.InsertSplitViewItem(item, 1);

            Assert.IsTrue(controller.SplitViewItems [1] == item, "NSSplitViewControllerShouldInsertSplitViewItem - Failed to insert the item at the given position.");
            Assert.IsFalse(controller.SplitViewItems [0] == item, "NSSplitViewControllerShouldInsertSplitViewItem - Inserted the item in the wrong position.");
        }
        public void NSSplitViewControllerShouldGetSplitViewItem()
        {
            controller.AddSplitViewItem(new NSSplitViewItem {
                ViewController = new NSViewController()
            });
            controller.AddSplitViewItem(new NSSplitViewItem {
                ViewController = new NSViewController()
            });
            controller.AddSplitViewItem(new NSSplitViewItem {
                ViewController = new NSViewController()
            });
            var viewController = new NSViewController();
            var item           = new NSSplitViewItem {
                ViewController = viewController
            };

            controller.InsertSplitViewItem(item, 1);

            var retrievedItem = controller.GetSplitViewItem(viewController);

            Assert.IsTrue(retrievedItem == item, "NSSplitViewControllerShouldGetSplitViewItem - Failed to get SplitViewItem from ViewController");
        }
예제 #9
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            SourceList.Initialize();

            var samples    = new SourceListItem("Samples");
            var storyboard = NSStoryboard.FromName("Main", null);

            samples.AddItem(Resources.gettingstarted, "collectionview.png", () =>
            {
                var viewController      = storyboard.InstantiateControllerWithIdentifier("gettingstarted") as GettingStartedViewController;
                var item                = NSSplitViewItem.FromViewController(viewController);
                var splitViewController = ParentViewController as NSSplitViewController;
                splitViewController.RemoveSplitViewItem(splitViewController.SplitViewItems[1]);
                splitViewController.AddSplitViewItem(item);
            });
            samples.AddItem(Resources.columndefinition, "collectionview.png", () =>
            {
                var viewController      = storyboard.InstantiateControllerWithIdentifier("columndefinition") as ColumnDefinitionViewController;
                var item                = NSSplitViewItem.FromViewController(viewController);
                var splitViewController = ParentViewController as NSSplitViewController;
                splitViewController.RemoveSplitViewItem(splitViewController.SplitViewItems[1]);
                splitViewController.AddSplitViewItem(item);
            });
            samples.AddItem(Resources.filtering, "filter.png", () =>
            {
                var viewController      = storyboard.InstantiateControllerWithIdentifier("filtering") as FilterViewController;
                var item                = NSSplitViewItem.FromViewController(viewController);
                var splitViewController = ParentViewController as NSSplitViewController;
                splitViewController.RemoveSplitViewItem(splitViewController.SplitViewItems[1]);
                splitViewController.AddSplitViewItem(item);
            });
            samples.AddItem(Resources.grouping, "flexgrid_grouping.png", () =>
            {
                var viewController      = storyboard.InstantiateControllerWithIdentifier("grouping") as GroupingViewController;
                var item                = NSSplitViewItem.FromViewController(viewController);
                var splitViewController = ParentViewController as NSSplitViewController;
                splitViewController.RemoveSplitViewItem(splitViewController.SplitViewItems[1]);
                splitViewController.AddSplitViewItem(item);
            });
            samples.AddItem(Resources.ondemand, "flexgrid_loading.png", () =>
            {
                var viewController      = storyboard.InstantiateControllerWithIdentifier("ondemand") as OnDemandViewController;
                var item                = NSSplitViewItem.FromViewController(viewController);
                var splitViewController = ParentViewController as NSSplitViewController;
                splitViewController.RemoveSplitViewItem(splitViewController.SplitViewItems[1]);
                splitViewController.AddSplitViewItem(item);
            });
            samples.AddItem(Resources.customcells, "collectionview.png", () =>
            {
                var viewController      = storyboard.InstantiateControllerWithIdentifier("customcells") as CustomCellsViewController;
                var item                = NSSplitViewItem.FromViewController(viewController);
                var splitViewController = ParentViewController as NSSplitViewController;
                splitViewController.RemoveSplitViewItem(splitViewController.SplitViewItems[1]);
                splitViewController.AddSplitViewItem(item);
            });

            SourceList.AddItem(samples);

            // Display side list
            SourceList.ReloadData();
            SourceList.ExpandItem(null, true);
        }
예제 #10
0
        public void SetUp()
        {
            Asserts.EnsureYosemite();

            item = new NSSplitViewItem();
        }