def __init__(self, archivos=[]):

        Gtk.Window.__init__(self)

        self.set_title("JAMediaEditor")
        self.set_icon_from_file(os.path.join(BASE_PATH, "Iconos", "JAMediaEditor.svg"))
        self.set_resizable(True)
        self.set_size_request(640, 480)
        self.set_border_width(5)
        self.set_position(Gtk.WindowPosition.CENTER)

        self._help = False

        accel_group = Gtk.AccelGroup()
        self.add_accel_group(accel_group)

        base_widget = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.menu = Menu(accel_group)
        self.base_panel = BasePanel()
        self.toolbar_estado = ToolbarEstado()
        self.jamediapygihack = JAMediaPyGiHack()

        base_widget.pack_start(self.menu, False, False, 0)
        base_widget.pack_start(self.base_panel, True, True, 0)
        base_widget.pack_start(self.jamediapygihack, True, True, 0)
        base_widget.pack_start(self.toolbar_estado, False, False, 0)

        self.add(base_widget)
        self.show_all()
        self.maximize()

        self.jamediapygihack.hide()

        self.menu.connect("accion_ver", self.__ejecutar_accion_ver)
        self.menu.connect("accion_codigo", self.__ejecutar_accion_codigo)
        self.menu.connect("accion_proyecto", self.__ejecutar_accion_proyecto)
        self.menu.connect("accion_archivo", self.__ejecutar_accion_archivo)
        self.menu.connect("run_jamediapygihack", self.__run_jamediapygihack)
        self.menu.connect("help", self.__run_help)
        self.jamediapygihack.connect("salir", self.__run_editor)
        self.jamediapygihack.connect("abrir", self.__open_modulo)
        self.base_panel.connect("update", self.__set_toolbar_archivo_and_menu)
        self.base_panel.connect("proyecto_abierto", self.__set_toolbar_proyecto_and_menu)
        self.base_panel.connect("ejecucion", self.__set_toolbars_ejecucion)
        self.base_panel.connect("help", self.__run_help)
        self.connect("delete-event", self.__exit)

        # Cuando se abre el editor con archivo como parámetro.
        for archivo in archivos:
            archivo = os.path.realpath(archivo)
            if os.path.exists(archivo):
                if os.path.isfile(archivo):
                    extension = os.path.splitext(os.path.split(archivo)[1])[1]
                    if extension == ".ide":
                        GLib.idle_add(self.base_panel.external_open_proyect, archivo)
                    else:
                        GLib.idle_add(self.base_panel.external_open_file, archivo)
        # FIXME: Agregar informe de utilizacion de recursos
        print "JAMediaEditor:", os.getpid()
Exemple #2
0
    def __init__(self, handle):

        activity.Activity.__init__(self, handle, False)

        self.set_title("JAMediaEditor")
        #self.set_icon_from_file(os.path.join(BASE_PATH, "Iconos",
        #    "JAMediaEditor2.svg"))
        #self.set_resizable(True)
        #self.set_size_request(640, 480)
        self.set_border_width(5)
        #self.set_position(Gtk.WindowPosition.CENTER)

        accel_group = Gtk.AccelGroup()
        self.add_accel_group(accel_group)

        base_widget = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.menu = Menu(accel_group)
        self.base_panel = BasePanel()
        self.toolbar_estado = ToolbarEstado()
        self.jamediapygihack = JAMediaPyGiHack()

        self.sugar_toolbar = Gtk.Toolbar()
        self.sugar_toolbar.modify_bg(0, Gdk.color_parse("#000000"))
        item = Gtk.ToolItem()
        item.set_expand(True)
        item.add(self.menu)
        self.sugar_toolbar.insert(item, -1)
        self.sugar_toolbar.insert(
            get_separador(draw=False, ancho=0, expand=False), -1)
        boton = StopButton(self)
        self.sugar_toolbar.insert(boton, -1)
        self.sugar_toolbar.insert(
            get_separador(draw=False, ancho=3, expand=False), -1)

        base_widget.pack_start(self.sugar_toolbar, False, False, 0)
        base_widget.pack_start(self.base_panel, True, True, 0)
        base_widget.pack_start(self.jamediapygihack, True, True, 0)
        base_widget.pack_start(self.toolbar_estado, False, False, 0)

        self.set_canvas(base_widget)

        self.show_all()
        self.maximize()

        self.jamediapygihack.hide()

        self.menu.connect('accion_ver', self.__ejecutar_accion_ver)
        self.menu.connect('accion_codigo', self.__ejecutar_accion_codigo)
        self.menu.connect('accion_proyecto', self.__ejecutar_accion_proyecto)
        self.menu.connect('accion_archivo', self.__ejecutar_accion_archivo)
        self.menu.connect('run_jamediapygihack', self.__run_jamediapygihack)
        self.jamediapygihack.connect('salir', self.__run_editor)

        self.base_panel.connect("update", self.__set_toolbar_archivo_and_menu)
        self.base_panel.connect("proyecto_abierto",
                                self.__set_toolbar_proyecto_and_menu)
        self.base_panel.connect("ejecucion", self.__set_toolbars_ejecucion)

        self.connect("delete-event", self.__exit)
        '''
        # Cuando se abre el editor con archivo como parámetro.
        if archivos:
            for archivo in archivos:
                if os.path.exists(archivo):
                    if os.path.isfile(archivo):
                        extension = os.path.splitext(
                            os.path.split(archivo)[1])[1]

                        if extension == ".ide":
                            GLib.idle_add(
                                self.base_panel.external_open_proyect,
                                archivo)

                        else:
                            GLib.idle_add(
                                self.base_panel.external_open_file,
                                archivo)
        '''
        print "JAMediaEditor:", os.getpid()
