All pastes #29656 Raw Edit

Anonymous

public text v1 · immutable
#29656 ·published 2005-11-20 17:19 UTC
rendered paste body
lass Widget2(Widget):
  def __init__(self,parent, x, y, w=0, h=0):
    Widget.__init__(self)
    parent.children.append(self)
    self.x, self.y = x, y
    self.width, self.height = w, h

    self.make_image()

  def make_image(self):
    s = cairo.Surface(self.width, self.height)

    cairo.set_line_width(s, 3.0)
    cairo.set_line_join(s, cairo.LINE_JOIN_ROUND)
    cairo.set_source_rgb(s, 1.0, 0.0, 0.0)
    cairo.move_to(s, 3.0, 3.0)
    cairo.rel_line_to(s, self.width -  6.0, 0)
    cairo.rel_line_to(s, 0, self.height - 6.0)
    cairo.rel_line_to(s, -self.width + 6.0, 0)
    cairo.rel_line_to(s, 0, - self.height + 6.0)
    cairo.stroke(s)

    img = s.to_image()
    image_utils.save(img, 'output/but.png')

    texture = Texture(img)
    self.material = SimpleTextureMaterial(texture)

  def render(self, renderer):
    self.material.activate(renderer)
    glEnable(GL_BLEND)
    glCheckError()
    glBegin(GL_QUADS)
    glTexCoord2f(0.0, 0.0)
    glVertex2i(self.x, self.y)
    glTexCoord2f(0.0, 1.0)
    glVertex2i(self.x, self.y + self.height)
    glTexCoord2f(1.0, 1.0)
    glVertex2i(self.x + self.width, self.y + self.height)
    glTexCoord2f(1.0, 0.0)
    glVertex2i(self.x + self.width, self.y)
    glEnd()
    glDisable(GL_BLEND)