Package pilas :: Package interfaz :: Module selector
[hide private]
[frames] | no frames]

Source Code for Module pilas.interfaz.selector

 1  # -*- encoding: utf-8 -*- 
 2  # pilas engine - a video game framework. 
 3  # 
 4  # copyright 2010 - hugo ruscitti 
 5  # license: lgplv3 (see http://www.gnu.org/licenses/lgpl.html) 
 6  # 
 7  # website - http://www.pilas-engine.com.ar 
 8  # 
 9  # Deslizador creado por Pablo Garrido 
10   
11  import pilas 
12  from pilas.interfaz.base_interfaz import BaseInterfaz 
13   
14 -class Selector(BaseInterfaz):
15 """Representa un selector con un checkbox.""" 16
17 - def __init__(self, texto, x=0, y=0, ancho=200):
18 """Inicializa el selector. 19 20 :param texto: Texto que se mostrará junto al selector. 21 :param x: Posición horizontal. 22 :param y: Posición vertical. 23 :param ancho: Ancho del selector. 24 """ 25 BaseInterfaz.__init__(self, x=x, y=y) 26 27 self.texto = texto 28 self._cargar_lienzo(ancho) 29 self._cargar_imagenes() 30 self.funcion_de_respuesta = None 31 32 self.deseleccionar() 33 self.escena.click_de_mouse.conectar(self.detection_click_mouse) 34 self.fijo = True
35
36 - def _cargar_imagenes(self):
37 self.imagen_selector = pilas.imagenes.cargar("interfaz/selector.png") 38 self.imagen_selector_seleccionado = pilas.imagenes.cargar("interfaz/selector_seleccionado.png")
39
40 - def _cargar_lienzo(self, ancho):
42
43 - def pintar_texto(self):
44 "Dibuja el texto sobre el selector." 45 self.imagen.texto(self.texto, 35, 20)
46
47 - def deseleccionar(self):
48 "Destilda el selector." 49 self.seleccionado = False 50 self.imagen.limpiar() 51 self.imagen.pintar_imagen(self.imagen_selector) 52 self.pintar_texto() 53 self.centro = ("centro", "centro")
54
55 - def seleccionar(self):
56 "Tilda el selector." 57 self.seleccionado = True 58 self.imagen.limpiar() 59 self.imagen.pintar_imagen(self.imagen_selector_seleccionado) 60 self.pintar_texto() 61 self.centro = ("centro", "centro")
62
63 - def detection_click_mouse(self, click):
64 """Detecta el click de mouse y alterna la selección. 65 66 :param click: representa el evento de click. 67 """ 68 if (self.activo): 69 if self.colisiona_con_un_punto(click.x, click.y): 70 self.alternar_seleccion()
71
72 - def alternar_seleccion(self):
73 """Alterna la selección del selector.""" 74 if self.seleccionado: 75 self.deseleccionar() 76 else: 77 self.seleccionar() 78 79 if self.funcion_de_respuesta: 80 self.funcion_de_respuesta(self.seleccionado)
81
82 - def definir_accion(self, funcion):
83 """Define cual será la función a ejecutar en la selección. 84 85 :param funcion: La función a ejecutar. 86 """ 87 self.funcion_de_respuesta = funcion
88