Exemple #3
0
class JAMediaEditor(activity.Activity):
    """
    Gtk.Window
        Gtk.VBox
            Menu
            BasePanel - JAMediaPyGiHack
            ToolbarEstado
    """

    __gtype_name__ = 'WindowJAMediaEditor'

    def __init__(self, handle):

        activity.Activity.__init__(self, handle, False)

        self.set_title("JAMediaEditor")
        #self.set_icon_from_file(os.path.join(BASE_PATH, "Iconos",
        #    "JAMediaEditor2.svg"))
        #self.set_resizable(True)
        #self.set_size_request(640, 480)
        self.set_border_width(5)
        #self.set_position(Gtk.WindowPosition.CENTER)

        accel_group = Gtk.AccelGroup()
        self.add_accel_group(accel_group)

        base_widget = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.menu = Menu(accel_group)
        self.base_panel = BasePanel()
        self.toolbar_estado = ToolbarEstado()
        self.jamediapygihack = JAMediaPyGiHack()

        self.sugar_toolbar = Gtk.Toolbar()
        self.sugar_toolbar.modify_bg(0, Gdk.color_parse("#000000"))
        item = Gtk.ToolItem()
        item.set_expand(True)
        item.add(self.menu)
        self.sugar_toolbar.insert(item, -1)
        self.sugar_toolbar.insert(
            get_separador(draw=False, ancho=0, expand=False), -1)
        boton = StopButton(self)
        self.sugar_toolbar.insert(boton, -1)
        self.sugar_toolbar.insert(
            get_separador(draw=False, ancho=3, expand=False), -1)

        base_widget.pack_start(self.sugar_toolbar, False, False, 0)
        base_widget.pack_start(self.base_panel, True, True, 0)
        base_widget.pack_start(self.jamediapygihack, True, True, 0)
        base_widget.pack_start(self.toolbar_estado, False, False, 0)

        self.set_canvas(base_widget)

        self.show_all()
        self.maximize()

        self.jamediapygihack.hide()

        self.menu.connect('accion_ver', self.__ejecutar_accion_ver)
        self.menu.connect('accion_codigo', self.__ejecutar_accion_codigo)
        self.menu.connect('accion_proyecto', self.__ejecutar_accion_proyecto)
        self.menu.connect('accion_archivo', self.__ejecutar_accion_archivo)
        self.menu.connect('run_jamediapygihack', self.__run_jamediapygihack)
        self.jamediapygihack.connect('salir', self.__run_editor)

        self.base_panel.connect("update", self.__set_toolbar_archivo_and_menu)
        self.base_panel.connect("proyecto_abierto",
                                self.__set_toolbar_proyecto_and_menu)
        self.base_panel.connect("ejecucion", self.__set_toolbars_ejecucion)

        self.connect("delete-event", self.__exit)
        '''
        # Cuando se abre el editor con archivo como parámetro.
        if archivos:
            for archivo in archivos:
                if os.path.exists(archivo):
                    if os.path.isfile(archivo):
                        extension = os.path.splitext(
                            os.path.split(archivo)[1])[1]

                        if extension == ".ide":
                            GLib.idle_add(
                                self.base_panel.external_open_proyect,
                                archivo)

                        else:
                            GLib.idle_add(
                                self.base_panel.external_open_file,
                                archivo)
        '''
        print "JAMediaEditor:", os.getpid()

    def __run_editor(self, widget):
        self.jamediapygihack.hide()
        self.sugar_toolbar.show()
        self.base_panel.show()
        self.toolbar_estado.show()

    def __run_jamediapygihack(self, widget):
        self.sugar_toolbar.hide()
        self.base_panel.hide()
        self.toolbar_estado.hide()
        self.jamediapygihack.show()

    def __exit(self, widget=False, event=False):
        Gtk.main_quit()
        sys.exit(0)

    def __ejecutar_accion_codigo(self, widget, accion):
        """
        Cuando se hace click en una opción del menú codigo.
        """
        self.base_panel.set_accion_codigo(widget, accion)

    def __ejecutar_accion_ver(self, widget, accion, valor):
        """
        Cuando se hace click en una opción del menú ver.
        """
        self.base_panel.set_accion_ver(widget, accion, valor)

    def __ejecutar_accion_archivo(self, widget, accion):
        """
        Cuando se hace click en una opción del menú que
        afecta al archivo seleccionado.
        """
        self.base_panel.set_accion_archivo(widget, accion)

    def __ejecutar_accion_proyecto(self, widget, accion):
        """
        Cuando se hace click en una opción del menú proyecto.
        """
        self.base_panel.set_accion_proyecto(widget, accion)

    def __set_toolbar_archivo_and_menu(self, widget, _dict):
        self.menu.update_archivos(_dict)
        self.base_panel.toolbararchivo.update(_dict)
        info = {
            'renglones': _dict['renglones'],
            'caracteres': _dict['caracteres'],
            'archivo': _dict['archivo'],
        }
        self.toolbar_estado.set_info(info)

    def __set_toolbar_proyecto_and_menu(self, widget, valor):
        """
        Activa y desactiva las opciones de proyecto en la toolbar y menú
        correspondiente cuando se abre o se cierra un proyecto.
        """
        self.menu.activar_proyecto(valor)
        self.base_panel.toolbarproyecto.activar_proyecto(valor)
        # Ejecuciones
        self.base_panel.toolbararchivo.activar_ejecucion(False)
        if valor:
            self.base_panel.toolbarproyecto.activar_ejecucion(False)
        else:
            self.base_panel.toolbarproyecto.activar_ejecucion(False)

    def __set_toolbars_ejecucion(self, widget, tipo, valor):
        """
        Cuando se ejecuta un archivo o proyecto, se actualizan las toolbars.
        """
        if not valor:
            self.base_panel.toolbararchivo.activar_ejecucion(False)
            proyecto = self.base_panel.proyecto
            if proyecto:
                self.base_panel.toolbarproyecto.activar_ejecucion(False)

            else:
                self.base_panel.toolbarproyecto.activar_ejecucion(False)

        elif valor:
            if tipo == "proyecto":
                # Se está ejecutando proyecto.
                self.base_panel.toolbararchivo.activar_ejecucion(False)
                self.base_panel.toolbarproyecto.activar_ejecucion(True)

            elif tipo == "archivo":
                # Se está ejecutando archivo.
                self.base_panel.toolbarproyecto.activar_ejecucion(False)
                self.base_panel.toolbararchivo.activar_ejecucion(True)

    def read_file(self, file_path):
        archivo = file_path.replace('file://', '')
        if os.path.exists(archivo):
            if os.path.isfile(archivo):
                extension = os.path.splitext(os.path.split(archivo)[1])[1]
                GLib.idle_add(self.base_panel.external_open_file, archivo)

    def write_file(self, file_path):
        self.__exit()
