def __init__(self, icaro_dir,firmware_ruta): # esta es la lista de donde se sacan los valores para los botones # icaro self.firmware_ruta="."+firmware_ruta self.icaro_dir = icaro_dir arch = open(sys.path[0] + "/version", "r") version = arch.readline() creditos.Info.version = version self.carga_conf_ventana() # declaro la ventana principal # esta es la toolbar donde van los botones para cargar los datos # y compilar # declaro la tabla donde van los botones para el menu de bloques # box1 es el contenedor principal despues de la ventana self.window1 = gtk.Window() # ~ self.window1.fullscreen() titulo = "icaro " + version.strip("\n\r") self.window1.set_title(titulo) toolbar = gtk.Toolbar() self.area = gtk.DrawingArea() scrolled_window = gtk.ScrolledWindow() scrolled_window2 = gtk.ScrolledWindow() scrolled_window3 = gtk.ScrolledWindow() table = gtk.VBox(False, 0)#len(self.lista)) notebook = gtk.Notebook() self.notebook2 = gtk.Notebook() hp = gtk.HPaned() box2 = gtk.HBox(False, 3) box1 = gtk.VBox(False, 3) menu_bar = gtk.MenuBar() # empaqueto todo # esta es la idea de usar un hpaned para poder achicar la pantalla #, en las netbook no entra todo self.window1.add(box1) box1.pack_start(menu_bar, False, True, 1) box1.pack_start(box2, True, True, 1) scrolled_window.add_with_viewport(self.area) scrolled_window3.add_with_viewport(toolbar) scrolled_window2.add_with_viewport(notebook) self.notebook2.append_page(scrolled_window, gtk.Label("bloques")) box2.pack_start(scrolled_window3, False, False, 1) box2.pack_start(hp, True, True, 1) hp.pack1(self.notebook2, True, True) hp.pack2(scrolled_window2, True, True) archivo_nombre = self.cfg.get("pic", "arch") self.valor_datos_comp["fin "] = self.cfg.get("pic", "cierrebloque") dir_source=(os.path.expanduser('~')+ "/"+self.firmware_ruta + "firmware/source/"+archivo_nombre) self.ver = visor.visor_codigo(self, self.notebook2, self.firmware_ruta, "source/"+archivo_nombre, "codigo fuente") self.ver2 = visor.visor_codigo(self, self.notebook2, self.firmware_ruta, "temporal/log.dat", "registro de compilación") hp.set_position(500) self.window1.connect('delete-event', gtk.main_quit) self.window1.set_icon_from_file( sys.path[0] + "/imagenes/icaro.png" ) self.area.set_app_paintable(True) self.area.set_size_request(800, 800) menu1 = [_("File"), _("Edit"), "herramientas"] menu_general = [ (_("New"), _("Open"), _("Save"), _("Save as"), _("Save as function"), _("Examples"), _("Exit")), (_("Background"), _("Color"), _("About"), _("Config")), ("graficador", "clemente bulk", "clemente cdc" , "firmware",) ] menu_bar.show() # declaro los botones del menu 'menu'5 y 'edicion' for a in range(len(menu_general)): menu = gtk.Menu() # buf es donde se cargan todos los botones del menu for i in menu_general[a]: menu_items = gtk.MenuItem(i) menu.append(menu_items) menu_items.connect("activate", self.menuitem_response, i) menu_items.show() root_menu = gtk.MenuItem(menu1[a]) root_menu.show() root_menu.set_submenu(menu) menu_bar.append(root_menu) # toolbar.append_item toolbar.set_style(gtk.TOOLBAR_BOTH_HORIZ) toolbar.set_orientation(gtk.ORIENTATION_VERTICAL) toolbar.show() # creo los botones de la toolbar botones_toolbar = self.crear_botones_bootlader(toolbar) # creo los botones de la toolbar en funcion de la tupla botonas_toolbar for dat in botones_toolbar: if dat[0] == 3: toolbar.append_space() if dat[0] == 1 or dat[0] == 2: self.crear_toolbuttons( dat[0], dat[1], dat[2], dat[3], dat[4], dat[5], dat[6]) scrolled_window.set_size_request(300, 300) scrolled_window.set_policy(gtk.POLICY_ALWAYS, gtk.POLICY_ALWAYS) scrolled_window.show() scrolled_window2.set_border_width(1) scrolled_window2.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) scrolled_window2.show() scrolled_window3.set_border_width(1) scrolled_window3.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) scrolled_window3.show() notebook.set_tab_pos(gtk.POS_RIGHT) label = gtk.Label(self.diccionario[self.lista[0]][1]) notebook.append_page(table, label) button = gtk.RadioButton() ## aca cargo los datos de cada bloque ## for i in range(1, len(self.lista)): if self.diccionario[self.lista[i]][0] == "notebook": table = gtk.VBox(False, 0)#len(self.lista)) label = gtk.Label(self.diccionario[self.lista[i]][1]) notebook.append_page(table, label) else: self.diccionario[self.lista[i]][0] caja = self.imagen_boton( self.diccionario[self.lista[i]][0], self.diccionario[self.lista[i]][0] ) button = gtk.RadioButton(button) button.set_tooltip_text(self.diccionario[self.lista[i]][6]) button.add(caja) button.connect("clicked", self.botones, self.lista[i]) table.pack_start(button, False, True, 0) button.show() # capturo los eventos del drawing area # menos el teclado que lo capturo desde la ventana principal self.area.add_events(gtk.gdk.BUTTON_PRESS_MASK) self.area.add_events(gtk.gdk.BUTTON_RELEASE_MASK) self.area.add_events(gtk.gdk.POINTER_MOTION_MASK) self.window1.add_events(gtk.gdk.KEY_PRESS_MASK) self.window1.add_events(gtk.gdk.KEY_RELEASE_MASK) self.area.connect("button-press-event", self.buttonpress_cb) self.area.connect("button-release-event", self.buttonrelease_cb) self.area.connect("motion-notify-event", self.move_cb) self.area.connect("expose-event", self.expose) self.window1.connect("key_press_event", self.keypress_cb) self.window1.connect("key_release_event", self.keyrelease_cb) self.area.realize() display = self.area.window.get_display() pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/lapiz.png") lapiz = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(lapiz) pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/puntero.png") puntero = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(puntero) pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/borrar.png") borrar = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(borrar) pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/edicion.png") edicion = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(edicion) self.definir_cursor(1)
def ver(self,b): ver=visor.visor_codigo(self) ver.window.show_all()
def __init__(self, icaro_dir, firmware_ruta): # esta es la lista de donde se sacan los valores para los botones # icaro self.firmware_ruta = "." + firmware_ruta self.icaro_dir = icaro_dir arch = open(sys.path[0] + "/version", "r") version = arch.readline() creditos.Info.version = version self.carga_conf_ventana() # declaro la ventana principal # esta es la toolbar donde van los botones para cargar los datos # y compilar # declaro la tabla donde van los botones para el menu de bloques # box1 es el contenedor principal despues de la ventana self.window1 = gtk.Window() # ~ self.window1.fullscreen() titulo = "icaro " + version.strip("\n\r") self.window1.set_title(titulo) toolbar = gtk.Toolbar() self.area = gtk.DrawingArea() scrolled_window = gtk.ScrolledWindow() scrolled_window2 = gtk.ScrolledWindow() scrolled_window3 = gtk.ScrolledWindow() table = gtk.VBox(False, 0) #len(self.lista)) notebook = gtk.Notebook() self.notebook2 = gtk.Notebook() hp = gtk.HPaned() box2 = gtk.HBox(False, 3) box1 = gtk.VBox(False, 3) menu_bar = gtk.MenuBar() # empaqueto todo # esta es la idea de usar un hpaned para poder achicar la pantalla #, en las netbook no entra todo self.window1.add(box1) box1.pack_start(menu_bar, False, True, 1) box1.pack_start(box2, True, True, 1) scrolled_window.add_with_viewport(self.area) scrolled_window3.add_with_viewport(toolbar) scrolled_window2.add_with_viewport(notebook) self.notebook2.append_page(scrolled_window, gtk.Label("bloques")) box2.pack_start(scrolled_window3, False, False, 1) box2.pack_start(hp, True, True, 1) hp.pack1(self.notebook2, True, True) hp.pack2(scrolled_window2, True, True) archivo_nombre = self.cfg.get("pic", "arch") self.valor_datos_comp["fin "] = self.cfg.get("pic", "cierrebloque") dir_source = (os.path.expanduser('~') + "/" + self.firmware_ruta + "firmware/source/" + archivo_nombre) self.ver = visor.visor_codigo(self, self.notebook2, self.firmware_ruta, "source/" + archivo_nombre, "codigo fuente") self.ver2 = visor.visor_codigo(self, self.notebook2, self.firmware_ruta, "temporal/log.dat", "registro de compilación") hp.set_position(500) self.window1.connect('delete-event', gtk.main_quit) self.window1.set_icon_from_file(sys.path[0] + "/imagenes/icaro.png") self.area.set_app_paintable(True) self.area.set_size_request(800, 800) menu1 = [_("File"), _("Edit"), "herramientas"] menu_general = [(_("New"), _("Open"), _("Save"), _("Save as"), _("Save as function"), _("Examples"), _("Exit")), (_("Background"), _("Color"), _("About"), _("Config")), ( "graficador", "clemente bulk", "clemente cdc", "firmware", )] menu_bar.show() # declaro los botones del menu 'menu'5 y 'edicion' for a in range(len(menu_general)): menu = gtk.Menu() # buf es donde se cargan todos los botones del menu for i in menu_general[a]: menu_items = gtk.MenuItem(i) menu.append(menu_items) menu_items.connect("activate", self.menuitem_response, i) menu_items.show() root_menu = gtk.MenuItem(menu1[a]) root_menu.show() root_menu.set_submenu(menu) menu_bar.append(root_menu) # toolbar.append_item toolbar.set_style(gtk.TOOLBAR_BOTH_HORIZ) toolbar.set_orientation(gtk.ORIENTATION_VERTICAL) toolbar.show() # creo los botones de la toolbar botones_toolbar = self.crear_botones_bootlader(toolbar) # creo los botones de la toolbar en funcion de la tupla botonas_toolbar for dat in botones_toolbar: if dat[0] == 3: toolbar.append_space() if dat[0] == 1 or dat[0] == 2: self.crear_toolbuttons(dat[0], dat[1], dat[2], dat[3], dat[4], dat[5], dat[6]) scrolled_window.set_size_request(300, 300) scrolled_window.set_policy(gtk.POLICY_ALWAYS, gtk.POLICY_ALWAYS) scrolled_window.show() scrolled_window2.set_border_width(1) scrolled_window2.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) scrolled_window2.show() scrolled_window3.set_border_width(1) scrolled_window3.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) scrolled_window3.show() notebook.set_tab_pos(gtk.POS_RIGHT) label = gtk.Label(self.diccionario[self.lista[0]][1]) notebook.append_page(table, label) button = gtk.RadioButton() ## aca cargo los datos de cada bloque ## for i in range(1, len(self.lista)): if self.diccionario[self.lista[i]][0] == "notebook": table = gtk.VBox(False, 0) #len(self.lista)) label = gtk.Label(self.diccionario[self.lista[i]][1]) notebook.append_page(table, label) else: self.diccionario[self.lista[i]][0] caja = self.imagen_boton(self.diccionario[self.lista[i]][0], self.diccionario[self.lista[i]][0]) button = gtk.RadioButton(button) button.set_tooltip_text(self.diccionario[self.lista[i]][6]) button.add(caja) button.connect("clicked", self.botones, self.lista[i]) table.pack_start(button, False, True, 0) button.show() # capturo los eventos del drawing area # menos el teclado que lo capturo desde la ventana principal self.area.add_events(gtk.gdk.BUTTON_PRESS_MASK) self.area.add_events(gtk.gdk.BUTTON_RELEASE_MASK) self.area.add_events(gtk.gdk.POINTER_MOTION_MASK) self.window1.add_events(gtk.gdk.KEY_PRESS_MASK) self.window1.add_events(gtk.gdk.KEY_RELEASE_MASK) self.area.connect("button-press-event", self.buttonpress_cb) self.area.connect("button-release-event", self.buttonrelease_cb) self.area.connect("motion-notify-event", self.move_cb) self.area.connect("expose-event", self.expose) self.window1.connect("key_press_event", self.keypress_cb) self.window1.connect("key_release_event", self.keyrelease_cb) self.area.realize() display = self.area.window.get_display() pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/lapiz.png") lapiz = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(lapiz) pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/puntero.png") puntero = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(puntero) pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/borrar.png") borrar = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(borrar) pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/edicion.png") edicion = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(edicion) self.definir_cursor(1)
def __init__(self, icaro_dir): # esta es la lista de donde se sacan los valores para los botones # icaro self.icaro_dir = icaro_dir arch = open(sys.path[0] + "/version", "r") version = arch.readline() creditos.Info.version = version self.carga_conf_ventana() # declaro la ventana principal # esta es la toolbar donde van los botones para cargar los datos # y compilar # declaro la tabla donde van los botones para el menu de bloques # box1 es el contenedor principal despues de la ventana self.window1 = gtk.Window() titulo = "icaro " + version.strip("\n\r") self.window1.set_title(titulo) toolbar = gtk.Toolbar() self.area = gtk.DrawingArea() scrolled_window = gtk.ScrolledWindow() scrolled_window2 = gtk.ScrolledWindow() scrolled_window3 = gtk.ScrolledWindow() table = gtk.VBox(False, len(self.lista)) notebook = gtk.Notebook() self.notebook2 = gtk.Notebook() hp = gtk.HPaned() box2 = gtk.HBox(False, 3) box1 = gtk.VBox(False, 3) menu_bar = gtk.MenuBar() # empaqueto todo # esta es la idea de usar un hpaned para poder achicar la pantalla #, en las netbook no entra todo self.window1.add(box1) box1.pack_start(menu_bar, False, True, 1) box1.pack_start(box2, True, True, 1) scrolled_window.add_with_viewport(self.area) scrolled_window3.add_with_viewport(toolbar) scrolled_window2.add_with_viewport(notebook) self.notebook2.append_page(scrolled_window, gtk.Label("bloques")) box2.pack_start(scrolled_window3, False, False, 1) box2.pack_start(hp, True, True, 1) hp.pack1(self.notebook2, True, True) hp.pack2(scrolled_window2, True, True) self.ver = visor.visor_codigo(self, self.notebook2) hp.set_position(500) self.window1.connect('delete-event', gtk.main_quit) self.window1.set_icon_from_file( sys.path[0] + "/imagenes/icaro.png" ) self.area.set_app_paintable(True) self.area.set_size_request(800, 800) menu1 = [_("File"), _("Edit"), "herramientas"] menu_general = [ (_("New"), _("Open"), _("Save"), _("Save as"), _("Save as function"), _("Examples"), _("Exit")), (_("Background"), _("Color"), _("About"), _("Config")), ("graficador", "clemente bulk", "clemente cdc" , _("Log"), "firmware",) ] menu_bar.show() # declaro los botones del menu 'menu'5 y 'edicion' for a in range(len(menu_general)): menu = gtk.Menu() # buf es donde se cargan todos los botones del menu for i in menu_general[a]: menu_items = gtk.MenuItem(i) menu.append(menu_items) menu_items.connect("activate", self.menuitem_response, i) menu_items.show() root_menu = gtk.MenuItem(menu1[a]) root_menu.show() root_menu.set_submenu(menu) menu_bar.append(root_menu) # toolbar.append_item toolbar.set_style(gtk.TOOLBAR_BOTH_HORIZ) toolbar.set_orientation(gtk.ORIENTATION_VERTICAL) toolbar.show() # creo los botones de la toolbar botones_toolbar = [ [1, toolbar, gtk.STOCK_NEW, "New", self.tooltip["nuevo"], self.nuevo, None], [1, toolbar, gtk.STOCK_OPEN, "Open", self.tooltip["abrir"], self.abrir, None], [1, toolbar, gtk.STOCK_SAVE, "Save", self.tooltip["guardar"], self.guardar, 0], [1, toolbar, gtk.STOCK_QUIT, "Quit", self.tooltip["salir"], self.salir, None], [3], [2, toolbar, sys.path[0] + "/imagenes/icaro.png", "Compile", self.tooltip["compilar"], self.compilar, None], [2, toolbar, sys.path[0] + "/imagenes/compilar.png", "Load", self.tooltip["cargar"], self.upload, None], [3], [2, toolbar, sys.path[0] + "/imagenes/tortucaro.png", "Tortucaro", self.tooltip["tortucaro"], self.comp_esp, "tortucaro/tortucaro"], [2, toolbar, sys.path[0] + "/imagenes/pilas.png", "pilas", self.tooltip["pilas"], self.comp_esp, "pilas/pilas-engine"], [2, toolbar, sys.path[0] + "/imagenes/icaroblue.png", "icaroblue", self.tooltip["icaroblue"], self.comp_esp, "icaroblue/icaroblue"], [3], [1, toolbar, gtk.STOCK_HELP, "Help", self.tooltip["ayuda"], self.ayuda, None], [3], [1, toolbar, gtk.STOCK_ADD, "Pen", self.tooltip["lapiz"], self.dibujo, 1], [1, toolbar, gtk.STOCK_SELECT_COLOR, "Move", self.tooltip["mover"], self.dibujo, 2], [1, toolbar, gtk.STOCK_DELETE, "Erase", self.tooltip["borrar"], self.dibujo, 3], [1, toolbar, gtk.STOCK_EDIT, "Edit", "", self.dibujo, 4], [3], [1, toolbar, gtk.STOCK_ZOOM_IN, "agrandar", "", self.menuitem_response, "zoomas"], [1, toolbar, gtk.STOCK_ZOOM_OUT, "achicar", "", self.menuitem_response, "zoomenos"], [1, toolbar, gtk.STOCK_ZOOM_100, "zoom 1:1", "", self.menuitem_response, "zoomcero"], ] # creo los botones de la toolbar en funcion de la tupla botonas_toolbar for dat in botones_toolbar: if dat[0] == 3: toolbar.append_space() if dat[0] == 1 or dat[0] == 2: self.crear_toolbuttons( dat[0], dat[1], dat[2], dat[3], dat[4], dat[5], dat[6]) scrolled_window.set_size_request(300, 300) scrolled_window.set_policy(gtk.POLICY_ALWAYS, gtk.POLICY_ALWAYS) scrolled_window.show() scrolled_window2.set_border_width(1) scrolled_window2.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) scrolled_window2.show() scrolled_window3.set_border_width(1) scrolled_window3.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) scrolled_window3.show() notebook.set_tab_pos(gtk.POS_RIGHT) label = gtk.Label(self.diccionario[self.lista[0]][1]) notebook.append_page(table, label) button = gtk.RadioButton() ## aca cargo los datos de cada bloque ## for i in range(1, len(self.lista)): if self.diccionario[self.lista[i]][0] == "notebook": table = gtk.VBox(False, len(self.lista)) label = gtk.Label(self.diccionario[self.lista[i]][1]) notebook.append_page(table, label) else: self.diccionario[self.lista[i]][0] caja = self.imagen_boton( self.diccionario[self.lista[i]][0], self.diccionario[self.lista[i]][0] ) button = gtk.RadioButton(button) button.set_tooltip_text(self.diccionario[self.lista[i]][6]) button.add(caja) button.connect("clicked", self.botones, self.lista[i]) table.pack_start(button, False, True, 0) button.show() # capturo los eventos del drawing area # menos el teclado que lo capturo desde la ventana principal self.area.add_events(gtk.gdk.BUTTON_PRESS_MASK) self.area.add_events(gtk.gdk.BUTTON_RELEASE_MASK) self.area.add_events(gtk.gdk.POINTER_MOTION_MASK) self.window1.add_events(gtk.gdk.KEY_PRESS_MASK) self.window1.add_events(gtk.gdk.KEY_RELEASE_MASK) self.area.connect("button-press-event", self.buttonpress_cb) self.area.connect("button-release-event", self.buttonrelease_cb) self.area.connect("motion-notify-event", self.move_cb) self.area.connect("expose-event", self.expose) self.window1.connect("key_press_event", self.keypress_cb) self.window1.connect("key_release_event", self.keyrelease_cb) self.area.realize() display = self.area.window.get_display() pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/lapiz.png") lapiz = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(lapiz) pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/puntero.png") puntero = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(puntero) pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/borrar.png") borrar = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(borrar) pixbuf = gtk.gdk.pixbuf_new_from_file( os.path.abspath(os.path.dirname(__file__)) + "/imagenes/mouse/edicion.png") edicion = gtk.gdk.Cursor(display, pixbuf, 6, 18) self.cursores.append(edicion) self.definir_cursor(1)
def __init__(self, icaro_dir, firmware_ruta): # esta es la lista de donde se sacan los valores para los botones # icaro self.firmware_ruta = "." + firmware_ruta self.icaro_dir = icaro_dir arch = open(sys.path[0] + "/version", "r") version = arch.readline() creditos.Info.version = version self.carga_conf_ventana() # declaro la ventana principal # esta es la toolbar donde van los botones para cargar los datos # y compilar # declaro la tabla donde van los botones para el menu de bloques # box1 es el contenedor principal despues de la ventana self.window1 = Gtk.Window() self.window1.maximize() #self.window1.fullscreen() titulo = "icaro " + version.strip("\n\r") ## header Bar hb = Gtk.HeaderBar() hb.set_show_close_button(True) hb.props.title = titulo self.window1.set_titlebar(hb) ## El box donde guardamos los botones para el header box_header = Gtk.Box() box_header.set_homogeneous(False) box_header.set_orientation(Gtk.Orientation.HORIZONTAL) hb.add(box_header) ## EL BOTON DEL MENU boton_menu_central = Gtk.Button() image_menu = Gtk.Image.new_from_file("imagenes/icaro/menu.png") label_menu = Gtk.Label("Menú") menu_box = Gtk.Box() menu_box.set_orientation(Gtk.Orientation.HORIZONTAL) menu_box.add(image_menu) menu_box.add(label_menu) boton_menu_central.add(menu_box) ## POPOVER popover_menu = Gtk.Popover() popover_menu.set_relative_to(boton_menu_central) ## Box donde se guardan los botones del menu popover box_popover_menu = Gtk.Box() box_popover_menu.set_spacing(5) box_popover_menu.set_orientation(Gtk.Orientation.VERTICAL) popover_menu.add(box_popover_menu) boton_menu_central.connect("clicked", self.on_popover_clicked, popover_menu) # (_("New"), _("Open"), _("Save"), _("Save as"), # _("Save as function"), _("Examples"), _("Exit")), ## EL BOTON DEL MENU ESPECIFICO DE ICARO/PYTHON/ARDUINO ## GENERADO EN FUNCION DE comp.py PARA CADA GENERADOR DE CÓDIGOS boton_menu_icaro = Gtk.Button() img_boton, texto_boton = self.boton_cargador() image = Gtk.Image.new_from_file(img_boton) label_icr = Gtk.Label(texto_boton) icr_box = Gtk.Box() icr_box.set_orientation(Gtk.Orientation.HORIZONTAL) icr_box.add(image) icr_box.add(label_icr) boton_menu_icaro.add(icr_box) ## popover popover = Gtk.Popover() popover.set_relative_to(boton_menu_icaro) ## Box donde se guardan los botones del menu popover box_popover = Gtk.Box() box_popover.set_spacing(5) box_popover.set_orientation(Gtk.Orientation.VERTICAL) popover.add(box_popover) boton_menu_icaro.connect("clicked", self.on_popover_clicked, popover) #empaqueto los botones del Menu box_header.add(boton_menu_central) box_header.add(boton_menu_icaro) self.area = Gtk.DrawingArea() scrolled_window = Gtk.ScrolledWindow() scrolled_window2 = Gtk.ScrolledWindow() table = Gtk.VBox(False, 0) notebook = Gtk.Notebook() self.notebook2 = Gtk.Notebook() hp = Gtk.HPaned() box2 = Gtk.HBox(False, 3) self.window1.add(box2) scrolled_window.add(self.area) scrolled_window2.add(notebook) box2.pack_start(self.notebook2, True, True, 1) hp.pack1(scrolled_window2, True, True) archivo_nombre = self.cfg.get("pic", "arch") self.valor_datos_comp["fin "] = self.cfg.get("pic", "cierrebloque") dir_source = (os.path.expanduser('~') + "/" + self.firmware_ruta + "firmware/source/" + archivo_nombre) self.ver = visor.visor_codigo(self, self.firmware_ruta, "source/" + archivo_nombre, self.carga_buffer()) self.ver2 = visor.visor_codigo(self, self.firmware_ruta, "temporal/log.dat", "") hp.pack2(scrolled_window, True, True) hp.set_position(120) self.notebook2.append_page(hp, Gtk.Label("Bloques")) self.notebook2.append_page(self.ver.vbox, Gtk.Label("Código Fuente")) self.notebook2.append_page(self.ver2.vbox, Gtk.Label("Registro")) self.window1.connect('delete-event', Gtk.main_quit) self.window1.set_icon_from_file(sys.path[0] + "/imagenes/icaro.png") # creo los botones de la toolbar botones_toolbar_compilador = self.crear_botones_bootlader() botones_menu = self.crear_botones_menu() #botones_toolbar_bloques = self.crear_botones_bloques() for dat in botones_menu: self.crear_toolbuttons(box_popover_menu, 1, dat[0], dat[1], dat[2], dat[3], dat[4], popover_menu) # creo los botones de la toolbar en funcion de la tupla botonas_toolbar for dat in botones_toolbar_compilador: self.crear_toolbuttons(box_popover, 0, dat[0], dat[1], dat[2], dat[3], dat[4], popover) scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scrolled_window2.show() notebook.set_tab_pos(Gtk.PositionType.LEFT) label = Gtk.Label(self.diccionario[self.lista[0]][1]) notebook.append_page(table, label) button = Gtk.Button() ## aca cargo los datos de cada bloque ## for i in range(1, len(self.lista)): if self.diccionario[self.lista[i]][0] == "notebook": table = Gtk.VBox(False, 0) #len(self.lista)) label = Gtk.Label(self.diccionario[self.lista[i]][1]) notebook.append_page(table, label) else: self.diccionario[self.lista[i]][0] caja = self.imagen_boton(self.diccionario[self.lista[i]][0], self.diccionario[self.lista[i]][0]) button = Gtk.Button() #Gtk.RadioButton.new_from_widget(button) button.set_tooltip_text(self.diccionario[self.lista[i]][6]) button.add(caja) button.connect("clicked", self.botones, self.lista[i]) table.pack_start(button, False, True, 0) button.show() # capturo los eventos del drawing area # menos el teclado que lo capturo desde la ventana principal #self.notebook2.add_events(Gdk.EventMask.SWITCHPAGE) self.notebook2.connect("switch-page", self.cambiotab) self.area.add_events(Gdk.EventMask.BUTTON_PRESS_MASK) self.area.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK) self.area.add_events(Gdk.EventMask.POINTER_MOTION_MASK) self.window1.add_events(Gdk.EventMask.KEY_PRESS_MASK) self.window1.add_events(Gdk.EventMask.KEY_RELEASE_MASK) self.area.connect("button-press-event", self.buttonpress_cb) self.area.connect("button-release-event", self.buttonrelease_cb) self.area.connect("motion-notify-event", self.move_cb) self.area.connect("draw", self.expose) self.window1.connect("key_press_event", self.keypress_cb) self.window1.connect("key_release_event", self.keyrelease_cb)