public static void GetBlockExtents (ref Gtk.TextIter start, ref Gtk.TextIter end, int threshold, Gtk.TextTag avoid_tag) { // Move start and end to the beginning or end of their // respective paragraphs, bounded by some threshold. start.LineOffset = Math.Max (0, start.LineOffset - threshold); // FIXME: Sometimes I need to access this before it // returns real values. int bug = end.CharsInLine; if (end.CharsInLine - end.LineOffset > threshold + 1 /* newline */) end.LineOffset += threshold; else end.ForwardToLineEnd (); if (avoid_tag != null) { if (start.HasTag (avoid_tag)) start.BackwardToTagToggle (avoid_tag); if (end.HasTag (avoid_tag)) end.ForwardToTagToggle (avoid_tag); } }
public void RemoveBullet (ref Gtk.TextIter iter) { Gtk.TextIter end; Gtk.TextIter line_end = iter; line_end.ForwardToLineEnd (); if (line_end.LineOffset < 2) { end = GetIterAtLineOffset (iter.Line, 1); } else { end = GetIterAtLineOffset (iter.Line, 2); } // Go back one more character to delete the \n as well iter = GetIterAtLine (iter.Line - 1); iter.ForwardToLineEnd (); Delete(ref iter, ref end); }
void GetBlockExtents (ref Gtk.TextIter start, ref Gtk.TextIter end) { // FIXME: Should only be processing the largest match string // size, so we don't slow down for large paragraphs start.LineOffset = 0; end.ForwardToLineEnd (); }