Exemple #4
0
    def __init__(self, handle):

        activity.Activity.__init__(self, handle, False)

        self.set_title("JAMediaEditor")
        #self.set_icon_from_file(os.path.join(BASE_PATH, "Iconos",
        #    "JAMediaEditor2.svg"))
        #self.set_resizable(True)
        #self.set_size_request(640, 480)
        self.set_border_width(5)
        #self.set_position(Gtk.WindowPosition.CENTER)

        accel_group = Gtk.AccelGroup()
        self.add_accel_group(accel_group)

        base_widget = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.menu = Menu(accel_group)
        self.base_panel = BasePanel()
        self.toolbar_estado = ToolbarEstado()
        self.jamediapygihack = JAMediaPyGiHack()

        self.sugar_toolbar = Gtk.Toolbar()
        self.sugar_toolbar.modify_bg(0, Gdk.color_parse("#000000"))
        item = Gtk.ToolItem()
        item.set_expand(True)
        item.add(self.menu)
        self.sugar_toolbar.insert(item, -1)
        self.sugar_toolbar.insert(
            get_separador(draw=False, ancho=0, expand=False), -1)
        boton = StopButton(self)
        self.sugar_toolbar.insert(boton, -1)
        self.sugar_toolbar.insert(
            get_separador(draw=False, ancho=3, expand=False), -1)

        base_widget.pack_start(self.sugar_toolbar, False, False, 0)
        base_widget.pack_start(self.base_panel, True, True, 0)
        base_widget.pack_start(self.jamediapygihack, True, True, 0)
        base_widget.pack_start(self.toolbar_estado, False, False, 0)

        self.set_canvas(base_widget)

        self.show_all()
        self.maximize()

        self.jamediapygihack.hide()

        self.menu.connect('accion_ver', self.__ejecutar_accion_ver)
        self.menu.connect('accion_codigo', self.__ejecutar_accion_codigo)
        self.menu.connect('accion_proyecto', self.__ejecutar_accion_proyecto)
        self.menu.connect('accion_archivo', self.__ejecutar_accion_archivo)
        self.menu.connect('run_jamediapygihack', self.__run_jamediapygihack)
        self.jamediapygihack.connect('salir', self.__run_editor)

        self.base_panel.connect("update", self.__set_toolbar_archivo_and_menu)
        self.base_panel.connect("proyecto_abierto",
            self.__set_toolbar_proyecto_and_menu)
        self.base_panel.connect("ejecucion", self.__set_toolbars_ejecucion)

        self.connect("delete-event", self.__exit)
        '''
        # Cuando se abre el editor con archivo como parámetro.
        if archivos:
            for archivo in archivos:
                if os.path.exists(archivo):
                    if os.path.isfile(archivo):
                        extension = os.path.splitext(
                            os.path.split(archivo)[1])[1]

                        if extension == ".ide":
                            GLib.idle_add(
                                self.base_panel.external_open_proyect,
                                archivo)

                        else:
                            GLib.idle_add(
                                self.base_panel.external_open_file,
                                archivo)
        '''
        print "JAMediaEditor:", os.getpid()
