7 changed files with 99 additions and 90 deletions
@ -0,0 +1,17 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
|
||||||
|
// <version>$Revision$</version>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
|
||||||
|
namespace ICSharpCode.Scripting |
||||||
|
{ |
||||||
|
public interface IScriptingConsoleHost : IDisposable |
||||||
|
{ |
||||||
|
IScriptingConsole ScriptingConsole { get; } |
||||||
|
void Run(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,66 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.SharpDevelop.Editor; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
using AvalonEdit = ICSharpCode.AvalonEdit; |
||||||
|
|
||||||
|
namespace ICSharpCode.Scripting |
||||||
|
{ |
||||||
|
public abstract class ScriptingConsolePad : AbstractPadContent, IScriptingConsolePad |
||||||
|
{ |
||||||
|
ScriptingConsoleTextEditor consoleTextEditor; |
||||||
|
AvalonEdit.TextEditor textEditor; |
||||||
|
IScriptingConsoleHost host; |
||||||
|
|
||||||
|
public ScriptingConsolePad() |
||||||
|
{ |
||||||
|
textEditor = CreateTextEditor(); |
||||||
|
CreateConsoleHost(); |
||||||
|
host.Run(); |
||||||
|
} |
||||||
|
|
||||||
|
AvalonEdit.TextEditor CreateTextEditor() |
||||||
|
{ |
||||||
|
object textEditor; |
||||||
|
EditorControlService.CreateEditor(out textEditor); |
||||||
|
return (AvalonEdit.TextEditor)textEditor; |
||||||
|
} |
||||||
|
|
||||||
|
void CreateConsoleHost() |
||||||
|
{ |
||||||
|
ControlDispatcher dispatcher = new ControlDispatcher(textEditor); |
||||||
|
consoleTextEditor = new ScriptingConsoleTextEditor(textEditor); |
||||||
|
host = CreateConsoleHost(consoleTextEditor, dispatcher); |
||||||
|
} |
||||||
|
|
||||||
|
protected virtual IScriptingConsoleHost CreateConsoleHost( |
||||||
|
IScriptingConsoleTextEditor consoleTextEditor, |
||||||
|
IControlDispatcher dispatcher) |
||||||
|
{ |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
public IScriptingConsoleTextEditor ScriptingConsoleTextEditor { |
||||||
|
get { return consoleTextEditor; } |
||||||
|
} |
||||||
|
|
||||||
|
public IScriptingConsole ScriptingConsole { |
||||||
|
get { return host.ScriptingConsole; } |
||||||
|
} |
||||||
|
|
||||||
|
public override object Control { |
||||||
|
get { return textEditor; } |
||||||
|
} |
||||||
|
|
||||||
|
public override void Dispose() |
||||||
|
{ |
||||||
|
host.Dispose(); |
||||||
|
} |
||||||
|
|
||||||
|
public override object InitiallyFocusedControl { |
||||||
|
get { return textEditor; } |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue