public CodeEditorControlWrapper() { avalonEditorWrapper = new ElementHost { BackColor = Color.White, Dock = DockStyle.Fill, Child = _codeEditors[CodeEditorType.AvalonEdit] as UIElement }; tabControl = new DocumentsTabControl { Dock = DockStyle.Top }; var panel = new Panel { Dock = DockStyle.Fill }; panel.Controls.AddRange(new[] { avalonEditorWrapper, _codeEditors[CodeEditorType.Scintilla] as Control }); var tableLayout = new TableLayoutPanel { Dock = DockStyle.Fill, ColumnCount = 1, RowCount = 2 }; tableLayout.Controls.Add(tabControl, 0, 0); tableLayout.Controls.Add(panel, 0, 1); Controls.Add(tableLayout); SetEditorVisibility(); SetFont(Settings.Default.ScriptingFont); tabControl.SelectedIndexChanged += TabControl_SelectedIndexChanged; tabControl.ControlRemoved += TabControl_ControlRemoved; tabControl.ControlAdded += TabControl_ControlAdded; NewDocument(); Settings.Default.PropertyChanged += (o, e) => { switch (e.PropertyName) { case "CodeEditor": ChangeEditorType(); break; case "ScriptingFont": SetFont(Settings.Default.ScriptingFont); break; } }; }
public CodeEditorControlWrapper( #if !__MonoCS__ ScintillaCodeEditorControl scintillaCodeEditorControl, AvalonEditCodeEditor avalonEditCodeEditor, #endif TextEditorCodeEditor textEditorCodeEditor) { _codeEditors = new Dictionary <CodeEditorType, ICodeEditorControl> { #if !__MonoCS__ { CodeEditorType.Scintilla, scintillaCodeEditorControl }, { CodeEditorType.AvalonEdit, avalonEditCodeEditor }, #endif { CodeEditorType.TextEditor, textEditorCodeEditor } }; #if !__MonoCS__ avalonEditorWrapper = new System.Windows.Forms.Integration.ElementHost { BackColor = Color.White, Dock = DockStyle.Fill, Child = _codeEditors[CodeEditorType.AvalonEdit] as UIElement }; #endif tabControl = new DocumentsTabControl { Dock = DockStyle.Top, AutoSize = true }; var panel = new Panel { Dock = DockStyle.Fill }; panel.Controls.AddRange(new[] { #if !__MonoCS__ avalonEditorWrapper, _codeEditors[CodeEditorType.Scintilla] as Control, #endif _codeEditors[CodeEditorType.TextEditor] as Control }); var tableLayout = new TableLayoutPanel { Dock = DockStyle.Fill, ColumnCount = 1, RowCount = 2, AutoSize = true, }; AutoSize = true; tableLayout.Controls.Add(tabControl, 0, 0); tableLayout.Controls.Add(panel, 0, 1); Controls.Add(tableLayout); SetEditorVisibility(); SetFont(Settings.Default.ScriptingFont); tabControl.SelectedIndexChanged += TabControl_SelectedIndexChanged; tabControl.ControlRemoved += TabControl_ControlRemoved; tabControl.ControlAdded += TabControl_ControlAdded; NewDocument(); Settings.Default.PropertyChanged += (o, e) => { switch (e.PropertyName) { case "CodeEditor": ChangeEditorType(); break; case "ScriptingFont": SetFont(Settings.Default.ScriptingFont); break; } }; }