Пример #1
0
        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;
                }
            };
        }