Iniciando un proyecto GNOME con libglade y autotools

Claudio Saavedra


      
    

Historial de revisiones
Revisión 0.110 ene 2004
1ª versión de revisión
Revisión 0.1113 ene 2004
Corregidos algunos errores menores
Revisión 0.1202 abr 2005
Actualizado correo electrónico, se cambia el nombre del directorio raíz del proyecto a "hola". Se sugiere la instalación local del proyecto.
Revisión 0.1328 ene 2006
Corregidos problemas de codificación de la versión html. Corrección de errores de traducción y ortografía. Agregado copyright y nota legal.

Tabla de contenidos
1. Introducción
2. Interfaz del proyecto
3. Archivos Fuente
3.1. hello.c
3.2. main.c
3.3. hello.h
4. Autotools
4.1. configure.in
4.2. Makefile.am
4.2.1. hola/Makefile.am
4.2.2. hola/src/Makefile.am
4.2.3. hola/src/glade/Makefile.am
5. Construyendo el proyecto
Referencias

En este documento se explica mediante un ejemplo como iniciar un proyecto GNOME utilizando una interfaz creada en Glade-2, la biblioteca libglade, y las herramientas GNU automake y autoconf.

1. Introducción

Como una gran ayuda al desarrollo de aplicaciones GTK y GNOME nació la aplicación Glade, que permite mediante WYSIWYG crear interfaces fácilmente y almacenar éstas en un formato XML de fácil comprensión. Una de las características de Glade es que no solo permite definir la interfaz, sino que además permite crear automáticamente los archivos fuente del proyecto y los archivos configure y Makefile de modo de que al construir el proyecto la interfaz forma parte de los binarios. Si bien esto es una gran ayuda, se puede transformar en una limitante, ya que cada vez que se necesite modificar algo de la interfaz se debe compilar nuevamente el proyecto.

Para evitar esto y brindar mayor libertad en el uso de los archivos XML de Glade, existe la biblioteca libglade. Esta contiene funciones que permiten crear las interfaces accediendo a los archivos XML en tiempo de ejecución, y accediendo solo a los componentes que se indique en el código del programa. Esto da una mayor flexibilidad a la hora de reutilizar Widgets, facilita la edición de la interfaz en la etapa de desarrollo y permite el uso de múltiples interfaces sin necesidad de compilar la aplicación para intercambiar entre éstas.

Explicaremos en este documento como utilizar esta biblioteca para crear una interfaz simple que permita al lector familiarizarse con las funciones más elementales de ésta. No se pretende dar una cátedra avanzada, y se sugiere la lectura del Manual de Referencia de Libglade para mayores detalles.

Nuestro proyecto se llamará hellolibglade, y consistirá en una ventana con la frase Hello libGlade! (emulando al popular 'Hello World!') y un botón para finalizar el programa.

Para facilitar la construcción de nuestro proyecto, y adaptarnos con todas las de la ley al desarrollo GNOME, utilizaremos las herramientas GNU automake y autoconf que automatizan la creación de los scripts necesarios para compilar, instalar, distribuir y desinstalar el proyecto, entre otras funcionalidades. Daremos una pequeña introducción al uso de estas herramientas, pero solo de un modo explicativo. Mayor teoría debe ser investigada por el desarrollador.