Example #1
0
        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);
        }
Example #2
0
 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);
     }
 }
Example #3
0
        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);
		}
Example #7
0
 private void HandleInsertText(object o, InsertTextArgs args)
 {
     if (_inhibitTextChanged)
     {
         return;
     }
     OnTextChanged(TextChangedEventArgs.OperationType.Insertion,
                   args.Pos.Offset - 1,
                   args.Length,
                   args.Text);
 }
Example #8
0
 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();
	}