void OnInsertText(object sender, Gtk.InsertTextArgs args) { Gtk.TextIter start = args.Pos; start.BackwardChars(args.Length); Gtk.TextIter end = args.Pos; GetBlockExtents(ref start, ref end); UnhighlightInBlock(start, end); HighlightInBlock(start, end); }
private void OnBufferInsertText (object o, InsertTextArgs args) { TextInsertedHandler handler = TextInserted; if (handler != null) { TextInsertedArgs raise_args = new TextInsertedArgs (); raise_args.Args = new object [] { args.Text, args.Length, args.Pos.Offset }; handler (this, raise_args); } }
void HandleInsertText(object o, Gtk.InsertTextArgs args) { // when text is inserted, apply insertion formatting var buffer = Control.Buffer; #if GTK3 var start = buffer.GetIterAtOffset(args.Pos.Offset - args.NewTextLength); #elif GTK2 var start = buffer.GetIterAtOffset(args.Pos.Offset - args.Length); #endif foreach (var tag in removeTags) { buffer.RemoveTag(tag, start, args.Pos); } foreach (var tag in insertTags) { buffer.ApplyTag(tag, start, args.Pos); } keepTags = true; }
private void OnInsertText (object sender, InsertTextArgs args) { int offset = args.Pos.Offset - args.Length; string text = args.Text; TextIter previousIter = GetIterAtOffset (offset - 1); // Previous is the iter before the insert offset. TextIter startIter = GetIterAtOffset (offset); TextIter endIter = GetIterAtOffset (offset + text.Length); // Only handle special inserting cases when we have a fully loaded document. if (document_loaded) { #if DEBUG Console.WriteLine ("DEBUG: Inserting: {0}", text); Console.WriteLine ("DEBUG: Start Offset: {0} Char: {1}", startIter.Offset, startIter.Char); Console.WriteLine ("DEBUG: End Offset: {0} Char: {1}", endIter.Offset, endIter.Char); #endif TextTag lastEnd = DocumentUtils.GetLastTag (endIter); TextTag lastPrevious = DocumentUtils.GetLastTag (previousIter); if (endIter.BeginsTag (lastEnd) && lastEnd.Editable) { #if DEBUG Console.WriteLine ("DEBUG: Inserting text at start of editable region."); Console.WriteLine ("DEBUG: Tag Name: {0} Char: {1}", lastEnd.Name, endIter.Char); #endif ApplyTag (lastEnd, startIter, endIter); } else if (DocumentUtils.TagEndsHere (lastPrevious, previousIter, startIter) && lastPrevious.Editable) { #if DEBUG Console.WriteLine ("DEBUG: Inserting text at end of editable region."); Console.WriteLine ("DEBUG: Tag Name: {0} Char: {1}", lastPrevious.Name, previousIter.Char); #endif ApplyTag (lastPrevious, startIter, endIter); } } }
// Action-creating event handlers... private void OnInsertText (object sender, InsertTextArgs args) { if (frozen_cnt == 0) { InsertAction action = new InsertAction (args.Pos, args.Text, args.Text.Length, chop_buffer); AddUndoAction (action); } }
void OnInsertText (object sender, InsertTextArgs args) { int lines = 0; for (int i = 0; i < args.Text.Length; i++) { if (args.Text [i] == '\n') lines++; } TextIter iter = this.GetIterAtOffset (args.Pos.Offset - args.Length); if (lines != 0) OnLineCountChanged (iter.Line, lines, iter.LineOffset); OnTextChanged (args.Pos.Offset, args.Pos.Offset + args.Length); }
private void HandleInsertText(object o, InsertTextArgs args) { if (_inhibitTextChanged) { return; } OnTextChanged(TextChangedEventArgs.OperationType.Insertion, args.Pos.Offset - 1, args.Length, args.Text); }
void OnInsertText(object sender, Gtk.InsertTextArgs args) { SetupTimer(Note, args.Pos, args.Pos); }
private void OnBufferInsertText (object o, InsertTextArgs args) { if (!isBufferInsertManual) { int index = args.Pos.Offset; string insertion = args.Text; ExecuteInsertCommand(index, insertion); } ApplyTags(); UpdateLineColStatus(); }