Better menus, no default game.
[naja.git] / naja / widgets / selector.py
index 4479b72adf5236e532b1b0535127408341621a94..dcbc74498b930b3e4d2b31aa6318eae7d59d6b57 100644 (file)
@@ -18,18 +18,26 @@ class SelectorWidget(Container):
         super(SelectorWidget, self).render(surface)
         pos = self.selector.get_rect()
         selected = self.widgets[self.position]
+        if not selected.is_selectable():
+            selected = self.change_pos(1)
+
         pos = pos.move(selected.pos)
         pos = pos.move(-pos.width * 1.5, (selected.size[1] - pos.height) / 2)
         surface.blit(self.selector, pos)
 
+    def change_pos(self, change):
+        self.position = (self.position + change) % len(self.widgets)
+        while not self.widgets[self.position].is_selectable():
+            self.position = (self.position + change) % len(self.widgets)
+        return self.widgets[self.position]
+
     def handle_event(self, ev):
         if ev.type == pgl.KEYDOWN:
             if ev.key in KEYS.UP + KEYS.DOWN:
                 if ev.key in KEYS.DOWN:
-                    self.position += 1
+                    self.change_pos(1)
                 else:
-                    self.position -= 1
-                self.position %= len(self.widgets)
+                    self.change_pos(-1)
                 sound.play_sound('zoop.ogg', volume=0.05)
                 return True
             elif ev.key in KEYS.SELECT: