Exemple #1
0
 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);
 }
Exemple #2
0
 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);
 }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        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;
                }
            }
        }