From fd556017aa90bac0d8a1480034a8821a711259e2 Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Wed, 06 Jun 2012 18:40:15 +0000 Subject: Revert screenbuil.py removed after renaming from screen.py --- diff --git a/screenbuil.py b/screenbuil.py new file mode 100644 index 0000000..29ed2b7 --- /dev/null +++ b/screenbuil.py @@ -0,0 +1,58 @@ +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +### cartoonbuilder +### +### author: Ed Stoner (ed@whsd.net) +### (c) 2007 World Wide Workshop Foundation + +import gtk + +import theme + +class Screen(gtk.DrawingArea): + def __init__(self): + gtk.DrawingArea.__init__(self) + self.gc = None # initialized in realize-event handler + self.width = 0 # updated in size-allocate handler + self.height = 0 # idem + self.bgpixbuf = None + self.fgpixbuf = None + self.connect('size-allocate', self.on_size_allocate) + self.connect('expose-event', self.on_expose_event) + self.connect('realize', self.on_realize) + + def on_realize(self, widget): + self.gc = widget.window.new_gc() + + def on_size_allocate(self, widget, allocation): + self.height = self.width = min(allocation.width, allocation.height) + + def on_expose_event(self, widget, event): + # This is where the drawing takes place + if self.bgpixbuf: + pixbuf = self.bgpixbuf + if pixbuf.get_width != self.width: + pixbuf = theme.scale(pixbuf, self.width) + widget.window.draw_pixbuf(self.gc, pixbuf, 0, 0, 0, 0, -1, -1, 0, 0) + + if self.fgpixbuf: + pixbuf = self.fgpixbuf + if pixbuf.get_width != self.width: + pixbuf = theme.scale(pixbuf, self.width) + widget.window.draw_pixbuf(self.gc, pixbuf, 0, 0, 0, 0, -1, -1, 0, 0) + + def draw(self): + self.queue_draw() -- cgit v0.9.1