internal static NSPopUpButton CreateFileFilterPopup (SelectFileDialogData data, NSSavePanel panel) { var filters = data.Filters; //no filtering if (filters == null || filters.Count == 0) { return null; } //filter, but no choice if (filters.Count == 1) { panel.ShouldEnableUrl = GetFileFilter (filters[0]); return null; } var popup = new NSPopUpButton (new RectangleF (0, 6, 200, 18), false); popup.SizeToFit (); var rect = popup.Frame; popup.Frame = new RectangleF (rect.X, rect.Y, 200, rect.Height); foreach (var filter in filters) popup.AddItem (filter.Name); var defaultIndex = data.DefaultFilter == null? 0 : Math.Max (0, filters.IndexOf (data.DefaultFilter)); if (defaultIndex > 0) { popup.SelectItem (defaultIndex); } panel.ShouldEnableUrl = GetFileFilter (filters[defaultIndex]); popup.Activated += delegate { panel.ShouldEnableUrl = GetFileFilter (filters[popup.IndexOfSelectedItem]); panel.Display (); }; return popup; }
static void FillViewers (List<FileViewer> currentViewers, NSPopUpButton button, NSButton closeSolutionButton, FilePath[] filenames) { button.Menu.RemoveAllItems (); currentViewers.Clear (); if (filenames == null || filenames.Length == 0) { button.Enabled = false; return; } var filename = filenames[0]; if (System.IO.Directory.Exists (filename)) return; int selected = -1; int i = 0; if (IdeApp.Services.ProjectService.IsWorkspaceItemFile (filename) || IdeApp.Services.ProjectService.IsSolutionItemFile (filename)) { button.Menu.AddItem (new NSMenuItem () { Title = GettextCatalog.GetString ("Solution Workbench") }); currentViewers.Add (null); if (closeSolutionButton != null) closeSolutionButton.State = NSCellStateValue.On; selected = 0; i++; } foreach (var vw in DisplayBindingService.GetFileViewers (filename, null)) { if (!vw.IsExternal) { button.Menu.AddItem (new NSMenuItem () { Title = vw.Title }); currentViewers.Add (vw); if (vw.CanUseAsDefault && selected == -1) selected = i; i++; } } if (selected == -1) selected = 0; button.Enabled = currentViewers.Count > 1; button.SelectItem (selected); }
static void FillViewers (List<FileViewer> currentViewers, NSPopUpButton button, FilePath[] filenames) { button.Menu.RemoveAllItems (); currentViewers.Clear (); if (filenames == null || filenames.Length == 0) { button.Enabled = false; return; } var filename = filenames[0]; if (System.IO.Directory.Exists (filename)) return; if (IdeApp.Services.ProjectService.IsWorkspaceItemFile (filename) || IdeApp.Services.ProjectService.IsSolutionItemFile (filename)) { button.Menu.AddItem (new NSMenuItem () { Title = GettextCatalog.GetString ("Solution Workbench") }); currentViewers.Add (null); } foreach (var vw in DisplayBindingService.GetFileViewers (filename, null)) { if (!vw.IsExternal) { button.Menu.AddItem (new NSMenuItem () { Title = vw.Title }); currentViewers.Add (vw); } } button.Enabled = currentViewers.Count > 1; button.SelectItem (0); }
public static void SetSelected(NSPopUpButton control, string value) { control.SelectItem (value); }