Exemplo n.º 1
0
		void DocumentChanged(object sender, DocumentEventArgs e)
		{
			int oldCount = foldMarker.Count;
			document.UpdateSegmentListOnDocumentChange(foldMarker, e);
			if (oldCount != foldMarker.Count) {
				document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.WholeTextArea));
			}
		}
Exemplo n.º 2
0
		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);
		}
Exemplo n.º 4
0
		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(' '));
		}
Exemplo n.º 5
0
		void TextAreaChangedEvent(object sender, DocumentEventArgs e)
		{
			IsDirty = true;//如果当前视图中的内容有所改变,马上使IsDirty属性为true.
		}
Exemplo n.º 6
0
		protected void OnDocumentChanged(DocumentEventArgs e)
		{
			if (DocumentChanged != null) {
				DocumentChanged(this, e);
			}
		}
Exemplo n.º 7
0
		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;
					}
				}
			}
		}