All pastes #425708 Raw Edit

rcaskey

public text v1 · immutable
·published 2007-04-05 17:41 UTC
rendered paste body
#!/usr/bin/pythonimport goocanvasimport gtkclass Stack(goocanvas.Group):    cards = []    drawables = None    def __init__(self, root):	self.drawables = goocanvas.Group(parent = root)    def append(self, card):	self.cards.append(card)	card.parent = self	for x in self.cards:	    x.draw(self.drawables)	#self.drawables.remove()class Card:    width = 200    height = 300    border = 12     border_color = "gray"    background_color = "tan"    backside_color = "brown"    flipped = False     title = None    drawables = None    def __init__(self, title = None):	self.title = title    def draw(self, root):	self.drawables = goocanvas.Group(parent = root)	goocanvas.Rect (parent = self.drawables, x = 0, y = 0, width = self.width, height = self.height, fill_color = self.border_color)	if self.flipped:		goocanvas.Rect (parent = self.drawables, x = self.border, y = self.border, width = self.width - (2 * self.border), height = self.height - (2 * self.border), fill_color = self.backside_color)	else:		goocanvas.Rect (parent = self.drawables, x = self.border, y = self.border, width = self.width - (2 * self.border), height = self.height - (2 * self.border), fill_color = self.background_color)		if self.title is not None: text = goocanvas.Text(parent = self.drawables, text = self.title, x = self.border * 1.5, y = self.border * 1.5)def setup_canvas (canvas):        root = canvas.get_root_item ()    s = Stack(root)    for i in range(10):	    s.append(Card(title = "TEST " + str(i)))def create_card_page ():    vbox = gtk.VBox (False, 4)    vbox.set_border_width (4)    hbox = gtk.HBox (False, 4)    vbox.pack_start (hbox, False, False, 0)    scrolled_win = gtk.ScrolledWindow ()    scrolled_win.set_shadow_type (gtk.SHADOW_IN)    vbox.add (scrolled_win)    canvas = goocanvas.Canvas ()    canvas.set_size_request (600, 450)    canvas.set_bounds (0, 0, 1000, 1000)    scrolled_win.add (canvas)    setup_canvas (canvas)    return vboxdef main ():    v = create_card_page ()        w = gtk.Window()    w.connect("destroy", gtk.main_quit)       w.add(v)    w.show_all()        gtk.main()if __name__ == "__main__":    main()