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); } }
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); }
public override void Redo(Gtk.TextBuffer buffer) { RemoveSplitTags(buffer); Gtk.TextIter start_iter = buffer.GetIterAtOffset(start); Gtk.TextIter end_iter = buffer.GetIterAtOffset(end); buffer.Delete(ref start_iter, ref end_iter); buffer.MoveMark(buffer.InsertMark, buffer.GetIterAtOffset(start)); buffer.MoveMark(buffer.SelectionBound, buffer.GetIterAtOffset(start)); }
public override void Redo(Gtk.TextBuffer buffer) { RemoveSplitTags(buffer); Gtk.TextIter idx_iter = buffer.GetIterAtOffset(index); buffer.InsertRange(ref idx_iter, chop.Start, chop.End); buffer.MoveMark(buffer.SelectionBound, buffer.GetIterAtOffset(index)); buffer.MoveMark(buffer.InsertMark, buffer.GetIterAtOffset(index + chop.Length)); }
protected void ApplySplitTags(Gtk.TextBuffer buffer) { foreach (TagData tag in splitTags) { int offset = GetSplitOffset(); Gtk.TextIter start = buffer.GetIterAtOffset(tag.start - offset); Gtk.TextIter end = buffer.GetIterAtOffset(tag.end - offset); buffer.ApplyTag(tag.tag, start, end); } }
public override void Undo(Gtk.TextBuffer buffer) { int tag_images = GetSplitOffset(); Gtk.TextIter start_iter = buffer.GetIterAtOffset(index - tag_images); Gtk.TextIter end_iter = buffer.GetIterAtOffset(index - tag_images + chop.Length); buffer.Delete(ref start_iter, ref end_iter); buffer.MoveMark(buffer.InsertMark, buffer.GetIterAtOffset(index - tag_images)); buffer.MoveMark(buffer.SelectionBound, buffer.GetIterAtOffset(index - tag_images)); ApplySplitTags(buffer); }
public override void Redo(Gtk.TextBuffer buffer) { RemoveSplitTags(buffer); Gtk.TextIter cursor = buffer.GetIterAtOffset(Offset); Gtk.TextTag[] tags = { Tag }; buffer.InsertWithTags(ref cursor, Id, tags); buffer.MoveMark(buffer.SelectionBound, buffer.GetIterAtOffset(Offset)); buffer.MoveMark(buffer.InsertMark, buffer.GetIterAtOffset(Offset + chop.Length)); }
public override void Undo(Gtk.TextBuffer buffer) { // Tag images change the offset by one, but only when deleting. Gtk.TextIter start_iter = buffer.GetIterAtOffset(Offset); Gtk.TextIter end_iter = buffer.GetIterAtOffset(Offset + chop.Length + 1); buffer.Delete(ref start_iter, ref end_iter); buffer.MoveMark(buffer.InsertMark, buffer.GetIterAtOffset(Offset)); buffer.MoveMark(buffer.SelectionBound, buffer.GetIterAtOffset(Offset)); Tag.WidgetLocation = null; ApplySplitTags(buffer); }
// Creates a new note with the given title and guid with body based on // the template note. private Note CreateNoteFromTemplate(string title, Note template_note, string guid) { Tag template_save_title = TagManager.GetOrCreateSystemTag(TagManager.TemplateNoteSaveTitleSystemTag); if (template_note.ContainsTag(template_save_title)) { title = GetUniqueName(template_note.Title, notes.Count); } // Use the body from the template note string xml_content = template_note.XmlContent.Replace(XmlEncoder.Encode(template_note.Title), XmlEncoder.Encode(title)); xml_content = SanitizeXmlContent(xml_content); Note new_note = CreateNewNote(title, xml_content, guid); // Copy template note's properties Tag template_save_size = TagManager.GetOrCreateSystemTag(TagManager.TemplateNoteSaveSizeSystemTag); if (template_note.Data.HasExtent() && template_note.ContainsTag(template_save_size)) { new_note.Data.Height = template_note.Data.Height; new_note.Data.Width = template_note.Data.Width; } Tag template_save_selection = TagManager.GetOrCreateSystemTag(TagManager.TemplateNoteSaveSelectionSystemTag); if (template_note.Data.CursorPosition > 0 && template_note.ContainsTag(template_save_selection)) { Gtk.TextBuffer buffer = new_note.Buffer; Gtk.TextIter iter; // Because the titles will be different between template and // new note, we can't just drop the cursor at template's // CursorPosition. Whitespace after the title makes this more // complicated so let's just start counting from the line after the title. int title_offset_difference = buffer.GetIterAtLine(1).Offset - template_note.Buffer.GetIterAtLine(1).Offset; iter = buffer.GetIterAtOffset(template_note.Data.CursorPosition + title_offset_difference); buffer.PlaceCursor(iter); iter = buffer.GetIterAtOffset(template_note.Data.SelectionBoundPosition + title_offset_difference); buffer.MoveMark(buffer.SelectionBound.Name, iter); } return(new_note); }
public override void Undo(Gtk.TextBuffer buffer) { int tag_images = GetSplitOffset(); Gtk.TextIter start_iter = buffer.GetIterAtOffset(start - tag_images); buffer.InsertRange(ref start_iter, chop.Start, chop.End); buffer.MoveMark(buffer.InsertMark, buffer.GetIterAtOffset(is_forward ? start - tag_images : end - tag_images)); buffer.MoveMark(buffer.SelectionBound, buffer.GetIterAtOffset(is_forward ? end - tag_images : start - tag_images)); ApplySplitTags(buffer); }
public void Redo(Gtk.TextBuffer buffer) { Gtk.TextIter iter = buffer.GetIterAtOffset(offset); buffer.Insert(ref iter, "\n"); ((NoteBuffer)buffer).InsertBullet(ref iter, depth, direction); buffer.MoveMark(buffer.InsertMark, iter); buffer.MoveMark(buffer.SelectionBound, iter); }
public void Undo(Gtk.TextBuffer buffer) { Gtk.TextIter iter = buffer.GetIterAtOffset(offset); iter.ForwardLine(); iter = buffer.GetIterAtLine(iter.Line); ((NoteBuffer)buffer).RemoveBullet(ref iter); iter.ForwardToLineEnd(); buffer.MoveMark(buffer.InsertMark, iter); buffer.MoveMark(buffer.SelectionBound, iter); }