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); }
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); } }
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(); }
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(); }
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(); }
public override bool IsChecked(ICommandTarget target) { ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target); if (ts == null) { return(false); } return(ts.TerminalSettings.EnabledCharTriggerIntelliSense); }
private static CommandResult CmdSendAYT(ICommandTarget target) { ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target); if (ts == null) { return(CommandResult.Failed); } ts.TerminalConnection.TerminalOutput.AreYouThere(); return(CommandResult.Succeeded); }
private static CommandResult CmdResetTerminal(ICommandTarget target) { ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target); if (ts == null) { return(CommandResult.Failed); } ts.Terminal.FullReset(); return(CommandResult.Succeeded); }
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); }
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(); } }
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; } }
public void Detach() { if (DebugOpt.DrawingPerformance) { DrawingPerformance.Output(); } if (_inIMEComposition) { ClearIMEComposition(); } _session = null; SetContent(null); }
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); }
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); }
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(); } }
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); }
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(); } } }
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); }
/// <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); }
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); }
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); }
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); }
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); }
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 bool IsEnabled(ICommandTarget target) { ITerminalControlHost ts = TerminalCommandTarget.AsOpenTerminal(target); return(ts != null); }
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; } }
public override int GetSelectedIndex(ICommandTarget target) { ITerminalControlHost session = TerminalCommandTarget.AsOpenTerminal(target); return(TerminalEmulatorPlugin.Instance.ShellSchemeCollection.IndexOf(session.TerminalSettings.ShellScheme)); }
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); }
public static ITerminalControlHost AsOpenTerminal(ICommandTarget target) { ITerminalControlHost s = AsTerminal(target); return((s == null || s.TerminalConnection.IsClosed) ? null : s); }