private void SettingsPageSelected(object sender, System.EventArgs e) { var item = sender as NSToolbarItem; LastSelectedPreferencesPage = item.Identifier; Title = item.Label; PropertyPages.SelectAt(SelectableItemIdentifiers.IndexOf(item.Identifier)); }
/// <summary> /// Mac-specific implementation /// </summary> /// <param name="pageName">Page name.</param> /// <param name="icon">The icon for the page.</param> /// <param name="page">Platform-specific page visual data.</param> partial void AddTab(string pageName, string icon, object page) { var pageController = page as NSViewController; PageControllers.Add(pageController); var tabViewItem = new NSTabViewItem(); tabViewItem.Label = pageName; tabViewItem.View = pageController.View; PropertyPages.Add(tabViewItem); NSToolbarItem item = null; if (!string.IsNullOrEmpty(icon)) { if (Toolbar.Items.Length < PropertyPages.Count) { var pageAsDependencyObject = page as IFakeDependencyObject; var id = pageAsDependencyObject.DataContext.GetType().FullName; item = new NSToolbarItem(id); item.Label = pageName.TrimEnd(new char[] { '.' }); item.Image = page.GetType().LoadImageResource(icon); var size = new CGSize(item.Image.Size.Width * 2, item.Image.Size.Height); item.MinSize = size; item.MaxSize = size; Toolbar.AddToolbarItem(item, id, Toolbar.Items.Length); } else { item = Toolbar.Items[PropertyPages.Count - 1]; } } else { item = Toolbar.Items[PropertyPages.Count - 1]; } SelectableItemIdentifiers.Add(item.Identifier); item.Activated += SettingsPageSelected; }
private string[] SelectableItems(NSToolbar toolbar) { return(SelectableItemIdentifiers.ToArray()); }