# This file is part of the GNU Health GTK Client. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from gettext import gettext as _ import gtk from .textbox import TextBox from tryton.common import get_toplevel_window from tryton.common.htmltextbuffer import (serialize, deserialize, setup_tags, normalize_markup, remove_tags, register_foreground, FAMILIES, SIZE2SCALE, MIME) from tryton.config import CONFIG SIZES = sorted(SIZE2SCALE.keys()) # Disable serialize/deserialize registration function because it does not work # on GTK-3, the "guint8 *data" is converted into a Gtk.TextIter _use_serialize_func = False class RichTextBox(TextBox): def __init__(self, view, attrs): super(RichTextBox, self).__init__(view, attrs) self.text_buffer = gtk.TextBuffer() setup_tags(self.text_buffer) self.text_buffer.register_serialize_format( str(MIME), serialize, None) self.text_buffer.register_deserialize_format( str(MIME), deserialize, None) self.text_buffer.connect_after('insert-text', self.insert_text_style) self.textview.set_buffer(self.text_buffer)
# This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from gettext import gettext as _ import gtk from .textbox import TextBox from tryton.common import get_toplevel_window from tryton.common.htmltextbuffer import (serialize, deserialize, setup_tags, normalize_markup, remove_tags, register_foreground, FAMILIES, SIZE2SCALE, MIME) from tryton.config import CONFIG SIZES = sorted(SIZE2SCALE.keys()) class RichTextBox(TextBox): def __init__(self, view, attrs): super(RichTextBox, self).__init__(view, attrs) self.text_buffer = gtk.TextBuffer() setup_tags(self.text_buffer) self.text_buffer.register_serialize_format( MIME, serialize, None) self.text_buffer.register_deserialize_format( MIME, deserialize, None) self.text_buffer.connect_after('insert-text', self.insert_text_style) self.textview.set_buffer(self.text_buffer) self.textview.connect_after('move-cursor', self.detect_style) self.textview.connect('button-release-event', self.detect_style)