private static void SessionEntryPoint(AbstractTerminal terminal, CommandResultDocument document) { try { TerminalControl tc = terminal.TerminalHost.TerminalControl; Debug.Assert(tc != null); RenderProfile rp = (RenderProfile)tc.GetRenderProfile().Clone(); CommandResultSession session = new CommandResultSession(document, rp); //現在のRenderProfileを使ってセッションを作る TerminalDocument terminaldoc = terminal.GetDocument(); PopupViewCreationParam cp = new PopupViewCreationParam(_viewFactory); //結果のサイズに合わせる。ただし高さは20行を上限とする cp.InitialSize = new Size(tc.ClientSize.Width, (int)(RuntimeUtil.AdjustIntRange(document.Size, 0, 20) * rp.Pitch.Height) + 2); cp.OwnedByCommandTargetWindow = GEnv.Options.CommandPopupAlwaysOnTop; cp.ShowInTaskBar = GEnv.Options.CommandPopupInTaskBar; IWindowManager wm = TerminalEmulatorPlugin.Instance.GetWindowManager(); ISessionManager sm = TerminalEmulatorPlugin.Instance.GetSessionManager(); IPoderosaPopupWindow window = wm.CreatePopupView(cp); sm.StartNewSession(session, window.InternalView); sm.ActivateDocument(session.Document, ActivateReason.InternalAction); } catch (Exception ex) { RuntimeUtil.ReportException(ex); } }
public override void InitializePlugin(IPoderosaWorld poderosa) { base.InitializePlugin(poderosa); _instance = this; _optionSupplier = new TerminalOptionsSupplier(); _keepAlive = new KeepAlive(); _customKeySettings = new CustomKeySettings(); _shellSchemeCollection = new ShellSchemeCollection(); GEnv.Init(); IPluginManager pm = poderosa.PluginManager; ICoreServices cs = (ICoreServices)poderosa.GetAdapter(typeof(ICoreServices)); Debug.Assert(cs != null); cs.PreferenceExtensionPoint.RegisterExtension(_optionSupplier); cs.PreferenceExtensionPoint.RegisterExtension(_shellSchemeCollection); _coreServices = cs; //Serialize Service cs.SerializerExtensionPoint.RegisterExtension(new TerminalSettingsSerializer(pm)); _commandManager = cs.CommandManager; TerminalCommand.Register(_commandManager); TerminalSettingMenuGroup.Initialize(); //PromptChecker _promptCheckerWithTimer = new PromptCheckerWithTimer(); //Edit Menuに追加 IExtensionPoint editmenu = pm.FindExtensionPoint("org.poderosa.menu.edit"); editmenu.RegisterExtension(new AdvancedCopyPasteMenuGroup()); editmenu.RegisterExtension(new TerminalBufferMenuGroup()); editmenu.RegisterExtension(new SelectionMenuGroup()); //Console Menu : これは処置に困るところだが! IExtensionPoint consolemenu = pm.FindExtensionPoint("org.poderosa.menu.console"); consolemenu.RegisterExtension(new TerminalSettingMenuGroup()); consolemenu.RegisterExtension(new IntelliSenseMenuGroup()); //Context Menu _contextMenu = pm.CreateExtensionPoint(TerminalEmulatorConstants.TERMINAL_CONTEXT_MENU_EXTENSIONPOINT, typeof(IPoderosaMenuGroup), this); _contextMenu.RegisterExtension(new BasicCopyPasteMenuGroup()); _contextMenu.RegisterExtension(new TerminalSettingMenuGroup()); _contextMenu.RegisterExtension(new IntelliSenseMenuGroup()); //タブのコンテキストメニュー _documentContextMenu = pm.CreateExtensionPoint(TerminalEmulatorConstants.DOCUMENT_CONTEXT_MENU_EXTENSIONPOINT, typeof(IPoderosaMenuGroup), this); _documentContextMenu.RegisterExtension(new PoderosaMenuGroupImpl(new PoderosaMenuItemImpl( cs.CommandManager.Find("org.poderosa.core.session.closedocument"), GEnv.Strings, "Menu.DocumentClose"))); //ToolBar IExtensionPoint toolbar = pm.FindExtensionPoint("org.poderosa.core.window.toolbar"); TerminalToolBar terminaltoolbar = new TerminalToolBar(); toolbar.RegisterExtension(terminaltoolbar); GetSessionManager().AddActiveDocumentChangeListener(terminaltoolbar); //その他 Extension _intelliSenseExtension = pm.CreateExtensionPoint(TerminalEmulatorConstants.INTELLISENSE_CANDIDATE_EXTENSIONPOINT, typeof(IIntelliSenseCandidateExtension), this); _autoLogFileFormatter = pm.CreateExtensionPoint(TerminalEmulatorConstants.LOG_FILENAME_FORMATTER_EXTENSIONPOINT, typeof(IAutoLogFileFormatter), this); _dynamicCaptionFormatter = pm.CreateExtensionPoint(TerminalEmulatorConstants.DYNAMIC_CAPTION_FORMATTER_EXTENSIONPOINT, typeof(IDynamicCaptionFormatter), this); //Command Popup CommandResultSession.Init(poderosa); PopupStyleCommandResultRecognizer.CreateExtensionPointAndDefaultCommands(pm); // Preferences for PromptRecognizer cs.PreferenceExtensionPoint.RegisterExtension(PromptRecognizerPreferences.Instance); // Preferences for XTerm cs.PreferenceExtensionPoint.RegisterExtension(XTermPreferences.Instance); }
public void SetParent(CommandResultSession session) { _session = session; this.SetPrivateRenderProfile(session.RenderProfile); this.SetContent(_session.Document); }
public void SetParent(CommandResultSession session) { _session = session; this.SetPrivateRenderProfile((RenderProfile)session.RenderProfile.Clone()); this.SetContent(_session.Document); }