Ejemplo n.º 1
0
        private static CommandResult CmdPasteFromFile(ICommandTarget target)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Title  = GEnv.Strings.GetString("Caption.SelectPasteFile");
            dlg.Filter = "All Files(*.*)|*.*";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                StreamReader r = null;
                try {
                    ITerminalControlHost host = TerminalCommandTarget.AsOpenTerminal(target);
                    if (host == null)
                    {
                        return(CommandResult.Failed);
                    }
                    r = new StreamReader(dlg.FileName, Encoding.Default);
                    host.TerminalTransmission.SendTextStream(r, true);
                    return(CommandResult.Succeeded);
                }
                catch (Exception ex) {
                    RuntimeUtil.ReportException(ex);
                    return(CommandResult.Failed);
                }
                finally {
                    if (r != null)
                    {
                        r.Close();
                    }
                }
            }
            return(CommandResult.Cancelled);
        }
Ejemplo n.º 2
0
        private static CommandResult SaveShortcutFile(ICommandTarget target)
        {
            ITerminalControlHost t = TerminalCommandTarget.AsTerminal(target);

            if (t == null)
            {
                return(CommandResult.Failed);
            }

            SaveFileDialog dlg = new SaveFileDialog();

            dlg.Title        = TEnv.Strings.GetString("Caption.SaveShortcutFile");
            dlg.DefaultExt   = "gts";
            dlg.AddExtension = true;
            dlg.Filter       = "Terminal Shortcut(*.gts)|*.gts";

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                try {
                    new ShortcutFileContent(t.TerminalSettings, t.TerminalConnection.Destination).SaveToXML(dlg.FileName);
                    return(CommandResult.Succeeded);
                }
                catch (Exception ex) {
                    RuntimeUtil.ReportException(ex);
                    return(CommandResult.Failed);
                }
            }
            else
            {
                return(CommandResult.Cancelled);
            }
        }
Ejemplo n.º 3
0
        private static CommandResult CmdShellSchemeEditor(ICommandTarget target)
        {
            IPoderosaMainWindow  window  = CommandTargetUtil.AsWindow(target);
            ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);
            ShellSchemeEditor    dlg     = new ShellSchemeEditor(session == null ? null : session.TerminalSettings.ShellScheme);

            dlg.ShowDialog(window.AsForm());
            return(CommandResult.Succeeded);
        }
            public override void OnChange(ICommandTarget target, int selectedIndex)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);
                ITerminalSettings    ts      = session.TerminalSettings;

                ts.BeginUpdate();
                ts.TransmitNL = (NewLine)selectedIndex;
                ts.EndUpdate();
            }
Ejemplo n.º 5
0
            public override void OnChange(ICommandTarget target, bool is_checked)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsOpenTerminal(target);
                ITerminalSettings    ts      = session.TerminalSettings;

                ts.BeginUpdate();
                ts.EnabledCharTriggerIntelliSense = is_checked;
                ts.EndUpdate();
            }
Ejemplo n.º 6
0
            public override void OnChange(ICommandTarget target, bool is_checked)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);
                ITerminalSettings    ts      = session.TerminalSettings;

                ts.BeginUpdate();
                ts.LocalEcho = is_checked;
                ts.EndUpdate();
            }
            public override void OnChange(ICommandTarget target, int selectedIndex)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsOpenTerminal(target);
                ITerminalSettings    ts      = session.TerminalSettings;

                ts.BeginUpdate();
                ts.ShellScheme = TerminalEmulatorPlugin.Instance.ShellSchemeCollection.GetAt(selectedIndex);
                ts.EndUpdate();
            }
Ejemplo n.º 8
0
        public override bool IsChecked(ICommandTarget target)
        {
            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            if (ts == null)
            {
                return(false);
            }
            return(ts.TerminalSettings.EnabledCharTriggerIntelliSense);
        }
Ejemplo n.º 9
0
        private static CommandResult CmdSendAYT(ICommandTarget target)
        {
            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            if (ts == null)
            {
                return(CommandResult.Failed);
            }
            ts.TerminalConnection.TerminalOutput.AreYouThere();
            return(CommandResult.Succeeded);
        }
Ejemplo n.º 10
0
        private static CommandResult CmdResetTerminal(ICommandTarget target)
        {
            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            if (ts == null)
            {
                return(CommandResult.Failed);
            }
            ts.Terminal.FullReset();
            return(CommandResult.Succeeded);
        }
Ejemplo n.º 11
0
            public bool IsChecked(ICommandTarget target)
            {
                ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

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

                return(settings.ShellScheme.Name == _scheme.Name);
            }
