Allow other transforms without losing 8-bit.
[naja.git] / naja / widgets / selector.py
index 656d71ea45c35e715caa112fceda469fd8068c3f..dcbc74498b930b3e4d2b31aa6318eae7d59d6b57 100644 (file)
@@ -18,19 +18,27 @@ 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)
-                sound.play_sound('change_action.ogg')
+                    self.change_pos(-1)
+                sound.play_sound('zoop.ogg', volume=0.05)
                 return True
             elif ev.key in KEYS.SELECT:
                 return self.widgets[self.position].callback('click')