Scenes get a Container for widgets
[naja.git] / naja / scenes / scene.py
index ce0b68488eb1a0dc6369fa37c3dd4902cdb8d3e8..4841ab5a628cb3a318ab0c947d1d537f9f0ee03b 100644 (file)
@@ -2,6 +2,8 @@
 Base Scene class.
 """
 
+from naja.widgets.base import Container
+
 
 class Scene(object):
     """
@@ -11,7 +13,10 @@ class Scene(object):
     """
     def __init__(self, state):
         self.state = state
-        self.widgets = []
+        self.container = Container()
+
+    def add(self, widget):
+        self.container.add(widget)
 
     def enter(self):
         pass
@@ -19,12 +24,17 @@ class Scene(object):
     def exit(self):
         pass
 
-    def render(self, surface):
-        self.render_widgets(surface)
+    def render_scene(self, surface):
+        pass
 
-    def render_widgets(self, surface):
-        for widget in self.widgets:
-            widget.render(surface)
+    def render(self, surface):
+        self.render_scene(surface)
+        self.container.render(surface)
 
     def handle_event(self, ev):
+        if self.container.handle_event(ev):
+            return
+        self.handle_scene_event(ev)
+
+    def handle_scene_event(ev):
         pass