Exemple #5
0
class JAMediaEditor(activity.Activity):
    """
    Gtk.Window
        Gtk.VBox
            Menu
            BasePanel - JAMediaPyGiHack
            ToolbarEstado
    """

    __gtype_name__ = 'WindowJAMediaEditor'

    def __init__(self, handle):

        activity.Activity.__init__(self, handle, False)

        self.set_title("JAMediaEditor")
        #self.set_icon_from_file(os.path.join(BASE_PATH, "Iconos",
        #    "JAMediaEditor2.svg"))
        #self.set_resizable(True)
        #self.set_size_request(640, 480)
        self.set_border_width(5)
        #self.set_position(Gtk.WindowPosition.CENTER)

        accel_group = Gtk.AccelGroup()
        self.add_accel_group(accel_group)

        base_widget = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.menu = Menu(accel_group)
        self.base_panel = BasePanel()
        self.toolbar_estado = ToolbarEstado()
        self.jamediapygihack = JAMediaPyGiHack()

        self.sugar_toolbar = Gtk.Toolbar()
        self.sugar_toolbar.modify_bg(0, Gdk.color_parse("#000000"))
        item = Gtk.ToolItem()
        item.set_expand(True)
        item.add(self.menu)
        self.sugar_toolbar.insert(item, -1)
        self.sugar_toolbar.insert(
            get_separador(draw=False, ancho=0, expand=False), -1)
        boton = StopButton(self)
        self.sugar_toolbar.insert(boton, -1)
        self.sugar_toolbar.insert(
            get_separador(draw=False, ancho=3, expand=False), -1)

        base_widget.pack_start(self.sugar_toolbar, False, False, 0)
        base_widget.pack_start(self.base_panel, True, True, 0)
        base_widget.pack_start(self.jamediapygihack, True, True, 0)
        base_widget.pack_start(self.toolbar_estado, False, False, 0)

        self.set_canvas(base_widget)

        self.show_all()
        self.maximize()

        self.jamediapygihack.hide()

        self.menu.connect('accion_ver', self.__ejecutar_accion_ver)
        self.menu.connect('accion_codigo', self.__ejecutar_accion_codigo)
        self.menu.connect('accion_proyecto', self.__ejecutar_accion_proyecto)
        self.menu.connect('accion_archivo', self.__ejecutar_accion_archivo)
        self.menu.connect('run_jamediapygihack', self.__run_jamediapygihack)
        self.jamediapygihack.connect('salir', self.__run_editor)

        self.base_panel.connect("update", self.__set_toolbar_archivo_and_menu)
        self.base_panel.connect("proyecto_abierto",
            self.__set_toolbar_proyecto_and_menu)
        self.base_panel.connect("ejecucion", self.__set_toolbars_ejecucion)

        self.connect("delete-event", self.__exit)
        '''
        # Cuando se abre el editor con archivo como parámetro.
        if archivos:
            for archivo in archivos:
                if os.path.exists(archivo):
                    if os.path.isfile(archivo):
                        extension = os.path.splitext(
                            os.path.split(archivo)[1])[1]

                        if extension == ".ide":
                            GLib.idle_add(
                                self.base_panel.external_open_proyect,
                                archivo)

                        else:
                            GLib.idle_add(
                                self.base_panel.external_open_file,
                                archivo)
        '''
        print "JAMediaEditor:", os.getpid()

    def __run_editor(self, widget):
        self.jamediapygihack.hide()
        self.sugar_toolbar.show()
        self.base_panel.show()
        self.toolbar_estado.show()

    def __run_jamediapygihack(self, widget):
        self.sugar_toolbar.hide()
        self.base_panel.hide()
        self.toolbar_estado.hide()
        self.jamediapygihack.show()

    def __exit(self, widget=False, event=False):
        Gtk.main_quit()
        sys.exit(0)

    def __ejecutar_accion_codigo(self, widget, accion):
        """
        Cuando se hace click en una opción del menú codigo.
        """
        self.base_panel.set_accion_codigo(widget, accion)

    def __ejecutar_accion_ver(self, widget, accion, valor):
        """
        Cuando se hace click en una opción del menú ver.
        """
        self.base_panel.set_accion_ver(widget, accion, valor)

    def __ejecutar_accion_archivo(self, widget, accion):
        """
        Cuando se hace click en una opción del menú que
        afecta al archivo seleccionado.
        """
        self.base_panel.set_accion_archivo(widget, accion)

    def __ejecutar_accion_proyecto(self, widget, accion):
        """
        Cuando se hace click en una opción del menú proyecto.
        """
        self.base_panel.set_accion_proyecto(widget, accion)

    def __set_toolbar_archivo_and_menu(self, widget, _dict):
        self.menu.update_archivos(_dict)
        self.base_panel.toolbararchivo.update(_dict)
        info = {
            'renglones': _dict['renglones'],
            'caracteres': _dict['caracteres'],
            'archivo': _dict['archivo'],
            }
        self.toolbar_estado.set_info(info)

    def __set_toolbar_proyecto_and_menu(self, widget, valor):
        """
        Activa y desactiva las opciones de proyecto en la toolbar y menú
        correspondiente cuando se abre o se cierra un proyecto.
        """
        self.menu.activar_proyecto(valor)
        self.base_panel.toolbarproyecto.activar_proyecto(valor)
        # Ejecuciones
        self.base_panel.toolbararchivo.activar_ejecucion(False)
        if valor:
            self.base_panel.toolbarproyecto.activar_ejecucion(False)
        else:
            self.base_panel.toolbarproyecto.activar_ejecucion(False)

    def __set_toolbars_ejecucion(self, widget, tipo, valor):
        """
        Cuando se ejecuta un archivo o proyecto, se actualizan las toolbars.
        """
        if not valor:
            self.base_panel.toolbararchivo.activar_ejecucion(False)
            proyecto = self.base_panel.proyecto
            if proyecto:
                self.base_panel.toolbarproyecto.activar_ejecucion(False)

            else:
                self.base_panel.toolbarproyecto.activar_ejecucion(False)

        elif valor:
            if tipo == "proyecto":
                # Se está ejecutando proyecto.
                self.base_panel.toolbararchivo.activar_ejecucion(False)
                self.base_panel.toolbarproyecto.activar_ejecucion(True)

            elif tipo == "archivo":
                # Se está ejecutando archivo.
                self.base_panel.toolbarproyecto.activar_ejecucion(False)
                self.base_panel.toolbararchivo.activar_ejecucion(True)

    def read_file(self, file_path):
        archivo = file_path.replace('file://', '')
        if os.path.exists(archivo):
            if os.path.isfile(archivo):
                extension = os.path.splitext(os.path.split(archivo)[1])[1]
                GLib.idle_add(self.base_panel.external_open_file, archivo)

    def write_file(self, file_path):
        self.__exit()
