private void ToggleMark(Gtk.TextIter iter) { /* * If char under iter is a marked symbol, changes for an unmarked symbol and * viceversa. */ string uchar; Gtk.TextBuffer b; Gtk.TextIter iterNext; string charToggled = ""; bool found = true; b = iter.Buffer; iterNext = iter; iterNext.ForwardChar(); uchar = iter.GetText(iterNext); if (uchar == CHECK_UNMARKED /* ☐ */ ){ charToggled = CHECK_MARKED; }else if (uchar == CHECK_MARKED /* ☑ */ ){ charToggled = CHECK_UNMARKED; }else if (uchar == CHECK_XMARKED /* ☒ */ ){ charToggled = CHECK_UNMARKED; }else if (uchar == CHECK_TICK /* ✓ */ ){ charToggled = CHECK_UNMARKED; }else if (uchar == CHECK_BALLOTX /* ✗ */ ){ charToggled = CHECK_UNMARKED; }else{ found = false; } if (found){ b.Delete(ref iter, ref iterNext); b.Insert(ref iter, charToggled); } }
// Returns true if line starts with any numbers of leading spaces // followed by '*' or '-' and then by a space private bool LineNeedsBullet(Gtk.TextIter iter) { while (!iter.EndsLine ()) { switch (iter.Char) { case " ": iter.ForwardChar (); break; case "*": case "-": if (GetIterAtLineOffset(iter.Line, iter.LineOffset + 1).Char.Equals(" ")) { return true; } else { return false; } default: return false; } } return false; }
private bool CurrentCharIsMark(Gtk.TextIter iter) { /* * Returns true when char under iter is any of mark predefined symbols. */ Gtk.TextIter siguiente = new Gtk.TextIter(); siguiente = iter; siguiente.ForwardChar(); bool res = false; string car = iter.GetText(siguiente); foreach (string s in UPATTERNS) { if (car == s){ res = true; break; } } return res; }