lunes, 17 de noviembre de 2014

Frame archivos prediseñado

No nos hace falta crear una ventana que muestre directorios para después elegir archivos. Gtk lo hace por nosotros/as usando FileChooserDialog...


valac -o "archivos" *.gs --pkg gtk+-3.0 


[indent=4]
uses Gtk
init
    Gtk.init (ref args)               // inicializa gtk
    var prueba = new ventana ()      // crea el objeto prueba
    prueba.show_all ()                  // muestra todo
    Gtk.main ();                      // comienza con el loop

class ventana : Window             // Crea una clase de ventana
    init
        title = "Ventana de prueba"          // escribe el titulo
        default_height = 250                // anchura
        default_width = 250                  // altura
        window_position = WindowPosition.CENTER  // posición
       
        // creamos un boton con la siguiente etiqueta
        var button = new Button.with_label ("Pulsa este botón")
        // Une el evento de clic de raton con la funcion pulsado
        button.clicked.connect (pulsado)
       
        // si pulsamos la x de la barra saldrá del loop
        destroy.connect(Gtk.main_quit)

        // añade el boton a la ventana
        add(button)

    def pulsado (btn : Button)
        var FC=  new FileChooserDialog ("Elige un archivo para abrir", this, Gtk.FileChooserAction.OPEN,
            "_Abrir",Gtk.ResponseType.ACCEPT,
            "_Cerrar",Gtk.ResponseType.CANCEL);
        FC.select_multiple = false;
        FC.set_modal(true)
        case FC.run ()
            when Gtk.ResponseType.CANCEL
                FC.hide()
                FC.close()
            when Gtk.ResponseType.ACCEPT
                FC.hide()
                var direccion=FC.get_filename ();
                print direccion

18 comentarios:

  1. Hola.

    Sabes si Genie es un proyecto obsoleto?. Fuí al blog del creador pero los post son del año 2010.

    Saludos y gracias

    ResponderEliminar
  2. Genie sigue en vigor es mantenido por el equipo Vala y Al Thomas.
    Hay muy pocos programadores de Genie.
    La verdad es que no existe una gran comunidad como para asegurar un futuro.
    Sin embargo todos los avances de Vala influyen en Genie. Por lo tanto genie/vala esta
    en continuo avance.

    ResponderEliminar
  3. Muchas gracias por la información.

    Saludos

    ResponderEliminar
  4. Gontaz, thanks for the tutorial. Keep up with the good work. I am trying to learn this language and it's being a pain to find references. Your site has been really useful!

    ResponderEliminar
  5. Hola Gontzal Uriarte.

    Han pasado 2 años desde que colocaste tu último artículo. ¿Sabés el estado de Geanie a fecha de hoy?.¿Es un proyecto en desuso?. Te agradezco cualquier tipo de información.

    Saludos

    ResponderEliminar
    Respuestas
    1. Kaixo Cristian!
      Yo sigo usando Genie en todas mis producciones.
      Al Thomas mantiene Genie todavía.
      Genie nunca ha tenido muchos adeptos, siempre ha estado a la sombra de Vala. Si eres un friki entusiasmado como yo usa Genie, si no usa Vala. Si quieres aventurarte en nuevos proyectos parecidos usa Nim.

      Un saludo.

      Eliminar
    2. Gracias Gontzal por tu respuesta. ¿Tienes planes de retomar los posts de tu blog?. Me los leí todos y están muy buenos para empezar con Geanie.

      Saludos

      Eliminar
    3. Si tengo algunas cosas nuevas con algunas librerias: Wnck, Cairo, Dbus, Pango...
      Pero no me desvivo por el blog puesto que tiene pocas visitas. Y me parece que ya ha cumplido su función incicial, que es hacer una introducción al lenguaje.
      ¿Lo usas tú?

      Eliminar
  6. Claro.! Con el estoy haciendo las pruebas que indicas en tus post. Lo que me gustaría ir viendo hasta donde se le puede exigir al lenguaje.

    ResponderEliminar
    Respuestas
    1. El software más complicado que he creado es Kataluga. Lo puedes ver en www.katamotzlectura.blogspot.com y el codigo esta disponible en gitlab.org

      El lenguaje tiene las mismas limitaciones y posibilidades que Vala.

      Eliminar
  7. En estos momentos uso Sublime Text para programar, pero no reconoce la sintaxis de Geanie, ¿Sabes si existe algún editor que si la soporte?. En consola uso nano o vim, pero me gustaría probarlo en uno que funcione con las X.

    ResponderEliminar
  8. Hola Gontzal, antes de nada, agradecerte que compartas tus conocimientos sobre Genie, un lenguaje con muy poca divulgación a pesar de sus grandes posibilidades.

    Tu blog ha sido una de las referencias que estoy utilizando para crear una wiki sobre Genie (precisamente por esa falta de documentación, y casi todo en inglés). La puedes visitar en http://genie.webierta.skn1.com/

    En esta Wiki intento presentar de manera organizada mis apuntes sobre Genie y utilizar muchos ejemplos de código (míos y de otros). Por ejemplo, en el apartado de SDL he creado un juego retro de tenis.

    Por eso te invito a visitar la wiki y participar como creas oportuno para mejorarla.

    Muchas gracias!

    ResponderEliminar
    Respuestas
    1. Hola Ducko: Me he paseado por tu wiki, y la veo estupenda. Me parece genial la idea. Mucho mejor que este simple blog. Voy a dar aviso a Al Thomas(responsable de Genie en Gnome) para que te meta dentro del listado de blog/wikis sobre Genie. La verdad es que somos cuatro gatos los que usamos este lenguaje. Vala o Genie son geniales para usarlos con Gtk o Gstreamer puesto que forman parte del mismo equipo:Gnome. He estado tentado estos últimos días en Nim, D o Rust pero les falta camino para integrar las librerías Gnome de forma completa, segura y actualizada.

      Espero seguir teniendo contacto y ayudarte en lo que pueda.

      Eliminar
    2. Yo también he propuesto un logo. A ver si le vamos poniendo un poco de imagen al lenguaje.

      Eliminar
    3. Ok, gracias. Me pasé por el mailing list de Vala para dar a conocer la wiki, pero no me manejo muy bien y no sé si tuvo alguna repercusión. Como dices, somos cuatro gatos y creo que estamos muy dispersos (he contactado con alguien de Australia y también he visto que se hace algo con Genie en Japón, además creo que hace un tiempo tuvo cierta repercusión en Polonia).

      Solo soy un aficionado en esto de la programación y me faltan muchos conceptos básicos, pero después de tontear con HTML5, CSS, javascript, Python y Ruby, Genie me está encantando y creo que tiene un gran potencial.

      La wiki ya tiene la estructura básica (quizá a falta de alguna sección más, como alguna interfaz como Cairo y alguna cosilla más, como Gstreamer que comentas), por lo que ahora intentaré corregir y ampliar los contenidos e incorporar algunos ejemplos más de código. Si tengo tiempo, añadiré programas completos como el juego de tenis.

      Te agradezco la difusión y cualquier aportación que puedas hacer, aunque tu blog ya ha sido una referencia muy importante.

      Saludos.

      Eliminar