Beispiel #1
0
    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,
        )
Beispiel #2
0
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)
Beispiel #4
0
    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)
Beispiel #5
0
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)