Ejemplo n.º 12
0
            public override void OnChange(ICommandTarget target, int selectedIndex, object selectedItem)
            {
                EnumListItem <EncodingType> item = selectedItem as EnumListItem <EncodingType>;

                if (item != null)
                {
                    ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target);
                    ITerminalSettings    ts      = session.TerminalSettings;
                    ts.BeginUpdate();
                    ts.Encoding = item.Value;
                    ts.EndUpdate();
                }
            }
Ejemplo n.º 13
0
 public override CommandResult InternalExecute(ICommandTarget target, params IAdaptable[] args) {
     ITerminalControlHost host = TerminalCommandTarget.AsOpenTerminal(target);
     if (host.Terminal.CurrentModalTerminalTask != null) {
         //TODO 関連付けられたXZModemDialogをActivateするようにしたい
         return CommandResult.Ignored;
     }
     else {
         XZModemDialog dlg = new XZModemDialog();
         dlg.Owner = CommandTargetUtil.AsViewOrLastActivatedView(target).ParentForm.AsForm();
         dlg.Initialize(host.Terminal);
         dlg.Show();
         return CommandResult.Succeeded;
     }
 }
Ejemplo n.º 14
0
        public void Detach()
        {
            if (DebugOpt.DrawingPerformance)
            {
                DrawingPerformance.Output();
            }

            if (_inIMEComposition)
            {
                ClearIMEComposition();
            }
            _session = null;
            SetContent(null);
        }
Ejemplo n.º 15
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);
        }
Ejemplo n.º 16
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);
        }
Ejemplo n.º 17
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();
                }
            }
Ejemplo n.º 18
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);
        }
Ejemplo n.º 19
0
        private void OnTimer()
        {
            //全ターミナルに一斉処置
            ISessionManager sm = TerminalEmulatorPlugin.Instance.GetSessionManager();

            foreach (ISession s in sm.AllSessions)
            {
                //ちょっと裏技的だが
                ITerminalControlHost tc = (ITerminalControlHost)s.GetAdapter(typeof(ITerminalControlHost));
                if (tc != null)
                {
                    tc.Terminal.PromptRecognizer.CheckIfUpdated();
                }
            }
        }
Ejemplo n.º 20
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);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Get ITerminalConnection object from the target.
        /// </summary>
        /// <param name="target">Target object which has been passed to the IPoderosaCommand's method.</param>
        /// <returns>A ITerminalConnection object corresponding with current terminal. Null if it cannot be found.</returns>
        private ITerminalConnection GetTerminalConnection(ICommandTarget target)
        {
            IPoderosaDocument document = GetTerminalDocument(target);

            if (document != null && document.OwnerSession != null)
            {
                ITerminalControlHost terminalControlHost =
                    (ITerminalControlHost)document.OwnerSession.GetAdapter(typeof(ITerminalControlHost));
                if (terminalControlHost != null)
                {
                    return(terminalControlHost.TerminalConnection);
                }
            }

            return(null);
        }
Ejemplo n.º 22
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);
        }
Ejemplo n.º 23
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);
            }
Ejemplo n.º 24
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);
            }
Ejemplo n.º 25
0
        public void Attach(ITerminalControlHost session)
        {
            _session = session;
            SetContent(session.Terminal.GetDocument());

            ITerminalEmulatorOptions opt = TerminalEmulatorPlugin.Instance.TerminalEmulatorOptions;

            _caret.Blink = opt.CaretBlink;
            _caret.Color = opt.CaretColor;
            _caret.Style = opt.CaretType;
            _caret.Reset();

            //KeepAliveタイマ起動は最も遅らせた場合でココ
            TerminalEmulatorPlugin.Instance.KeepAlive.Refresh(opt.KeepAliveInterval);

            //ASCIIWordBreakTable : 今は共有設定だが、Session固有にデータを持つようにするかもしれない含みを持たせて。
            ASCIIWordBreakTable table = ASCIIWordBreakTable.Default;

            table.Reset();
            foreach (char ch in opt.AdditionalWordElement)
            {
                table.Set(ch, ASCIIWordBreakTable.LETTER);
            }

            lock (GetDocument()) {
                _ignoreValueChangeEvent = true;
                _session.Terminal.CommitScrollBar(_VScrollBar, false);
                _ignoreValueChangeEvent = false;

                if (!IsConnectionClosed())
                {
                    Size ts = CalcTerminalSize(GetRenderProfile());

                    //TODO ネゴ開始前はここを抑制したい
                    if (ts.Width != GetDocument().TerminalWidth || ts.Height != GetDocument().TerminalHeight)
                    {
                        ResizeTerminal(ts.Width, ts.Height);
                    }
                }
            }
            Invalidate(true);
        }
Ejemplo n.º 26
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);
        }
