Module interface_configuration
[hide private]
[frames] | no frames]

Source Code for Module interface_configuration

  1  # -*- coding: utf-8 -*- 
  2   
  3   
  4  import gtk 
  5  import gobject 
  6   
  7  import cte 
  8  from function import convert_opencv2gtk, load_image_no_webcam 
  9  from interface_about import Interface_about 
 10   
 11   
12 -class Interface_configuration():
13 """Clase utilizada para las interfaz de configuración. """
14 - def __init__(self, camera):
15 """Inicializador. 16 @param camera: instancia de Camera para trabajar con las cámaras. 17 @type camera: L{Camera} 18 """ 19 # variables 20 self.camera = camera 21 self.num_cameras = len(self.camera.check_name_cameras()) 22 self.open_window_configuration = True 23 self.configuration_ok = False 24 self.refresh = 0 25 26 # cargamos el archivo creado con glade 27 self.gladefile = "gui/configuration.glade" 28 self.glade = gtk.Builder() 29 self.glade.add_from_file(self.gladefile) 30 31 #cargamos los widget 32 self.window = self.glade.get_object("window_configuration") 33 self.image_camera = self.glade.get_object("image_camera") 34 35 # modificamos las widget 36 self.window.set_title("Configuracion") 37 38 # conectamos las señales 39 self.glade.connect_signals(self) 40 41 # comprobamos si hay cámaras iniciamos la escala horizontal 42 if self.num_cameras != 0: 43 self.hscale_camera = self.glade.get_object("hscale_camera") 44 self.hscale_camera.set_range(1, self.num_cameras) 45 self.hscale_camera.set_increments(1, 1) 46 47 else: # si no hay cámaras cargamos la imagen de que no hay cámara 48 image = load_image_no_webcam() 49 self.load_image(image) 50 51 # mostramos la ventana 52 self.window.show()
53 54 55 # señales
56 - def button_aceptar_clicked(self, widget):
57 """Callback que es llamado cuando hacemos click en el boton Aceptar, 58 y que guarda todas las variables escritas en la configuracion""" 59 60 # terminamos con el refresh 61 gobject.source_remove(self.refresh) 62 self.refresh = 0 63 cte.PLAYER_B = self.glade.get_object("player_b").get_text() 64 cte.PLAYER_W = self.glade.get_object("player_w").get_text() 65 cte.RANK_B = self.glade.get_object("rank_b").get_text() 66 cte.RANK_W = self.glade.get_object("rank_w").get_text() 67 cte.SIZE = self.glade.get_object("size").get_text() 68 file_sgf = self.glade.get_object("file_sgf").get_filename() 69 file_video = self.glade.get_object("file_video").get_filename() 70 71 if file_video != None: 72 self.values = (file_sgf, file_video) 73 self.configuration_ok = True 74 elif file_video == None and not self.camera.get_frame(): 75 self.configuration_ok = False 76 print "No hay cámara ni video seleccionado" 77 else: 78 self.values = (file_sgf,) 79 self.num_camera = int(self.hscale_camera.get_value()-1) 80 self.configuration_ok = True 81 self.window.destroy() # llama a gtk_destroy_window
82
83 - def button_close_window_clicked(self, widget):
84 self.camera.close_camera() 85 self.window.destroy()
86
87 - def hscale_camera_value_changed(self, widget):
88 """Callback que se activa cuando movemos la barra de escala, la cual 89 nos cambia al numero de cámara que seleccionemos. """ 90 91 # eliminamos el refresco de cámara 92 if self.num_cameras != 1: 93 self.camera.close_camera() 94 self.num_camera = int(widget.get_value()-1) 95 self.camera.open_camera(self.num_camera) 96 if self.camera.capture != None: 97 self.refresh = gobject.timeout_add(200, self.update) 98 else: # cargamos la imagen de que no se encuentra cámara 99 image = load_image_no_webcam() 100 self.load_image(image) 101 self.window.reshow_with_initial_size()
102
103 - def menu_language_1_activate(self, widget):
104 """Callback que es llamado cuando se pulsa el botón del idioma 1 en la 105 barra de menú de la interfaz y que nos cambia al idioma seleccionado. 106 """ 107 print "cambiado a lenguaje_1"
108
109 - def menu_language_2_activate(self, widget):
110 """Callback que es llamado cuando se pulsa el botón del idioma 2 en la 111 barra de menú de la interfaz y que nos cambia al idioma seleccionado. 112 """ 113 print "cambiado a lenguaje_2"
114
115 - def menu_help_about_activate(self, widget):
116 """Callback que es llamado cuando se pulsa el botón del idioma 1 en la 117 barra de menú de la interfaz y que nos cambia al idioma seleccionado. 118 """ 119 Interface_about()
120
121 - def menu_file_close_activate(self, widget):
122 """Callback que es llamado cuando pulsamos la opción de cerrar ventana 123 de la barra menú, la cual cierra la ventana """ 124 self.camera.close_camera() 125 self.window.destroy()
126
127 - def gtk_destroy_window(self, widget):
128 """Callback que es llamado cuando pulsamos la X, pulsamos ALT+F4, o 129 cuando llamamos a window.destroy(), esto no cierra la ventana. """ 130 self.open_window_configuration = False 131 self.window.destroy()
132 133 134 # métodos
135 - def update(self):
136 """Función llamada por un bucle cada cierto tiempo que nos actualiza 137 la cámara y el video mediante frame y los muesta por pantalla. 138 @return: Devuelve True siempre que exista frame de una cámara o 139 un video, y False en caso de no encontrarlo. 140 @rtype: C{bool} 141 """ 142 if self.camera.capture == None: 143 return False 144 frame = self.camera.get_frame() 145 self.load_image(frame) 146 return True
147
148 - def load_image(self, image):
149 """Nos carga una imagen en la pantalla. 150 @param image: imagen a cargar. 151 @type image: L{IplImage}""" 152 pix_buf = convert_opencv2gtk(image) 153 self.image_camera.set_from_pixbuf(pix_buf)
154