void DocumentChanged(object sender, DocumentEventArgs e) { int oldCount = foldMarker.Count; document.UpdateSegmentListOnDocumentChange(foldMarker, e); if (oldCount != foldMarker.Count) { document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.WholeTextArea)); } }
void DocumentChanged(object sender, DocumentEventArgs e) { if (e.Text == null) { Remove(e.Offset, e.Length); } else { if (e.Length < 0) { Insert(e.Offset, e.Text); } else { Replace(e.Offset, e.Length, e.Text); } } }
void DocumentChanged(object sender, DocumentEventArgs e) { // reset markers table markersTable.Clear(); document.UpdateSegmentListOnDocumentChange(textMarker, e); }
public void AdjustScrollBars(object sender, DocumentEventArgs e) { vScrollBar.Minimum = 0; vScrollBar.Maximum = textArea.MaxVScrollValue; int max = 0; foreach (ISegment lineSegment in Document.LineSegmentCollection) { if(Document.FoldingManager.IsLineVisible(Document.GetLineNumberForOffset(lineSegment.Offset))) { max = Math.Max(lineSegment.Length, max); } } hScrollBar.Minimum = 0; hScrollBar.Maximum = (Math.Max(0, max + textArea.TextViewMargin.VisibleColumnCount - 1)); vScrollBar.LargeChange = Math.Max(0, textArea.TextViewMargin.DrawingRectangle.Height); vScrollBar.SmallChange = Math.Max(0, textArea.TextViewMargin.FontHeight); hScrollBar.LargeChange = Math.Max(0, textArea.TextViewMargin.VisibleColumnCount - 1); hScrollBar.SmallChange = Math.Max(0, (int)textArea.TextViewMargin.GetWidth(' ')); }
void TextAreaChangedEvent(object sender, DocumentEventArgs e) { IsDirty = true;//如果当前视图中的内容有所改变,马上使IsDirty属性为true. }
protected void OnDocumentChanged(DocumentEventArgs e) { if (DocumentChanged != null) { DocumentChanged(this, e); } }
public void UpdateSegmentListOnDocumentChange(ArrayList list, DocumentEventArgs e) { for (int i = 0; i < list.Count; ++i) { ISegment fm = (ISegment)list[i]; if (e.Offset <= fm.Offset && fm.Offset <= e.Offset + e.Length || e.Offset <= fm.Offset + fm.Length && fm.Offset + fm.Length <= e.Offset + e.Length) { list.RemoveAt(i); --i; continue; } if (fm.Offset <= e.Offset && e.Offset <= fm.Offset + fm.Length) { if (e.Text != null) { fm.Length += e.Text.Length; } if (e.Length > 0) { fm.Length -= e.Length; } continue; } if (fm.Offset >= e.Offset) { if (e.Text != null) { fm.Offset += e.Text.Length; } if (e.Length > 0) { fm.Offset -= e.Length; } } } }