예제 #1
0
        /// <summary>
        ///     Точка входа.
        /// </summary>
        private static void Main()
        {
            var help = new StackContainer()
                       .Add(new Label("        `7MM\"\"\"YMM `7MMM.     ,MMF'"))
                       .Add(new Label("          MM    `7   MMMb    dPMM"))
                       .Add(new Label("          MM   d     M YM   ,M MM"))
                       .Add(new Label("          MM\"\"MM     M  Mb  M' MM"))
                       .Add(new Label("          MM   Y     M  YM.P'  MM"))
                       .Add(new Label("          MM         M  `YM'   MM"))
                       .Add(new Label("        .JMML.     .JML. `'  .JMML."))
                       .Add(new Label("Настоятельно рекомендуется нажать F1.   "))
                       .Add(new Label("           Выбор файлов:                ")
            {
                CurrentStyle = Style.Active
            })
                       .Add(new Label("!Не забывайте выбирать файлы через Ins! "))
                       .Add(new Label("                                        "))
                       .Add(new Label("Tab - перейти к списку выбранных файлов "))
                       .Add(new Label("Ins или Пробел-отменить выбор (в списке)"))
                       .Add(new Label("             Команды:                   ")
            {
                CurrentStyle = Style.Active
            });

            foreach (var command in Actions.Commands)
            {
                help.Add(new Label(command));
            }

            var manager = new FileManager(80, 24);

            manager.AttachActions();
            manager.ChangeDir(Environment.CurrentDirectory);

            var root = new BaseContainer()
                       .AddFocused(manager.RootContainer)
                       .Add(new RelativePosition(40, 1, -1)
                            .Add(help));

            var loop = new MainLoop(root);

            loop.Start();
        }
예제 #2
0
 /// <summary>
 ///     Возвращает действие, котороео добавит указанную запись в список выбранных объектов.
 /// </summary>
 /// <param name="entry">Запись, которую потребуется добавить.</param>
 /// <returns>Действие, которое добавит запись.</returns>
 private Action CreateAddToSelectedAction(FileSystemInfo entry)
 {
     return(() =>
     {
         if (!selectedSet.Contains(entry.FullName))
         {
             IKeyHandler btn = new Button(entry.FullName);
             btn.Add(new[]
             {
                 new KeySelector(ConsoleKey.Spacebar),
                 new KeySelector(ConsoleKey.Enter),
                 new KeySelector(ConsoleKey.Insert),
                 new KeySelector(ConsoleKey.Delete)
             }, () =>
             {
                 selectedSet.Remove(entry.FullName);
                 selectedWidget.Remove(btn);
             });
             selectedSet.Add(entry.FullName);
             selectedWidget.Add(btn);
         }
     });
 }