class JAMediaEditor(Gtk.Window):

    __gtype_name__ = "WindowJAMediaEditor"

    def __init__(self, archivos=[]):

        Gtk.Window.__init__(self)

        self.set_title("JAMediaEditor")
        self.set_icon_from_file(os.path.join(BASE_PATH, "Iconos", "JAMediaEditor.svg"))
        self.set_resizable(True)
        self.set_size_request(640, 480)
        self.set_border_width(5)
        self.set_position(Gtk.WindowPosition.CENTER)

        self._help = False

        accel_group = Gtk.AccelGroup()
        self.add_accel_group(accel_group)

        base_widget = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.menu = Menu(accel_group)
        self.base_panel = BasePanel()
        self.toolbar_estado = ToolbarEstado()
        self.jamediapygihack = JAMediaPyGiHack()

        base_widget.pack_start(self.menu, False, False, 0)
        base_widget.pack_start(self.base_panel, True, True, 0)
        base_widget.pack_start(self.jamediapygihack, True, True, 0)
        base_widget.pack_start(self.toolbar_estado, False, False, 0)

        self.add(base_widget)
        self.show_all()
        self.maximize()

        self.jamediapygihack.hide()

        self.menu.connect("accion_ver", self.__ejecutar_accion_ver)
        self.menu.connect("accion_codigo", self.__ejecutar_accion_codigo)
        self.menu.connect("accion_proyecto", self.__ejecutar_accion_proyecto)
        self.menu.connect("accion_archivo", self.__ejecutar_accion_archivo)
        self.menu.connect("run_jamediapygihack", self.__run_jamediapygihack)
        self.menu.connect("help", self.__run_help)
        self.jamediapygihack.connect("salir", self.__run_editor)
        self.jamediapygihack.connect("abrir", self.__open_modulo)
        self.base_panel.connect("update", self.__set_toolbar_archivo_and_menu)
        self.base_panel.connect("proyecto_abierto", self.__set_toolbar_proyecto_and_menu)
        self.base_panel.connect("ejecucion", self.__set_toolbars_ejecucion)
        self.base_panel.connect("help", self.__run_help)
        self.connect("delete-event", self.__exit)

        # Cuando se abre el editor con archivo como parámetro.
        for archivo in archivos:
            archivo = os.path.realpath(archivo)
            if os.path.exists(archivo):
                if os.path.isfile(archivo):
                    extension = os.path.splitext(os.path.split(archivo)[1])[1]
                    if extension == ".ide":
                        GLib.idle_add(self.base_panel.external_open_proyect, archivo)
                    else:
                        GLib.idle_add(self.base_panel.external_open_file, archivo)
        # FIXME: Agregar informe de utilizacion de recursos
        print "JAMediaEditor:", os.getpid()

    def __open_modulo(self, widget, modulo_path):
        """
        Abrir path de un modulo analizado en JAMediaPyGiHack.
        """
        self.__run_editor(False)
        self.base_panel.external_open_file(modulo_path)

    def __run_help(self, widget, texto, titulo):
        if self._help:
            self._help.destroy()
            self._help = False
        self._help = Help(self, titulo)
        self._help.set_help(texto)
        if self.base_panel.instalador:
            self._help.move(0, 40)

    def __run_editor(self, widget):
        self.jamediapygihack.hide()
        self.menu.show()
        self.base_panel.show()
        self.toolbar_estado.show()

    def __run_jamediapygihack(self, widget):
        self.menu.hide()
        self.base_panel.hide()
        self.toolbar_estado.hide()
        self.jamediapygihack.show()

    def __exit(self, widget=False, event=False):
        Gtk.main_quit()
        sys.exit(0)

    def __ejecutar_accion_codigo(self, widget, accion):
        # Cuando se hace click en una opción del menú codigo.
        self.base_panel.set_accion_codigo(widget, accion)

    def __ejecutar_accion_ver(self, widget, accion, valor):
        # Cuando se hace click en una opción del menú ver.
        self.base_panel.set_accion_ver(widget, accion, valor)

    def __ejecutar_accion_archivo(self, widget, accion):
        """
        Cuando se hace click en una opción del menú que
        afecta al archivo seleccionado.
        """
        self.base_panel.set_accion_archivo(widget, accion)

    def __ejecutar_accion_proyecto(self, widget, accion):
        # Cuando se hace click en una opción del menú proyecto.
        self.base_panel.set_accion_proyecto(widget, accion)

    def __set_toolbar_archivo_and_menu(self, widget, _dict):
        # Estado general del archivo.
        self.menu.update_archivos(_dict)
        self.base_panel.toolbararchivo.update(_dict)
        info = {"renglones": _dict["renglones"], "caracteres": _dict["caracteres"], "archivo": _dict["archivo"]}
        self.toolbar_estado.set_info(info)

    def __set_toolbar_proyecto_and_menu(self, widget, valor):
        """
        Activa y desactiva las opciones de proyecto en la toolbar y menú
        correspondiente cuando se abre o se cierra un proyecto.
        """
        self.menu.activar_proyecto(valor)
        self.base_panel.toolbarproyecto.activar_proyecto(valor)
        # Ejecuciones
        self.base_panel.toolbararchivo.activar_ejecucion(False)
        self.base_panel.toolbarproyecto.activar_ejecucion(False)

    def __set_toolbars_ejecucion(self, widget, tipo, valor):
        # Cuando se ejecuta un archivo o proyecto, se actualizan las toolbars.
        if valor:
            self.base_panel.toolbararchivo.activar_ejecucion(bool(tipo == "archivo"))
            self.base_panel.toolbarproyecto.activar_ejecucion(bool(tipo == "proyecto"))
        else:
            self.base_panel.toolbararchivo.activar_ejecucion(False)
            self.base_panel.toolbarproyecto.activar_ejecucion(False)
