def do_render(self, window, widget, background_area, cell_area, expose_area, flags): layout = widget.create_pango_layout(self.text) (layout_width, layout_height) = layout.get_pixel_size() layout_xoffset = (cell_area.width - layout_width) / 2 + cell_area.x layout_yoffset = (cell_area.height - layout_height) / 2 + cell_area.y Gtk.paint_box( widget.style, window, widget.state, Gtk.ShadowType.OUT, expose_area, widget, "button", cell_area.x, cell_area.y, cell_area.width, cell_area.height, ) Gtk.paint_layout( widget.style, window, widget.state, True, expose_area, widget, "cellrenderertext", layout_xoffset, layout_yoffset, layout, )
def _on_text_view_draw(text_view, cairoc): """Calculate and show line lengths in the margin.""" text_buffer = text_view.get_buffer() start, end = text_buffer.get_bounds() text = text_buffer.get_text(start, end, False) if not text: return lengths = get_lengths(text) layout = Pango.Layout(text_view.get_pango_context()) layout.set_markup("\n".join(str(x) for x in lengths), -1) layout.set_alignment(Pango.Alignment.RIGHT) width = layout.get_pixel_size()[0] text_view.set_border_window_size(Gtk.TextWindowType.RIGHT, width + 4) x, y = text_view.window_to_buffer_coords(Gtk.TextWindowType.RIGHT, 2, 0) x += text_view.get_border_width() style = text_view.get_style() Gtk.paint_layout( style, cairoc, state_type=Gtk.StateType.NORMAL, use_text=True, widget=text_view, detail=None, x=x, y=-y, layout=layout, )
def do_render(self, window, widget, background_area, cell_area, expose_area, flags): layout = widget.create_pango_layout(self.text) (layout_width, layout_height) = layout.get_pixel_size() layout_xoffset = (cell_area.width - layout_width) / 2 + cell_area.x layout_yoffset = (cell_area.height - layout_height) / 2 + cell_area.y Gtk.paint_box(widget.style, window, widget.state, Gtk.ShadowType.OUT, expose_area, widget, 'button', cell_area.x, cell_area.y, cell_area.width, cell_area.height) Gtk.paint_layout(widget.style, window, widget.state, True, expose_area, widget, "cellrenderertext", layout_xoffset, layout_yoffset, layout)
def do_render(self, cr, widget, background_area, cell_area, flags): style = widget.get_style() state = widget.get_state() layout = widget.create_pango_layout(self.props.text) (layout_width, layout_height) = layout.get_pixel_size() layout_xoffset = (cell_area.width - layout_width) / 2 + cell_area.x layout_yoffset = (cell_area.height - layout_height) / 2 + cell_area.y Gtk.paint_box(style, cr, state, Gtk.ShadowType.OUT, widget, 'button', cell_area.x, cell_area.y, cell_area.width, cell_area.height) Gtk.paint_layout(style, cr, state, True, widget, "cellrenderertext", layout_xoffset, layout_yoffset, layout)
def _on_text_view_draw(text_view, cairoc): """Calculate and show line lengths in the margin.""" text_buffer = text_view.get_buffer() start, end = text_buffer.get_bounds() text = text_buffer.get_text(start, end, False) if not text: return lengths = get_lengths(text) layout = Pango.Layout(text_view.get_pango_context()) layout.set_markup("\n".join(str(x) for x in lengths), -1) layout.set_alignment(Pango.Alignment.RIGHT) width = layout.get_pixel_size()[0] text_view.set_border_window_size(Gtk.TextWindowType.RIGHT, width + 4) x, y = text_view.window_to_buffer_coords(Gtk.TextWindowType.RIGHT, 2, 0) x += text_view.get_border_width() style = text_view.get_style() Gtk.paint_layout(style, cairoc, state_type=Gtk.StateType.NORMAL, use_text=True, widget=text_view, detail=None, x=x, y=-y, layout=layout)