def add_text(self, text): buf = self.get_buffer() if not self._empty: buf.insert(self.iter_text, '\n') words = text.split() for word in words: if _URL_REGEXP.match(word) is not None: tag = buf.create_tag(None, foreground="blue", underline=pango.UNDERLINE_SINGLE) tag.set_data("url", word) palette = _URLMenu(word) palette.connect('enter-notify-event', self.__palette_mouse_enter_cb) palette.connect('leave-notify-event', self.__palette_mouse_leave_cb) tag.set_data('palette', palette) buf.insert_with_tags(self.iter_text, word, tag, self.fg_tag) else: for i in smilies.parse(word): if isinstance(i, gtk.gdk.Pixbuf): start = self.iter_text.get_offset() buf.insert_pixbuf(self.iter_text, i) buf.apply_tag(self._subscript_tag, buf.get_iter_at_offset(start), self.iter_text) else: buf.insert_with_tags(self.iter_text, i, self.fg_tag) buf.insert_with_tags(self.iter_text, ' ', self.fg_tag) self._empty = False
def add_text(self, text): buf = self.get_buffer() if not self._empty: buf.insert(self.iter_text, '\n') words = text.split() for word in words: if _URL_REGEXP.search(word) is not None: tag = buf.create_tag(None, foreground="blue", underline=pango.UNDERLINE_SINGLE) tag.set_data("url", word) palette = _URLMenu(word) palette.connect('enter-notify-event', self.__palette_mouse_enter_cb) palette.connect('leave-notify-event', self.__palette_mouse_leave_cb) tag.set_data('palette', palette) buf.insert_with_tags(self.iter_text, word, tag, self.fg_tag) else: for i in smilies.parse(word): if isinstance(i, gtk.gdk.Pixbuf): start = self.iter_text.get_offset() buf.insert_pixbuf(self.iter_text, i) buf.apply_tag(self._subscript_tag, buf.get_iter_at_offset(start), self.iter_text) else: buf.insert_with_tags(self.iter_text, i, self.fg_tag) buf.insert_with_tags(self.iter_text, ' ', self.fg_tag) self._empty = False
def add_text(self, text, newline=True): buf = self._buffer self.iter_text = self._buffer.get_end_iter() if not self._empty: if newline: buf.insert(self.iter_text, '\n') else: buf.insert(self.iter_text, ' ') words = text.split() for word in words: if _URL_REGEXP.match(word) is not None: tag = buf.create_tag(None, underline=Pango.Underline.SINGLE) tag.url = word palette = _URLMenu(word) # FIXME: TypeError: _URLMenu: unknown signal name: # enter-notify-event - leave-notify-event # palette.connect('enter-notify-event', # self.__palette_mouse_enter_cb) # palette.connect('leave-notify-event', # self.__palette_mouse_leave_cb) tag.palette = palette buf.insert_with_tags(self.iter_text, word, tag, self._fg_tag) else: for i in smilies.parse(word): if isinstance(i, GdkPixbuf.Pixbuf): start = self.iter_text.get_offset() buf.insert_pixbuf(self.iter_text, i) buf.apply_tag(self._subscript_tag, buf.get_iter_at_offset(start), self.iter_text) else: buf.insert_with_tags(self.iter_text, i, self._fg_tag) buf.insert_with_tags(self.iter_text, ' ', self._fg_tag) self._empty = False