Public feed
#723151
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()