partial void ChangeViewController(NSPopUpButton sender) { nint i = sender.IndexOfSelectedItem; var vc = viewControllers.GetItem<NSViewController>((nuint)i); Task.Run(()=> {; DisplayViewController(vc); }); }
public bool Run (AddFileDialogData data) { using (var panel = new NSOpenPanel { CanChooseDirectories = false, CanChooseFiles = true, }) { MacSelectFileDialogHandler.SetCommonPanelProperties (data, panel); var popup = new NSPopUpButton (new CGRect (0, 0, 200, 28), false); var dropdownBox = new MDBox (LayoutDirection.Horizontal, 2, 0) { { new MDLabel (GettextCatalog.GetString ("Override build action:")), true }, { new MDAlignment (popup, true) { MinWidth = 200 } } }; var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup (data, panel); if (filterPopup != null) { dropdownBox.Layout (); var box = new MDBox (LayoutDirection.Vertical, 2, 2) { dropdownBox.View, filterPopup, }; box.Layout (); panel.AccessoryView = box.View; if (box.View.Superview != null) box.Layout (box.View.Superview.Frame.Size); } else { dropdownBox.Layout (); panel.AccessoryView = dropdownBox.View; } popup.AddItem (GettextCatalog.GetString ("(Default)")); popup.Menu.AddItem (NSMenuItem.SeparatorItem); foreach (var b in data.BuildActions) { if (b == "--") popup.Menu.AddItem (NSMenuItem.SeparatorItem); else popup.AddItem (b); } if (panel.RunModal () == 0) { GtkQuartz.FocusWindow (data.TransientFor ?? MessageService.RootWindow); return false; } data.SelectedFiles = MacSelectFileDialogHandler.GetSelectedFiles (panel); var idx = popup.IndexOfSelectedItem - 2; if (idx >= 0) data.OverrideAction = data.BuildActions[idx]; GtkQuartz.FocusWindow (data.TransientFor ?? MessageService.RootWindow); return true; } }
/// <summary> /// This method is called when the user picks a different object to /// receive messages using the PopUp menu /// </summary> partial void SwitchObject(NSPopUpButton sender) { // sender is the NSPopUpMenu containing Hello object choices. // We ask the sender for which menu item is selected and add one // to compensate for counting from zero. int which = sender.IndexOfSelectedItem + 1; // Based on which menu item is selected, we set the target (the receiving object) // of the helloButton to point to either hello1 or hello2. if (which == 1) { this.helloButton.Target = this.hello1; } else { this.helloButton.Target = this.hello2; } }
public static string BindSelectedTag(this NSPopUpButton nsPopUpButton) => MvxMacPropertyBinding.NSPopUpButton_SelectedTag;
public bool Run (OpenFileDialogData data) { NSSavePanel panel = null; try { if (data.Action == FileChooserAction.Save) { panel = new NSSavePanel (); } else { panel = new NSOpenPanel { CanChooseDirectories = (data.Action & FileChooserAction.FolderFlags) != 0, CanChooseFiles = (data.Action & FileChooserAction.FileFlags) != 0, }; } MacSelectFileDialogHandler.SetCommonPanelProperties (data, panel); SelectEncodingPopUpButton encodingSelector = null; NSPopUpButton viewerSelector = null; NSButton closeSolutionButton = null; var box = new MDBox (LayoutDirection.Vertical, 2, 2); List<FileViewer> currentViewers = null; var labels = new List<MDAlignment> (); if ((data.Action & FileChooserAction.FileFlags) != 0) { var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup (data, panel); if (filterPopup != null) { var filterLabel = new MDAlignment (new MDLabel (GettextCatalog.GetString ("Show files:")), true); var filterBox = new MDBox (LayoutDirection.Horizontal, 2, 0) { { filterLabel }, { new MDAlignment (filterPopup, true) { MinWidth = 200 } } }; labels.Add (filterLabel); box.Add (filterBox); } if (data.ShowEncodingSelector) { encodingSelector = new SelectEncodingPopUpButton (data.Action != FileChooserAction.Save); encodingSelector.SelectedEncodingId = data.Encoding != null ? data.Encoding.CodePage : 0; var encodingLabel = new MDAlignment (new MDLabel (GettextCatalog.GetString ("Encoding:")), true); var encodingBox = new MDBox (LayoutDirection.Horizontal, 2, 0) { { encodingLabel }, { new MDAlignment (encodingSelector, true) { MinWidth = 200 } } }; labels.Add (encodingLabel); box.Add (encodingBox); } if (data.ShowViewerSelector && panel is NSOpenPanel) { currentViewers = new List<FileViewer> (); viewerSelector = new NSPopUpButton { Enabled = false, }; if (encodingSelector != null || IdeApp.Workspace.IsOpen) { viewerSelector.Activated += delegate { var idx = viewerSelector.IndexOfSelectedItem; bool workbenchViewerSelected = idx == 0 && currentViewers [0] == null; if (encodingSelector != null) encodingSelector.Enabled = !workbenchViewerSelected; if (closeSolutionButton != null) { if (closeSolutionButton.Hidden == workbenchViewerSelected) { closeSolutionButton.Hidden = !workbenchViewerSelected; CenterAccessoryView (box); } } }; } var viewSelLabel = new MDLabel (GettextCatalog.GetString ("Open with:")); var viewSelBox = new MDBox (LayoutDirection.Horizontal, 2, 0) { { viewSelLabel, true }, { new MDAlignment (viewerSelector, true) { MinWidth = 200 } } }; if (IdeApp.Workspace.IsOpen) { closeSolutionButton = new NSButton { Title = GettextCatalog.GetString ("Close current workspace"), Hidden = true, State = NSCellStateValue.On, }; closeSolutionButton.SetButtonType (NSButtonType.Switch); closeSolutionButton.SizeToFit (); viewSelBox.Add (closeSolutionButton, true); } box.Add (viewSelBox); } } if (labels.Count > 0) { float w = labels.Max (l => l.MinWidth); foreach (var l in labels) { l.MinWidth = w; l.XAlign = LayoutAlign.Begin; } } if (box.Count > 0) { box.Layout (); panel.AccessoryView = box.View; } panel.SelectionDidChange += delegate { var selection = MacSelectFileDialogHandler.GetSelectedFiles (panel); bool slnViewerSelected = false; if (viewerSelector != null) { slnViewerSelected = FillViewers (currentViewers, viewerSelector, closeSolutionButton, selection); if (closeSolutionButton != null) closeSolutionButton.Hidden = !slnViewerSelected; CenterAccessoryView (box); } if (encodingSelector != null) encodingSelector.Enabled = !slnViewerSelected; }; if (panel.RunModal () == 0) { GtkQuartz.FocusWindow (data.TransientFor ?? MessageService.RootWindow); return false; } data.SelectedFiles = MacSelectFileDialogHandler.GetSelectedFiles (panel); if (encodingSelector != null) data.Encoding = encodingSelector.SelectedEncodingId > 0 ? Encoding.GetEncoding (encodingSelector.SelectedEncodingId) : null; if (viewerSelector != null ) { if (closeSolutionButton != null) data.CloseCurrentWorkspace = closeSolutionButton.State != NSCellStateValue.Off; data.SelectedViewer = viewerSelector.IndexOfSelectedItem >= 0 ? currentViewers[(int)viewerSelector.IndexOfSelectedItem] : null; } GtkQuartz.FocusWindow (data.TransientFor ?? MessageService.RootWindow); } catch (Exception ex) { LoggingService.LogInternalError ("Error in Open File dialog", ex); } finally { if (panel != null) panel.Dispose (); } return true; }
partial void SwitchObject(NSPopUpButton sender);
/// <summary> /// User chose a different picker style from the Picker Style popup. /// </summary> /// <param name="sender"> /// A <see cref="NSPopUpButton"/> /// </param> partial void setPickerStyle (NSPopUpButton sender) { int tag = (int)sender.SelectedCell.Tag; if (datePickerControl.DatePickerStyle != (NSDatePickerStyle)tag) { CGRect windowFrame = this.Window.Frame; CGRect boxFrame = outerBox.Frame; datePickerControl.Hidden = true; if ((NSDatePickerStyle)tag == NSDatePickerStyle.ClockAndCalendar) { // for this picker style, we need to grow the window to make room for it. CGSize size = windowFrame.Size; size.Height += shrinkGrowFacter; windowFrame.Size = size; CGPoint origin = windowFrame.Location; origin.Y -= shrinkGrowFacter; windowFrame.Location = origin; size = boxFrame.Size; size.Height += shrinkGrowFacter; boxFrame.Size = size; outerBox.Frame = boxFrame; this.Window.SetFrame (windowFrame, true, true); datePickerControl.DatePickerStyle = NSDatePickerStyle.ClockAndCalendar; // shows these last dateResult1.Hidden = false; dateResult2.Hidden = false; dateResult3.Hidden = false; dateResult4.Hidden = false; } else { NSDatePickerStyle currentPickerStyle = datePickerControl.DatePickerStyle; // shrink the window only if the current style is "clock and calendar" if (currentPickerStyle == NSDatePickerStyle.ClockAndCalendar) { dateResult1.Hidden = true; dateResult2.Hidden = true; dateResult3.Hidden = true; dateResult4.Hidden = true; CGSize size = windowFrame.Size; size.Height -= shrinkGrowFacter; windowFrame.Size = size; CGPoint origin = windowFrame.Location; origin.Y += shrinkGrowFacter; windowFrame.Location = origin; size = boxFrame.Size; size.Height -= shrinkGrowFacter; boxFrame.Size = size; outerBox.Frame = boxFrame; this.Window.SetFrame (windowFrame, true, true); } // set our desired picker style setupDatePickerControl ((NSDatePickerStyle)tag); } datePickerControl.Hidden = false; updateControls (); // force update of all UI elements and the picker itself } }
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; }
public string GetTitle(NSPopUpButton picker, nint row, nint component) { return(this.renderer.Element.Items [(int)row]); }
public bool Run (OpenFileDialogData data) { NSSavePanel panel = null; try { bool directoryMode = data.Action != Gtk.FileChooserAction.Open && data.Action != Gtk.FileChooserAction.Save; if (data.Action == Gtk.FileChooserAction.Save) { panel = new NSSavePanel (); } else { panel = new NSOpenPanel { CanChooseDirectories = directoryMode, CanChooseFiles = !directoryMode, }; } MacSelectFileDialogHandler.SetCommonPanelProperties (data, panel); SelectEncodingPopUpButton encodingSelector = null; NSPopUpButton viewerSelector = null; NSButton closeSolutionButton = null; var box = new MDBox (LayoutDirection.Vertical, 2, 2); List<FileViewer> currentViewers = null; var labels = new List<MDAlignment> (); if (!directoryMode) { var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup (data, panel); if (filterPopup != null) { var filterLabel = new MDAlignment (new MDLabel (GettextCatalog.GetString ("Show files:")), true); var filterBox = new MDBox (LayoutDirection.Horizontal, 2, 0) { { filterLabel }, { new MDAlignment (filterPopup, true) { MinWidth = 200 } } }; labels.Add (filterLabel); box.Add (filterBox); } if (data.ShowEncodingSelector) { encodingSelector = new SelectEncodingPopUpButton (data.Action != Gtk.FileChooserAction.Save); encodingSelector.SelectedEncodingId = data.Encoding != null ? data.Encoding.CodePage : 0; var encodingLabel = new MDAlignment (new MDLabel (GettextCatalog.GetString ("Encoding:")), true); var encodingBox = new MDBox (LayoutDirection.Horizontal, 2, 0) { { encodingLabel }, { new MDAlignment (encodingSelector, true) { MinWidth = 200 } } }; labels.Add (encodingLabel); box.Add (encodingBox); } if (data.ShowViewerSelector && panel is NSOpenPanel) { currentViewers = new List<FileViewer> (); viewerSelector = new NSPopUpButton { Enabled = false, }; if (encodingSelector != null) { viewerSelector.Activated += delegate { var idx = viewerSelector.IndexOfSelectedItem; encodingSelector.Enabled = ! (idx == 0 && currentViewers [0] == null); }; } var viewSelLabel = new MDLabel (GettextCatalog.GetString ("Open with:")); var viewSelBox = new MDBox (LayoutDirection.Horizontal, 2, 0) { { viewSelLabel, true }, { new MDAlignment (viewerSelector, true) { MinWidth = 200 } } }; if (IdeApp.Workspace.IsOpen) { closeSolutionButton = new NSButton { Title = GettextCatalog.GetString ("Close current workspace"), Hidden = true, State = NSCellStateValue.On, }; closeSolutionButton.SetButtonType (NSButtonType.Switch); closeSolutionButton.SizeToFit (); viewSelBox.Add (closeSolutionButton, true); } box.Add (viewSelBox); } } if (labels.Count > 0) { float w = labels.Max (l => l.MinWidth); foreach (var l in labels) { l.MinWidth = w; l.XAlign = LayoutAlign.Begin; } } if (box.Count > 0) { box.Layout (); panel.AccessoryView = box.View; } panel.SelectionDidChange += delegate { var selection = MacSelectFileDialogHandler.GetSelectedFiles (panel); bool slnViewerSelected = false; if (viewerSelector != null) { FillViewers (currentViewers, viewerSelector, closeSolutionButton, selection); if (currentViewers.Count == 0 || currentViewers [0] != null) { if (closeSolutionButton != null) closeSolutionButton.Hidden = true; slnViewerSelected = false; } else { if (closeSolutionButton != null) closeSolutionButton.Hidden = false; slnViewerSelected = true; } box.Layout (); //re-center the accessory view in its parent, Cocoa does this for us initially and after //resizing the window, but we need to do it again after altering its layout var superFrame = box.View.Superview.Frame; var frame = box.View.Frame; //not sure why it's ceiling, but this matches the Cocoa layout frame.X = (float)Math.Ceiling ((superFrame.Width - frame.Width) / 2); frame.Y = (float)Math.Ceiling ((superFrame.Height - frame.Height) / 2); box.View.Frame = frame; } if (encodingSelector != null) encodingSelector.Enabled = !slnViewerSelected; }; if (panel.RunModal () == 0) { GtkQuartz.FocusWindow (data.TransientFor ?? MessageService.RootWindow); return false; } data.SelectedFiles = MacSelectFileDialogHandler.GetSelectedFiles (panel); if (encodingSelector != null) data.Encoding = encodingSelector.SelectedEncodingId > 0 ? Encoding.GetEncoding (encodingSelector.SelectedEncodingId) : null; if (viewerSelector != null ) { if (closeSolutionButton != null) data.CloseCurrentWorkspace = closeSolutionButton.State != NSCellStateValue.Off; data.SelectedViewer = viewerSelector.IndexOfSelectedItem >= 0 ? currentViewers[(int)viewerSelector.IndexOfSelectedItem] : null; } GtkQuartz.FocusWindow (data.TransientFor ?? MessageService.RootWindow); } catch (Exception ex) { LoggingService.LogInternalError ("Error in Open File dialog", ex); } finally { if (panel != null) panel.Dispose (); } return true; }
public bool Run(OpenFileDialogData data) { NSSavePanel panel = null; try { bool directoryMode = data.Action != Gtk.FileChooserAction.Open && data.Action != Gtk.FileChooserAction.Save; if (data.Action == Gtk.FileChooserAction.Save) { panel = new NSSavePanel(); } else { panel = new NSOpenPanel { CanChooseDirectories = directoryMode, CanChooseFiles = !directoryMode, }; } MacSelectFileDialogHandler.SetCommonPanelProperties(data, panel); SelectEncodingPopUpButton encodingSelector = null; NSPopUpButton viewerSelector = null; NSButton closeSolutionButton = null; var box = new MDBox(LayoutDirection.Vertical, 2, 2); List <FileViewer> currentViewers = null; var labels = new List <MDAlignment> (); if (!directoryMode) { var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup(data, panel); if (filterPopup != null) { var filterLabel = new MDAlignment(new MDLabel(GettextCatalog.GetString("Show files:")), true); var filterBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { filterLabel }, { new MDAlignment(filterPopup, true) { MinWidth = 200 } } }; labels.Add(filterLabel); box.Add(filterBox); } if (data.ShowEncodingSelector) { encodingSelector = new SelectEncodingPopUpButton(data.Action != Gtk.FileChooserAction.Save); encodingSelector.SelectedEncodingId = data.Encoding != null ? data.Encoding.CodePage : 0; var encodingLabel = new MDAlignment(new MDLabel(GettextCatalog.GetString("Encoding:")), true); var encodingBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { encodingLabel }, { new MDAlignment(encodingSelector, true) { MinWidth = 200 } } }; labels.Add(encodingLabel); box.Add(encodingBox); } if (data.ShowViewerSelector && panel is NSOpenPanel) { currentViewers = new List <FileViewer> (); viewerSelector = new NSPopUpButton { Enabled = false, }; if (encodingSelector != null) { viewerSelector.Activated += delegate { var idx = viewerSelector.IndexOfSelectedItem; encodingSelector.Enabled = !(idx == 0 && currentViewers [0] == null); }; } var viewSelLabel = new MDLabel(GettextCatalog.GetString("Open with:")); var viewSelBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { viewSelLabel, true }, { new MDAlignment(viewerSelector, true) { MinWidth = 200 } } }; if (IdeApp.Workspace.IsOpen) { closeSolutionButton = new NSButton { Title = GettextCatalog.GetString("Close current workspace"), Hidden = true, State = NSCellStateValue.On, }; closeSolutionButton.SetButtonType(NSButtonType.Switch); closeSolutionButton.SizeToFit(); viewSelBox.Add(closeSolutionButton, true); } box.Add(viewSelBox); } } if (labels.Count > 0) { float w = labels.Max(l => l.MinWidth); foreach (var l in labels) { l.MinWidth = w; l.XAlign = LayoutAlign.Begin; } } if (box.Count > 0) { box.Layout(); panel.AccessoryView = box.View; } panel.SelectionDidChange += delegate { var selection = MacSelectFileDialogHandler.GetSelectedFiles(panel); bool slnViewerSelected = false; if (viewerSelector != null) { FillViewers(currentViewers, viewerSelector, closeSolutionButton, selection); if (currentViewers.Count == 0 || currentViewers [0] != null) { if (closeSolutionButton != null) { closeSolutionButton.Hidden = true; } slnViewerSelected = false; } else { if (closeSolutionButton != null) { closeSolutionButton.Hidden = false; } slnViewerSelected = true; } box.Layout(); //re-center the accessory view in its parent, Cocoa does this for us initially and after //resizing the window, but we need to do it again after altering its layout var superView = box.View.Superview; if (superView != null) { var superFrame = superView.Frame; var frame = box.View.Frame; //not sure why it's ceiling, but this matches the Cocoa layout frame.X = (float)Math.Ceiling((superFrame.Width - frame.Width) / 2); frame.Y = (float)Math.Ceiling((superFrame.Height - frame.Height) / 2); box.View.Frame = frame; } } if (encodingSelector != null) { encodingSelector.Enabled = !slnViewerSelected; } }; if (panel.RunModal() == 0) { GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); return(false); } data.SelectedFiles = MacSelectFileDialogHandler.GetSelectedFiles(panel); if (encodingSelector != null) { data.Encoding = encodingSelector.SelectedEncodingId > 0 ? Encoding.GetEncoding(encodingSelector.SelectedEncodingId) : null; } if (viewerSelector != null) { if (closeSolutionButton != null) { data.CloseCurrentWorkspace = closeSolutionButton.State != NSCellStateValue.Off; } data.SelectedViewer = viewerSelector.IndexOfSelectedItem >= 0 ? currentViewers[(int)viewerSelector.IndexOfSelectedItem] : null; } GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); } catch (Exception ex) { LoggingService.LogInternalError("Error in Open File dialog", ex); } finally { if (panel != null) { panel.Dispose(); } } return(true); }
public NSView CreateView(ITableRow tableRow, string columnIdentifier) { var cellValue = tableRow.GetValue(columnIdentifier); var cell = tableRow.GetCell(columnIdentifier); if (!string.IsNullOrEmpty(cell.Text)) { cellValue.Text = cell.Text; } if (!string.IsNullOrEmpty(cell.Tooltip)) { cellValue.Tooltip = cell.Tooltip; } switch (cell.TypeCell) { case TypeCell.TextField: var tfCell = (ITextFieldCell)cell; var tf = new NSTextField(); tf.BackgroundColor = NSColor.Clear; tf.LineBreakMode = NSLineBreakMode.TruncatingTail; tf.Bordered = false; tf.Editable = tfCell.Editable; tf.Selectable = tfCell.Selectable; tf.StringValue = cellValue.Text; tf.ToolTip = cellValue.Tooltip; return(tf); case TypeCell.TextView: var txtvCell = (ITextViewCell)cell; var txtv = new NSTextView(); txtv.BackgroundColor = NSColor.Clear; txtv.Editable = txtvCell.Editable; txtv.Selectable = txtvCell.Selectable; txtv.Value = cellValue.Text; txtv.ToolTip = cellValue.Tooltip; return(txtv); case TypeCell.Button: var btnCell = (IButtonCell)cell; //var btn = NSButton.CreateButton(btnCell.Text, btnCell.Activated); var btnView = new NSButton(new CGRect(0, 0, 80, 16)); btnView.SetButtonType(NSButtonType.MomentaryPushIn); btnView.BezelStyle = NSBezelStyle.Rounded; btnView.Bordered = true; btnView.Title = btnCell.Text; btnView.ToolTip = btnCell.Tooltip; btnView.Enabled = btnCell.Enabled; btnView.Activated += (sender, e) => btnCell.Activated(); //btnView.Image = return(btnView); case TypeCell.PopUp: var btnPCell = (IPopUpButtonCell)cell; //var btnP = NSPopUpButton.CreateButton(btnPCell.Text, btnPCell.Activated); var btnPView = new NSPopUpButton(new CGRect(0, 0, 80, 16), true); btnPView.SetButtonType(NSButtonType.MomentaryPushIn); btnPView.BezelStyle = NSBezelStyle.Rounded; btnPView.PullsDown = false; btnPView.ToolTip = btnPCell.Tooltip; btnPView.Enabled = btnPCell.Enabled; btnPView.Menu.RemoveAllItems(); foreach (var title in btnPCell.MenuTitles) { btnPView.AddItem(title); } btnPView.Activated += (sender, e) => { btnPCell.IndexOfSelectedItem = (int)btnPView.IndexOfSelectedItem; if (btnPCell.SelectItem != null) { btnPCell.SelectItem((int)btnPView.IndexOfSelectedItem); } else { btnPCell.Activated(); } }; return(btnPView); case TypeCell.Checkbox: var ckbCell = (ICheckboxCell)cell; var tblCellView = new NSTableCellView(); tblCellView.TextField = new NSTextField(new CGRect(20, 0, 400, 16)); //tblCellView.Identifier = CellIdentifier; tblCellView.TextField.BackgroundColor = NSColor.Clear; tblCellView.TextField.Bordered = false; tblCellView.TextField.Editable = false; tblCellView.TextField.Selectable = false; tblCellView.TextField.StringValue = cellValue.Text; tblCellView.TextField.ToolTip = cellValue.Tooltip; tblCellView.AddSubview(tblCellView.TextField); var checkBox = new NSButton(new CGRect(5, 0, 16, 16)); checkBox.SetButtonType(NSButtonType.Switch); checkBox.Enabled = ckbCell.Enabled; checkBox.AllowsMixedState = ckbCell.AllowMixedState; if (ckbCell.State == null) { checkBox.State = NSCellStateValue.Mixed; } else if (ckbCell.State == true) { checkBox.State = NSCellStateValue.On; } else if (ckbCell.State == false) { checkBox.State = NSCellStateValue.Off; } checkBox.Enabled = ckbCell.Enabled; checkBox.Activated += (sender, e) => { var ckb = (NSButton)sender; bool?state = null; if (ckb.State == NSCellStateValue.Mixed) { state = null; } else if (ckb.State == NSCellStateValue.On) { state = true; } else if (ckb.State == NSCellStateValue.Off) { state = false; } ckbCell.State = state; if (ckbCell.StateChanged != null) { ckbCell.StateChanged(state); } else { ckbCell.Activated(); } }; tblCellView.AddSubview(checkBox); return(tblCellView); } throw new System.NotImplementedException("Do not have implementation"); }
public bool Run(OpenFileDialogData data) { NSSavePanel panel = null; try { if (data.Action == FileChooserAction.Save) { panel = new NSSavePanel(); } else { panel = new NSOpenPanel { CanChooseDirectories = (data.Action & FileChooserAction.FolderFlags) != 0, CanChooseFiles = (data.Action & FileChooserAction.FileFlags) != 0, }; } bool pathAlreadySet = false; panel.DidChangeToDirectory += (sender, e) => { var directoryPath = e.NewDirectoryUrl?.AbsoluteString; if (string.IsNullOrEmpty(directoryPath)) { return; } var selectedPath = data.OnDirectoryChanged(this, directoryPath); if (selectedPath.IsNull) { return; } data.SelectedFiles = new FilePath [] { selectedPath }; pathAlreadySet = true; // We need to call Cancel on 1ms delay so it's executed after DidChangeToDirectory event handler is finished // this is needed because it's possible that DidChangeToDirectory event is executed while dialog is opening // in that case calling .Cancel() leaves dialog in weird state... // Fun fact: DidChangeToDirectory event is called from Open on 10.12 but not on 10.13 System.Threading.Tasks.Task.Delay(1).ContinueWith(delegate { panel.Cancel(panel); }, Runtime.MainTaskScheduler); }; MacSelectFileDialogHandler.SetCommonPanelProperties(data, panel); SelectEncodingPopUpButton encodingSelector = null; NSPopUpButton viewerSelector = null; NSButton closeSolutionButton = null; var box = new MDBox(LayoutDirection.Vertical, 2, 2); List <FileViewer> currentViewers = null; var labels = new List <MDAlignment> (); if ((data.Action & FileChooserAction.FileFlags) != 0) { var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup(data, panel); if (filterPopup != null) { var filterLabel = new MDAlignment(new MDLabel(GettextCatalog.GetString("Show files:")), true); var filterBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { filterLabel }, { new MDAlignment(filterPopup, true) { MinWidth = 200 } } }; labels.Add(filterLabel); box.Add(filterBox); } if (data.ShowEncodingSelector) { encodingSelector = new SelectEncodingPopUpButton(data.Action != FileChooserAction.Save); encodingSelector.SelectedEncodingId = data.Encoding != null ? data.Encoding.CodePage : 0; var encodingLabel = new MDAlignment(new MDLabel(GettextCatalog.GetString("Encoding:")), true); var encodingBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { encodingLabel }, { new MDAlignment(encodingSelector, true) { MinWidth = 200 } } }; labels.Add(encodingLabel); box.Add(encodingBox); } if (data.ShowViewerSelector && panel is NSOpenPanel) { currentViewers = new List <FileViewer> (); viewerSelector = new NSPopUpButton { Enabled = false, }; if (encodingSelector != null || IdeApp.Workspace.IsOpen) { viewerSelector.Activated += delegate { var idx = viewerSelector.IndexOfSelectedItem; bool workbenchViewerSelected = idx == 0 && currentViewers [0] == null; if (encodingSelector != null) { encodingSelector.Enabled = !workbenchViewerSelected; } if (closeSolutionButton != null) { if (closeSolutionButton.Hidden == workbenchViewerSelected) { closeSolutionButton.Hidden = !workbenchViewerSelected; CenterAccessoryView(box); } } }; } var viewSelLabel = new MDLabel(GettextCatalog.GetString("Open with:")); var viewSelBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { viewSelLabel, true }, { new MDAlignment(viewerSelector, true) { MinWidth = 200 } } }; if (IdeApp.Workspace.IsOpen) { closeSolutionButton = new NSButton { Title = GettextCatalog.GetString("Close current workspace"), Hidden = true, State = NSCellStateValue.On, }; closeSolutionButton.SetButtonType(NSButtonType.Switch); closeSolutionButton.SizeToFit(); viewSelBox.Add(closeSolutionButton, true); } box.Add(viewSelBox); } } if (labels.Count > 0) { float w = labels.Max(l => l.MinWidth); foreach (var l in labels) { l.MinWidth = w; l.XAlign = LayoutAlign.Begin; } } if (box.Count > 0) { box.Layout(); panel.AccessoryView = box.View; } panel.SelectionDidChange += delegate { var selection = MacSelectFileDialogHandler.GetSelectedFiles(panel); bool slnViewerSelected = false; if (viewerSelector != null) { slnViewerSelected = FillViewers(currentViewers, viewerSelector, closeSolutionButton, selection); if (closeSolutionButton != null) { closeSolutionButton.Hidden = !slnViewerSelected; } CenterAccessoryView(box); } if (encodingSelector != null) { encodingSelector.Enabled = !slnViewerSelected; } }; if (panel.RunModal() == 0 && !pathAlreadySet) { GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); return(false); } if (!pathAlreadySet) { data.SelectedFiles = MacSelectFileDialogHandler.GetSelectedFiles(panel); } if (encodingSelector != null) { data.Encoding = encodingSelector.SelectedEncodingId > 0 ? Encoding.GetEncoding(encodingSelector.SelectedEncodingId) : null; } if (viewerSelector != null) { if (closeSolutionButton != null) { data.CloseCurrentWorkspace = closeSolutionButton.State != NSCellStateValue.Off; } data.SelectedViewer = viewerSelector.IndexOfSelectedItem >= 0 ? currentViewers[(int)viewerSelector.IndexOfSelectedItem] : null; } GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); } catch (Exception ex) { LoggingService.LogInternalError("Error in Open File dialog", ex); } finally { if (panel != null) { panel.Dispose(); } } return(true); }
public override void AwakeFromNib() { base.AwakeFromNib(); #region first two buttons // add the image menu item back to the first menu item NSMenuItem menuItem = new NSMenuItem("", new Selector(""), ""); menuItem.Image = NSImage.ImageNamed("moof.png"); buttonMenu.InsertItem(menuItem, 0); nibBasedPopUpDown.Menu = buttonMenu; nibBasedPopUpRight.Menu = buttonMenu; // create the pull down button pointing DOWN CGRect buttonFrame = placeHolder1.Frame; codeBasedPopUpDown = new NSPopUpButton(buttonFrame, true); ((NSPopUpButtonCell)codeBasedPopUpDown.Cell).ArrowPosition = NSPopUpArrowPosition.Bottom; ((NSPopUpButtonCell)codeBasedPopUpDown.Cell).BezelStyle = NSBezelStyle.ThickSquare; codeBasedPopUpDown.Menu = buttonMenu; popupBox.AddSubview(codeBasedPopUpDown); placeHolder1.RemoveFromSuperview(); // create the pull down button pointing RIGHT buttonFrame = placeHolder2.Frame; codeBasedPopUpRight = new NSPopUpButton(buttonFrame, true); ((NSPopUpButtonCell)codeBasedPopUpRight.Cell).ArrowPosition = NSPopUpArrowPosition.Bottom; ((NSPopUpButtonCell)codeBasedPopUpRight.Cell).PreferredEdge = NSRectEdge.MaxXEdge; ((NSPopUpButtonCell)codeBasedPopUpRight.Cell).BezelStyle = NSBezelStyle.Circular; codeBasedPopUpRight.Menu = buttonMenu; ((NSPopUpButtonCell)codeBasedPopUpRight.Cell).HighlightsBy = (nint)(int)NSCellStyleMask.ChangeGrayCell; popupBox.AddSubview(codeBasedPopUpRight); placeHolder2.RemoveFromSuperview(); #endregion #region second two buttons // create the rounded button buttonFrame = placeHolder3.Frame; // note: this button we want alternate title and image, so we need to call this: codeBasedButtonRound = new NSButton(buttonFrame) { Title = "NSButton", AlternateTitle = "(pressed)", Image = NSImage.ImageNamed("moof.png"), AlternateImage = NSImage.ImageNamed("moof2.png"), BezelStyle = NSBezelStyle.RegularSquare, ImagePosition = NSCellImagePosition.ImageLeft, Font = NSFont.SystemFontOfSize(NSFont.SmallSystemFontSize), Sound = NSSound.FromName("Pop"), }; // Two choices, either use the .NET event system: // foo.Activated += delegate {..} or += SomeMethod // // Or you can use the Target = this Action = new Selector ("buttonAction:") // pattern codeBasedButtonRound.Activated += delegate { buttonAction(null); }; codeBasedButtonRound.SetButtonType(NSButtonType.MomentaryChange); codeBasedButtonRound.Cell.Alignment = NSTextAlignment.Left; buttonBox.AddSubview(codeBasedButtonRound); placeHolder3.RemoveFromSuperview(); // we are done with the place holder, remove it from the window // create the square button buttonFrame = placeHolder4.Frame; codeBasedButtonSquare = new NSButton(buttonFrame) { Title = "NSButton", BezelStyle = NSBezelStyle.ShadowlessSquare, ImagePosition = NSCellImagePosition.ImageLeft, Image = NSImage.ImageNamed("moof.png"), Font = NSFont.SystemFontOfSize(NSFont.SmallSystemFontSize), Sound = NSSound.FromName("Pop"), }; codeBasedButtonSquare.Activated += delegate { buttonAction(null); }; codeBasedButtonSquare.Cell.Alignment = NSTextAlignment.Left; buttonBox.AddSubview(codeBasedButtonSquare); placeHolder4.RemoveFromSuperview(); // we are done with the place holder, remove it from the window #endregion #region segmented control buttonFrame = placeHolder5.Frame; codeBasedSegmentControl = new NSSegmentedControl(buttonFrame) { SegmentCount = 3, Target = this, Action = new Selector("segmentAction:") }; codeBasedSegmentControl.SetWidth(nibBasedSegControl.GetWidth(0), 0); codeBasedSegmentControl.SetWidth(nibBasedSegControl.GetWidth(1), 1); codeBasedSegmentControl.SetWidth(nibBasedSegControl.GetWidth(2), 2); codeBasedSegmentControl.SetLabel("One", 0); codeBasedSegmentControl.SetLabel("Two", 1); codeBasedSegmentControl.SetLabel("Three", 2); segmentBox.AddSubview(codeBasedSegmentControl); placeHolder5.RemoveFromSuperview(); // use a menu to the first segment (applied to both nib-based and code-based) codeBasedSegmentControl.SetMenu(buttonMenu, 0); nibBasedSegControl.SetMenu(buttonMenu, 0); // add icons to each segment (applied to both nib-based and code-based) NSImage segmentIcon1 = NSWorkspace.SharedWorkspace.IconForFileType(NSFileTypeForHFSTypeCode.ComputerIcon); segmentIcon1.Size = new CGSize(16, 16); nibBasedSegControl.SetImage(segmentIcon1, 0); codeBasedSegmentControl.SetImage(segmentIcon1, 0); NSImage segmentIcon2 = NSWorkspace.SharedWorkspace.IconForFileType(NSFileTypeForHFSTypeCode.DesktopIcon); segmentIcon2.Size = new CGSize(16, 16); nibBasedSegControl.SetImage(segmentIcon2, 1); codeBasedSegmentControl.SetImage(segmentIcon2, 1); NSImage segmentIcon3 = NSWorkspace.SharedWorkspace.IconForFileType(NSFileTypeForHFSTypeCode.FinderIcon); segmentIcon3.Size = new CGSize(16, 16); nibBasedSegControl.SetImage(segmentIcon3, 2); codeBasedSegmentControl.SetImage(segmentIcon3, 2); #endregion #region level indicator buttonFrame = placeHolder8.Frame; codeBasedIndicator = new NSLevelIndicator(buttonFrame) { MaxValue = 10, MajorTickMarkCount = 4, TickMarkCount = 7, WarningValue = 5, CriticalValue = 8, Action = new Selector("levelAction:") }; codeBasedIndicator.Cell.LevelIndicatorStyle = NSLevelIndicatorStyle.DiscreteCapacity; indicatorBox.AddSubview(codeBasedIndicator); placeHolder8.RemoveFromSuperview(); #endregion }
public DirectoryController(string path) : base(NSObject.AllocAndInitInstance("DirectoryController")) { m_boss = ObjectModel.Create("DirectoryEditor"); m_path = path; m_dirStyler = new DirectoryItemStyler(path); Unused.Value = NSBundle.loadNibNamed_owner(NSString.Create("directory-editor"), this); m_table = new IBOutlet<NSOutlineView>(this, "table").Value; m_targets = new IBOutlet<NSPopUpButton>(this, "targets").Value; m_prefs = new IBOutlet<DirPrefsController>(this, "prefsController"); m_name = System.IO.Path.GetFileName(path); window().setTitle(NSString.Create(m_name)); Unused.Value = window().setFrameAutosaveName(NSString.Create(window().title().ToString() + " editor")); window().makeKeyAndOrderFront(this); m_table.setDoubleAction("doubleClicked:"); m_table.setTarget(this); var wind = m_boss.Get<IWindow>(); wind.Window = window(); m_builder = new GenericBuilder(path); m_targets.removeAllItems(); if (m_builder.CanBuild) { var handler = m_boss.Get<IMenuHandler>(); handler.Register(this, 50, this.DoBuild, this.DoBuildEnabled); handler.Register(this, 51, this.DoBuildVariables, this.DoHaveBuilder); handler.Register(this, 52, this.DoBuildFlags, this.DoHaveBuilder); handler.Register(this, 599, () => m_builder.Cancel(), this.DoCancelEnabled); handler.Register(this, 1000, this.DoShowPrefs); DoLoadPrefs(path); Broadcaster.Register("global ignores changed", this); Broadcaster.Register("finished building", this); DoUpdateTargets(string.Empty, null); } else DoLoadPrefs(path); m_root = new FolderItem(m_path, m_dirStyler, this); m_table.reloadData(); m_watcher = DoCreateWatcher(path); if (m_watcher != null) m_watcher.Changed += this.DoDirChanged; // m_watcher = new FileSystemWatcher(path); // m_watcher.IncludeSubdirectories = true; // m_watcher.Created += this.DoDirChanged; // m_watcher.Deleted += this.DoDirChanged; // m_watcher.Renamed += this.DoDirChanged; foreach (IOpened open in m_boss.GetRepeated<IOpened>()) { open.Opened(); } Broadcaster.Invoke("opened directory", m_boss); ActiveObjects.Add(this); }
public void targetChanged(NSPopUpButton sender) { m_builder.Target = sender.titleOfSelectedItem().ToString(); DoSavePrefs(); }
public void UpdateChooser(string [] folders) { using (var a = new NSAutoreleasePool()) { if (folders == null) { folders = Controller.Folders; } if (this.popup_button != null) { this.popup_button.RemoveFromSuperview(); } this.popup_button = new NSPopUpButton() { Frame = new RectangleF(480 - 156 - 8, 640 - 31 - 24, 156, 26), PullsDown = false }; this.popup_button.Cell.ControlSize = NSControlSize.Small; this.popup_button.Font = NSFontManager.SharedFontManager.FontWithFamily ("Lucida Grande", NSFontTraitMask.Condensed, 0, NSFont.SmallSystemFontSize); this.popup_button.AddItem("Summary"); this.popup_button.Menu.AddItem(NSMenuItem.SeparatorItem); int row = 2; foreach (string folder in folders) { this.popup_button.AddItem(folder); if (folder.Equals(Controller.SelectedFolder)) { this.popup_button.SelectItem(row); } row++; } this.popup_button.AddItems(folders); this.popup_button.Activated += delegate { using (var b = new NSAutoreleasePool()) { InvokeOnMainThread(delegate { if (this.popup_button.IndexOfSelectedItem == 0) { Controller.SelectedFolder = null; } else { Controller.SelectedFolder = this.popup_button.SelectedItem.Title; } }); } }; ContentView.AddSubview(this.popup_button); } }
public bool Run(OpenFileDialogData data) { NSSavePanel panel = null; try { bool directoryMode = data.Action != Gtk.FileChooserAction.Open && data.Action != Gtk.FileChooserAction.Save; if (data.Action == Gtk.FileChooserAction.Save) { panel = new NSSavePanel(); } else { panel = new NSOpenPanel() { CanChooseDirectories = directoryMode, CanChooseFiles = !directoryMode, }; } MacSelectFileDialogHandler.SetCommonPanelProperties(data, panel); SelectEncodingPopUpButton encodingSelector = null; NSPopUpButton viewerSelector = null; NSButton closeSolutionButton = null; var box = new MDBox(LayoutDirection.Vertical, 2, 2); List <FileViewer> currentViewers = null; List <MDAlignment> labels = new List <MDAlignment> (); if (!directoryMode) { var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup(data, panel); var filterLabel = new MDAlignment(new MDLabel(GettextCatalog.GetString("Show files:")), true); var filterBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { filterLabel }, { new MDAlignment(filterPopup, true) { MinWidth = 200 } } }; labels.Add(filterLabel); box.Add(filterBox); if (data.ShowEncodingSelector) { encodingSelector = new SelectEncodingPopUpButton(data.Action != Gtk.FileChooserAction.Save); encodingSelector.SelectedEncodingId = data.Encoding; var encodingLabel = new MDAlignment(new MDLabel(GettextCatalog.GetString("Encoding:")), true); var encodingBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { encodingLabel }, { new MDAlignment(encodingSelector, true) { MinWidth = 200 } } }; labels.Add(encodingLabel); box.Add(encodingBox); } if (data.ShowViewerSelector && panel is NSOpenPanel) { currentViewers = new List <FileViewer> (); viewerSelector = new NSPopUpButton() { Enabled = false, }; if (encodingSelector != null) { viewerSelector.Activated += delegate { var idx = viewerSelector.IndexOfSelectedItem; encodingSelector.Enabled = !(idx == 0 && currentViewers[0] == null); }; } var viewSelLabel = new MDLabel(GettextCatalog.GetString("Open with:")); var viewSelBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { viewSelLabel, true }, { new MDAlignment(viewerSelector, true) { MinWidth = 200 } } }; if (IdeApp.Workspace.IsOpen) { closeSolutionButton = new NSButton() { Title = GettextCatalog.GetString("Close current workspace"), Hidden = true, State = NSCellStateValue.On, }; closeSolutionButton.SetButtonType(NSButtonType.Switch); closeSolutionButton.SizeToFit(); viewSelBox.Add(closeSolutionButton, true); } box.Add(viewSelBox); } } if (labels.Count > 0) { float w = labels.Max(l => l.MinWidth); foreach (var l in labels) { l.MinWidth = w; l.XAlign = LayoutAlign.Begin; } } if (box.Count > 0) { box.Layout(); panel.AccessoryView = box.View; box.Layout(box.View.Superview.Frame.Size); } panel.SelectionDidChange += delegate(object sender, EventArgs e) { var selection = MacSelectFileDialogHandler.GetSelectedFiles(panel); bool slnViewerSelected = false; if (viewerSelector != null) { FillViewers(currentViewers, viewerSelector, selection); if (currentViewers.Count == 0 || currentViewers[0] != null) { if (closeSolutionButton != null) { closeSolutionButton.Hidden = true; } slnViewerSelected = false; } else { if (closeSolutionButton != null) { closeSolutionButton.Hidden = false; } slnViewerSelected = true; } box.Layout(box.View.Superview.Frame.Size); } if (encodingSelector != null) { encodingSelector.Enabled = !slnViewerSelected; } }; try { var action = MacSelectFileDialogHandler.RunPanel(data, panel); if (!action) { GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); return(false); } } catch (Exception ex) { System.Console.WriteLine(ex); throw; } data.SelectedFiles = MacSelectFileDialogHandler.GetSelectedFiles(panel); if (encodingSelector != null) { data.Encoding = encodingSelector.SelectedEncodingId; } if (viewerSelector != null) { if (closeSolutionButton != null) { data.CloseCurrentWorkspace = closeSolutionButton.State != NSCellStateValue.Off; } data.SelectedViewer = currentViewers[viewerSelector.IndexOfSelectedItem]; } GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); return(true); } finally { if (panel != null) { panel.Dispose(); } } }
public static void SetSelected(NSPopUpButton control, string value) { control.SelectItem(value); }
partial void CashflowIDChosen(NSPopUpButton sender) { clsCashflow cf = new clsCashflow(Int32.Parse(CashflowIDPopUp.SelectedItem.Title)); this.dateChanger.DateValue = (NSDate)(cf.PayDate().AddDays(7).ToUniversalTime()); }
protected override IEnumerable <(NSControl control, string text)> OnGetAccessoryBoxControls(OpenFileDialogData data, NSSavePanel panel, out SaveState saveState) { List <(NSControl, string)> controls = new List <(NSControl, string)> (); SelectEncodingPopUpButton encodingSelector = null; NSPopUpButton viewerSelector = null; NSButton closeSolutionButton = null; List <FileViewer> currentViewers = null; if (data.ShowEncodingSelector) { encodingSelector = new SelectEncodingPopUpButton(data.Action != FileChooserAction.Save) { SelectedEncodingId = data.Encoding != null ? data.Encoding.CodePage : 0 }; controls.Add((encodingSelector, GettextCatalog.GetString("Encoding:"))); } if (data.ShowViewerSelector && panel is NSOpenPanel) { currentViewers = new List <FileViewer> (); viewerSelector = new NSPopUpButton { Enabled = false, }; if (encodingSelector != null || IdeApp.Workspace.IsOpen) { viewerSelector.Activated += delegate { var idx = viewerSelector.IndexOfSelectedItem; bool workbenchViewerSelected = idx == 0 && currentViewers [0] == null; if (encodingSelector != null) { encodingSelector.Enabled = !workbenchViewerSelected; } if (closeSolutionButton != null) { if (closeSolutionButton.Enabled != workbenchViewerSelected) { closeSolutionButton.Enabled = workbenchViewerSelected; closeSolutionButton.State = workbenchViewerSelected ? NSCellStateValue.On : NSCellStateValue.Off; } } }; } if (IdeApp.Workspace.IsOpen) { closeSolutionButton = new NSButton { Title = GettextCatalog.GetString("Close current workspace"), Enabled = false, State = NSCellStateValue.Off, }; closeSolutionButton.SetButtonType(NSButtonType.Switch); closeSolutionButton.SizeToFit(); controls.Add((closeSolutionButton, string.Empty)); } controls.Add((viewerSelector, GettextCatalog.GetString("Open With:"))); } saveState = new SaveState(encodingSelector, viewerSelector, closeSolutionButton, currentViewers); return(controls); }
partial void ChangeViewController(NSPopUpButton sender);
partial void TestProjectDropdownChanged(NSPopUpButton sender) { presenter.TestProjectSelectionChanged(); SelectedTestProjectChanged?.Invoke(); }
public EventLog() { Title = "Recent Changes"; Delegate = new SparkleEventsDelegate(); int min_width = 480; int min_height = 640; int height = (int)(NSScreen.MainScreen.Frame.Height * 0.85); float x = (float)(NSScreen.MainScreen.Frame.Width * 0.61); float y = (float)(NSScreen.MainScreen.Frame.Height * 0.5 - (height * 0.5)); SetFrame( new CGRect( new CGPoint(x, y), new CGSize(min_width, height)), true); StyleMask = (NSWindowStyle.Closable | NSWindowStyle.Miniaturizable | NSWindowStyle.Titled | NSWindowStyle.Resizable); MinSize = new CGSize(min_width, min_height); HasShadow = true; IsOpaque = false; BackingType = NSBackingStore.Buffered; TitlebarHeight = (float)(Frame.Height - ContentView.Frame.Height); Level = NSWindowLevel.Floating; this.web_view = new WebView(new CGRect(0, 0, 481, 579), "", "") { Frame = new CGRect(new CGPoint(0, 0), new CGSize(ContentView.Frame.Width, ContentView.Frame.Height - 39)) }; this.web_view.Preferences.PlugInsEnabled = false; this.cover = new NSBox() { Frame = new CGRect( new CGPoint(-1, -1), new CGSize(Frame.Width + 2, this.web_view.Frame.Height + 1)), FillColor = NSColor.White, BorderType = NSBorderType.NoBorder, BoxType = NSBoxType.NSBoxCustom, AutoresizingMask = NSViewResizingMask.WidthSizable | NSViewResizingMask.HeightSizable }; this.hidden_close_button = new NSButton() { KeyEquivalentModifierMask = NSEventModifierMask.CommandKeyMask, KeyEquivalent = "w" }; this.hidden_close_button.Activated += delegate { Controller.WindowClosed(); }; this.size_label = new NSTextField() { Alignment = NSTextAlignment.Right, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new CGRect( new CGPoint(0, ContentView.Frame.Height - 31), new CGSize(60, 20)), StringValue = "Size:", AutoresizingMask = NSViewResizingMask.MaxXMargin | NSViewResizingMask.MinYMargin }; this.size_label_value = new NSTextField() { Alignment = NSTextAlignment.Left, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new CGRect( new CGPoint(60, ContentView.Frame.Height - 31), new CGSize(60, 20)), StringValue = "…", Font = NSFont.BoldSystemFontOfSize(12), AutoresizingMask = NSViewResizingMask.MaxXMargin | NSViewResizingMask.MinYMargin }; this.history_label = new NSTextField() { Alignment = NSTextAlignment.Right, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new CGRect( new CGPoint(130, ContentView.Frame.Height - 31), new CGSize(60, 20)), StringValue = "History:", AutoresizingMask = NSViewResizingMask.MaxXMargin | NSViewResizingMask.MinYMargin }; this.history_label_value = new NSTextField() { Alignment = NSTextAlignment.Left, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new CGRect( new CGPoint(190, ContentView.Frame.Height - 31), new CGSize(60, 20) ), StringValue = "…", Font = NSFont.BoldSystemFontOfSize(12), AutoresizingMask = NSViewResizingMask.MaxXMargin | NSViewResizingMask.MinYMargin }; this.popup_button = new NSPopUpButton() { Frame = new CGRect( new CGPoint(ContentView.Frame.Width - 156 - 12, ContentView.Frame.Height - 33), new CGSize(156, 26)), PullsDown = false, AutoresizingMask = NSViewResizingMask.MinXMargin | NSViewResizingMask.MinYMargin }; this.background = new NSBox() { Frame = new CGRect( new CGPoint(-1, -1), new CGSize(Frame.Width + 2, this.web_view.Frame.Height + 2)), FillColor = NSColor.White, BorderColor = NSColor.LightGray, BoxType = NSBoxType.NSBoxCustom, AutoresizingMask = NSViewResizingMask.WidthSizable | NSViewResizingMask.HeightSizable }; this.progress_indicator = new NSProgressIndicator() { Frame = new CGRect( new CGPoint(Frame.Width / 2 - 10, this.web_view.Frame.Height / 2 + 10), new CGSize(20, 20)), Style = NSProgressIndicatorStyle.Spinning, AutoresizingMask = NSViewResizingMask.MinXMargin | NSViewResizingMask.MaxXMargin | NSViewResizingMask.MinYMargin | NSViewResizingMask.MaxYMargin }; this.progress_indicator.StartAnimation(this); ContentView.AddSubview(this.size_label); ContentView.AddSubview(this.size_label_value); ContentView.AddSubview(this.history_label); ContentView.AddSubview(this.history_label_value); ContentView.AddSubview(this.popup_button); ContentView.AddSubview(this.progress_indicator); ContentView.AddSubview(this.background); ContentView.AddSubview(this.hidden_close_button); Controller.HideWindowEvent += HideWindowEventDelegate; Controller.ShowWindowEvent += ShowWindowEventDelegate; Controller.ShowSaveDialogEvent += ShowSaveDialogEventDelegate; Controller.UpdateChooserEvent += UpdateChooserEventDelegate; Controller.UpdateChooserEnablementEvent += UpdateChooserEnablementEventDelegate; Controller.UpdateContentEvent += UpdateContentEventDelegate; Controller.UpdateSizeInfoEvent += UpdateSizeInfoEventDelegate; Controller.ContentLoadingEvent += ContentLoadingEventDelegate; }
public override void AwakeFromNib () { base.AwakeFromNib (); #region first two buttons // add the image menu item back to the first menu item NSMenuItem menuItem = new NSMenuItem ("", new Selector (""), ""); menuItem.Image = NSImage.ImageNamed ("moof.png"); buttonMenu.InsertItem (menuItem, 0); nibBasedPopUpDown.Menu = buttonMenu; nibBasedPopUpRight.Menu = buttonMenu; // create the pull down button pointing DOWN CGRect buttonFrame = placeHolder1.Frame; codeBasedPopUpDown = new NSPopUpButton (buttonFrame, true); ((NSPopUpButtonCell)codeBasedPopUpDown.Cell).ArrowPosition = NSPopUpArrowPosition.Bottom; ((NSPopUpButtonCell)codeBasedPopUpDown.Cell).BezelStyle = NSBezelStyle.ThickSquare; codeBasedPopUpDown.Menu = buttonMenu; popupBox.AddSubview (codeBasedPopUpDown); placeHolder1.RemoveFromSuperview (); // create the pull down button pointing RIGHT buttonFrame = placeHolder2.Frame; codeBasedPopUpRight = new NSPopUpButton (buttonFrame, true); ((NSPopUpButtonCell)codeBasedPopUpRight.Cell).ArrowPosition = NSPopUpArrowPosition.Bottom; ((NSPopUpButtonCell)codeBasedPopUpRight.Cell).PreferredEdge = NSRectEdge.MaxXEdge; ((NSPopUpButtonCell)codeBasedPopUpRight.Cell).BezelStyle = NSBezelStyle.Circular; codeBasedPopUpRight.Menu = buttonMenu; ((NSPopUpButtonCell)codeBasedPopUpRight.Cell).HighlightsBy = (nint)(int)NSCellStyleMask.ChangeGrayCell; popupBox.AddSubview (codeBasedPopUpRight); placeHolder2.RemoveFromSuperview (); #endregion #region second two buttons // create the rounded button buttonFrame = placeHolder3.Frame; // note: this button we want alternate title and image, so we need to call this: codeBasedButtonRound = new NSButton (buttonFrame) { Title = "NSButton", AlternateTitle = "(pressed)", Image = NSImage.ImageNamed ("moof.png"), AlternateImage = NSImage.ImageNamed ("moof2.png"), BezelStyle = NSBezelStyle.RegularSquare, ImagePosition = NSCellImagePosition.ImageLeft, Font = NSFont.SystemFontOfSize (NSFont.SmallSystemFontSize), Sound = NSSound.FromName ("Pop"), }; // Two choices, either use the .NET event system: // foo.Activated += delegate {..} or += SomeMethod // // Or you can use the Target = this Action = new Selector ("buttonAction:") // pattern codeBasedButtonRound.Activated += delegate { buttonAction (null); }; codeBasedButtonRound.SetButtonType (NSButtonType.MomentaryChange); codeBasedButtonRound.Cell.Alignment = NSTextAlignment.Left; buttonBox.AddSubview (codeBasedButtonRound); placeHolder3.RemoveFromSuperview (); // we are done with the place holder, remove it from the window // create the square button buttonFrame = placeHolder4.Frame; codeBasedButtonSquare = new NSButton (buttonFrame){ Title = "NSButton", BezelStyle = NSBezelStyle.ShadowlessSquare, ImagePosition = NSCellImagePosition.ImageLeft, Image = NSImage.ImageNamed ("moof.png"), Font = NSFont.SystemFontOfSize (NSFont.SmallSystemFontSize), Sound = NSSound.FromName ("Pop"), }; codeBasedButtonSquare.Activated += delegate { buttonAction (null); }; codeBasedButtonSquare.Cell.Alignment = NSTextAlignment.Left; buttonBox.AddSubview (codeBasedButtonSquare); placeHolder4.RemoveFromSuperview (); // we are done with the place holder, remove it from the window #endregion #region segmented control buttonFrame = placeHolder5.Frame; codeBasedSegmentControl = new NSSegmentedControl(buttonFrame) { SegmentCount = 3, Target = this, Action = new Selector("segmentAction:") }; codeBasedSegmentControl.SetWidth (nibBasedSegControl.GetWidth(0), 0); codeBasedSegmentControl.SetWidth (nibBasedSegControl.GetWidth (1), 1); codeBasedSegmentControl.SetWidth (nibBasedSegControl.GetWidth (2), 2); codeBasedSegmentControl.SetLabel ("One", 0); codeBasedSegmentControl.SetLabel ("Two", 1); codeBasedSegmentControl.SetLabel ("Three", 2); segmentBox.AddSubview (codeBasedSegmentControl); placeHolder5.RemoveFromSuperview (); // use a menu to the first segment (applied to both nib-based and code-based) codeBasedSegmentControl.SetMenu (buttonMenu, 0); nibBasedSegControl.SetMenu (buttonMenu, 0); // add icons to each segment (applied to both nib-based and code-based) NSImage segmentIcon1 = NSWorkspace.SharedWorkspace.IconForFileType(NSFileTypeForHFSTypeCode.ComputerIcon); segmentIcon1.Size = new CGSize(16, 16); nibBasedSegControl.SetImage (segmentIcon1, 0); codeBasedSegmentControl.SetImage (segmentIcon1, 0); NSImage segmentIcon2 = NSWorkspace.SharedWorkspace.IconForFileType (NSFileTypeForHFSTypeCode.DesktopIcon); segmentIcon2.Size = new CGSize (16, 16); nibBasedSegControl.SetImage (segmentIcon2, 1); codeBasedSegmentControl.SetImage (segmentIcon2, 1); NSImage segmentIcon3 = NSWorkspace.SharedWorkspace.IconForFileType (NSFileTypeForHFSTypeCode.FinderIcon); segmentIcon3.Size = new CGSize (16, 16); nibBasedSegControl.SetImage (segmentIcon3, 2); codeBasedSegmentControl.SetImage (segmentIcon3, 2); #endregion #region level indicator buttonFrame = placeHolder8.Frame; codeBasedIndicator = new NSLevelIndicator(buttonFrame) { MaxValue = 10, MajorTickMarkCount = 4, TickMarkCount = 7, WarningValue = 5, CriticalValue = 8, Action = new Selector("levelAction:") }; codeBasedIndicator.Cell.LevelIndicatorStyle = NSLevelIndicatorStyle.DiscreteCapacity; indicatorBox.AddSubview(codeBasedIndicator); placeHolder8.RemoveFromSuperview(); #endregion }
public virtual void __SwitchObject(NSPopUpButton sender) { this.SwitchObject(sender); }
public bool Run(AddFileDialogData data) { using (var panel = new NSOpenPanel { CanChooseDirectories = false, CanChooseFiles = true, }) { MacSelectFileDialogHandler.SetCommonPanelProperties(data, panel); var popup = new NSPopUpButton(new CGRect(0, 0, 200, 28), false); var dropdownBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { new MDLabel(GettextCatalog.GetString("Override build action:")), true }, { new MDAlignment(popup, true) { MinWidth = 200 } } }; var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup(data, panel); if (filterPopup != null) { dropdownBox.Layout(); var box = new MDBox(LayoutDirection.Vertical, 2, 2) { dropdownBox.View, filterPopup, }; box.Layout(); panel.AccessoryView = box.View; box.Layout(box.View.Superview.Frame.Size); } else { dropdownBox.Layout(); panel.AccessoryView = dropdownBox.View; } popup.AddItem(GettextCatalog.GetString("(Default)")); popup.Menu.AddItem(NSMenuItem.SeparatorItem); foreach (var b in data.BuildActions) { if (b == "--") { popup.Menu.AddItem(NSMenuItem.SeparatorItem); } else { popup.AddItem(b); } } if (panel.RunModal() == 0) { GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); return(false); } data.SelectedFiles = MacSelectFileDialogHandler.GetSelectedFiles(panel); var idx = popup.IndexOfSelectedItem - 2; if (idx >= 0) { data.OverrideAction = data.BuildActions[idx]; } GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); return(true); } }
/// <summary> /// User chose a different control font size from the Font Size popup /// </summary> /// <param name="sender"> /// A <see cref="NSPopUpButton"/> /// </param> partial void setFontSize (NSPopUpButton sender) { int tag = (int)sender.SelectedCell.Tag; switch ((NSControlSize)tag) { case NSControlSize.Mini: datePickerControl.Cell.ControlSize = NSControlSize.Mini; datePickerControl.Cell.Font = NSFont.SystemFontOfSize (9.0f); break; case NSControlSize.Small: datePickerControl.Cell.ControlSize = NSControlSize.Small; datePickerControl.Cell.Font = NSFont.SystemFontOfSize (11.0f); break; case NSControlSize.Regular: datePickerControl.Cell.ControlSize = NSControlSize.Regular; datePickerControl.Cell.Font = NSFont.SystemFontOfSize (13.0f); break; } }
partial void EntityChosen(NSPopUpButton sender) { this.entityID = this.entityIndexToID[(int)this.EntityPopUpButton.IndexOfSelectedItem - 1]; RedrawTable(); }
static bool 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 false; } var filename = filenames[0]; if (System.IO.Directory.Exists (filename)) return false; int selected = -1; int i = 0; bool hasWorkbenchViewer = false; 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; if (!CanBeOpenedInAssemblyBrowser (filename)) selected = 0; hasWorkbenchViewer = true; 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); return hasWorkbenchViewer; }
public bool Run(OpenFileDialogData data) { NSSavePanel panel = null; try { if (data.Action == FileChooserAction.Save) { panel = new NSSavePanel(); } else { panel = new NSOpenPanel { CanChooseDirectories = (data.Action & FileChooserAction.FolderFlags) != 0, CanChooseFiles = (data.Action & FileChooserAction.FileFlags) != 0, }; } MacSelectFileDialogHandler.SetCommonPanelProperties(data, panel); SelectEncodingPopUpButton encodingSelector = null; NSPopUpButton viewerSelector = null; NSButton closeSolutionButton = null; var box = new MDBox(LayoutDirection.Vertical, 2, 2); List <FileViewer> currentViewers = null; var labels = new List <MDAlignment> (); if ((data.Action & FileChooserAction.FileFlags) != 0) { var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup(data, panel); if (filterPopup != null) { var filterLabel = new MDAlignment(new MDLabel(GettextCatalog.GetString("Show files:")), true); var filterBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { filterLabel }, { new MDAlignment(filterPopup, true) { MinWidth = 200 } } }; labels.Add(filterLabel); box.Add(filterBox); } if (data.ShowEncodingSelector) { encodingSelector = new SelectEncodingPopUpButton(data.Action != FileChooserAction.Save); encodingSelector.SelectedEncodingId = data.Encoding != null ? data.Encoding.CodePage : 0; var encodingLabel = new MDAlignment(new MDLabel(GettextCatalog.GetString("Encoding:")), true); var encodingBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { encodingLabel }, { new MDAlignment(encodingSelector, true) { MinWidth = 200 } } }; labels.Add(encodingLabel); box.Add(encodingBox); } if (data.ShowViewerSelector && panel is NSOpenPanel) { currentViewers = new List <FileViewer> (); viewerSelector = new NSPopUpButton { Enabled = false, }; if (encodingSelector != null || IdeApp.Workspace.IsOpen) { viewerSelector.Activated += delegate { var idx = viewerSelector.IndexOfSelectedItem; bool workbenchViewerSelected = idx == 0 && currentViewers [0] == null; if (encodingSelector != null) { encodingSelector.Enabled = !workbenchViewerSelected; } if (closeSolutionButton != null) { if (closeSolutionButton.Hidden == workbenchViewerSelected) { closeSolutionButton.Hidden = !workbenchViewerSelected; CenterAccessoryView(box); } } }; } var viewSelLabel = new MDLabel(GettextCatalog.GetString("Open with:")); var viewSelBox = new MDBox(LayoutDirection.Horizontal, 2, 0) { { viewSelLabel, true }, { new MDAlignment(viewerSelector, true) { MinWidth = 200 } } }; if (IdeApp.Workspace.IsOpen) { closeSolutionButton = new NSButton { Title = GettextCatalog.GetString("Close current workspace"), Hidden = true, State = NSCellStateValue.On, }; closeSolutionButton.SetButtonType(NSButtonType.Switch); closeSolutionButton.SizeToFit(); viewSelBox.Add(closeSolutionButton, true); } box.Add(viewSelBox); } } if (labels.Count > 0) { float w = labels.Max(l => l.MinWidth); foreach (var l in labels) { l.MinWidth = w; l.XAlign = LayoutAlign.Begin; } } if (box.Count > 0) { box.Layout(); panel.AccessoryView = box.View; } panel.SelectionDidChange += delegate { var selection = MacSelectFileDialogHandler.GetSelectedFiles(panel); bool slnViewerSelected = false; if (viewerSelector != null) { slnViewerSelected = FillViewers(currentViewers, viewerSelector, closeSolutionButton, selection); if (closeSolutionButton != null) { closeSolutionButton.Hidden = !slnViewerSelected; } CenterAccessoryView(box); } if (encodingSelector != null) { encodingSelector.Enabled = !slnViewerSelected; } }; if (panel.RunModal() == 0) { GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); return(false); } data.SelectedFiles = MacSelectFileDialogHandler.GetSelectedFiles(panel); if (encodingSelector != null) { data.Encoding = encodingSelector.SelectedEncodingId > 0 ? Encoding.GetEncoding(encodingSelector.SelectedEncodingId) : null; } if (viewerSelector != null) { if (closeSolutionButton != null) { data.CloseCurrentWorkspace = closeSolutionButton.State != NSCellStateValue.Off; } data.SelectedViewer = viewerSelector.IndexOfSelectedItem >= 0 ? currentViewers[(int)viewerSelector.IndexOfSelectedItem] : null; } GtkQuartz.FocusWindow(data.TransientFor ?? MessageService.RootWindow); } catch (Exception ex) { LoggingService.LogInternalError("Error in Open File dialog", ex); } finally { if (panel != null) { panel.Dispose(); } } return(true); }
partial void LenderSelected(NSPopUpButton sender) { this.lenderID = this.lenderIndexToID[(int)this.LenderPopUpButton.IndexOfSelectedItem - 1]; }
protected MacFileDialog() { fileTypes = new NSPopUpButton(); }
public EventLog() { Title = "Recent Changes"; Delegate = new SparkleEventsDelegate(); int min_width = 480; int min_height = 640; int height = (int)(NSScreen.MainScreen.Frame.Height * 0.85); float x = (float)(NSScreen.MainScreen.Frame.Width * 0.61); float y = (float)(NSScreen.MainScreen.Frame.Height * 0.5 - (height * 0.5)); SetFrame( new RectangleF( new PointF(x, y), new SizeF(min_width, height)), true); StyleMask = (NSWindowStyle.Closable | NSWindowStyle.Miniaturizable | NSWindowStyle.Titled | NSWindowStyle.Resizable); MinSize = new SizeF(min_width, min_height); HasShadow = true; IsOpaque = false; BackingType = NSBackingStore.Buffered; TitlebarHeight = Frame.Height - ContentView.Frame.Height; Level = NSWindowLevel.Floating; this.web_view = new WebView(new RectangleF(0, 0, 481, 579), "", "") { Frame = new RectangleF(new PointF(0, 0), new SizeF(ContentView.Frame.Width, ContentView.Frame.Height - 39)) }; this.web_view.Preferences.PlugInsEnabled = false; this.cover = new NSBox() { Frame = new RectangleF( new PointF(-1, -1), new SizeF(Frame.Width + 2, this.web_view.Frame.Height + 1)), FillColor = NSColor.White, BorderType = NSBorderType.NoBorder, BoxType = NSBoxType.NSBoxCustom }; this.hidden_close_button = new NSButton() { KeyEquivalentModifierMask = NSEventModifierMask.CommandKeyMask, KeyEquivalent = "w" }; this.hidden_close_button.Activated += delegate { Controller.WindowClosed(); }; this.size_label = new NSTextField() { Alignment = NSTextAlignment.Right, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new RectangleF( new PointF(0, ContentView.Frame.Height - 31), new SizeF(60, 20)), StringValue = "Size:" }; this.size_label_value = new NSTextField() { Alignment = NSTextAlignment.Left, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new RectangleF( new PointF(60, ContentView.Frame.Height - 27), new SizeF(60, 20)), StringValue = "…", Font = NSFont.FromFontName(UserInterface.FontName + " Bold", NSFont.SystemFontSize) }; this.history_label = new NSTextField() { Alignment = NSTextAlignment.Right, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new RectangleF( new PointF(130, ContentView.Frame.Height - 31), new SizeF(60, 20)), StringValue = "History:" }; this.history_label_value = new NSTextField() { Alignment = NSTextAlignment.Left, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new RectangleF( new PointF(190, ContentView.Frame.Height - 27), new SizeF(60, 20) ), StringValue = "…", Font = NSFont.FromFontName(UserInterface.FontName + " Bold", NSFont.SystemFontSize) }; this.popup_button = new NSPopUpButton() { Frame = new RectangleF( new PointF(ContentView.Frame.Width - 156 - 12, ContentView.Frame.Height - 33), new SizeF(156, 26)), PullsDown = false }; this.background = new NSBox() { Frame = new RectangleF( new PointF(-1, -1), new SizeF(Frame.Width + 2, this.web_view.Frame.Height + 2)), FillColor = NSColor.White, BorderColor = NSColor.LightGray, BoxType = NSBoxType.NSBoxCustom }; this.progress_indicator = new NSProgressIndicator() { Frame = new RectangleF( new PointF(Frame.Width / 2 - 10, this.web_view.Frame.Height / 2 + 10), new SizeF(20, 20)), Style = NSProgressIndicatorStyle.Spinning }; this.progress_indicator.StartAnimation(this); ContentView.AddSubview(this.size_label); ContentView.AddSubview(this.size_label_value); ContentView.AddSubview(this.history_label); ContentView.AddSubview(this.history_label_value); ContentView.AddSubview(this.popup_button); ContentView.AddSubview(this.progress_indicator); ContentView.AddSubview(this.background); ContentView.AddSubview(this.hidden_close_button); (Delegate as SparkleEventsDelegate).WindowResized += delegate(SizeF new_window_size) { SparkleShare.Controller.Invoke(() => Relayout(new_window_size)); }; // Hook up the controller events Controller.HideWindowEvent += delegate { SparkleShare.Controller.Invoke(() => { this.progress_indicator.Hidden = true; PerformClose(this); }); }; Controller.ShowWindowEvent += delegate { SparkleShare.Controller.Invoke(() => OrderFrontRegardless()); }; Controller.UpdateChooserEvent += delegate(string [] folders) { SparkleShare.Controller.Invoke(() => UpdateChooser(folders)); }; Controller.UpdateChooserEnablementEvent += delegate(bool enabled) { SparkleShare.Controller.Invoke(() => { this.popup_button.Enabled = enabled; }); }; Controller.UpdateContentEvent += delegate(string html) { SparkleShare.Controller.Invoke(() => { this.cover.RemoveFromSuperview(); this.progress_indicator.Hidden = true; UpdateContent(html); }); }; Controller.ContentLoadingEvent += delegate { SparkleShare.Controller.Invoke(() => { this.web_view.RemoveFromSuperview(); // FIXME: Hack to hide that the WebView sometimes doesn't disappear ContentView.AddSubview(this.cover); this.progress_indicator.Hidden = false; this.progress_indicator.StartAnimation(this); }); }; Controller.UpdateSizeInfoEvent += delegate(string size, string history_size) { SparkleShare.Controller.Invoke(() => { this.size_label_value.StringValue = size; this.history_label_value.StringValue = history_size; }); }; Controller.ShowSaveDialogEvent += delegate(string file_name, string target_folder_path) { SparkleShare.Controller.Invoke(() => { NSSavePanel panel = new NSSavePanel() { DirectoryUrl = new NSUrl(target_folder_path, true), NameFieldStringValue = file_name, ParentWindow = this, Title = "Restore from History", PreventsApplicationTerminationWhenModal = false }; if ((NSPanelButtonType)panel.RunModal() == NSPanelButtonType.Ok) { string target_file_path = Path.Combine(panel.DirectoryUrl.RelativePath, panel.NameFieldStringValue); Controller.SaveDialogCompleted(target_file_path); } else { Controller.SaveDialogCancelled(); } }); }; }
public nint GetRowsInComponent(NSPopUpButton pickerView, nint component) { return((nint)(this.renderer.Element.Items != null ? this.renderer.Element.Items.Count : 0)); }
public static string GetSelected(NSPopUpButton control) { return(control.SelectedItem.Title); }
internal static NSView CreateLabelledDropdown(string label, float popupWidth, out NSPopUpButton popup) { popup = new NSPopUpButton(new RectangleF(0, 6, popupWidth, 18), false) { AutoresizingMask = NSViewResizingMask.WidthSizable | NSViewResizingMask.MaxXMargin, }; return(LabelControl(label, 200, popup)); }
public MacFileDialog() { fileTypes = new NSPopUpButton(); }
/// <summary> /// User chose a different picker style from the Picker Style popup. /// </summary> /// <param name="sender"> /// A <see cref="NSPopUpButton"/> /// </param> partial void setPickerStyle(NSPopUpButton sender) { int tag = sender.SelectedCell.Tag; if (datePickerControl.DatePickerStyle != (NSDatePickerStyle)tag) { RectangleF windowFrame = this.Window.Frame; RectangleF boxFrame = outerBox.Frame; datePickerControl.Hidden = true; if ((NSDatePickerStyle)tag == NSDatePickerStyle.ClockAndCalendar) { // for this picker style, we need to grow the window to make room for it. SizeF size = windowFrame.Size; size.Height += shrinkGrowFacter; windowFrame.Size = size; PointF origin = windowFrame.Location; origin.Y -= shrinkGrowFacter; windowFrame.Location = origin; size = boxFrame.Size; size.Height += shrinkGrowFacter; boxFrame.Size = size; outerBox.Frame = boxFrame; this.Window.SetFrame(windowFrame, true, true); datePickerControl.DatePickerStyle = NSDatePickerStyle.ClockAndCalendar; // shows these last dateResult1.Hidden = false; dateResult2.Hidden = false; dateResult3.Hidden = false; dateResult4.Hidden = false; } else { NSDatePickerStyle currentPickerStyle = datePickerControl.DatePickerStyle; // shrink the window only if the current style is "clock and calendar" if (currentPickerStyle == NSDatePickerStyle.ClockAndCalendar) { dateResult1.Hidden = true; dateResult2.Hidden = true; dateResult3.Hidden = true; dateResult4.Hidden = true; SizeF size = windowFrame.Size; size.Height -= shrinkGrowFacter; windowFrame.Size = size; PointF origin = windowFrame.Location; origin.Y += shrinkGrowFacter; windowFrame.Location = origin; size = boxFrame.Size; size.Height -= shrinkGrowFacter; boxFrame.Size = size; outerBox.Frame = boxFrame; this.Window.SetFrame(windowFrame, true, true); } // set our desired picker style setupDatePickerControl((NSDatePickerStyle)tag); } datePickerControl.Hidden = false; updateControls(); // force update of all UI elements and the picker itself } }
static bool 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(false); } var filename = filenames[0]; if (System.IO.Directory.Exists(filename)) { return(false); } int selected = -1; int i = 0; bool hasWorkbenchViewer = false; 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; } if (!CanBeOpenedInAssemblyBrowser(filename)) { selected = 0; } hasWorkbenchViewer = true; 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); return(hasWorkbenchViewer); }
public void takeSelectionMarkerStyleFrom(NSPopUpButton sender) { NSRect stash = this.SelectionMarker.SelectedRect; // If we change styles, it's nice to keep the same area selected. MarkerStyle tag = (MarkerStyle) (int) sender.SelectedCell.CastTo<NSPopUpButtonCell>().Tag; switch (tag) { case MarkerStyle.PlainMarkerStyle: this.SelectionMarker = new CropMarker(this); this.SelectionMarker.SelectedRect = stash; break; case MarkerStyle.FinderMarkerStyle: this.SelectionMarker = new FinderStyleCropMarker(this); this.SelectionMarker.SelectedRect = stash; break; case MarkerStyle.IPhotoMarkerStyle: this.SelectionMarker = new IPhotoStyleCropMarker(this); this.SelectionMarker.SelectedRect = stash; break; case MarkerStyle.LassoMarkerStyle: this.SelectionMarker = new LassoStyleCropMarker(this); break; } this.NeedsDisplay = true; }
internal static NSView CreateLabelledDropdown (string label, float popupWidth, out NSPopUpButton popup) { popup = new NSPopUpButton (new CGRect (0, 6, popupWidth, 18), false) { AutoresizingMask = NSViewResizingMask.WidthSizable | NSViewResizingMask.MaxXMargin, }; return LabelControl (label, 200, popup); }
public SparkleEventLog() : base() { using (var a = new NSAutoreleasePool()) { Title = "Recent Changes"; Delegate = new SparkleEventsDelegate(); int min_width = 480; int min_height = 640; float x = (float)(NSScreen.MainScreen.Frame.Width * 0.61); float y = (float)(NSScreen.MainScreen.Frame.Height * 0.5 - (min_height * 0.5)); SetFrame( new RectangleF( new PointF(x, y), new SizeF(min_width, (int)(NSScreen.MainScreen.Frame.Height * 0.85))), true); StyleMask = (NSWindowStyle.Closable | NSWindowStyle.Miniaturizable | NSWindowStyle.Titled | NSWindowStyle.Resizable); MinSize = new SizeF(min_width, min_height); HasShadow = true; BackingType = NSBackingStore.Buffered; TitlebarHeight = Frame.Height - ContentView.Frame.Height; this.web_view = new WebView(new RectangleF(0, 0, 481, 579), "", "") { Frame = new RectangleF(new PointF(0, 0), new SizeF(ContentView.Frame.Width, ContentView.Frame.Height - 39)) }; this.hidden_close_button = new NSButton() { KeyEquivalentModifierMask = NSEventModifierMask.CommandKeyMask, KeyEquivalent = "w" }; this.hidden_close_button.Activated += delegate { Controller.WindowClosed(); }; this.size_label = new NSTextField() { Alignment = NSTextAlignment.Right, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new RectangleF( new PointF(0, ContentView.Frame.Height - 30), new SizeF(60, 20)), StringValue = "Size:", Font = SparkleUI.BoldFont }; this.size_label_value = new NSTextField() { Alignment = NSTextAlignment.Left, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new RectangleF( new PointF(60, ContentView.Frame.Height - 30), new SizeF(60, 20)), StringValue = "…", Font = SparkleUI.Font }; this.history_label = new NSTextField() { Alignment = NSTextAlignment.Right, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new RectangleF( new PointF(130, ContentView.Frame.Height - 30), new SizeF(60, 20)), StringValue = "History:", Font = SparkleUI.BoldFont }; this.history_label_value = new NSTextField() { Alignment = NSTextAlignment.Left, BackgroundColor = NSColor.WindowBackground, Bordered = false, Editable = false, Frame = new RectangleF( new PointF(190, ContentView.Frame.Height - 30), new SizeF(60, 20) ), StringValue = "…", Font = SparkleUI.Font }; this.popup_button = new NSPopUpButton() { Frame = new RectangleF( new PointF(ContentView.Frame.Width - 156 - 12, ContentView.Frame.Height - 33), new SizeF(156, 26)), PullsDown = false }; this.background = new NSBox() { Frame = new RectangleF( new PointF(-1, -1), new SizeF(Frame.Width + 2, this.web_view.Frame.Height + 2)), FillColor = NSColor.White, BorderColor = NSColor.LightGray, BoxType = NSBoxType.NSBoxCustom }; this.progress_indicator = new NSProgressIndicator() { Frame = new RectangleF( new PointF(Frame.Width / 2 - 10, this.web_view.Frame.Height / 2 + 10), new SizeF(20, 20)), Style = NSProgressIndicatorStyle.Spinning }; this.progress_indicator.StartAnimation(this); ContentView.AddSubview(this.size_label); ContentView.AddSubview(this.size_label_value); ContentView.AddSubview(this.history_label); ContentView.AddSubview(this.history_label_value); ContentView.AddSubview(this.popup_button); ContentView.AddSubview(this.progress_indicator); ContentView.AddSubview(this.background); ContentView.AddSubview(this.hidden_close_button); (Delegate as SparkleEventsDelegate).WindowResized += Relayout; } // Hook up the controller events Controller.HideWindowEvent += delegate { using (var a = new NSAutoreleasePool()) { InvokeOnMainThread(delegate { PerformClose(this); if (this.web_view.Superview == ContentView) { this.web_view.RemoveFromSuperview(); } }); } }; Controller.ShowWindowEvent += delegate { using (var a = new NSAutoreleasePool()) { InvokeOnMainThread(delegate { OrderFrontRegardless(); }); } }; Controller.UpdateChooserEvent += delegate(string [] folders) { using (var a = new NSAutoreleasePool()) { InvokeOnMainThread(delegate { UpdateChooser(folders); }); } }; Controller.UpdateContentEvent += delegate(string html) { using (var a = new NSAutoreleasePool()) { InvokeOnMainThread(delegate { UpdateContent(html); }); } }; Controller.ContentLoadingEvent += delegate { using (var a = new NSAutoreleasePool()) { InvokeOnMainThread(delegate { if (this.web_view.Superview == ContentView) { this.web_view.RemoveFromSuperview(); } if (this.progress_indicator.Superview != ContentView) { ContentView.AddSubview(this.progress_indicator); } this.progress_indicator.StartAnimation(this); }); } }; Controller.UpdateSizeInfoEvent += delegate(string size, string history_size) { using (var a = new NSAutoreleasePool()) { InvokeOnMainThread(delegate { this.size_label_value.StringValue = size; this.history_label_value.StringValue = history_size; }); } }; }
private void ActionEvent(Id aSender) { NSPopUpButton button = aSender.CastTo <NSPopUpButton>(); iOption.Set(button.SelectedItem.Title.ToString()); }
public nint GetComponentCount(NSPopUpButton picker) { return((nint)1); }