Public feed #723151

Anonym

public python v1 · immutable
Raw Edit
·published 2007-10-02 15:37 UTC
rendered paste body
import gtkimport cairoimport gobjectclass StarScale(gtk.Widget):    def __init__(self, stars=0.0):        gtk.Widget.__init__(self)        self.stars = stars        self.star_size = 16        self.star_space = 5        self.star_surface = cairo.ImageSurface.create_from_png("/home/patrick/Projects/Fusion/config/simple-ccsm/images/star.png")                self.set_flags(self.flags() | gtk.NO_WINDOW)    def set_value(self, stars):        self.stars = stars        self.queue_resize()    def get_value(self):        return self.stars        def do_size_request(self, req):        req.height = self.star_size        req.width = (self.star_size+self.star_space)*self.stars     def do_expose_event(self, event):        cr = self.window.cairo_create()          x = self.allocation.x        y = self.allocation.y        i = self.stars        while i > 0:            size = 1.0            if i < 1:                size = i            cr.set_source_surface(self.star_surface, x, 0)            cr.rectangle(x, y, self.star_size*size, self.star_size)            cr.fill()            x += self.star_size + self.star_space            i -= 1gobject.type_register(StarScale)win = gtk.Window()notebook = gtk.Notebook()frame = gtk.VBox()star1 = StarScale()star1.set_value(5)star2 = StarScale()star2.set_value(5)notebook.append_page(star2, gtk.Label("Test"))frame.pack_start(star1)frame.pack_start(notebook)win.add(frame)win.show_all()gtk.main()