Está en la página 1de 2

IGS21 Entornos de Usuario

Ingenieras Tcnicas en Informtica de Gestin y Sistemas

PRCTICA 1 INTRODUCCIN A FLTK


El Fast Light Tool Kit (FLTK) es una herramienta para crear interfaces grficas de usuario para los sistemas UNIX/Linux (X11), Microsoft Windows y MacOS X. En esta prctica se va a trabajar principalmente con los elementos bsicos que proporciona FLTK para el diseo de interfaces. Se parte de un ejemplo muy sencillo que se ir modificando a lo largo de la prctica a fin de obtener los resultados que se piden en los ejercicios. Tambin, y antes que nada, se muestra cmo compilar un programa que utilice FLTK.

1. COMPILACIN CON FLTK


Existe una herramienta denominada fltk-config que se utiliza para obtener informacin acerca de la versin de FLTK instalada, de las opciones del compilador y del enlazador, y de las opciones para construir aplicaciones que utilicen FLTK. Por ejemplo, si se desea conocer la ruta completa de la librera FLTK hay que ejecutar: fltk-config -libs cuyo resultado normalmente es: /usr/lib/libfltk.a Esta herramienta tambin sirve para compilar y enlazar. Por ejemplo, la siguiente lnea compila y crea el ejecutable hello: fltk-config -compile hello.cpp Si se ejecuta fltk-config sin parmetros aparecer la ayuda abreviada. Para ms informacin utiliza el comando man fltk-config.

2. EL PRIMER PROGRAMA
Edita hello.cpp y repasa cuidadosamente el cdigo fuente. Complalo y ejectalo. Comprueba que el resultado es el siguiente:

Cualquier duda que tengas pregntasela a tu profesor de prcticas. Cuando tengas claro cmo funciona respndete a las siguientes cuestiones (piensa primero la respuesta y despus comprueba si el resultado coincide). Qu ocurrira y por qu si ...

... la ventana fuera de tamao 120x60? ... si la lnea window->end() la sitas justo despus de crear la Fl_Window? Y si la sitas despus de crear la Fl_Box pero antes de especificar sus propiedades? ... comentas la lnea window->show(...)? ... inviertes el orden de las lneas window->show(...) y Fl::run()?

3. EJERCICIOS
A continuacin se proponen una serie de ejercicios cuyo objetivo es crear una interfaz, como la que se muestra en la siguiente figura, para facilitar al usuario la impresin de documentos.

Departamento de Lenguajes y Sistemas Informticos

Universitat Jaume I

IGS21 Entornos de Usuario

Ingenieras Tcnicas en Informtica de Gestin y Sistemas

En primer lugar edita printer.cpp. Repasa el cdigo, complalo y ejectalo. Vers que la interfaz est slo empezada. Para completar la interfaz, tal y como muestra la figura anterior, realiza los siguientes ejercicios: 1. 2. Aade el check_button "Imprimir a archivo". Estas son su posicin y tamao (8, 44, 150, 28). No olvides aadir el include correspondiente: #include <FL/Fl_Check_Button.H> Aade dos radio_button a continuacin del botn "Todo". Uno se llamar "Actual" y el otro "Rango". Los tres botones tienen el mismo tamao y cada uno se encuentra en vertical a 28 unidades del siguiente. No olvides especificar el tipo FL_RADIO_BUTTON (utiliza el mtodo type()). Aade la casilla de texto (Fl_Input) que permite al usuario introducir un rango de pginas. Su posicin y tamao son (74, 138, 58, 24). Aade dos check_button, "Ajustar" y "Centrar", haciendo que queden como se observa en la figura. Aade los botones "Ok" y "Cancela" (Fl_Button). No olvides aadir el include correspondiente: #include <FL/Fl_Button.H>. Supn que a la casilla de texto creada en el ejercicio 3 le has llamado rangoInput y que al botn "Rango" le has llamado rango. Aade las dos lneas de cdigo y la funcin que se listan a continuacin. Estudia el cdigo, observa la forma de establecer la funcin de callback y averigua el sentido de los mtodos when() y setonly(). rangoInput->callback (rangoInput_callback, (void *)rango); rangoInput->when (FL_WHEN_CHANGED); // Callback de activar botn de rango cuando // se escribe un rango en la casilla de texto void rangoInput_callback (Fl_Widget *w, void * data) { Fl_Round_Button *rango= (Fl_Round_Button*)data; rango->setonly(); } 7. Aade una funcin de callback comn a los botones "Ok" y "Cancela". Dicha funcin, si el botn presionado es el "Ok" imprimir en la consola el mensaje "Envo a imprimir...", y si el botn presionado es el "Cancela" imprimir el mensaje "No envo a imprimir.". En cualquier caso haz que, una vez impreso el mensaje correspondiente, la aplicacin termine.

3. 4. 5. 6.

Departamento de Lenguajes y Sistemas Informticos

Universitat Jaume I