Implement a stage view

This commit is contained in:
Marco Pesenti Gritti
2006-07-24 12:15:52 +02:00
parent 5cec8f9734
commit e4a87bea06
3 changed files with 33 additions and 11 deletions
+8
View File
@@ -20,6 +20,7 @@ class Actor(gobject.GObject):
def set_position(self, x, y):
self._x = x
self._y = y
self.notify_changed()
def _get_parents(self):
parents = []
@@ -39,9 +40,16 @@ class Actor(gobject.GObject):
transf = actor._transf
return transf.get_position(x, y)
def notify_changed(self):
if self._parent:
self._parent.notify_changed()
else:
self.emit('changed')
def set_size(self, width, height):
self._width = width
self._height = height
self.notify_changed()
def render(self, drawable):
pass
+21
View File
@@ -0,0 +1,21 @@
import gtk
from sugar.scene.Stage import Stage
class View(gtk.DrawingArea):
def __init__(self, stage):
gtk.DrawingArea.__init__(self)
self._stage = stage
self._stage.connect('changed', self.__stage_changed_cb)
self.connect('expose_event', self.__expose_cb)
def __stage_changed_cb(self, stage):
if self.window:
self.window.invalidate_rect(None, False)
def __expose_cb(self, widget, event):
self._stage.render(widget.window)
def get_stage(self):
return self._stage