Exemple #7
0
    def __init__(self, archivos=False):

        Gtk.Window.__init__(self)

        self.set_title("JAMediaEditor")

        self.set_icon_from_file(os.path.join(
            BASE_PATH, "Iconos",
            "JAMediaEditor2.svg"))

        self.set_resizable(True)
        self.set_size_request(640, 480)
        self.set_border_width(5)
        self.set_position(Gtk.WindowPosition.CENTER)

        accel_group = Gtk.AccelGroup()
        self.add_accel_group(accel_group)

        base_widget = Gtk.Box(
            orientation=Gtk.Orientation.VERTICAL)

        from Widgets import Menu
        from BasePanel import BasePanel
        from Toolbars import ToolbarEstado
        from JAMediaPyGiHack.JAMediaPyGiHack import JAMediaPyGiHack

        self.menu = Menu(accel_group)
        self.base_panel = BasePanel()
        self.toolbar_estado = ToolbarEstado()
        self.jamediapygihack = JAMediaPyGiHack()

        base_widget.pack_start(
            self.menu, False, False, 0)
        base_widget.pack_start(
            self.base_panel, True, True, 0)
        base_widget.pack_start(
            self.jamediapygihack, True, True, 0)
        base_widget.pack_start(
            self.toolbar_estado, False, False, 0)

        self.add(base_widget)

        self.show_all()
        self.maximize()

        self.jamediapygihack.hide()

        self.menu.connect('accion_ver',
            self.__ejecutar_accion_ver)
        self.menu.connect('accion_codigo',
            self.__ejecutar_accion_codigo)
        self.menu.connect('accion_proyecto',
            self.__ejecutar_accion_proyecto)
        self.menu.connect('accion_archivo',
            self.__ejecutar_accion_archivo)
        self.menu.connect('run_jamediapygihack',
            self.__run_jamediapygihack)
        self.jamediapygihack.connect('salir',
            self.__run_editor)

        self.base_panel.connect("update",
            self.__set_toolbar_archivo_and_menu)
        self.base_panel.connect("proyecto_abierto",
            self.__set_toolbar_proyecto_and_menu)
        self.base_panel.connect("ejecucion",
            self.__set_toolbars_ejecucion)

        self.connect("delete-event", self.__exit)

        # Cuando se abre el editor con archivo como parámetro.
        if archivos:
            from gi.repository import GLib

            for archivo in archivos:
                if os.path.exists(archivo):
                    if os.path.isfile(archivo):
                        extension = os.path.splitext(
                            os.path.split(archivo)[1])[1]

                        if extension == ".ide":
                            GLib.idle_add(
                                self.base_panel.external_open_proyect,
                                archivo)

                        else:
                            GLib.idle_add(
                                self.base_panel.external_open_file,
                                archivo)
