Example #1
0
		public void Split (Gtk.TextIter iter,
		                   Gtk.TextBuffer buffer)
		{
			foreach (Gtk.TextTag tag in iter.Tags) {
				NoteTag noteTag = tag as NoteTag;
				if (noteTag != null && !noteTag.CanSplit) {
					Gtk.TextIter start = iter;
					Gtk.TextIter end = iter;

					// We only care about enclosing tags
					if (start.TogglesTag (tag) || end.TogglesTag (tag))
						continue;

					start.BackwardToTagToggle (tag);
					end.ForwardToTagToggle (tag);
					AddSplitTag (start, end, tag);
					buffer.RemoveTag(tag, start, end);
				}
			}
		}
Example #2
0
		public void Redo (Gtk.TextBuffer buffer)
		{
			Gtk.TextIter start_iter, end_iter;
			start_iter = buffer.GetIterAtOffset (start);
			end_iter = buffer.GetIterAtOffset (end);

			buffer.MoveMark (buffer.SelectionBound, start_iter);
			buffer.RemoveTag (tag, start_iter, end_iter);
			buffer.MoveMark (buffer.InsertMark, end_iter);
		}
Example #3
0
		protected void RemoveSplitTags (Gtk.TextBuffer buffer)
		{
			foreach (TagData tag in splitTags) {
				Gtk.TextIter start = buffer.GetIterAtOffset (tag.start);
				Gtk.TextIter end = buffer.GetIterAtOffset (tag.end);
				buffer.RemoveTag(tag.tag, start, end);
			}
		}