public AbstractTerminal(TerminalInitializeInfo info) { TerminalEmulatorPlugin.Instance.LaterInitialize(); _session = info.Session; //_invalidateParam = new InvalidateParam(); _document = new TerminalDocument(info.InitialWidth, info.InitialHeight); _document.SetOwner(_session.ISession); _afterExitLockActions = new List <AfterExitLockDelegate>(); _encodingProfile = EncodingProfile.Create(info.Session.TerminalSettings.Encoding); _decoder = new ISO2022CharDecoder(this, _encodingProfile); _unicodeCharConverter = _encodingProfile.CreateUnicodeCharConverter(); _terminalMode = TerminalMode.Normal; _currentdecoration = TextDecoration.Default; _manipulator = new GLineManipulator(); _scrollBarValues = new ScrollBarValues(); _logService = new LogService(info.TerminalParameter, _session.TerminalSettings); _promptRecognizer = new PromptRecognizer(this); _intelliSense = new IntelliSense(this); _commandResultRecognizer = new PopupStyleCommandResultRecognizer(this); if (info.Session.TerminalSettings.LogSettings != null) { _logService.ApplyLogSettings(_session.TerminalSettings.LogSettings, false); } //event handlers ITerminalSettings ts = info.Session.TerminalSettings; ts.ChangeEncoding += delegate(EncodingType t) { this.Reset(); }; ts.ChangeRenderProfile += delegate(RenderProfile prof) { TerminalControl tc = _session.TerminalControl; if (tc != null) { tc.ApplyRenderProfile(prof); } }; }
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 CommandAdapter(PopupStyleCommandResultRecognizer parent, ICommandResultProcessorMenuItem proc) { _item = proc; _parent = parent; }
public AbstractTerminal(TerminalInitializeInfo info) { TerminalEmulatorPlugin.Instance.LaterInitialize(); _session = info.Session; //_invalidateParam = new InvalidateParam(); _document = new TerminalDocument(info.InitialWidth, info.InitialHeight); _document.SetOwner(_session.ISession); _afterExitLockActions = new List<AfterExitLockDelegate>(); _decoder = new ISO2022CharDecoder(this, EncodingProfile.Get(info.Session.TerminalSettings.Encoding)); _terminalMode = TerminalMode.Normal; _currentdecoration = TextDecoration.Default; _manipulator = new GLineManipulator(); _scrollBarValues = new ScrollBarValues(); _logService = new LogService(info.TerminalParameter, _session.TerminalSettings); _promptRecognizer = new PromptRecognizer(this); _intelliSense = new IntelliSense(this); _commandResultRecognizer = new PopupStyleCommandResultRecognizer(this); if (info.Session.TerminalSettings.LogSettings != null) _logService.ApplyLogSettings(_session.TerminalSettings.LogSettings, false); //event handlers ITerminalSettings ts = info.Session.TerminalSettings; ts.ChangeEncoding += delegate(EncodingType t) { this.Reset(); }; ts.ChangeRenderProfile += delegate(RenderProfile prof) { TerminalControl tc = _session.TerminalControl; if (tc != null) tc.ApplyRenderProfile(prof); }; }
public CommandAdapter(PopupStyleCommandResultRecognizer parent, ICommandResultProcessorMenuItem proc) { _item = proc; _parent = parent; }