示例#1
0
            public override void OnChange(ICommandTarget target, int selectedIndex, object selectedItem)
            {
                ListItem <IShellScheme> item = selectedItem as ListItem <IShellScheme>;

                if (item != null)
                {
                    IShellScheme scheme = item.Value;

                    ITerminalControlHost session = TerminalCommandTarget.AsOpenTerminal(target);
                    ITerminalSettings    ts      = session.TerminalSettings;
                    ts.BeginUpdate();
                    ts.ShellScheme = scheme;
                    ts.EndUpdate();
                }
            }
示例#2
0
        private static CommandResult CmdToggleLocalEcho(ICommandTarget target)
        {
            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            if (ts == null)
            {
                return(CommandResult.Failed);
            }
            ITerminalSettings settings = ts.TerminalSettings;

            settings.BeginUpdate();
            settings.LocalEcho = !settings.LocalEcho;
            settings.EndUpdate();
            return(CommandResult.Succeeded);
        }
示例#3
0
        private static CommandResult CmdEncoding(ICommandTarget target, EncodingType encoding)
        {
            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            if (ts == null)
            {
                return(CommandResult.Failed);
            }
            ITerminalSettings settings = ts.TerminalSettings;

            settings.BeginUpdate();
            settings.Encoding = encoding;
            settings.EndUpdate();
            return(CommandResult.Succeeded);
        }
示例#4
0
        private static CommandResult CmdNewLine(ICommandTarget target, NewLine nl)
        {
            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            if (ts == null)
            {
                return(CommandResult.Failed);
            }
            ITerminalSettings settings = ts.TerminalSettings;

            settings.BeginUpdate();
            settings.TransmitNL = nl;
            settings.EndUpdate();
            return(CommandResult.Succeeded);
        }
示例#5
0
        private static CommandResult ToggleIntelliSense(ICommandTarget target)
        {
            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            if (ts == null)
            {
                return(CommandResult.Failed);
            }
            ITerminalSettings settings = ts.TerminalSettings;

            settings.BeginUpdate();
            settings.EnabledCharTriggerIntelliSense = !settings.EnabledCharTriggerIntelliSense;
            settings.EndUpdate();
            return(CommandResult.Succeeded);
        }
示例#6
0
        private static string GetSelectedText(ICommandTarget target, TextFormatOption opt)
        {
            CharacterDocumentViewer c = TerminalCommandTarget.AsCharacterDocumentViewer(target);

            if (c == null)
            {
                return(null);
            }
            ITextSelection s = c.ITextSelection;

            if (s.IsEmpty || !c.EnabledEx)
            {
                return(null);
            }

            return(s.GetSelectedText(opt));
        }
示例#7
0
            public override int GetSelectedIndex(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);
                EncodingType         val     = session.TerminalSettings.Encoding;

                EnumListItem <EncodingType>[] items = (EnumListItem <EncodingType>[])_items;
                if (items != null)
                {
                    for (int i = 0; i < items.Length; i++)
                    {
                        if (items[i].Value == val)
                        {
                            return(i);
                        }
                    }
                }

                return(-1);
            }
示例#8
0
            public override int GetSelectedIndex(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);
                NewLine val = session.TerminalSettings.TransmitNL; //TODO intへのキャストは乱暴だな

                EnumListItem <NewLine>[] items = (EnumListItem <NewLine>[])_items;
                if (items != null)
                {
                    for (int i = 0; i < items.Length; i++)
                    {
                        if (items[i].Value == val)
                        {
                            return(i);
                        }
                    }
                }

                return(-1);
            }
示例#9
0
        public CommandResult InternalExecute(ICommandTarget target, params IAdaptable[] args)
        {
            IShellScheme ss = (IShellScheme)args[0].GetAdapter(typeof(IShellScheme));

            Debug.Assert(ss != null);

            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            if (ts == null)
            {
                return(CommandResult.Failed);
            }
            ITerminalSettings settings = ts.TerminalSettings;

            settings.BeginUpdate();
            settings.ShellScheme = ss;
            settings.EndUpdate();
            return(CommandResult.Succeeded);
        }
示例#10
0
        private static CommandResult CmdCopyToFile(ICommandTarget target)
        {
            string text = GetSelectedText(target, TextFormatOption.Default);

            if (text == null)
            {
                return(CommandResult.Ignored);
            }

            IPoderosaMainWindow window = TerminalCommandTarget.AsTerminal(target).OwnerWindow;
            SaveFileDialog      dlg    = new SaveFileDialog();

            //dlg.InitialDirectory = GApp.Options.DefaultFileDir;
            dlg.Title  = GEnv.Strings.GetString("Util.DestinationToSave");
            dlg.Filter = "All Files(*.*)|*.*";
            if (dlg.ShowDialog(window.AsForm()) == DialogResult.OK)
            {
                StreamWriter wr = null;
                try {
                    wr = new StreamWriter(new FileStream(dlg.FileName, FileMode.Create), Encoding.Default);
                    wr.Write(text);
                    return(CommandResult.Succeeded);
                }
                catch (Exception ex) {
                    window.Warning(ex.Message);
                    return(CommandResult.Failed);
                }
                finally {
                    if (wr != null)
                    {
                        wr.Close();
                    }
                }
            }
            else
            {
                return(CommandResult.Cancelled);
            }
        }
示例#11
0
        private static CommandResult CmdClearBuffer(ICommandTarget target)
        {
            TerminalDocument doc = TerminalCommandTarget.AsTerminalDocument(target);

            if (doc == null)
            {
                return(CommandResult.Ignored);
            }

            ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);
            TerminalControl      tc      = TerminalCommandTarget.AsTerminalControl(target);

            lock (doc) {
                doc.Clear();
                session.Terminal.AdjustTransientScrollBar();
                if (tc != null)
                {
                    tc.ITextSelection.Clear();
                    tc.Invalidate();
                }
            }
            return(CommandResult.Succeeded);
        }
            public override int GetSelectedIndex(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);

                return((int)session.TerminalSettings.Encoding);
            }
示例#13
0
        public bool IsEnabled(ICommandTarget target)
        {
            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            return(ts != null);
        }
示例#14
0
            public override bool IsChecked(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);

                return(session.TerminalSettings.LocalEcho);
            }
示例#15
0
            public override bool IsChecked(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsOpenTerminal(target);

                return(session.TerminalSettings.EnabledCharTriggerIntelliSense);
            }
示例#16
0
            public override bool IsEnabled(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsOpenTerminal(target);

                return(session != null);
            }
示例#17
0
            public override int GetSelectedIndex(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsOpenTerminal(target);

                return(TerminalEmulatorPlugin.Instance.ShellSchemeCollection.IndexOf(session.TerminalSettings.ShellScheme));
            }
示例#18
0
 public override bool IsEnabled(ICommandTarget target)
 {
     return(TerminalCommandTarget.AsOpenTerminal(target) != null);
 }
            public override int GetSelectedIndex(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);

                return((int)session.TerminalSettings.TransmitNL); //TODO intへのキャストは乱暴だな
            }