protected void SetActiveTextAreaControl(TextAreaControl value) { if (activeTextAreaControl != value) { activeTextAreaControl = value; if (ActiveTextAreaControlChanged != null) { ActiveTextAreaControlChanged(this, EventArgs.Empty); } } }
public TextEditorControl() { SetStyle(ControlStyles.ContainerControl, true); textAreaPanel.Dock = DockStyle.Fill; Document = (new DocumentFactory()).CreateDocument(); Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy(); primaryTextArea = new TextAreaControl(this); activeTextAreaControl = primaryTextArea; primaryTextArea.TextArea.GotFocus += delegate { SetActiveTextAreaControl(primaryTextArea); }; primaryTextArea.Dock = DockStyle.Fill; textAreaPanel.Controls.Add(primaryTextArea); InitializeTextAreaControl(primaryTextArea); Controls.Add(textAreaPanel); ResizeRedraw = true; Document.UpdateCommited += new EventHandler(CommitUpdateRequested); OptionsChanged(); }
public void Split() { if (secondaryTextArea == null) { secondaryTextArea = new TextAreaControl(this); secondaryTextArea.Dock = DockStyle.Bottom; secondaryTextArea.Height = Height / 2; secondaryTextArea.TextArea.GotFocus += delegate { SetActiveTextAreaControl(secondaryTextArea); }; textAreaSplitter = new Splitter(); textAreaSplitter.BorderStyle = BorderStyle.FixedSingle ; textAreaSplitter.Height = 8; textAreaSplitter.Dock = DockStyle.Bottom; textAreaPanel.Controls.Add(textAreaSplitter); textAreaPanel.Controls.Add(secondaryTextArea); InitializeTextAreaControl(secondaryTextArea); secondaryTextArea.OptionsChanged(); } else { SetActiveTextAreaControl(primaryTextArea); textAreaPanel.Controls.Remove(secondaryTextArea); textAreaPanel.Controls.Remove(textAreaSplitter); secondaryTextArea.Dispose(); textAreaSplitter.Dispose(); secondaryTextArea = null; textAreaSplitter = null; } }
protected virtual void InitializeTextAreaControl(TextAreaControl newControl) { }
protected override void Dispose(bool disposing) { if (disposing) { if (printDocument != null) { printDocument.BeginPrint -= new PrintEventHandler(this.BeginPrint); printDocument.PrintPage -= new PrintPageEventHandler(this.PrintPage); printDocument = null; } Document.UndoStack.ClearAll(); Document.UpdateCommited -= new EventHandler(CommitUpdateRequested); if (textAreaPanel != null) { if (secondaryTextArea != null) { secondaryTextArea.Dispose(); textAreaSplitter.Dispose(); secondaryTextArea = null; textAreaSplitter = null; } if (primaryTextArea != null) { primaryTextArea.Dispose(); } textAreaPanel.Dispose(); textAreaPanel = null; } } base.Dispose(disposing); }
protected override void Dispose(bool disposing) { base.Dispose(disposing); if (disposing) { if (!disposed) { disposed = true; if (caret != null) { caret.PositionChanged -= new EventHandler(SearchMatchingBracket); caret.Dispose(); } if (selectionManager != null) { selectionManager.Dispose(); } Document.TextContentChanged -= new EventHandler(TextContentChanged); Document.FoldingManager.FoldingsChanged -= new EventHandler(DocumentFoldingsChanged); motherTextAreaControl = null; motherTextEditorControl = null; foreach (AbstractMargin margin in leftMargins) { if (margin is IDisposable) (margin as IDisposable).Dispose(); } textView.Dispose(); } } }
public TextArea(TextEditorControl motherTextEditorControl, TextAreaControl motherTextAreaControl) { this.motherTextAreaControl = motherTextAreaControl; this.motherTextEditorControl = motherTextEditorControl; caret = new Caret(this); selectionManager = new SelectionManager(Document, this); this.textAreaClipboardHandler = new TextAreaClipboardHandler(this); ResizeRedraw = true; SetStyle(ControlStyles.OptimizedDoubleBuffer, true); // SetStyle(ControlStyles.AllPaintingInWmPaint, true); // SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.Opaque, false); SetStyle(ControlStyles.ResizeRedraw, true); SetStyle(ControlStyles.Selectable, true); textView = new TextView(this); gutterMargin = new GutterMargin(this); foldMargin = new FoldMargin(this); iconBarMargin = new IconBarMargin(this); leftMargins.AddRange(new AbstractMargin[] { iconBarMargin, gutterMargin, foldMargin }); OptionsChanged(); new TextAreaMouseHandler(this).Attach(); new TextAreaDragDropHandler().Attach(this); bracketshemes.Add(new BracketHighlightingSheme('{', '}')); bracketshemes.Add(new BracketHighlightingSheme('(', ')')); bracketshemes.Add(new BracketHighlightingSheme('[', ']')); caret.PositionChanged += new EventHandler(SearchMatchingBracket); Document.TextContentChanged += new EventHandler(TextContentChanged); Document.FoldingManager.FoldingsChanged += new EventHandler(DocumentFoldingsChanged); }