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