Ejemplo n.º 27
0
        public bool IsEnabled(ICommandTarget target)
        {
            ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target);

            return(ts != null);
        }
Ejemplo n.º 28
0
            public override bool IsEnabled(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsOpenTerminal(target);

                return(session != null);
            }
        public void Detach()
        {
            if (DebugOpt.DrawingPerformance)
                DrawingPerformance.Output();

            if (_inIMEComposition)
                ClearIMEComposition();

            _mouseTrackingHandler.Detach();
            _mouseWheelHandler.Detach();

            _session = null;
            SetContent(null);
        }
        public void Attach(ITerminalControlHost session)
        {
            _session = session;
            SetContent(session.Terminal.GetDocument());

            _mouseTrackingHandler.Attach(session);
            _mouseWheelHandler.Attach(session);

            ITerminalEmulatorOptions opt = TerminalEmulatorPlugin.Instance.TerminalEmulatorOptions;
            _caret.Blink = opt.CaretBlink;
            _caret.Color = opt.CaretColor;
            _caret.Style = opt.CaretType;
            _caret.Reset();

            //KeepAlive�^�C�}�N���͍ł�x�点���ꍇ�ŃR�R
            TerminalEmulatorPlugin.Instance.KeepAlive.Refresh(opt.KeepAliveInterval);

            //ASCIIWordBreakTable : ���͋��L�ݒ肾���ASession�ŗL�Ƀf�[�^����‚悤�ɂ��邩�����Ȃ��܂݂�������āB
            ASCIIWordBreakTable table = ASCIIWordBreakTable.Default;
            table.Reset();
            foreach (char ch in opt.AdditionalWordElement)
                table.Set(ch, ASCIIWordBreakTable.LETTER);

            lock (GetDocument()) {
                _ignoreValueChangeEvent = true;
                _session.Terminal.CommitScrollBar(_VScrollBar, false);
                _ignoreValueChangeEvent = false;

                if (!IsConnectionClosed()) {
                    Size ts = CalcTerminalSize(GetRenderProfile());

                    //TODO �l�S�J�n�O�͂�����}��������
                    if (ts.Width != GetDocument().TerminalWidth || ts.Height != GetDocument().TerminalHeight)
                        ResizeTerminal(ts.Width, ts.Height);
                }
            }
            Invalidate(true);
        }
 public void Attach(ITerminalControlHost session)
 {
     lock (_terminalSync) {
         _terminal = session.Terminal;
     }
 }
Ejemplo n.º 32
0
            public override int GetSelectedIndex(ICommandTarget target)
            {
                ITerminalControlHost session = TerminalCommandTarget.AsOpenTerminal(target);

                return(TerminalEmulatorPlugin.Instance.ShellSchemeCollection.IndexOf(session.TerminalSettings.ShellScheme));
            }
Ejemplo n.º 33
0
        public void Attach(ITerminalControlHost session) {
            _session = session;
            SetContent(session.Terminal.GetDocument());

            _mouseTrackingHandler.Attach(session);
            _mouseWheelHandler.Attach(session);

            ITerminalEmulatorOptions opt = TerminalEmulatorPlugin.Instance.TerminalEmulatorOptions;
            _caret.Blink = opt.CaretBlink;
            _caret.Color = opt.CaretColor;
            _caret.Style = opt.CaretType;
            _caret.Reset();

            //KeepAliveタイマ起動は最も遅らせた場合でココ
            TerminalEmulatorPlugin.Instance.KeepAlive.Refresh(opt.KeepAliveInterval);

            //ASCIIWordBreakTable : 今は共有設定だが、Session固有にデータを持つようにするかもしれない含みを持たせて。
            ASCIIWordBreakTable table = ASCIIWordBreakTable.Default;
            table.Reset();
            foreach (char ch in opt.AdditionalWordElement)
                table.Set(ch, ASCIIWordBreakTable.LETTER);

            lock (GetDocument()) {
                _ignoreValueChangeEvent = true;
                _session.Terminal.CommitScrollBar(_VScrollBar, false);
                _ignoreValueChangeEvent = false;

                if (!IsConnectionClosed()) {
                    Size ts = CalcTerminalSize(GetRenderProfile());

                    //TODO ネゴ開始前はここを抑制したい
                    if (ts.Width != GetDocument().TerminalWidth || ts.Height != GetDocument().TerminalHeight)
                        ResizeTerminal(ts.Width, ts.Height);
                }
            }
            Invalidate(true);
        }
Ejemplo n.º 34
0
        public static ITerminalControlHost AsOpenTerminal(ICommandTarget target)
        {
            ITerminalControlHost s = AsTerminal(target);

            return((s == null || s.TerminalConnection.IsClosed) ? null : s);
        }