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; }
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 CGRect(0, 6, 200, 18), false); popup.SizeToFit(); var rect = popup.Frame; popup.Frame = new CGRect(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[(int)popup.IndexOfSelectedItem]); panel.Display(); }; return(popup); }
private static NSPopUpButton CreateFileFilterPopup(IList <FileChooserFilter> filters, NSSavePanel panel) { //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); } NSPopUpButton popup = new NSPopUpButton(new RectangleF(0, 6, 200, 18), false); popup.SizeToFit(); RectangleF rect = popup.Frame; popup.Frame = new RectangleF(rect.X, rect.Y, 200, rect.Height); foreach (var filter in filters) { popup.AddItem(filter.Name); } panel.ShouldEnableUrl = GetFileFilter(filters [0]); popup.Activated += delegate { panel.ShouldEnableUrl = GetFileFilter(filters [popup.IndexOfSelectedItem]); panel.Display(); }; return(popup); }