1 import pygame.locals as pgl
3 from naja.widgets.base import Container
4 from naja.resources import resources
5 from naja.resources.mutators import R270
8 class SelectorWidget(Container):
9 def __init__(self, *args, **kwargs):
10 super(SelectorWidget, self).__init__(*args, **kwargs)
12 self.selector = resources.get_image('bits', 'arrow_on.png',
15 def render(self, surface):
16 super(SelectorWidget, self).render(surface)
17 pos = self.selector.get_rect()
18 selected = self.widgets[self.position]
19 pos = pos.move(selected.pos)
20 pos = pos.move(-pos.width * 1.5, (selected.size[1] - pos.height) / 2)
21 surface.blit(self.selector, pos)
23 def handle_event(self, ev):
24 if ev.type == pgl.KEYDOWN:
25 if ev.key in (pgl.K_DOWN, pgl.K_UP):
26 if ev.key == pgl.K_DOWN:
30 self.position %= len(self.widgets)
32 elif ev.key == pgl.K_RETURN:
33 return self.widgets[self.position].callback('click')
35 return super(SelectorWidget, self).handle_event(ev)