Exemple #8
0
class JAMediaEditor(Gtk.Window):
    """
    Gtk.Window
        Gtk.VBox
            Menu
            BasePanel - JAMediaPyGiHack
            ToolbarEstado
    """

    __gtype_name__ = 'WindowJAMediaEditor'

    def __init__(self, archivos=False):

        Gtk.Window.__init__(self)

        self.set_title("JAMediaEditor")

        self.set_icon_from_file(os.path.join(
            BASE_PATH, "Iconos",
            "JAMediaEditor2.svg"))

        self.set_resizable(True)
        self.set_size_request(640, 480)
        self.set_border_width(5)
        self.set_position(Gtk.WindowPosition.CENTER)

        accel_group = Gtk.AccelGroup()
        self.add_accel_group(accel_group)

        base_widget = Gtk.Box(
            orientation=Gtk.Orientation.VERTICAL)

        from Widgets import Menu
        from BasePanel import BasePanel
        from Toolbars import ToolbarEstado
        from JAMediaPyGiHack.JAMediaPyGiHack import JAMediaPyGiHack

        self.menu = Menu(accel_group)
        self.base_panel = BasePanel()
        self.toolbar_estado = ToolbarEstado()
        self.jamediapygihack = JAMediaPyGiHack()

        base_widget.pack_start(
            self.menu, False, False, 0)
        base_widget.pack_start(
            self.base_panel, True, True, 0)
        base_widget.pack_start(
            self.jamediapygihack, True, True, 0)
        base_widget.pack_start(
            self.toolbar_estado, False, False, 0)

        self.add(base_widget)

        self.show_all()
        self.maximize()

        self.jamediapygihack.hide()

        self.menu.connect('accion_ver',
            self.__ejecutar_accion_ver)
        self.menu.connect('accion_codigo',
            self.__ejecutar_accion_codigo)
        self.menu.connect('accion_proyecto',
            self.__ejecutar_accion_proyecto)
        self.menu.connect('accion_archivo',
            self.__ejecutar_accion_archivo)
        self.menu.connect('run_jamediapygihack',
            self.__run_jamediapygihack)
        self.jamediapygihack.connect('salir',
            self.__run_editor)

        self.base_panel.connect("update",
            self.__set_toolbar_archivo_and_menu)
        self.base_panel.connect("proyecto_abierto",
            self.__set_toolbar_proyecto_and_menu)
        self.base_panel.connect("ejecucion",
            self.__set_toolbars_ejecucion)

        self.connect("delete-event", self.__exit)

        # Cuando se abre el editor con archivo como parámetro.
        if archivos:
            from gi.repository import GLib

            for archivo in archivos:
                if os.path.exists(archivo):
                    if os.path.isfile(archivo):
                        extension = os.path.splitext(
                            os.path.split(archivo)[1])[1]

                        if extension == ".ide":
                            GLib.idle_add(
                                self.base_panel.external_open_proyect,
                                archivo)

                        else:
                            GLib.idle_add(
                                self.base_panel.external_open_file,
                                archivo)

    def __run_editor(self, widget):

        self.jamediapygihack.hide()
        self.menu.show()
        self.base_panel.show()
        self.toolbar_estado.show()

    def __run_jamediapygihack(self, widget):

        self.menu.hide()
        self.base_panel.hide()
        self.toolbar_estado.hide()
        self.jamediapygihack.show()

    def __exit(self, widget=None, event=None):

        Gtk.main_quit()
        import sys
        sys.exit(0)

    def __ejecutar_accion_codigo(self, widget, accion):
        """
        Cuando se hace click en una opción del menú codigo.
        """

        self.base_panel.set_accion_codigo(widget, accion)

    def __ejecutar_accion_ver(self, widget, accion, valor):
        """
        Cuando se hace click en una opción del menú ver.
        """

        self.base_panel.set_accion_ver(widget, accion, valor)

    def __ejecutar_accion_archivo(self, widget, accion):
        """
        Cuando se hace click en una opción del menú que
        afecta al archivo seleccionado.
        """

        self.base_panel.set_accion_archivo(widget, accion)

    def __ejecutar_accion_proyecto(self, widget, accion):
        """
        Cuando se hace click en una opción del menú proyecto.
        """

        self.base_panel.set_accion_proyecto(widget, accion)

    def __set_toolbar_archivo_and_menu(self, widget, dict):

        self.menu.update_archivos(dict)
        self.base_panel.toolbararchivo.update(dict)

        info = {
            'renglones': dict['renglones'],
            'caracteres': dict['caracteres'],
            'archivo': dict['archivo'],
            }

        self.toolbar_estado.set_info(info)

    def __set_toolbar_proyecto_and_menu(self, widget, valor):
        """
        Activa y desactiva las opciones de proyecto en la
        toolbar y menú correspondiente cuando se abre o se
        cierra un proyecto.
        """

        # FIXME: Esta funcion se ejecuta tambien cuando se cambia de lengueta,
        # por este motivo detener_ejecucion() no debe llamarse aquí.
        # self.base_panel.workpanel.detener_ejecucion()

        self.menu.activar_proyecto(valor)
        self.base_panel.toolbarproyecto.activar_proyecto(valor)

        # Ejecuciones
        self.base_panel.toolbararchivo.activar_ejecucion(False)

        if valor:
            self.base_panel.toolbarproyecto.activar_ejecucion(False)

        else:
            self.base_panel.toolbarproyecto.activar_ejecucion(None)

    def __set_toolbars_ejecucion(self, widget, tipo, valor):
        """
        Cuando se ejecuta un archivo o proyecto, se
        actualizan las toolbars correspondientes.
        """

        if not valor:
            self.base_panel.toolbararchivo.activar_ejecucion(False)

            proyecto = self.base_panel.proyecto
            if proyecto:
                self.base_panel.toolbarproyecto.activar_ejecucion(False)

            else:
                self.base_panel.toolbarproyecto.activar_ejecucion(None)

        elif valor:
            if tipo == "proyecto":
                # Se está ejecutando proyecto.
                self.base_panel.toolbararchivo.activar_ejecucion(None)
                self.base_panel.toolbarproyecto.activar_ejecucion(True)

            elif tipo == "archivo":
                # Se está ejecutando archivo.
                self.base_panel.toolbarproyecto.activar_ejecucion(None)
                self.base_panel.toolbararchivo.activar_ejecucion(True)