def select_font(cls, style, callback): """select font and if available size and style, receives a e3.Message.Style object with the current style the callback receives a new style object with the new selection """ def select_font_cb(button, window, callback, response, color_sel, color): """callback called on button selection""" if response == stock.ACCEPT: window.hide() fdesc = pango.FontDescription(font_sel.get_font_name()) style = utils.pango_font_description_to_style(fdesc) style.color.red = color.red style.color.green = color.green style.color.blue = color.blue style.color.alpha = color.alpha callback(style) window.hide() window = cls.new_window("Select font") font_sel = gtk.FontSelection() font_sel.set_preview_text("OMG PONNIES! I'm a preview text!") fdesc = utils.style_to_pango_font_description(style) window.hbox.pack_start(font_sel, True, True) font_sel.set_font_name(fdesc.to_string()) cls.add_button(window, gtk.STOCK_CANCEL, stock.CANCEL, callback, select_font_cb, font_sel, style.color) cls.add_button(window, gtk.STOCK_OK, stock.ACCEPT, callback, select_font_cb, font_sel, style.color) window.show_all()
def select_font(cls, style, callback): '''select font and if available size and style, receives a e3.Message.Style object with the current style the callback receives a new style object with the new selection ''' def select_font_cb(button, window, callback, response, color_sel, color): '''callback called on button selection''' if response == stock.ACCEPT: window.hide() fdesc = pango.FontDescription(font_sel.get_font_name()) style = utils.pango_font_description_to_style(fdesc) style.color.red = color.red style.color.green = color.green style.color.blue = color.blue style.color.alpha = color.alpha callback(style) window.hide() window = cls.new_window('Select font') font_sel = gtk.FontSelection() font_sel.set_preview_text('OMG PONNIES! I\'m a preview text!') fdesc = utils.style_to_pango_font_description(style) window.hbox.pack_start(font_sel, True, True) font_sel.set_font_name(fdesc.to_string()) cls.add_button(window, gtk.STOCK_CANCEL, stock.CANCEL, callback, select_font_cb, font_sel, style.color) cls.add_button(window, gtk.STOCK_OK, stock.ACCEPT, callback, select_font_cb, font_sel, style.color) window.show_all()
def update_style(self, style): '''update the global style of the widget''' if style is None: return try: color = gtk.gdk.color_parse('#' + style.color.to_hex()) gtk.gdk.colormap_get_system().alloc_color(color) except ValueError: return is_new = False if self._tag is None: self._tag = gtk.TextTag() is_new = True self._tag.set_property('font-desc', utils.style_to_pango_font_description(style)) self._tag.set_property('foreground', '#' + style.color.to_hex()) self._tag.set_property('strikethrough', style.strike) self._tag.set_property('underline', style.underline) if is_new: self._buffer.get_tag_table().add(self._tag) if self.spell_checker: buffer = self._textbox.get_buffer() if not buffer: return table = buffer.get_tag_table() if not table: return tag = table.lookup('gtkspell-misspelled') if not tag: return tag.set_priority(table.get_size() - 1) self.apply_tag()
def update_style(self, style): '''update the global style of the widget''' if style is None: return try: color = gtk.gdk.color_parse('#' + style.color.to_hex()) gtk.gdk.colormap_get_system().alloc_color(color) except ValueError: return is_new = False if self._tag is None: self._tag = gtk.TextTag() is_new = True self._tag.set_property('font-desc', utils.style_to_pango_font_description(style)) self._tag.set_property('foreground', '#' + style.color.to_hex()) self._tag.set_property('strikethrough', style.strike) self._tag.set_property('underline', style.underline) if is_new: self._buffer.get_tag_table().add(self._tag) if self.spell_checker: buffer = self._textbox.get_buffer() if not buffer: return table = buffer.get_tag_table() if not table: return tag = table.lookup('gtkspell-misspelled') if not tag: return tag.set_priority(table.get_size() - 1) self.apply_tag()
def update_style(self, style): """update the global style of the widget""" try: color = gtk.gdk.color_parse("#" + style.color.to_hex()) gtk.gdk.colormap_get_system().alloc_color(color) except ValueError: return is_new = False if self._tag is None: self._tag = gtk.TextTag() is_new = True self._tag.set_property("font-desc", utils.style_to_pango_font_description(style)) self._tag.set_property("foreground", "#" + style.color.to_hex()) self._tag.set_property("strikethrough", style.strike) self._tag.set_property("underline", style.underline) if is_new: self._buffer.get_tag_table().add(self._tag) self.apply_tag()
def update_style(self, style): '''update the global style of the widget''' try: color = gtk.gdk.color_parse('#' + style.color.to_hex()) gtk.gdk.colormap_get_system().alloc_color(color) except ValueError: return is_new = False if self._tag is None: self._tag = gtk.TextTag() is_new = True self._tag.set_property('font-desc', utils.style_to_pango_font_description(style)) self._tag.set_property('foreground', '#' + style.color.to_hex()) self._tag.set_property('strikethrough', style.strike) self._tag.set_property('underline', style.underline) if is_new: self._buffer.get_tag_table().add(self._tag) self.apply_tag()