#!/usr/bin/python # -*- encoding: utf-8 -*- import gtk import gtksourceview2 import pango # TODO: Documentation class TexView(gtksourceview2.View): def __init__(self): super(TexView, self).__init__() self.buffer = TexBuffer() self.set_buffer(self.buffer) self.clipboard = gtk.clipboard_get() # TODO: these are tmp values self.set_show_line_numbers(True) self.set_show_line_marks(True) self.set_auto_indent(True) self.set_show_right_margin(True) # TODO: use "/desktop/gnome/interface/monospace_font_name" self.modify_font(pango.FontDescription("monospace 11")) # def undo(self): if self.buffer.can_undo(): self.buffer.undo() def redo(self): if self.buffer.can_redo(): self.buffer.redo() def cut(self): self.buffer.cut_clipboard(self.clipboard, self.get_editable()) def copy(self): self.buffer.copy_clipboard(self.clipboard) def paste(self): self.buffer.paste_clipboard(self.clipboard, None, self.get_editable()) def delete(self): self.buffer.delete_selection(False, True) def select_all(self): self.buffer.select_range(self.buffer.get_start_iter(), self.buffer.get_end_iter()) def deselect_all(self): self.buffer.select_range(self.buffer.get_start_iter(), self.buffer.get_start_iter()) class TexBuffer(gtksourceview2.Buffer): def __init__(self): super(TexBuffer, self).__init__() self.fontmanager = gtksourceview2.LanguageManager() self.set_language(self.fontmanager.get_language("latex")) # TODO: get the style from the prefs self.stylemanager = gtksourceview2.StyleSchemeManager() #self.set_style_scheme(self.stylemanager.get_scheme('twilight')) self.set_highlight_matching_brackets(True) self.set_highlight_syntax(True)