public ErrorsMenu() { _menu = Far.Api.CreateMenu(); _menu.Title = "PowerShell errors ($Error)"; _menu.HelpTopic = Far.Api.GetHelpTopic("MenuErrors"); _menu.AddKey(KeyCode.Delete); _menu.AddKey(KeyCode.F4); }
/// <summary> /// Creates or gets existing menu. /// </summary> IMenu HelpMenuCreate() { // create IMenu r = Far.Api.CreateMenu(); r.AutoAssignHotkeys = true; r.Sender = this; r.Title = "Help menu"; r.AddKey(KeyCode.F1); // args PanelMenuEventArgs e = new PanelMenuEventArgs(r, CurrentFile, SelectedList); // event if (MenuCreating != null) { MenuCreating(this, e); } // init items HelpMenuItems items = new HelpMenuItems(); HelpMenuInitItems(items, e); // add main items if (items.OpenFile != null) { r.Items.Add(items.OpenFile); } if (items.OpenFileMembers != null) { r.Items.Add(items.OpenFileMembers); } if (items.OpenFileAttributes != null) { r.Items.Add(items.OpenFileAttributes); } if (items.ApplyCommand != null) { r.Items.Add(items.ApplyCommand); } if (items.Copy != null) { r.Items.Add(items.Copy); } if (items.CopyHere != null) { r.Items.Add(items.CopyHere); } if (items.Move != null) { r.Items.Add(items.Move); } if (items.Rename != null) { r.Items.Add(items.Rename); } if (items.Create != null) { r.Items.Add(items.Create); } if (items.Delete != null) { r.Items.Add(items.Delete); } if (items.Save != null) { r.Items.Add(items.Save); } if (items.Exit != null) { r.Items.Add(items.Exit); } if (items.Help != null) { r.Items.Add(items.Help); } return(r); }
internal static void ShowJobs() { IMenu menu = Far.Api.CreateMenu(); menu.Title = Res.BackgroundJobs; menu.ShowAmpersands = true; menu.HelpTopic = Far.Api.GetHelpTopic(HelpTopic.BackgroundJobsMenu); menu.AddKey(KeyCode.F3); menu.AddKey(KeyCode.F5); menu.AddKey(KeyCode.Delete); menu.AddKey(KeyCode.Delete, ControlKeyStates.ShiftPressed); for (int show = 0; ; ++show) { WatchJobs(); if (show > 0 && JobList.Count == 0) { return; } menu.Items.Clear(); FarItem item = menu.Add(string.Format(null, MenuFormatString, "State", "Output", "Name/Command")); item.Disabled = true; foreach (Job job in JobList) { item = menu.Add(string.Format(null, MenuFormatString, job.StateText, job.Length, job.ToLine(100))); item.Data = job; } while (menu.Show()) { // refresh if (menu.Key.Is(KeyCode.F5)) { menu.Items.Clear(); break; } Job job = (Job)menu.SelectedData; if (job == null) { break; } // delete if (menu.Key.Is(KeyCode.Delete)) { if (job.IsRunning) { job.StopJob(); if (job.Length > 0) { break; } } job.Dispose(); break; } // delete all if (menu.Key.IsShift(KeyCode.Delete)) { // copy and then traverse var jobsToKill = new List <Job>(JobList); foreach (Job jobToKill in jobsToKill) { if (jobToKill.IsRunning) { jobToKill.StopJob(); if (jobToKill.Length > 0) { continue; } } jobToKill.Dispose(); } break; } // view if (job.FileName != null) { // file can be removed if the job is discarded if (!File.Exists(job.FileName)) { break; } // file exists, view it IViewer v = Far.Api.CreateViewer(); v.FileName = job.FileName; v.DisableHistory = true; if (menu.Key.VirtualKeyCode == KeyCode.F3) { v.Open(OpenMode.Modal); break; } else { v.Open(OpenMode.None); return; } } } if (menu.Selected < 0) { return; } } }